From 3e51aeaebe951ca77f0d917062d0eebb06394976 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 11 Oct 2014 20:54:54 -0700 Subject: [PATCH 001/544] add support for sock-rpc-stats --- addons/sock/inidb_adapter.sqf | 168 ++++++++++ addons/sock/log.sqf | 187 +++++++++++ addons/sock/macro.h | 128 ++++++++ addons/sock/main.sqf | 8 + addons/sock/sock.sqf | 399 +++++++++++++++++++++++ addons/sock/stats.sqf | 472 ++++++++++++++++++++++++++++ persistence/fn_inidb_custom.sqf | 193 +----------- persistence/fn_inidb_custom_api.sqf | 196 ++++++++++++ server/init.sqf | 4 + 9 files changed, 1572 insertions(+), 183 deletions(-) create mode 100644 addons/sock/inidb_adapter.sqf create mode 100644 addons/sock/log.sqf create mode 100644 addons/sock/macro.h create mode 100644 addons/sock/main.sqf create mode 100644 addons/sock/sock.sqf create mode 100644 addons/sock/stats.sqf create mode 100644 persistence/fn_inidb_custom_api.sqf diff --git a/addons/sock/inidb_adapter.sqf b/addons/sock/inidb_adapter.sqf new file mode 100644 index 000000000..eb69c60e5 --- /dev/null +++ b/addons/sock/inidb_adapter.sqf @@ -0,0 +1,168 @@ +diag_log format["loading sock-rpc-stats iniDB API adapter ..."]; + +//load the iniDB adapter library +call compile preProcessFileLineNumbers "addons\sock\main.sqf"; + +#include "macro.h" + + +//Some wrappers for logging +inidb_log_severe = { + ["stats-iniDB", _this] call log_severe; +}; + +inidb_log_warning = { + ["stats-iniDB", _this] call log_warning; +}; + +inidb_log_info = { + ["stats-iniDB", _this] call log_info; +}; + +inidb_log_fine = { + ["stats-iniDB", _this] call log_fine; +}; + +inidb_log_finer = { + ["stats-iniDB", _this] call log_finer; +}; + +inidb_log_finest = { + ["stats-iniDB", _this] call log_finest; +}; + +inidb_log_set_level = { + ["stats-iniDB", _this] call log_set_level; +}; + + +//Set default logging level for this component +LOG_INFO_LEVEL call inidb_log_set_level; + + +iniDB_version = "1.2"; + +iniDB_HashFunction = { + "iniDB_HashFunction: not supported" call inidb_log_finest; +}; + +iniDB_CRC32 = { + "iniDB_CRC32: not supported" call inidb_log_finest; +}; + +iniDB_MD5 = { + "iniDB_MD5: not supported" call inidb_log_finest; +}; + + +iniDB_Base64Encode = { + "iniDB_Base64Encode: not supported" call inidb_log_finest; +}; + +iniDB_Base64Decode = { + "iniDB_Base64Decode: not supported" call inidb_log_finest; +}; + +iniDB_exists = { + format["%1 call iniDB_exists;", _this] call inidb_log_finest; + not(isNil{([_this] call stats_get)}) +}; + + +iniDB_delete = { + "iniDB_delete: not supported" call inidb_log_finest; +}; + +iniDB_deleteSection = { + format["%1 call iniDB_deleteSection;", _this] call inidb_log_finest; + ARGVX3(0,_var,""); + ARGVX3(1,_sec,""); + + ([_var, _sec, nil] call stats_set) +}; + + +iniDB_readRaw = { + "iniDB_readRaw: not supported" call inidb_log_finest; +}; + + +iniDB_writeRaw = { + "iniDB_writeRaw: not supported" call inidb_log_finest; +}; + + +iniDB_Datarizer = { + "iniDB_Datarizer: not supported" call inidb_log_finest; +}; + + + +//cast a result according to iniDB rules +iniDB_cast_result = { + ARGV2(0,_result); + ARGV3(1,_type,""); + + //if no result, and no type, return empty string + if (isNil "_result" && isNil "_type") exitWith { + "" + }; + + //normalize _type + if (not(isNil "_type")) then { + _type = toUpper _type; + if (_type == "NUMBER") then { + _type = typeName 0; + }; + }; + + //no result, but type was specified, return an appropriate default value + if (isNil "_result") exitWith { + if (_type == typeName []) exitWith {[]}; + if (_type == typeName "") exitWith {""}; + if (_type == typeName 0) exitWith {0}; + "" + }; + + //no type specified, return result as-is + if (isNil "_type") exitWith { + _result + }; + + //both type, and result specified, but types did not match, do casting + if (typeName _result != _type) exitWith { + if (_type == typeName []) exitWith {[]}; + if (_type == typeName "") exitWith {str _result}; + if (_type == typeName 0) exitWith {parseNumber str _result}; + "" + }; + + _result +}; + +iniDB_read = { + format["%1 call iniDB_read;", _this] call inidb_log_finest; + ARGVX3(0,_file,""); + ARGVX3(1,_sec,""); + ARGVX3(2,_key,""); + ARGV3(3,_type,""); + + //iniDB has special rules about the return type + def(_result); + _result = ([([_file, _sec + "." + _key] call stats_get), OR(_type,nil)] call iniDB_cast_result); + format["iniDB_read: _result = %1", _result] call inidb_log_finest; + _result +}; + + +iniDB_write = { + format["%1 call iniDB_write;", _this] call inidb_log_finest; + ARGVX3(0,_file,""); + ARGVX3(1,_sec,""); + ARGVX3(2,_key,""); + ARGV2(3,_data); + + ([_file, _sec + "." + _key, _data] call stats_set) +}; + +diag_log format["loading sock-rpc-stats iniDB API adapter complete"]; \ No newline at end of file diff --git a/addons/sock/log.sqf b/addons/sock/log.sqf new file mode 100644 index 000000000..5c1644086 --- /dev/null +++ b/addons/sock/log.sqf @@ -0,0 +1,187 @@ +diag_log format["loading log library ..."]; + +//Log levels (from highest to lowest) +LOG_SEVERE_LEVEL=6; +LOG_WARNING_LEVEL=5; +LOG_INFO_LEVEL=4; +LOG_CONFIG_LEVEL=3; +LOG_FINE_LEVEL=2; +LOG_FINER_LEVEL=1; +LOG_FINEST_LEVEL=0; + +//Default system-wide log level +SYS_LOG_LEVEL = LOG_SEVERE_LEVEL; + +/** +* Sets the logging level for a component +* +* @param _component_name (String) - Name of the component +* @param _component_level (int) - Logging level for the component +* +* @return +* On success, returns the logging level that was just set +* On failure, returns nil +*/ +log_set_level = { + if (isNil "_this") exitWith {}; + if (typeName _this != typeName []) exitWith {}; + if (count _this < 2) exitWith {}; + + private["_component_name"]; + _component_name = _this select 0; + _component_level = _this select 1; + + if (isNil "_component_name" || {typeName _component_name != typeName ""}) exitWith {}; + if (isNil "_component_level" || {typeName _component_level != typeName 0}) exitWith {}; + + missionNamespace setVariable [format["%1_LOG_LEVEL", _component_name], _component_level]; + + _component_level +}; + +/** +* Gets the logging level of a component +* +* @param _component_name (String) - Name of the component +* +* @return +* On success returns the logging level of the specified component. +* On failure, if the specified component does not exist, it returns the system wide log-level +*/ +log_get_level = { + private["_component_name"]; + if (isNil "_this") exitWith {SYS_LOG_LEVEL}; + _component_name = _this; + if (typeName _component_name != typeName "") exitWith {SYS_LOG_LEVEL}; + + private["_component_level"]; + _component_level = missionNamespace getVariable [format["%1_LOG_LEVEL", toUpper(_component_name)], SYS_LOG_LEVEL]; + _component_level +}; + + +/** +* Converts a logging level value to string +* +* @param _level (String) - The logging level value to convert +* +* @return +* On success, returns the string for the specified logging @{code _level} +* On failure, returns empty string. +* +*/ +log_get_level_name = { + private["_level"]; + if (isNil "_this") exitWith {""}; + if (typeName _this != typeName 0) exitWith {""}; + + private["_level"]; + _level = _this; + + if (_level == LOG_SEVERE_LEVEL) exitWith {"severe"}; + if (_level == LOG_WARNING_LEVEL) exitWith {"warning"}; + if (_level == LOG_INFO_LEVEL) exitWith {"info"}; + if (_level == LOG_CONFIG_LEVEL) exitWith {"config"}; + if (_level == LOG_FINE_LEVEL) exitWith {"fine"}; + if (_level == LOG_FINER_LEVEL) exitWith {"finer"}; + if (_level == LOG_FINEST_LEVEL) exitWith {"finest"}; + + "" +}; + +/** +* Prints a logging string to the game's RPT file +* +* @param _level (int) - Logging level at which to log the message +* @param _component (String) - Name of the component that is logging the message +* @param _message (String) - Message to print in the RPT file +*/ +log_rpt = { + private["_level", "_component", "_message"]; + if (isNil "_this") exitWith {}; + if (count _this < 3) exitWith {}; + + _level = _this select 0; + _component = _this select 1; + _message = _this select 2; + + if (isNil "_level" || {typeName _level != typeName 0}) exitWith {}; + if (isNil "_component" || {typeName _message != typeName ""}) exitWith {}; + if (isNil "_message" || {typeName _message != typeName ""}) exitWith {}; + + private["_component_level"]; + _component_level = _component call log_get_level; + if (_level < _component_level) exitWith {}; + + private["_level_str"]; + _level_str = _level call log_get_level_name; + + diag_log (_component + ": " + _level_str + ": " + _message); +}; + + +/** +* Prints a logging message at SEVERE level for the specified component +* @param _component_name (String) - Name of the component that is logging the message +* @param _message (String) - Message to be logged +*/ +log_severe = { + ([LOG_SEVERE_LEVEL] + _this) call log_rpt +}; + +/** +* Prints a logging message at WARNING level for the specified component +* @param _component_name (String) - Name of the component that is logging the message +* @param _message (String) - Message to be logged +*/ +log_warning = { + ([LOG_WARNING_LEVEL] + _this) call log_rpt +}; + +/** +* Prints a logging message at INFO level for the specified component +* @param _component_name (String) - Name of the component that is logging the message +* @param _message (String) - Message to be logged +*/ +log_info = { + ([LOG_INFO_LEVEL] + _this) call log_rpt +}; + +/** +* Prints a logging message at CONFIG level for the specified component +* @param _component_name (String) - Name of the component that is logging the message +* @param _message (String) - Message to be logged +*/ +log_config = { + ([LOG_CONFIG_LEVEL] + _this) call log_rpt +}; + +/** +* Prints a logging message at FINE level for the specified component +* @param _component_name (String) - Name of the component that is logging the message +* @param _message (String) - Message to be logged +*/ +log_fine = { + ([LOG_FINE_LEVEL] + _this) call log_rpt +}; + +/** +* Prints a logging message at FINER level for the specified component +* @param _component_name (String) - Name of the component that is logging the message +* @param _message (String) - Message to be logged +*/ +log_finer = { + ([LOG_FINER_LEVEL] + _this) call log_rpt +}; + +/** +* Prints a logging message at FINEST level for the specified component +* @param _component_name (String) - Name of the component that is logging the message +* @param _message (String) - Message to be logged +*/ +log_finest = { + ([LOG_FINEST_LEVEL] + _this) call log_rpt +}; + + +diag_log format["loading log library complete"]; \ No newline at end of file diff --git a/addons/sock/macro.h b/addons/sock/macro.h new file mode 100644 index 000000000..c2268b262 --- /dev/null +++ b/addons/sock/macro.h @@ -0,0 +1,128 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} \ No newline at end of file diff --git a/addons/sock/main.sqf b/addons/sock/main.sqf new file mode 100644 index 000000000..fe37f5bda --- /dev/null +++ b/addons/sock/main.sqf @@ -0,0 +1,8 @@ +//load the logging library +call compile preProcessFileLineNumbers "addons\sock\log.sqf"; + +//load the socket rpc library +call compile preProcessFileLineNumbers "addons\sock\sock.sqf"; + +//load the generic stats library +call compile preProcessFileLineNumbers "addons\sock\stats.sqf"; \ No newline at end of file diff --git a/addons/sock/sock.sqf b/addons/sock/sock.sqf new file mode 100644 index 000000000..072a27221 --- /dev/null +++ b/addons/sock/sock.sqf @@ -0,0 +1,399 @@ +diag_log format["loading sock library ..."]; +#include "macro.h" + +//Some wrappers for logging +sock_log_severe = { + ["sock", _this] call log_severe; +}; + +sock_log_info = { + ["sock", _this] call log_info; +}; + +sock_log_fine = { + ["sock", _this] call log_fine; +}; + +sock_log_finer = { + ["sock", _this] call log_finer; +}; + +sock_log_finest = { + ["sock", _this] call log_finest; +}; + + +sock_log_set_level = { + ["sock", _this] call log_set_level; +}; + + +//Set default logging level for this component +LOG_INFO_LEVEL call sock_log_set_level; + + +/** +* This function escapes all instances of {@code _char} within the +* specified string {@code _str} +* +* @param _str (String type) +* @param _char (String type) +* @return +* +* Returns the same {@code _str} value, but with all intances of {@code _char} +* escaped with a back-slash character '\'. If the string already contains +* back-slashes, they are also escaped. +* +*/ + +sock_json_string_escape = { + ARGV2(0,_str); + ARGV2(1,_char); + + private["_str_data", "_new_str_data", "_target_char"]; + _str_data = toArray(_str); + _new_str_data = []; + _target_char = (toArray(_char)) select 0; + + private["_escape_char", "_escaped", "_count", "_i"]; + _escape_char = 92; // ASCII value for back-slash + _escaped = false; + _count = count(_str_data); + _i = 0; + while {_i < _count} do { + _current_char = _str_data select _i; + if (_escaped) then { + _escaped = false; + _new_str_data set [count(_new_str_data), _current_char]; + } + else { if (_current_char == _target_char) then { + _new_str_data set [count(_new_str_data), _escape_char]; + _new_str_data set [count(_new_str_data), _current_char]; + } + else { if ( _current_char == _escape_char) then { + _escaped = true; + _new_str_data set [count(_new_str_data), _escape_char]; + } + else { + _new_str_data set [count(_new_str_data), _current_char]; + };};}; + _i = _i + 1; + }; + + toString(_new_str_data) +}; + +/** +* This function recursively converts an SQF value into its equivalent JSON representation. +* +* @param _data (Any type) - Data to be converted to JSON +* @return +* +* Returns the JSON representation of {@code data}. +* +* SQF array, is mapped directly to JSON array +* SQF number, is mapped directly to JSON number +* SQF string, is escaped so that it does not have nested double-quotes, and then mapped to JSON string +* SQF nil, is mapped to JSON null +* SQF objNull, is mapped to JSON null +* SQF objects, are mapped to a simplified JSON object with the netId, and the name of the SQF object +* +*/ + +sock_json = { + if (undefined(_this)) exitWith { + "null" + }; + + + def(_type); + _type = typeName _this; + + init(_data,_this); + + if (_type == typeName "") exitWith { + str([_data, """"] call sock_json_string_escape) + }; + + if (_type == typeName 0) exitWith { + (format["%1", _data]) + }; + + if (_type == typeName objNull) exitWith { + ('{"netId":' + ((netId _data) call sock_json) + ',"name":' + ((name _data) call sock_json) + '}') + }; + + if (_type == typeName []) exitWith { + private["_array_json", "_i", "_count", "_element", "_element_json"]; + _array_json = "["; + _count = count(_data); + _i = 0; + while {_i < _count} do { + + _element = _data select _i; + _element_json = if (isNil "_element") then { "null" } else {_element call sock_json}; + + if (_i == 0) then { + _array_json = _array_json + _element_json; + } + else { + _array_json = _array_json + "," + _element_json; + }; + _i = _i + 1; + }; + _array_json = _array_json + "]"; + (_array_json) + }; + + //other types, just convert to string + (str(_data) call sock_json) +}; + +/** +* This function talks directly to the sock.dll extension using the SOCK-SQF protocol. +* +* @param _request (String type) - This is the actual text to be sent to the remote side. +* @return +* +* On success, returns the reponse string that was sent by the remote side +* On failure, returns nil +*/ +sock_get_response = { + if (isNil "_this") exitWith {}; + format["%1 call sock_get_response;", _this] call sock_log_finest; + + if (typeName _this != typeName "") exitWith {}; + + + init(_request,_this); + init(_extension,"sock"); + + //("sock_get_response: _request=" + _request) call sock_log_fine; + + def(_response_info); + _response_info = call compile (_extension callExtension _request); + + if (undefined(_response_info)) exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), "nil"]) call sock_log_severe; + nil + }; + + + if (isSTRING(_response_info)) exitWith { + ("error: " + _response_info) call sock_log_severe; + nil + }; + + if (not(isARRAY(_response_info))) exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), typeName _response_info]) call sock_log_severe; + nil + }; + + init(_chunks,_response_info); + init(_chunk_count,count(_chunks)); + + init(_i,0); + init(_response,""); + + //retrieve all the response chunks, and concatenate them + while {_i < _chunk_count } do { + init(_address,xGet(_chunks,_i)); + def(_data); + _data = _extension callExtension (_address); + _response = _response + _data; + _i = _i + 1; + }; + + format["sock_get_response: _response = %1", OR(_response,"nil")] call sock_log_finest; + OR(_response,nil) +}; + + +/** +* This function sends a JSON-RPC request using the sock.dll/sock.so extension. +* +* @param _method (String type) - This is the name of the remote method to be invoked +* @param _params (Array type) - This is an array of arguments to be passed in, when invoking {@code _method} +* @param default (Any type) - This is the value to return if there is an error +* @return +* +* On success, returns the response from the RPC server +* On failure, returns the value of the {@code _default} argument, or nil if {@code _default} was not specified. +*/ +sock_rpc = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc;", _this] call sock_log_finest; + + if (not(isServer)) exitWith { + (_this call sock_rpc_remote) + }; + + (_this call sock_rpc_local) +}; + + +sock_rpc_remote = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc_remote;", _this] call sock_log_finest; + + init(_request,_this); + + if (not(isClient)) exitWith {nil}; + + def(_var_name); + _var_name = format["sock_rpc_remote_response_%1",ceil(random 10000)]; + missionNamespace setVariable [_var_name, nil]; + missionNamespace setVariable [sock_rpc_remote_request_name, [player, _var_name, _request]]; + publicVariableServer sock_rpc_remote_request_name; + + + def(_response); + init(_end_time, time + 5); + while {true} do { + _response = missionNamespace getVariable [_var_name, nil]; + if (!isNil "_response") exitWith {}; + if (time > _end_time) exitWith {}; + sleep 0.01; + }; + missionNamespace setVariable [_var_name, nil]; + + if (undefined(_response)) exitWith { + format["timeout occurred while waiting for response of %1", _var_name] call sock_log_severe; + nil + }; + + if (not(isARRAY(_response))) exitWith { + format["protocol error, expected response to be of type %1", typeName []] call sock_log_severe; + nil + }; + + if (count(_response) == 0) exitWith { + format["protocol error, expected response to have at least one element"] call sock_log_severe; + nil + }; + + (_response select 0) +}; + + + + +sock_rpc_remote_request_listener = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc_remote_request_listener;", _this] call sock_log_finest; + + private["_variable", "_request"]; + + ARGV3(0,_variable,""); + ARGV3(1,_request,[]); + + if (undefined(_variable) || {undefined(_request)}) exitWith {nil}; + + _this = _request; + ARGVX3(0,_client,objNull); + ARGVX3(1,_var_name,""); + ARGVX3(2,_args,[]); + + private["_response"]; + _response = _args call sock_rpc_local; + _response = [OR(_response,nil)]; + + private["_client_id"]; + _client_id = owner _client; + + missionNamespace setVariable [_var_name, _response]; + format["sock_rpc_remote_request_listener: client_id: %1", _client_id] call sock_log_finest; + format["sock_rpc_remote_request_listener: response: %1", _response] call sock_log_finest; + _client_id publicVariableClient _var_name; + missionNamespace setVariable [_var_name, nil]; +}; + + + +sock_rpc_local = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc_local;", _this] call sock_log_finest; + + ARGV3(0,_method,""); + ARGV3(1,_params,[]); + ARGV2(2,_default) + + if (undefined(_method)) exitWith {nil}; + initIf(defined(_params),_params_str,(_params call sock_json),'[]'); + + private["_json_rpc"]; + _json_rpc = '{"method":' + str(_method) + ', "params":' + _params_str + '}'; + //format["_json_rpc = %1;", _json_rpc] call sock_log_finest; + + private["_result_container"]; + _result_container = call compile(_json_rpc call sock_get_response); + + + if (isNil "_result_container") exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), "nil"]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + if (typeName _result_container != typeName []) exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), (typeName _result_container)]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + if (count _result_container < 2) exitWith { + (format["protocol error: Was expecting response count of %1, but got %2 ", 2, count(_result_container)]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + private["_error", "_result"]; + _this = _result_container; + ARGV3(0,_error,false); + ARGV2(1,_result); + + //success case + if (not(_error)) exitWith { + OR(_result,nil) + }; + + //error cases + if (typeName _result != typeName "") exitWith { + (format["protocol error: Was expecting error response of typeName %1, but got %2", (typeName ""), (typeName _result)]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + (format["remote error: %1", _result]) call sock_log_severe; + OR(_default,nil) +}; + + + + +sock_init = { + init(_flag_name, "sock_init_complete"); + + sock_rpc_remote_request_name = "sock_rpc_remote_request"; + //Server-side init + if (isServer) then { + sock_rpc_remote_request_name addPublicVariableEventHandler { _this call sock_rpc_remote_request_listener;}; + + //tell clients that server pstats has initialized + missionNamespace setVariable[_flag_name, true]; + publicVariable _flag_name; + "sock_rpc library loaded on server ..." call sock_log_info; + }; + + //Client-side init (must wait for server-side init to complete) + if (isClient) then { + "waiting for server to load sock_rpc library ..." call sock_log_info; + waitUntil {not(isNil _flag_name)}; + "waiting for server to load sock_rpc library ... done" call sock_log_info; + }; +}; + + +[] call sock_init; + +diag_log format["loading sock library complete"]; \ No newline at end of file diff --git a/addons/sock/stats.sqf b/addons/sock/stats.sqf new file mode 100644 index 000000000..42d4fa137 --- /dev/null +++ b/addons/sock/stats.sqf @@ -0,0 +1,472 @@ +diag_log format["loading stats library ..."]; +#include "macro.h" + +//Some wrappers for logging +stats_log_severe = { + ["stats", _this] call log_severe; +}; + +stats_log_warning = { + ["stats", _this] call log_warning; +}; + +stats_log_info = { + ["stats", _this] call log_info; +}; + +stats_log_fine = { + ["stats", _this] call log_fine; +}; + +stats_log_finer = { + ["stats", _this] call log_finer; +}; + +stats_log_finest = { + ["stats", _this] call log_finest; +}; + +stats_log_set_level = { + ["stats", _this] call log_set_level; +}; + + +//Set default logging level for this component +LOG_INFO_LEVEL call stats_log_set_level; + + +stats_build_params = { + if (isNil "_this") exitWith {}; + format["%1 stats_build_params;", _this] call stats_log_finest; + + ARGV3(0,_scope,""); + ARGV2(1,_key_or_pairs); + ARGV2(2,_default); + + + if (undefined(_scope)) exitWith {nil}; + + init(_params,[]); + xPush(_params,_scope); + + + //get(scope) + if (undefined(_key_or_pairs)) exitWith { + (_params) + }; + + if (not(isARRAY(_key_or_pairs) || {isSTRING(_key_or_pairs)})) exitWith {nil}; + + //get(scope, pair,...) + if (isARRAY(_key_or_pairs)) exitWith { + init(_i,1); + init(_count,count(_this)); + for [{}, {_i < _count}, {_i = _i + 1}] do { DO { + ARGV3(_i,_pair,[]); + if (undefined(_pair) || {count(_pair) == 0}) exitWith {}; + if (!isSTRING(xGet(_pair,0))) exitWith {}; + + xPushIf(count(_pair) == 1,_pair,nil); + xPush(_params,_pair); + };}; + + (_params) + }; + + //get(scope, key, default) + xPush(_params,_key_or_pairs); + xPush(_params,_default); + + (_params) +}; + + +/** +* This function sets the given {@code _key}, and {@code _value} within the specified {@code _scope} +* +* e.g. +* +* //set the value for "key1" in "scope1" +* stats_set("scope1", "key1", "value1"); +* +* @param {String} _scope Name of the scope to use +* @param {String} _key Name of the key to set +* @param {*} _value Value to set +* +* @returns {boolean} true on success, false on failure +*/ + + +/** + * This function sets one or more key-value {@code _pair}s within the specified {@code _scope} + * + * e.g. + * + * //set values for "key1", and "key2" in "scope1" + * stats_set("scope1", ["key1", "value1"], ["key2", "value2"]); + * + * + * @param {String} _scope Name of the scope to use + * @param {...Array} _pair Key-value pair + * @param {String} _pair[0] Name of the key + * @param {*} _pair[1] Value for the key + * + * @returns true on success, false on failure + * + */ + +stats_set = { + (["set", _this] call stats_write) +}; + + +/** +* This function pushes the given {@code _value} to the end of the array at {@code _key}, and within the specified {@code _scope} +* +* e.g. +* +* //push the value into the array at "key1" within "scope1" +* stats_push("scope1", "key1", "value1"); +* +* @param {String} _scope Name of the scope to use +* @param {String} _key Name of the key to push into +* @param {*} _value Value to push +* +* @returns {boolean} true on success, false on failure +*/ + + +/** + * This function pushes one or more values into the specified keys within the given {@code _scope} + * + * e.g. + * + * //push values into arrays at "key1", and "key2" within "scope1" + * stats_push("scope1", ["key1", "value1"], ["key2", "value2"]); + * + * + * @param {String} _scope Name of the scope to use + * @param {...Array} _pair Key-value pair + * @param {String} _pair[0] Name of the key to push into + * @param {*} _pair[1] Value to push + * + * @returns true on success, false on failure + * + */ +stats_push = { + (["push", _this] call stats_write) +}; + +/** +* This function unshifts the given {@code _value} to the begining of the array at {@code _key}, and within the specified {@code _scope} +* +* e.g. +* +* //unshift the value into the array at "key1" within "scope1" +* stats_unshift("scope1", "key1", "value1"); +* +* @param {String} _scope Name of the scope to use +* @param {String} _key Name of the key to unshift into +* @param {*} _value Value to unshift +* +* @returns {boolean} true on success, false on failure +*/ + + +/** + * This function unshifts one or more values into the specified keys within the given {@code _scope} + * + * e.g. + * + * //unshift values into arrays at "key1", and "key2" within "scope1" + * stats_unshift("scope1", ["key1", "value1"], ["key2", "value2"]); + * + * + * @param {String} _scope Name of the scope to use + * @param {...Array} _pair Key-value pair + * @param {String} _pair[0] Name of the key to push into + * @param {*} _pair[1] Value to push + * + * @returns true on success, false on failure + * + */ +stats_unshift = { + (["unshift", _this] call stats_write) +}; + + +stats_write = { + if (isNil "_this") exitWith {false}; + format["%1 stats_set;", _this] call stats_log_finest; + + ARGVX3(0,_operation,""); + ARGVX3(1,_this,[]); + + init(_method,_operation); + def(_params); + _params = _this call stats_build_params; + + if (undefined(_params)) exitWith {false}; + + + def(_result); + _result = ([_method, _params] call sock_rpc); + if (undefined(_result)) exitWith {false}; + + + if (isSTRING(_result)) exitWith { + _result call stats_log_severe; + false + }; + + if (not(isBOOLEAN(_result))) exitWith { + format["protocol error: was expecting _result of typeName %1, but instead got typeName %2", typeName true, typeName _result] call stats_log_severe; + false + }; + + _result +}; + + + +/** +* This function gets the value of the given {@code _key}, within the specified {@code _scope} +* +* e.g. +* +* //get the value for "key1" +* stats_get("scope", "key1"); +* +* //get the value for "key1", or use "default1" if not found +* stats_get("scope", "key1", "default1") +* +* @param {String} _scope Name of the scope to use +* @param {String} _key Name of the key to set +* @param {*} [_default] Default value to use if {@code _key} does not exist +* @return +* +* The value assocaited with the specified {@code _key} +* +*/ + +/** +* This function gets multiple (or all) key-value pairs within the specified {@code _scope} +* +* e.g. +* +* //get the values for all keys within "scope1" +* stats_get("scope1") +* +* //get the values for "key1", "key2", and "key3" +* stats_get("scope1", ["key1", "default1"], [key2, "default2"], ["key3"]) +* + +* @param {Strnig} _scope Name of the scope to use +* @param {...Array} [_pair] One or more key-value pairs to retrieve +* @param {String} [_pair[0]] Name of the key +* @param {*} [_pair[1]] Default value to use, if key is not found +* +* @return +* +* On success, returns array containing the key-value pairs. +* e.g. +* +* [["key1","value1"],["key2", "value2"],...] +* +* On failure, returns null +* +*/ + +stats_get = { + (["get", _this] call stats_read) +}; + + + +/** +* This function pops the value at the end of the array at {@code _key}, within the specified {@code _scope} +* +* e.g. +* +* //pop the value for array at "key1" +* stats_pop("scope", "key1"); +* +* //pop the value for array at "key1", or use "default1" if not found +* stats_pop("scope", "key1", "default1") +* +* @param {String} _scope Name of the scope to use +* @param {String} _key Name of the key to pop value off +* @param {*} [_default] Default value to use if {@code _key} does not exist +* @return +* +* The value assocaited with the specified {@code _key} +* +*/ + +/** +* This function pops multiple values for the arrays at the specified keys, within the given {@code _scope} +* +* e.g. +* +* +* //pop the values for arrays at "key1", "key2", and "key3" +* stats_pop("scope1", ["key1", "default1"], [key2, "default2"], ["key3"]) +* + +* @param {Strnig} _scope Name of the scope to use +* @param {...Array} [_pair] One or more key-value pairs to retrieve +* @param {String} [_pair[0]] Name of the key to pop value off +* @param {*} [_pair[1]] Default value to use, if key is not found +* +* @return +* +* On success, returns array containing the key-value pairs. +* e.g. +* +* [["key1","value1"],["key2", "value2"],...] +* +* On failure, returns null +* +*/ + +stats_pop = { + (["pop", _this] call stats_read) +}; + + +/** +* This function shifts the value at the begining of the array at {@code _key}, within the specified {@code _scope} +* +* e.g. +* +* //shift the value for array at "key1" +* stats_shift("scope", "key1"); +* +* //shift the value for array at "key1", or use "default1" if not found +* stats_shift("scope", "key1", "default1") +* +* @param {String} _scope Name of the scope to use +* @param {String} _key Name of the key to shift value out +* @param {*} [_default] Default value to use if {@code _key} does not exist +* @return +* +* The value assocaited with the specified {@code _key} +* +*/ + +/** +* This function shifts multiple values for the arrays at the specified keys, within the given {@code _scope} +* +* e.g. +* +* +* //shift the values for arrays at "key1", "key2", and "key3" +* stats_shift("scope1", ["key1", "default1"], [key2, "default2"], ["key3"]) +* + +* @param {Strnig} _scope Name of the scope to use +* @param {...Array} [_pair] One or more key-value pairs to retrieve +* @param {String} [_pair[0]] Name of the key to shift value out +* @param {*} [_pair[1]] Default value to use, if key is not found +* +* @return +* +* On success, returns array containing the key-value pairs. +* e.g. +* +* [["key1","value1"],["key2", "value2"],...] +* +* On failure, returns null +* +*/ +stats_shift = { + (["shift", _this] call stats_read) +}; + + +stats_read = { + if (isNil "_this") exitWith {}; + format["%1 stats_get;", _this] call stats_log_fine; + + ARGVX3(0,_operation,""); + ARGVX3(1,_this,[]); + + init(_method, _operation); + init(_params,_this call stats_build_params); + if (undefined(_params)) exitWith {nil}; + + def(_result); + _result = [_method, _params] call sock_rpc; + + //get(scope, key, default) - Expect anything + if (isSTRING(xGet(_params,1))) exitWith { + OR(_result,nil) + }; + + //get(scope) or get(scope, pair, ...) - Expect [["k", "v"],["k", "v"],...] + _result = OR(_result,false); + + if (isSTRING(_result)) exitWith { + _result call stats_log_severe; + false + }; + + if (not(isCODE(_result))) exitWith { + format["was expecting _result of typeName %1, but instead got typeName %2", typeName {}, typeName _result] call stats_log_severe; + false + }; + + (call _result) + +}; + +/** +* This function flushes data (on server side) associated with one or more scopes +* +* Flushing means that the remote data will be saved to the database, and removed from memory. +* This is useful to call once a player has disconnected from the server. +* +* e.g. +* +* //flush the stats for "scope1" +* stats_flush("scope1"); +* +* //flush the stats for "scope1", and "scope2" +* stats_flush("scope1", "scope2") +* +* @param {...String} _scope One or more scope anmes +* @return +* +* The the number of scopes that were flushed. +* +*/ +stats_flush = { + if (isNil "_this") exitWith {}; + format["%1 stats_get;", _this] call stats_log_fine; + + if (!isARRAY(_this)) exitWith {nil}; + + init(_method, "flush"); + init(_params,_this); + + def(_result); + _result = [_method, _params] call sock_rpc; + if (undefined(_result)) exitWith {nil}; + + + if (isSTRING(_result)) exitWith { + _result call stats_log_severe; + nil + }; + + if (not(isSCALAR(_result))) exitWith { + format["protocol error: was expecting _result of typeName %1, but instead got typeName %2", typeName 0, typeName _result] call stats_log_severe; + nil + }; + + _result +}; + + + +diag_log format["loading stats library complete"]; \ No newline at end of file diff --git a/persistence/fn_inidb_custom.sqf b/persistence/fn_inidb_custom.sqf index 81c4833a8..c0ba13536 100644 --- a/persistence/fn_inidb_custom.sqf +++ b/persistence/fn_inidb_custom.sqf @@ -26,191 +26,17 @@ PDB_objectFileName = compileFinal ("format ['%1%2', '" + PDB_ObjectFileID + "', PDB_databaseNameCompiler = PDB_objectFileName; -iniDB_version = compileFinal str ("iniDB" callExtension "version"); -iniDB_HashFunction = { - private["_mode", "_data", "_cdata"]; - _mode = _this select 0; - _data = _this select 1; - - if((typeName _data) == "STRING") then { - _data = "iniDB" callExtension format["%1;%2", _mode, _data]; - _cdata = call compile _data; - - if((_cdata select 0)) then { - _cdata select 1 - } else { - nil - }; - } else { - nil - }; -} -call mf_compile; - -iniDB_CRC32 = { - _this = ["crc", _this] call iniDB_HashFunction; - _this -} -call mf_compile; - -iniDB_MD5 = { - _this = ["md5", _this] call iniDB_HashFunction; - _this -} -call mf_compile; - -iniDB_Base64Encode = { - _this = ["b64_enc", _this] call iniDB_HashFunction; - _this -} -call mf_compile; - -iniDB_Base64Decode = { - _this = ["b64_dec", _this] call iniDB_HashFunction; - _this -} -call mf_compile; - -iniDB_exists = { - private ["_data", "_cdata"]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_exists called with %1", _this]; }; - _data = "iniDB" callExtension format["exists;%1", _this]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_exists returned %1", _data]; }; - _cdata = call compile _data; - - if((_cdata select 0) && (_cdata select 1)) then { - true - } else { - false - }; -} -call mf_compile; - - -iniDB_delete = { - private ["_data", "_cdata"]; - _data = "iniDB" callExtension format["delete;%1", _this select 0]; //############################ - _cdata = call compile _data; - - if((_cdata select 0)) then { - true - } else { - false - }; -} -call mf_compile; - -iniDB_deleteSection = { - private ["_data", "_cdata"]; - _data = "iniDB" callExtension format["deletesection;%1;%2", _this select 0, _this select 1]; - _cdata = call compile _data; - - if((_cdata select 0)) then { - true - } else { - false - }; -} -call mf_compile; - -// ======================================================================= - -iniDB_readRaw = { - private["_file", "_sec", "_key", "_data", "_cdata"]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_readRaw called with %1", _this]; }; - _file = _this select 0; - _sec = _this select 1; - _key = _this select 2; - _data = "iniDB" callExtension format["read;%1;%2;%3", _file, _sec, _key]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_readRaw returned '%1'", _data]; }; - _cdata = [false]; - // Better handling of empty strings which don't compile well - if (_data != "") then { - _cdata = call compile _data; - }; - - if((_cdata select 0)) then { - _cdata select 1 - } else { - "" - }; -} -call mf_compile; - -iniDB_writeRaw = { - private["_file", "_sec", "_key", "_val", "_data", "_cdata"]; - if (__DEBUG_INIDB_CALLS__ == 1) then {diag_log format["iniDB_writeRaw called with %1", _this];}; - - _file = _this select 0; - _sec = _this select 1; - _key = _this select 2; - _val = _this select 3; - _data = "iniDB" callExtension format["write;%1;%2;%3;%4", _file, _sec, _key, _val]; - _cdata = call compile _data; - - if((_cdata select 0)) then { - true - } else { - false - }; -} -call mf_compile; - -// ======================================================================= - -iniDB_Datarizer = { - private["_string", "_type", "_return"]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_Datarizer called with %1", _this]; }; - _string = _this select 0; - _type = _this select 1; - - if(_type == "ARRAY") then { - _return = call compile _string; - } else { - if((_type == "SCALAR") || (_type == "NUMBER")) then { // "NUMBER" is less confusing for new folks - _return = parseNumber _string; - } else { - _return = _string; - }; - }; - - _return -} -call mf_compile; - -iniDB_read = { - private["_file", "_sec", "_key", "_type", "_data"]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_read called with %1", _this]; }; - - _file = _this select 0; - _sec = _this select 1; - _key = _this select 2; - _data = [_file, _sec, _key] call iniDB_readRaw; - - if (count _this > 3) then { - _type = _this select 3; - _data = [_data, _type] call iniDB_Datarizer; - }; - - _data -} -call mf_compile; - -iniDB_write = { - private["_file", "_sec", "_key", "_data"]; - if (__DEBUG_INIDB_CALLS__ == 1) then {diag_log format["iniDB_write called with %1", _this];}; - - _file = _this select 0; - _sec = _this select 1; - _key = _this select 2; - _data = _this select 3; - - _data = format['"%1"', _data]; - _data = [_file, _sec, _key, _data] call iniDB_writeRaw; - _data +if (("sock" callExtension "version") != "") then +{ + //sock-rpc-stats pretending to be iniDB 1.2 + call compile preProcessFileLineNumbers "addons\sock\inidb_adapter.sqf"; } -call mf_compile; +else +{ + //actual iniDB functions + call compile preProcessFileLineNumbers "persistence\fn_inidb_custom_api.sqf"; +}; PDB_defaultValue = { private ["_type", "_data"]; @@ -228,6 +54,7 @@ PDB_defaultValue = { } call mf_compile; + // Server-side profileNamespace saving if iniDB is disabled or unavailable PDB_exists = if (_savingMethod == 2) then { iniDB_exists } else diff --git a/persistence/fn_inidb_custom_api.sqf b/persistence/fn_inidb_custom_api.sqf new file mode 100644 index 000000000..a1620d0ec --- /dev/null +++ b/persistence/fn_inidb_custom_api.sqf @@ -0,0 +1,196 @@ +//Persistent Scripts by ZA-Gamers. www.za-gamers.co.za +//Filename: fn_inidb_custom.sqf +//Author: {ZAG}Ed! +//Email: edwin(at)vodamail(dot)co(dot)za +//Date: 26/03/2013 +//Thanx to iniDB's author SicSemperTyrannis! May you have many wives and children! + +// WARNING! This is a modified version for use with A3Wasteland! +// This is NOT a default persistantdb script! +// changes by: JoSchaap, Bewilderbeest, and AgentRev @ http://a3wasteland.com/ + +iniDB_version = compileFinal str ("iniDB" callExtension "version"); + +iniDB_HashFunction = { + private["_mode", "_data", "_cdata"]; + _mode = _this select 0; + _data = _this select 1; + + if((typeName _data) == "STRING") then { + _data = "iniDB" callExtension format["%1;%2", _mode, _data]; + _cdata = call compile _data; + + if((_cdata select 0)) then { + _cdata select 1 + } else { + nil + }; + } else { + nil + }; +} +call mf_compile; + +iniDB_CRC32 = { + _this = ["crc", _this] call iniDB_HashFunction; + _this +} +call mf_compile; + +iniDB_MD5 = { + _this = ["md5", _this] call iniDB_HashFunction; + _this +} +call mf_compile; + +iniDB_Base64Encode = { + _this = ["b64_enc", _this] call iniDB_HashFunction; + _this +} +call mf_compile; + +iniDB_Base64Decode = { + _this = ["b64_dec", _this] call iniDB_HashFunction; + _this +} +call mf_compile; + +iniDB_exists = { + private ["_data", "_cdata"]; + if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_exists called with %1", _this]; }; + _data = "iniDB" callExtension format["exists;%1", _this]; + if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_exists returned %1", _data]; }; + _cdata = call compile _data; + + if((_cdata select 0) && (_cdata select 1)) then { + true + } else { + false + }; +} +call mf_compile; + + +iniDB_delete = { + private ["_data", "_cdata"]; + _data = "iniDB" callExtension format["delete;%1", _this select 0]; //############################ + _cdata = call compile _data; + + if((_cdata select 0)) then { + true + } else { + false + }; +} +call mf_compile; + +iniDB_deleteSection = { + private ["_data", "_cdata"]; + _data = "iniDB" callExtension format["deletesection;%1;%2", _this select 0, _this select 1]; + _cdata = call compile _data; + + if((_cdata select 0)) then { + true + } else { + false + }; +} +call mf_compile; + +// ======================================================================= + +iniDB_readRaw = { + private["_file", "_sec", "_key", "_data", "_cdata"]; + if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_readRaw called with %1", _this]; }; + _file = _this select 0; + _sec = _this select 1; + _key = _this select 2; + _data = "iniDB" callExtension format["read;%1;%2;%3", _file, _sec, _key]; + if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_readRaw returned '%1'", _data]; }; + _cdata = [false]; + // Better handling of empty strings which don't compile well + if (_data != "") then { + _cdata = call compile _data; + }; + + if((_cdata select 0)) then { + _cdata select 1 + } else { + "" + }; +} +call mf_compile; + +iniDB_writeRaw = { + private["_file", "_sec", "_key", "_val", "_data", "_cdata"]; + if (__DEBUG_INIDB_CALLS__ == 1) then {diag_log format["iniDB_writeRaw called with %1", _this];}; + + _file = _this select 0; + _sec = _this select 1; + _key = _this select 2; + _val = _this select 3; + _data = "iniDB" callExtension format["write;%1;%2;%3;%4", _file, _sec, _key, _val]; + _cdata = call compile _data; + + if((_cdata select 0)) then { + true + } else { + false + }; +} +call mf_compile; + +// ======================================================================= + +iniDB_Datarizer = { + private["_string", "_type", "_return"]; + if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_Datarizer called with %1", _this]; }; + _string = _this select 0; + _type = _this select 1; + + if(_type == "ARRAY") then { + _return = call compile _string; + } else { + if((_type == "SCALAR") || (_type == "NUMBER")) then { // "NUMBER" is less confusing for new folks + _return = parseNumber _string; + } else { + _return = _string; + }; + }; + + _return +} +call mf_compile; + +iniDB_read = { + private["_file", "_sec", "_key", "_type", "_data"]; + if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_read called with %1", _this]; }; + + _file = _this select 0; + _sec = _this select 1; + _key = _this select 2; + _data = [_file, _sec, _key] call iniDB_readRaw; + + if (count _this > 3) then { + _type = _this select 3; + _data = [_data, _type] call iniDB_Datarizer; + }; + + _data +} +call mf_compile; + +iniDB_write = { + private["_file", "_sec", "_key", "_data"]; + if (__DEBUG_INIDB_CALLS__ == 1) then {diag_log format["iniDB_write called with %1", _this];}; + + _file = _this select 0; + _sec = _this select 1; + _key = _this select 2; + _data = _this select 3; + + _data = format['"%1"', _data]; + _data = [_file, _sec, _key, _data] call iniDB_writeRaw; + _data +} +call mf_compile; \ No newline at end of file diff --git a/server/init.sqf b/server/init.sqf index 910bc8752..c258b96f0 100644 --- a/server/init.sqf +++ b/server/init.sqf @@ -93,6 +93,10 @@ _setupPlayerDB = scriptNull; if (_playerSavingOn || _serverSavingOn) then { _verIniDB = "iniDB" callExtension "version"; + if (("sock" callExtension "version") != "") then { + //sock-rpc-stats pretending to be iniDB 1.2 + _verIniDB = "1.2"; + }; if (_verIniDB == "") then { From 53c4b29248941c57ad875e1ecf81d5e94c73315b Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 16 Oct 2014 19:41:07 -0700 Subject: [PATCH 002/544] fix bug in SQF to JSON mapping where infinite, or undefined SQF SCALARS were not being mapped correctly --- addons/sock/sock.sqf | 802 ++++++++++++++++++++++--------------------- 1 file changed, 404 insertions(+), 398 deletions(-) diff --git a/addons/sock/sock.sqf b/addons/sock/sock.sqf index 072a27221..bfe676577 100644 --- a/addons/sock/sock.sqf +++ b/addons/sock/sock.sqf @@ -1,399 +1,405 @@ -diag_log format["loading sock library ..."]; -#include "macro.h" - -//Some wrappers for logging -sock_log_severe = { - ["sock", _this] call log_severe; -}; - -sock_log_info = { - ["sock", _this] call log_info; -}; - -sock_log_fine = { - ["sock", _this] call log_fine; -}; - -sock_log_finer = { - ["sock", _this] call log_finer; -}; - -sock_log_finest = { - ["sock", _this] call log_finest; -}; - - -sock_log_set_level = { - ["sock", _this] call log_set_level; -}; - - -//Set default logging level for this component -LOG_INFO_LEVEL call sock_log_set_level; - - -/** -* This function escapes all instances of {@code _char} within the -* specified string {@code _str} -* -* @param _str (String type) -* @param _char (String type) -* @return -* -* Returns the same {@code _str} value, but with all intances of {@code _char} -* escaped with a back-slash character '\'. If the string already contains -* back-slashes, they are also escaped. -* -*/ - -sock_json_string_escape = { - ARGV2(0,_str); - ARGV2(1,_char); - - private["_str_data", "_new_str_data", "_target_char"]; - _str_data = toArray(_str); - _new_str_data = []; - _target_char = (toArray(_char)) select 0; - - private["_escape_char", "_escaped", "_count", "_i"]; - _escape_char = 92; // ASCII value for back-slash - _escaped = false; - _count = count(_str_data); - _i = 0; - while {_i < _count} do { - _current_char = _str_data select _i; - if (_escaped) then { - _escaped = false; - _new_str_data set [count(_new_str_data), _current_char]; - } - else { if (_current_char == _target_char) then { - _new_str_data set [count(_new_str_data), _escape_char]; - _new_str_data set [count(_new_str_data), _current_char]; - } - else { if ( _current_char == _escape_char) then { - _escaped = true; - _new_str_data set [count(_new_str_data), _escape_char]; - } - else { - _new_str_data set [count(_new_str_data), _current_char]; - };};}; - _i = _i + 1; - }; - - toString(_new_str_data) -}; - -/** -* This function recursively converts an SQF value into its equivalent JSON representation. -* -* @param _data (Any type) - Data to be converted to JSON -* @return -* -* Returns the JSON representation of {@code data}. -* -* SQF array, is mapped directly to JSON array -* SQF number, is mapped directly to JSON number -* SQF string, is escaped so that it does not have nested double-quotes, and then mapped to JSON string -* SQF nil, is mapped to JSON null -* SQF objNull, is mapped to JSON null -* SQF objects, are mapped to a simplified JSON object with the netId, and the name of the SQF object -* -*/ - -sock_json = { - if (undefined(_this)) exitWith { - "null" - }; - - - def(_type); - _type = typeName _this; - - init(_data,_this); - - if (_type == typeName "") exitWith { - str([_data, """"] call sock_json_string_escape) - }; - - if (_type == typeName 0) exitWith { - (format["%1", _data]) - }; - - if (_type == typeName objNull) exitWith { - ('{"netId":' + ((netId _data) call sock_json) + ',"name":' + ((name _data) call sock_json) + '}') - }; - - if (_type == typeName []) exitWith { - private["_array_json", "_i", "_count", "_element", "_element_json"]; - _array_json = "["; - _count = count(_data); - _i = 0; - while {_i < _count} do { - - _element = _data select _i; - _element_json = if (isNil "_element") then { "null" } else {_element call sock_json}; - - if (_i == 0) then { - _array_json = _array_json + _element_json; - } - else { - _array_json = _array_json + "," + _element_json; - }; - _i = _i + 1; - }; - _array_json = _array_json + "]"; - (_array_json) - }; - - //other types, just convert to string - (str(_data) call sock_json) -}; - -/** -* This function talks directly to the sock.dll extension using the SOCK-SQF protocol. -* -* @param _request (String type) - This is the actual text to be sent to the remote side. -* @return -* -* On success, returns the reponse string that was sent by the remote side -* On failure, returns nil -*/ -sock_get_response = { - if (isNil "_this") exitWith {}; - format["%1 call sock_get_response;", _this] call sock_log_finest; - - if (typeName _this != typeName "") exitWith {}; - - - init(_request,_this); - init(_extension,"sock"); - - //("sock_get_response: _request=" + _request) call sock_log_fine; - - def(_response_info); - _response_info = call compile (_extension callExtension _request); - - if (undefined(_response_info)) exitWith { - (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), "nil"]) call sock_log_severe; - nil - }; - - - if (isSTRING(_response_info)) exitWith { - ("error: " + _response_info) call sock_log_severe; - nil - }; - - if (not(isARRAY(_response_info))) exitWith { - (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), typeName _response_info]) call sock_log_severe; - nil - }; - - init(_chunks,_response_info); - init(_chunk_count,count(_chunks)); - - init(_i,0); - init(_response,""); - - //retrieve all the response chunks, and concatenate them - while {_i < _chunk_count } do { - init(_address,xGet(_chunks,_i)); - def(_data); - _data = _extension callExtension (_address); - _response = _response + _data; - _i = _i + 1; - }; - - format["sock_get_response: _response = %1", OR(_response,"nil")] call sock_log_finest; - OR(_response,nil) -}; - - -/** -* This function sends a JSON-RPC request using the sock.dll/sock.so extension. -* -* @param _method (String type) - This is the name of the remote method to be invoked -* @param _params (Array type) - This is an array of arguments to be passed in, when invoking {@code _method} -* @param default (Any type) - This is the value to return if there is an error -* @return -* -* On success, returns the response from the RPC server -* On failure, returns the value of the {@code _default} argument, or nil if {@code _default} was not specified. -*/ -sock_rpc = { - if (isNil "_this") exitWith {nil}; - format["%1 call sock_rpc;", _this] call sock_log_finest; - - if (not(isServer)) exitWith { - (_this call sock_rpc_remote) - }; - - (_this call sock_rpc_local) -}; - - -sock_rpc_remote = { - if (isNil "_this") exitWith {nil}; - format["%1 call sock_rpc_remote;", _this] call sock_log_finest; - - init(_request,_this); - - if (not(isClient)) exitWith {nil}; - - def(_var_name); - _var_name = format["sock_rpc_remote_response_%1",ceil(random 10000)]; - missionNamespace setVariable [_var_name, nil]; - missionNamespace setVariable [sock_rpc_remote_request_name, [player, _var_name, _request]]; - publicVariableServer sock_rpc_remote_request_name; - - - def(_response); - init(_end_time, time + 5); - while {true} do { - _response = missionNamespace getVariable [_var_name, nil]; - if (!isNil "_response") exitWith {}; - if (time > _end_time) exitWith {}; - sleep 0.01; - }; - missionNamespace setVariable [_var_name, nil]; - - if (undefined(_response)) exitWith { - format["timeout occurred while waiting for response of %1", _var_name] call sock_log_severe; - nil - }; - - if (not(isARRAY(_response))) exitWith { - format["protocol error, expected response to be of type %1", typeName []] call sock_log_severe; - nil - }; - - if (count(_response) == 0) exitWith { - format["protocol error, expected response to have at least one element"] call sock_log_severe; - nil - }; - - (_response select 0) -}; - - - - -sock_rpc_remote_request_listener = { - if (isNil "_this") exitWith {nil}; - format["%1 call sock_rpc_remote_request_listener;", _this] call sock_log_finest; - - private["_variable", "_request"]; - - ARGV3(0,_variable,""); - ARGV3(1,_request,[]); - - if (undefined(_variable) || {undefined(_request)}) exitWith {nil}; - - _this = _request; - ARGVX3(0,_client,objNull); - ARGVX3(1,_var_name,""); - ARGVX3(2,_args,[]); - - private["_response"]; - _response = _args call sock_rpc_local; - _response = [OR(_response,nil)]; - - private["_client_id"]; - _client_id = owner _client; - - missionNamespace setVariable [_var_name, _response]; - format["sock_rpc_remote_request_listener: client_id: %1", _client_id] call sock_log_finest; - format["sock_rpc_remote_request_listener: response: %1", _response] call sock_log_finest; - _client_id publicVariableClient _var_name; - missionNamespace setVariable [_var_name, nil]; -}; - - - -sock_rpc_local = { - if (isNil "_this") exitWith {nil}; - format["%1 call sock_rpc_local;", _this] call sock_log_finest; - - ARGV3(0,_method,""); - ARGV3(1,_params,[]); - ARGV2(2,_default) - - if (undefined(_method)) exitWith {nil}; - initIf(defined(_params),_params_str,(_params call sock_json),'[]'); - - private["_json_rpc"]; - _json_rpc = '{"method":' + str(_method) + ', "params":' + _params_str + '}'; - //format["_json_rpc = %1;", _json_rpc] call sock_log_finest; - - private["_result_container"]; - _result_container = call compile(_json_rpc call sock_get_response); - - - if (isNil "_result_container") exitWith { - (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), "nil"]) call sock_log_severe; - if (isNil "_default") exitWith {nil}; - OR(_default,nil) - }; - - if (typeName _result_container != typeName []) exitWith { - (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), (typeName _result_container)]) call sock_log_severe; - if (isNil "_default") exitWith {nil}; - OR(_default,nil) - }; - - if (count _result_container < 2) exitWith { - (format["protocol error: Was expecting response count of %1, but got %2 ", 2, count(_result_container)]) call sock_log_severe; - if (isNil "_default") exitWith {nil}; - OR(_default,nil) - }; - - private["_error", "_result"]; - _this = _result_container; - ARGV3(0,_error,false); - ARGV2(1,_result); - - //success case - if (not(_error)) exitWith { - OR(_result,nil) - }; - - //error cases - if (typeName _result != typeName "") exitWith { - (format["protocol error: Was expecting error response of typeName %1, but got %2", (typeName ""), (typeName _result)]) call sock_log_severe; - if (isNil "_default") exitWith {nil}; - OR(_default,nil) - }; - - (format["remote error: %1", _result]) call sock_log_severe; - OR(_default,nil) -}; - - - - -sock_init = { - init(_flag_name, "sock_init_complete"); - - sock_rpc_remote_request_name = "sock_rpc_remote_request"; - //Server-side init - if (isServer) then { - sock_rpc_remote_request_name addPublicVariableEventHandler { _this call sock_rpc_remote_request_listener;}; - - //tell clients that server pstats has initialized - missionNamespace setVariable[_flag_name, true]; - publicVariable _flag_name; - "sock_rpc library loaded on server ..." call sock_log_info; - }; - - //Client-side init (must wait for server-side init to complete) - if (isClient) then { - "waiting for server to load sock_rpc library ..." call sock_log_info; - waitUntil {not(isNil _flag_name)}; - "waiting for server to load sock_rpc library ... done" call sock_log_info; - }; -}; - - -[] call sock_init; - +diag_log format["loading sock library ..."]; +#include "macro.h" + +//Some wrappers for logging +sock_log_severe = { + ["sock", _this] call log_severe; +}; + +sock_log_info = { + ["sock", _this] call log_info; +}; + +sock_log_fine = { + ["sock", _this] call log_fine; +}; + +sock_log_finer = { + ["sock", _this] call log_finer; +}; + +sock_log_finest = { + ["sock", _this] call log_finest; +}; + + +sock_log_set_level = { + ["sock", _this] call log_set_level; +}; + + +//Set default logging level for this component +LOG_INFO_LEVEL call sock_log_set_level; + + +/** +* This function escapes all instances of {@code _char} within the +* specified string {@code _str} +* +* @param _str (String type) +* @param _char (String type) +* @return +* +* Returns the same {@code _str} value, but with all intances of {@code _char} +* escaped with a back-slash character '\'. If the string already contains +* back-slashes, they are also escaped. +* +*/ + +sock_json_string_escape = { + ARGV2(0,_str); + ARGV2(1,_char); + + private["_str_data", "_new_str_data", "_target_char"]; + _str_data = toArray(_str); + _new_str_data = []; + _target_char = (toArray(_char)) select 0; + + private["_escape_char", "_escaped", "_count", "_i"]; + _escape_char = 92; // ASCII value for back-slash + _escaped = false; + _count = count(_str_data); + _i = 0; + while {_i < _count} do { + _current_char = _str_data select _i; + if (_escaped) then { + _escaped = false; + _new_str_data set [count(_new_str_data), _current_char]; + } + else { if (_current_char == _target_char) then { + _new_str_data set [count(_new_str_data), _escape_char]; + _new_str_data set [count(_new_str_data), _current_char]; + } + else { if ( _current_char == _escape_char) then { + _escaped = true; + _new_str_data set [count(_new_str_data), _escape_char]; + } + else { + _new_str_data set [count(_new_str_data), _current_char]; + };};}; + _i = _i + 1; + }; + + toString(_new_str_data) +}; + +/** +* This function recursively converts an SQF value into its equivalent JSON representation. +* +* @param _data (Any type) - Data to be converted to JSON +* @return +* +* Returns the JSON representation of {@code data}. +* +* SQF array, is mapped directly to JSON array +* SQF number, is mapped directly to JSON number +* SQF string, is escaped so that it does not have nested double-quotes, and then mapped to JSON string +* SQF nil, is mapped to JSON null +* SQF objNull, is mapped to JSON null +* SQF objects, are mapped to a simplified JSON object with the netId, and the name of the SQF object +* +*/ + +sock_json = { + if (undefined(_this)) exitWith { + "null" + }; + + + def(_type); + _type = typeName _this; + + init(_data,_this); + + if (_type == typeName "") exitWith { + str([_data, """"] call sock_json_string_escape) + }; + + if (_type == typeName 0) exitWith { + def(_val); + _val = (format["%1", _data]); + //if value is indefinite or infinite, default to 0 + if (_val == "-1.#IND" || {_val == "-1.#INF"}) then { + _val = (format["%1", 0]); + }; + _val + }; + + if (_type == typeName objNull) exitWith { + ('{"netId":' + ((netId _data) call sock_json) + ',"name":' + ((name _data) call sock_json) + '}') + }; + + if (_type == typeName []) exitWith { + private["_array_json", "_i", "_count", "_element", "_element_json"]; + _array_json = "["; + _count = count(_data); + _i = 0; + while {_i < _count} do { + + _element = _data select _i; + _element_json = if (isNil "_element") then { "null" } else {_element call sock_json}; + + if (_i == 0) then { + _array_json = _array_json + _element_json; + } + else { + _array_json = _array_json + "," + _element_json; + }; + _i = _i + 1; + }; + _array_json = _array_json + "]"; + (_array_json) + }; + + //other types, just convert to string + (str(_data) call sock_json) +}; + +/** +* This function talks directly to the sock.dll extension using the SOCK-SQF protocol. +* +* @param _request (String type) - This is the actual text to be sent to the remote side. +* @return +* +* On success, returns the reponse string that was sent by the remote side +* On failure, returns nil +*/ +sock_get_response = { + if (isNil "_this") exitWith {}; + format["%1 call sock_get_response;", _this] call sock_log_finest; + + if (typeName _this != typeName "") exitWith {}; + + + init(_request,_this); + init(_extension,"sock"); + + //("sock_get_response: _request=" + _request) call sock_log_fine; + + def(_response_info); + _response_info = call compile (_extension callExtension _request); + + if (undefined(_response_info)) exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), "nil"]) call sock_log_severe; + nil + }; + + + if (isSTRING(_response_info)) exitWith { + ("error: " + _response_info) call sock_log_severe; + nil + }; + + if (not(isARRAY(_response_info))) exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), typeName _response_info]) call sock_log_severe; + nil + }; + + init(_chunks,_response_info); + init(_chunk_count,count(_chunks)); + + init(_i,0); + init(_response,""); + + //retrieve all the response chunks, and concatenate them + while {_i < _chunk_count } do { + init(_address,xGet(_chunks,_i)); + def(_data); + _data = _extension callExtension (_address); + _response = _response + _data; + _i = _i + 1; + }; + + format["sock_get_response: _response = %1", OR(_response,"nil")] call sock_log_finest; + OR(_response,nil) +}; + + +/** +* This function sends a JSON-RPC request using the sock.dll/sock.so extension. +* +* @param _method (String type) - This is the name of the remote method to be invoked +* @param _params (Array type) - This is an array of arguments to be passed in, when invoking {@code _method} +* @param default (Any type) - This is the value to return if there is an error +* @return +* +* On success, returns the response from the RPC server +* On failure, returns the value of the {@code _default} argument, or nil if {@code _default} was not specified. +*/ +sock_rpc = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc;", _this] call sock_log_finest; + + if (not(isServer)) exitWith { + (_this call sock_rpc_remote) + }; + + (_this call sock_rpc_local) +}; + + +sock_rpc_remote = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc_remote;", _this] call sock_log_finest; + + init(_request,_this); + + if (not(isClient)) exitWith {nil}; + + def(_var_name); + _var_name = format["sock_rpc_remote_response_%1",ceil(random 10000)]; + missionNamespace setVariable [_var_name, nil]; + missionNamespace setVariable [sock_rpc_remote_request_name, [player, _var_name, _request]]; + publicVariableServer sock_rpc_remote_request_name; + + + def(_response); + init(_end_time, time + 5); + while {true} do { + _response = missionNamespace getVariable [_var_name, nil]; + if (!isNil "_response") exitWith {}; + if (time > _end_time) exitWith {}; + sleep 0.01; + }; + missionNamespace setVariable [_var_name, nil]; + + if (undefined(_response)) exitWith { + format["timeout occurred while waiting for response of %1", _var_name] call sock_log_severe; + nil + }; + + if (not(isARRAY(_response))) exitWith { + format["protocol error, expected response to be of type %1", typeName []] call sock_log_severe; + nil + }; + + if (count(_response) == 0) exitWith { + format["protocol error, expected response to have at least one element"] call sock_log_severe; + nil + }; + + (_response select 0) +}; + + + + +sock_rpc_remote_request_listener = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc_remote_request_listener;", _this] call sock_log_finest; + + private["_variable", "_request"]; + + ARGV3(0,_variable,""); + ARGV3(1,_request,[]); + + if (undefined(_variable) || {undefined(_request)}) exitWith {nil}; + + _this = _request; + ARGVX3(0,_client,objNull); + ARGVX3(1,_var_name,""); + ARGVX3(2,_args,[]); + + private["_response"]; + _response = _args call sock_rpc_local; + _response = [OR(_response,nil)]; + + private["_client_id"]; + _client_id = owner _client; + + missionNamespace setVariable [_var_name, _response]; + format["sock_rpc_remote_request_listener: client_id: %1", _client_id] call sock_log_finest; + format["sock_rpc_remote_request_listener: response: %1", _response] call sock_log_finest; + _client_id publicVariableClient _var_name; + missionNamespace setVariable [_var_name, nil]; +}; + + + +sock_rpc_local = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc_local;", _this] call sock_log_finest; + + ARGV3(0,_method,""); + ARGV3(1,_params,[]); + ARGV2(2,_default) + + if (undefined(_method)) exitWith {nil}; + initIf(defined(_params),_params_str,(_params call sock_json),'[]'); + + private["_json_rpc"]; + _json_rpc = '{"method":' + str(_method) + ', "params":' + _params_str + '}'; + //format["_json_rpc = %1;", _json_rpc] call sock_log_finest; + + private["_result_container"]; + _result_container = call compile(_json_rpc call sock_get_response); + + + if (isNil "_result_container") exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), "nil"]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + if (typeName _result_container != typeName []) exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), (typeName _result_container)]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + if (count _result_container < 2) exitWith { + (format["protocol error: Was expecting response count of %1, but got %2 ", 2, count(_result_container)]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + private["_error", "_result"]; + _this = _result_container; + ARGV3(0,_error,false); + ARGV2(1,_result); + + //success case + if (not(_error)) exitWith { + OR(_result,nil) + }; + + //error cases + if (typeName _result != typeName "") exitWith { + (format["protocol error: Was expecting error response of typeName %1, but got %2", (typeName ""), (typeName _result)]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + (format["remote error: %1", _result]) call sock_log_severe; + OR(_default,nil) +}; + + + + +sock_init = { + init(_flag_name, "sock_init_complete"); + + sock_rpc_remote_request_name = "sock_rpc_remote_request"; + //Server-side init + if (isServer) then { + sock_rpc_remote_request_name addPublicVariableEventHandler { _this call sock_rpc_remote_request_listener;}; + + //tell clients that server pstats has initialized + missionNamespace setVariable[_flag_name, true]; + publicVariable _flag_name; + "sock_rpc library loaded on server ..." call sock_log_info; + }; + + //Client-side init (must wait for server-side init to complete) + if (isClient) then { + "waiting for server to load sock_rpc library ..." call sock_log_info; + waitUntil {not(isNil _flag_name)}; + "waiting for server to load sock_rpc library ... done" call sock_log_info; + }; +}; + + +[] call sock_init; + diag_log format["loading sock library complete"]; \ No newline at end of file From c45b7168c41ee02c6b35661c3152d9c7097adb5d Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 18 Oct 2014 07:53:17 -0700 Subject: [PATCH 003/544] fix bug in SQF to JSON serialization, escape backslahes --- addons/sock/sock.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/sock/sock.sqf b/addons/sock/sock.sqf index bfe676577..4e50388ea 100644 --- a/addons/sock/sock.sqf +++ b/addons/sock/sock.sqf @@ -31,6 +31,7 @@ sock_log_set_level = { //Set default logging level for this component LOG_INFO_LEVEL call sock_log_set_level; +#define BACKSLASH (toString [92]) /** * This function escapes all instances of {@code _char} within the @@ -112,7 +113,9 @@ sock_json = { init(_data,_this); if (_type == typeName "") exitWith { - str([_data, """"] call sock_json_string_escape) + def(_val); + _val = ([_data, """"] call sock_json_string_escape); + str([_val, BACKSLASH] call sock_json_string_escape) }; if (_type == typeName 0) exitWith { From 7a06813c6e9c7eb982c9fa926eece29ab70ba611 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 19 Oct 2014 20:26:36 -0700 Subject: [PATCH 004/544] Add support for vehicle loading and saving, rewrite/refactor/optimize object loading and saving, rewrite/refactor/optimize player loading and saving --- addons/sock/main.sqf | 5 +- addons/sock/stats.sqf | 47 +- addons/sock/stats_extra.sqf | 35 ++ persistence/players/c_applyPlayerData.sqf | 232 ++++---- persistence/players/functions.sqf | 103 ++++ persistence/players/macro.h | 128 +++++ persistence/players/s_loadAccount.sqf | 117 ++-- persistence/players/s_setupPlayerDB.sqf | 76 ++- persistence/world/functions.sqf | 1 + persistence/world/macro.h | 128 +++++ persistence/world/oFunctions.sqf | 625 ++++++++++++++++++++++ persistence/world/oLoad.sqf | 219 +------- persistence/world/oSave.sqf | 217 -------- persistence/world/vFunctions.sqf | 434 +++++++++++++++ persistence/world/vLoad.sqf | 16 + server/init.sqf | 6 +- 16 files changed, 1724 insertions(+), 665 deletions(-) create mode 100644 addons/sock/stats_extra.sqf create mode 100644 persistence/players/functions.sqf create mode 100644 persistence/players/macro.h create mode 100644 persistence/world/macro.h create mode 100644 persistence/world/oFunctions.sqf delete mode 100644 persistence/world/oSave.sqf create mode 100644 persistence/world/vFunctions.sqf create mode 100644 persistence/world/vLoad.sqf diff --git a/addons/sock/main.sqf b/addons/sock/main.sqf index fe37f5bda..2b2208b97 100644 --- a/addons/sock/main.sqf +++ b/addons/sock/main.sqf @@ -5,4 +5,7 @@ call compile preProcessFileLineNumbers "addons\sock\log.sqf"; call compile preProcessFileLineNumbers "addons\sock\sock.sqf"; //load the generic stats library -call compile preProcessFileLineNumbers "addons\sock\stats.sqf"; \ No newline at end of file +call compile preProcessFileLineNumbers "addons\sock\stats.sqf"; + +//load the stats extra function library +call compile preProcessFileLineNumbers "addons\sock\stats_extra.sqf"; \ No newline at end of file diff --git a/addons/sock/stats.sqf b/addons/sock/stats.sqf index 42d4fa137..e17a69668 100644 --- a/addons/sock/stats.sqf +++ b/addons/sock/stats.sqf @@ -442,7 +442,7 @@ stats_read = { */ stats_flush = { if (isNil "_this") exitWith {}; - format["%1 stats_get;", _this] call stats_log_fine; + format["%1 stats_flush;", _this] call stats_log_fine; if (!isARRAY(_this)) exitWith {nil}; @@ -469,4 +469,49 @@ stats_flush = { + +/** +* This function wipes all keys within a specific scope +* +* +* e.g. +* +* //wipe all keys for "scope1" +* stats_wipe("scope1"); +* +* @param {String} _scope Scope to wipe +* @return +* +* True on success, false on failure +* +*/ +stats_wipe = { + if (isNil "_this") exitWith {fale}; + format["%1 stats_wipe;", _this] call stats_log_fine; + + if (!isARRAY(_this)) exitWith {false}; + + init(_method, "wipe"); + init(_params,_this); + + def(_result); + _result = [_method, _params] call sock_rpc; + if (undefined(_result)) exitWith {false}; + + + if (isSTRING(_result)) exitWith { + _result call stats_log_severe; + false + }; + + if (not(isSCALAR(_result))) exitWith { + format["protocol error: was expecting _result of typeName %1, but instead got typeName %2", typeName 0, typeName _result] call stats_log_severe; + false + }; + + _result +}; + + + diag_log format["loading stats library complete"]; \ No newline at end of file diff --git a/addons/sock/stats_extra.sqf b/addons/sock/stats_extra.sqf new file mode 100644 index 000000000..ce12f3929 --- /dev/null +++ b/addons/sock/stats_extra.sqf @@ -0,0 +1,35 @@ +diag_log format["loading sock-rpc-stats extra functions ..."]; + +#include "macro.h" + +stats_hash_pairs = { + ARGV3(0,_hash,{}); + ARGV2(1,_default); + + if (isNil "_hash") exitWith { + OR(_default,[]) + }; + + init(_val, call _hash); + OR(_val,[]) +}; + +stats_hash_set = { + ARGVX3(0,_scope,""); + ARGVX3(1,_key,""); + ARGVX3(2,_pairs,[]); + + init(_request,[]); + _request pushBack _scope; + + { + _request pushBack [_key + "." + (_x select 0), _x select 1]; + } forEach _pairs; + + if (count(_request) > 1) then { + _request call stats_set; + }; +}; + + +diag_log format["loading sock-rpc-stats extra functions complete"]; diff --git a/persistence/players/c_applyPlayerData.sqf b/persistence/players/c_applyPlayerData.sqf index f5f90f2dd..0ede7afed 100644 --- a/persistence/players/c_applyPlayerData.sqf +++ b/persistence/players/c_applyPlayerData.sqf @@ -3,134 +3,126 @@ // This is where you load player status & inventory data which will be wiped upon death, for persistent variables use c_applyPlayerInfo.sqf instead +#include "macro.h" + if (isDedicated) exitWith {}; -private ["_data", "_name", "_value"]; +init(_data,_this); -_data = _this; +#include "functions.sqf" -removeAllWeapons player; -removeAllAssignedItems player; -removeUniform player; -removeVest player; -removeBackpack player; -removeGoggles player; -removeHeadgear player; +def(_loaded_magazines); +def(_backpack_class); +def(_backpack_weapons); +def(_backpack_items); +def(_backpack_magazines); +def(_partial_magazines); +def(_primary_weapon); +def(_secondary_weapon); +def(_handgun_weapon); +def(_uniform_class); +def(_vest_class); +//iterate through the data, and extract the hash variables into local variables { - _name = _x select 0; - _value = _x select 1; + init(_name,_x select 0); + init(_value,_x select 1); + + switch (_name) do { + case "Backpack": { _backpack_class = _value;}; + case "LoadedMagazines": { _loaded_magazines = _value; }; + case "BackpackWeapons": { _backpack_weapons = _value}; + case "BackpackItems": { _backpack_items = _value; }; + case "BackpackMagazines": { _backpack_magazines = _value }; + case "PrimaryWeapon": { _primary_weapon = _value }; + case "SecondaryWeapon": {_secondary_weapon = _value}; + case "HandgunWeapon": { _handgun_weapon = _value}; + case "Uniform":{ _uniform_class = _value}; + case "Vest": { _vest_class = _value}; + }; +} forEach _data; - switch (_name) do - { - case "Damage": { player setDamage _value }; - case "HitPoints": { { player setHitPointDamage _x } forEach _value }; - case "Hunger": { hungerLevel = _value }; - case "Thirst": { thirstLevel = _value }; - case "Money": { player setVariable ["cmoney", _value, true] }; - case "Position": { if (count _value == 3) then { player setPosATL _value } }; - case "Direction": { player setDir _value }; - case "Uniform": - { - // If uniform cannot be worn by player due to different team, try to convert it, else give default instead - if (_value != "") then - { - if (player isUniformAllowed _value) then - { - player addUniform _value; - } - else - { - _newUniform = [player, _value] call uniformConverter; +//Restore the weapons, backpack, uniform, and vest in correct order +player addBackpack "B_Carryall_Base"; // add a temporary backpack for holding loaded weapon magazines +[OR(_loaded_magazines,nil)] call _restoreLoadedMagazines; +[OR(_primary_weapon,nil)] call _restorePrimaryWeapon; +[OR(_secondary_weapon,nil)] call _restoreSecondaryWeapon; +[OR(_handgun_weapon,nil)] call _restoreHandgunWeapon; +removeBackpack player; //remove the temporary backpack - if (player isUniformAllowed _newUniform) then - { - player addUniform _newUniform; - } - else - { - player addUniform ([player, "uniform"] call getDefaultClothing); - } - }; - }; - }; - case "Vest": { if (_value != "") then { player addVest _value } }; - case "Backpack": - { - removeBackpack player; +//Restore backpack, and stuff inside +if (isSTRING(_backpack_class) && {_backpack_class != ""}) then { + diag_log format["Resting backpack: %1", _backpack_class]; + [_backpack_class] call _restoreBackpack; + + //restore the stuff inside the backpack + [OR(_backpack_weapons,nil)] call _restoreBackpackWeapons; + [OR(_backpack_magazines,nil)] call _restoreBackpackMagazines; + [OR(_backpack_items,nil)] call _restoreBackpackItems; +}; - if (_value != "") then - { - if (_value isKindOf "Weapon_Bag_Base") then - { - player addBackpack "B_AssaultPack_rgr"; // NO SOUP FOR YOU - } - else - { - player addBackpack _value; - }; - }; - }; - case "Goggles": { if (_value != "") then { player addGoggles _value } }; - case "Headgear": - { - // If wearing one of the default headgears, give the one belonging to actual team instead - if (_value != "") then - { - _defHeadgear = [player, "headgear"] call getDefaultClothing; - _defHeadgears = - [ - [typeOf player, "headgear", BLUFOR] call getDefaultClothing, - [typeOf player, "headgear", OPFOR] call getDefaultClothing, - [typeOf player, "headgear", INDEPENDENT] call getDefaultClothing - ]; +[OR(_uniform_class,nil)] call _restoreUniform; +[OR(_vest_class,nil)] call _restoreVest; - if (_value != _defHeadgear && {_defHeadgear != ""} && {{_value == _x} count _defHeadgears > 0}) then - { - player addHeadgear _defHeadgear; - } - else - { - player addHeadgear _value; - }; - }; - }; - case "LoadedMagazines": - { - player addBackpack "B_Carryall_Base"; // temporary backpack to hold mags - { player addMagazine _x } forEach _value; - }; - case "PrimaryWeapon": { player addWeapon _value; removeAllPrimaryWeaponItems player }; - case "SecondaryWeapon": { player addWeapon _value }; - case "HandgunWeapon": { player addWeapon _value; removeAllHandgunItems player }; - case "PrimaryWeaponItems": { { if (_x != "") then { player addPrimaryWeaponItem _x } } forEach _value }; - case "SecondaryWeaponItems": { { if (_x != "") then { player addSecondaryWeaponItem _x } } forEach _value }; - case "HandgunItems": { { if (_x != "") then { player addHandgunItem _x } } forEach _value }; - case "AssignedItems": - { - { - if ([player, _x] call isAssignableBinocular) then - { - player addWeapon _x; - } - else - { - player linkItem _x; - }; - } forEach _value; - }; - case "CurrentWeapon": { player selectWeapon _value }; - case "Stance": { [player, [player, _value] call getFullMove] call switchMoveGlobal }; - case "UniformWeapons": { { (uniformContainer player) addWeaponCargoGlobal _x } forEach _value }; - case "UniformItems": { { (uniformContainer player) addItemCargoGlobal _x } forEach _value }; - case "UniformMagazines": { { (uniformContainer player) addMagazineCargoGlobal _x } forEach _value }; - case "VestWeapons": { { (vestContainer player) addWeaponCargoGlobal _x } forEach _value }; - case "VestItems": { { (vestContainer player) addItemCargoGlobal _x } forEach _value }; - case "VestMagazines": { { (vestContainer player) addMagazineCargoGlobal _x } forEach _value }; - case "BackpackWeapons": { { (backpackContainer player) addWeaponCargoGlobal _x } forEach _value }; - case "BackpackItems": { { (backpackContainer player) addItemCargoGlobal _x } forEach _value }; - case "BackpackMagazines": { { (backpackContainer player) addMagazineCargoGlobal _x } forEach _value }; - case "PartialMagazines": { { player addMagazine _x } forEach _value }; - case "WastelandItems": { { [_x select 0, _x select 1, true] call mf_inventory_add } forEach _value }; - }; +//restore other stuff that is not order-dependent +def(_name); +def(_value); +{ + _name = _x select 0; + _value = _x select 1; + + switch (_name) do { + case "Damage": { player setDamage _value }; + case "HitPoints": { { player setHitPointDamage _x } forEach _value }; + case "Hunger": { hungerLevel = _value }; + case "Thirst": { thirstLevel = _value }; + case "Money": { player setVariable ["cmoney", _value, true] }; + case "Position": { if (count _value == 3) then { player setPosATL _value } }; + case "Direction": { player setDir _value }; + case "Goggles": { if (_value != "") then { player addGoggles _value } }; + case "Headgear": { + // If wearing one of the default headgears, give the one belonging to actual team instead + if (_value != "") then { + _defHeadgear = [player, "headgear"] call getDefaultClothing; + _defHeadgears = + [ + [typeOf player, "headgear", BLUFOR] call getDefaultClothing, + [typeOf player, "headgear", OPFOR] call getDefaultClothing, + [typeOf player, "headgear", INDEPENDENT] call getDefaultClothing + ]; + + if (_value != _defHeadgear && {_defHeadgear != ""} && {{_value == _x} count _defHeadgears > 0}) then { + player addHeadgear _defHeadgear; + } + else + { + player addHeadgear _value; + }; + }; + }; + case "PrimaryWeaponItems": { { if (_x != "") then { player addPrimaryWeaponItem _x } } forEach _value }; + case "SecondaryWeaponItems": { { if (_x != "") then { player addSecondaryWeaponItem _x } } forEach _value }; + case "HandgunItems": { { if (_x != "") then { player addHandgunItem _x } } forEach _value }; + case "AssignedItems": { + { + if ([player, _x] call isAssignableBinocular) then { + player addWeapon _x; + } + else { + player linkItem _x; + }; + } forEach _value; + }; + case "CurrentWeapon": { player selectWeapon _value }; + case "Stance": { [player, [player, _value] call getFullMove] call switchMoveGlobal }; + case "UniformWeapons": { { (uniformContainer player) addWeaponCargoGlobal _x } forEach _value }; + case "UniformItems": { { (uniformContainer player) addItemCargoGlobal _x } forEach _value }; + case "UniformMagazines": { { (uniformContainer player) addMagazineCargoGlobal _x } forEach _value }; + case "VestWeapons": { { (vestContainer player) addWeaponCargoGlobal _x } forEach _value }; + case "VestItems": { { (vestContainer player) addItemCargoGlobal _x } forEach _value }; + case "VestMagazines": { { (vestContainer player) addMagazineCargoGlobal _x } forEach _value }; + case "PartialMagazines": { { player addMagazine _x } forEach _value }; + case "WastelandItems": { { [_x select 0, _x select 1, true] call mf_inventory_add } forEach _value }; + }; } forEach _data; + diff --git a/persistence/players/functions.sqf b/persistence/players/functions.sqf new file mode 100644 index 000000000..719d37766 --- /dev/null +++ b/persistence/players/functions.sqf @@ -0,0 +1,103 @@ +// @file Version: 1.2 +// @file Name: oLoad.sqf +// @file Author: micovery +// @file Description: Utility functions for player stats + +#include "macro.h" + +def(_resetPlayerData); +_resetPlayerData = { + removeAllWeapons player; + removeAllAssignedItems player; + removeUniform player; + removeVest player; + removeBackpack player; + removeGoggles player; + removeHeadgear player; +}; + +def(_restoreBackpack); +_restoreBackpack = { + ARGVX3(0,_value,""); + removeBackpack player; + + if (_value == "") exitWith {}; + + if (_value isKindOf "Weapon_Bag_Base") exitWith { + player addBackpack "B_AssaultPack_rgr"; // NO SOUP FOR YOU + }; + + player addBackpack _value; +}; + + +def(_restoreBackpackWeapons); +_restoreBackpackWeapons = { + ARGVX3(0,_value,[]); + { (backpackContainer player) addWeaponCargoGlobal _x } forEach _value +}; + +def(_restoreBackpackItems); +_restoreBackpackItems = { + ARGVX3(0,_value, []); + { (backpackContainer player) addItemCargoGlobal _x } forEach _value +}; + +def(_restoreBackpackMagazines); +_restoreBackpackMagazines = { + ARGVX3(0,_value,[]); + { (backpackContainer player) addMagazineCargoGlobal _x } forEach _value +}; + +def(_restorePrimaryWeapon); +_restorePrimaryWeapon = { + ARGVX3(0,_value,""); + player addWeapon _value; removeAllPrimaryWeaponItems player; +}; + +def(_restoreSecondaryWeapon); +_restoreSecondaryWeapon = { + ARGVX3(0,_value,""); + player addWeapon _value; +}; + +def(_restoreHandgunWeapon); +_restoreHandgunWeapon = { + //diag_log format["%1 call _restoreHandgunWeapon", _this]; + ARGVX3(0,_value,""); + player addWeapon _value; removeAllHandgunItems player; +}; + +def(_restoreLoadedMagazines); +_restoreLoadedMagazines = { + ARGVX3(0,_value,[]); + { player addMagazine _x } forEach _value; +}; + +def(_restoreUniform); +_restoreUniform = { + ARGV3(0,_value,""); + if (_value == "") exitWith {}; + + if (player isUniformAllowed _value) exitWith { + player addUniform _value; + }; + + // If uniform cannot be worn by player due to different team, try to convert it, else give default instead + def(_newUniform); + _newUniform = [player, _value] call uniformConverter; + + if (player isUniformAllowed _newUniform) exitWith { + player addUniform _newUniform; + }; + + player addUniform ([player, "uniform"] call getDefaultClothing); +}; + +def(_restoreVest); +_restoreVest = { + ARGVX3(0,_value,""); + if (_value == "") exitWith {}; + player addVest _value; +}; + diff --git a/persistence/players/macro.h b/persistence/players/macro.h new file mode 100644 index 000000000..c2268b262 --- /dev/null +++ b/persistence/players/macro.h @@ -0,0 +1,128 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} \ No newline at end of file diff --git a/persistence/players/s_loadAccount.sqf b/persistence/players/s_loadAccount.sqf index dc0cd6424..965f50f79 100644 --- a/persistence/players/s_loadAccount.sqf +++ b/persistence/players/s_loadAccount.sqf @@ -1,83 +1,34 @@ -// @file Version: 1.0 -// @file Name: s_loadAccount.sqf -// @file Author: AgentRev -// @file Created: 25/02/2014 22:21 - -if (!isServer) exitWith {}; - -private ["_UID", "_data", "_saveValid", "_getValue"]; - -_UID = _this; -_data = []; - -_saveValid = ([_UID call PDB_playerFileName, "PlayerSave", "Position", "STRING"] call PDB_read != ""); // iniDB_read -_data pushBack ["PlayerSaveValid", _saveValid]; - -_getValue = -{ - private ["_name", "_type", "_section", "_value"]; - _name = _this select 0; - _type = _this select 1; - _section = if (count _this > 2) then { _this select 2 } else { "PlayerSave" }; - - _value = [_UID call PDB_playerFileName, _section, _name, _type] call PDB_read; // iniDB_read - - if (!isNil "_value") then - { - _data pushBack [_name, _value]; - }; -}; - -["Donator", "NUMBER", "PlayerInfo"] call _getValue; -//["BankMoney", "NUMBER", "PlayerInfo"] call _getValue; // Not implemented in vanilla mission - -["Damage", "NUMBER"] call _getValue; -["Hunger", "NUMBER"] call _getValue; -["Thirst", "NUMBER"] call _getValue; - -if (["A3W_moneySaving"] call isConfigOn) then -{ - ["Money", "NUMBER"] call _getValue; -}; - -["LoadedMagazines", "ARRAY"] call _getValue; - -["PrimaryWeapon", "STRING"] call _getValue; -["SecondaryWeapon", "STRING"] call _getValue; -["HandgunWeapon", "STRING"] call _getValue; - -["PrimaryWeaponItems", "ARRAY"] call _getValue; -["SecondaryWeaponItems", "ARRAY"] call _getValue; -["HandgunItems", "ARRAY"] call _getValue; - -["AssignedItems", "ARRAY"] call _getValue; - -["CurrentMuzzle", "STRING"] call _getValue; -["Stance", "STRING"] call _getValue; - -["Uniform", "STRING"] call _getValue; -["Vest", "STRING"] call _getValue; -["Backpack", "STRING"] call _getValue; -["Goggles", "STRING"] call _getValue; -["Headgear", "STRING"] call _getValue; - -["UniformWeapons", "ARRAY"] call _getValue; -["UniformItems", "ARRAY"] call _getValue; -["UniformMagazines", "ARRAY"] call _getValue; - -["VestWeapons", "ARRAY"] call _getValue; -["VestItems", "ARRAY"] call _getValue; -["VestMagazines", "ARRAY"] call _getValue; - -["BackpackWeapons", "ARRAY"] call _getValue; -["BackpackItems", "ARRAY"] call _getValue; -["BackpackMagazines", "ARRAY"] call _getValue; - -["PartialMagazines", "ARRAY"] call _getValue; - -["WastelandItems", "ARRAY"] call _getValue; - -["Position", "ARRAY"] call _getValue; -["Direction", "NUMBER"] call _getValue; - -_data +// @file Version: 1.0 +// @file Name: s_loadAccount.sqf +// @file Author: AgentRev, micovery +// @file Created: 25/02/2014 22:21 + +if (!isServer) exitWith {}; + +#include "macro.h" +def(_copyPairs); +_copyPairs = { + ARGVX3(0,_target,[]); + ARGVX3(1,_source,[]); + + { + _target pushBack _x; + } forEach _source; +}; + + +init(_UID,_this); +init(_data,[]); +init(_scope,_UID call PDB_playerFileName); + +def(_allData); +_allData = [_scope, ["PlayerSave", nil], ["PlayerInfo", nil]] call stats_get; +init(_playerSave_pairs, [((_allData select 0) select 1)] call stats_hash_pairs); +init(_playerInfo_pairs, [((_allData select 1) select 1)] call stats_hash_pairs); +init(_saveValid,(count(_playerSave_pairs) > 0)); + +_data pushBack ["PlayerSaveValid", _saveValid]; +[_data,_playerInfo_pairs] call _copyPairs; +[_data,_playerSave_pairs] call _copyPairs; + +_data diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index 1df95050d..b0783334d 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -1,56 +1,54 @@ -// @file Name: s_setupPlayerDB.sqf -// @file Author: AgentRev +// @file Name: s_setupPlayerDB.sqf +// @file Author: AgentRev if (!isServer) exitWith {}; +diag_log "Loading s_setupPlayerDB ..."; + +#include "macro.h" fn_deletePlayerSave = "persistence\players\s_deletePlayerSave.sqf" call mf_compile; fn_loadAccount = "persistence\players\s_loadAccount.sqf" call mf_compile; "savePlayerData" addPublicVariableEventHandler { - _array = _this select 1; - - _UID = _array select 0; - _info = _array select 1; - _data = _array select 2; - _player = _array select 3; - - if (!isNull _player && alive _player && _player getVariable ["FAR_isUnconscious", 0] == 0) then - { - { - [_UID call PDB_playerFileName, "PlayerInfo", _x select 0, _x select 1] call PDB_write; // iniDB_write - } forEach _info; - - { - [_UID call PDB_playerFileName, "PlayerSave", _x select 0, _x select 1] call PDB_write; // iniDB_write - } forEach _data; - }; - - if (!isNull _player && !alive _player) then - { - _UID call fn_deletePlayerSave; - }; + ARGVX3(1,_this,[]); + ARGVX3(0,_UID,""); + ARGVX3(1,_info,[]); + ARGVX3(2,_data,[]); + ARGVX3(3,_player,objNull); + + if (!alive _player) exitWith { + _UID call fn_deletePlayerSave; + }; + + if (alive _player && {_player getVariable ["FAR_isUnconscious", 0] == 0}) exitWith { + init(_scope,_UID call PDB_playerFileName); + [_scope, "PlayerInfo", _info] call stats_hash_set; + [_scope, "PlayerSave", _data] call stats_hash_set; + }; }; "requestPlayerData" addPublicVariableEventHandler { - _player = _this select 1; - _UID = getPlayerUID _player; - - if ((_UID call PDB_playerFileName) call PDB_exists) then // iniDB_exists - { - applyPlayerData = _UID call fn_loadAccount; - } - else - { - applyPlayerData = []; - }; - - (owner _player) publicVariableClient "applyPlayerData"; + _player = _this select 1; + _UID = getPlayerUID _player; + + if ((_UID call PDB_playerFileName) call PDB_exists) then // iniDB_exists + { + applyPlayerData = _UID call fn_loadAccount; + } + else + { + applyPlayerData = []; + }; + + (owner _player) publicVariableClient "applyPlayerData"; }; "deletePlayerData" addPublicVariableEventHandler { - _player = _this select 1; - (getPlayerUID _player) call fn_deletePlayerSave; + _player = _this select 1; + (getPlayerUID _player) call fn_deletePlayerSave; }; + +diag_log "Loading s_setupPlayerDB complete"; diff --git a/persistence/world/functions.sqf b/persistence/world/functions.sqf index 01a85ef73..33a988e7c 100644 --- a/persistence/world/functions.sqf +++ b/persistence/world/functions.sqf @@ -26,3 +26,4 @@ _hasInventory = }; _fileName = "Objects" call PDB_objectFileName; +_fileName2 = "Vehicles" call PDB_objectFileName; diff --git a/persistence/world/macro.h b/persistence/world/macro.h new file mode 100644 index 000000000..c2268b262 --- /dev/null +++ b/persistence/world/macro.h @@ -0,0 +1,128 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} \ No newline at end of file diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf new file mode 100644 index 000000000..0624e8031 --- /dev/null +++ b/persistence/world/oFunctions.sqf @@ -0,0 +1,625 @@ +// @file Version: 0.1 +// @file Name: oFunctions.sqf +// @file Author: micovery +// @file Description: Object loading + +diag_log "oFunctions.sqf loading ..."; + +#include "macro.h"; + +o_strToSide = { + def(_result); + _result = switch (toUpper _this) do { + case "WEST": { BLUFOR }; + case "EAST": { OPFOR }; + case "GUER": { INDEPENDENT }; + case "CIV": { CIVILIAN }; + case "LOGIC": { sideLogic }; + default { sideUnknown }; + }; + (_result) +}; + +o_isBaseSavingOn = { + (["A3W_baseSaving"] call isConfigOn) +}; + +o_isStaticWeapon = { + ARGVX4(0,_class,"",false); + (_class isKindOf "StaticWeapon") +}; + +o_isStaticWeaponSavingOn = { + (["A3W_staticWeaponSaving"] call isConfigOn) +}; + +o_isBeacon = { + ARGVX4(0,_obj,objNull,false); + (_obj getVariable ["a3w_spawnBeacon", false]) +}; + +o_isBeaconSavingOn = { + (["A3W_spawnBeaconSaving"] call isConfigOn) +}; + +o_isBox = { + ARGVX4(0,_class,"",false); + (_class isKindOf "ReammoBox_F") +}; + +o_isBoxSavingOn = { + (["A3W_boxSaving"] call isConfigOn) +}; + +o_isWarchest = { + ARGVX4(0,_obj,objNull,false); + ( + _obj getVariable ["a3w_warchest", false] && { + (_obj getVariable ["side", sideUnknown]) in [WEST,EAST]} + ) +}; + +o_isWarchestSavingOn = { + (["A3W_warchestSaving"] call isConfigOn) +}; + +o_isWarchestMoneySavingOn = { + (["A3W_warchestMoneySaving"] call isConfigOn) +}; + +o_hasInventory = { + ARGVX2(0,_arg); + + def(_class); + if (isOBJECT(_arg)) then { + _class = typeOf _arg; + }; + + if (isSTRING(_arg)) then { + _class = _obj; + }; + + if (!isSTRING(_class) || {_class == ""}) exitWith {false}; + + def(_config); + _config = (configFile >> "CfgVehicles" >> _class); + + (isClass _config && { + getNumber (_config >> "transportMaxWeapons") > 0 || + getNumber (_config >> "transportMaxMagazines") > 0 || + getNumber (_config >> "transportMaxBackpacks") > 0}) +}; + +o_isSaveable = { + ARGVX3(0,_class,""); + ARGV4(1,_obj,objNull); + + init(_boxSavingOn, call o_isBoxSavingOn); + + if (isNil "_class") exitWith {_boxSavingOn}; + + if ([_obj] call o_isBeacon) exitWith { + call o_isBeaconSavingOn; + }; + + if ([_obj] call o_isWarchest) exitWith { + call o_isWarchestSavingOn; + }; + + if ([_class] call o_isStaticWeapon) exitWith { + call o_isStaticWeaponSavingOn; + }; + + if ([_class] call o_isBox) exitWith { + (_boxSavingOn) + }; + + (_boxSavingOn) +}; + +o_isVehicle = { + ARGVX4(0,_obj,objNull,false); + + init(_result, false); + { + if (_obj isKindOf _x) exitWith { + _result = true; + }; + } forEach ["Helicopter", "Plane", "Boat_F", "Car", "Motorcycle", "Tank"]; + + (_result) +}; + +o_isAlwaysUnlocked = { + ARGVX4(0,_obj,objNull, false); + + def(_result); + _result = switch (true) do { + case ([_obj] call o_isWarchest): { true }; + case ([_obj] call o_isBeacon): {true}; + default { false }; + }; + + (_result) +}; + +o_maxLifetime = ["A3W_objectLifetime", 0] call getPublicVar; + +o_restoreObject = {_this spawn { + //diag_log format["%1 call o_restoreObject", _this]; + ARGVX3(0,_data_pair,[]); + + _this = _data_pair; + ARGVX3(0,_object_key,""); + ARGVX2(1,_object_hash); + + if (!isCODE(_object_hash)) exitWith {}; + + def(_object_data); + _object_data = call _object_hash; + //diag_log _object_data; + + def(_hours_alive); + def(_pos); + def(_class); + def(_dir); + def(_damage); + def(_allow_damage); + def(_texture); + def(_variables); + def(_cargo_weapons); + def(_cargo_magazines); + def(_cargo_backpacks); + def(_cargo_items); + def(_cargo_ammo); + def(_cargo_fuel); + def(_cargo_repair); + def(_turret_magazines); + + def(_key); + def(_value); + + { + _key = _x select 0; + _value = _x select 1; + switch (_key) do { + case "Class": { _class = OR(_value,nil);}; + case "Position": { _pos = OR(_value,nil);}; + case "Direction": { _dir = OR(_value,nil);}; + case "Damage": { _damage = OR(_value,nil);}; + case "AllowDamage": { _allow_damage = OR(_value,nil);}; + case "Texture": { _texture = OR(_value,nil);}; + case "Weapons": { _cargo_weapons = OR(_value,nil);}; + case "Items": { _cargo_items = OR(_value,nil);}; + case "Magazines": { _cargo_magazines = OR(_value,nil);}; + case "Backpacks": { _cargo_backpacks = OR(_value,nil);}; + case "AmmoCargo": { _cargo_ammo = OR(_value,nil);}; + case "FuelCargo": { _cargo_fuel = OR(_value,nil);}; + case "RepairCargo": { _cargo_repair = OR(_value,nil);}; + case "HoursAlive": { _hours_alive = OR(_value,nil);}; + case "Variables": { _variables = OR(_value,nil);}; + case "TurretMagazines": { _turret_magazines = OR(_value,nil);}; + }; + } forEach _object_data; + + //if there is no class and position, there is no point to recreating the object + if (not(isSTRING(_class)) || {not(isARRAY(_pos))}) exitWith { + diag_log format["No class or position available for object: %1", _object_key]; + }; + + diag_log format["%1(%2) is being restored.", _object_key, _class]; + + if (o_maxLifetime <= 0 || {_hours_alive > o_maxLifetime}) exitWith { + diag_log format["%1(%2) has exceeded max lifetime, skipping it", _object_key, _class]; + }; + + def(_obj); + _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; + if (!isOBJECT(_obj)) exitWith { + diag_log format["%1(%2) could not be created.", _object_key, _class]; + }; + + _obj setVariable ["object_key", _object_key, true]; + + //restore the variables for the object + if (isARRAY(_variables)) then { + def(_name); + def(_value); + { + _name = _x select 0; + _value = _x select 1; + + if (!isNil "_value") then { + switch (_name) do { + case "R3F_Side": { _value = _value call o_strToSide}; + case "side": { _value = _value call o_strToSide}; + }; + }; + + _obj setVariable [_name, OR(_value,nil), true]; + } forEach _variables; + }; + + + if (not([_class,_obj] call o_isSaveable)) exitWith { + diag_log format["%1(%2) has been deleted, it is not saveable", _object_key, _class]; + deleteVehicle _obj; + }; + + + + + _obj setPosWorld ATLtoASL _pos; + if (isARRAY(_dir)) then { + _obj setVectorDirAndUp _dir; + }; + + _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; + if (isSCALAR(_hours_alive)) then { + _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; + }; + + _obj setVariable ["objectLocked", true, true]; // force lock + + if (isSCALAR(_damage)) then { + _obj setDamage _damage; + }; + + _allowDamage = if(isSCALAR(_allowDamage) && {_allowDamage > 0}) then { true } else { false}; + _obj setVariable ["allowDamage", _allowDamage]; + _obj allowDamage _allowDamage; + + //broadcast the spawn beacon + if ([_obj] call o_isBeacon) then { + pvar_spawn_beacons pushBack _obj; + publicVariable "pvar_spawn_beacons"; + }; + + //restore the stuff inside the object + clearWeaponCargoGlobal _obj; + clearMagazineCargoGlobal _obj; + clearItemCargoGlobal _obj; + clearBackpackCargoGlobal _obj; + _obj setVehicleAmmo 0; + + if (isARRAY(_cargo_weapons)) then { + { _obj addWeaponCargoGlobal _x } forEach _cargo_weapons; + }; + + if (isARRAY(_cargo_backpacks)) then { + { + if (isARRAY(_x) && {not((_x select 0) isKindOf "Weapon_Bag_Base")}) then { + _obj addBackpackCargoGlobal _x + }; + } forEach _cargo_backpacks; + }; + + if (isARRAY(_cargo_items)) then { + { _obj addItemCargoGlobal _x } forEach _cargo_items; + }; + + if (isARRAY(_cargo_magazines)) then { + { _obj addMagazineCargoGlobal _x } forEach _cargo_magazines; + }; + + if (isARRAY(_turret_magazines)) then { + { _obj addMagazine _x } forEach _turret_magazines; + }; + + if (isSCALAR(_cargo_ammo)) then { + _obj setAmmoCargo _cargo_ammo; + }; + + if (isSCALAR(_cargo_fuel)) then { + _obj setFuelCargo _cargo_fuel; + }; + + if (isSCALAR(_cargo_repair)) then { + _obj setRepairCargo _cargo_repair; + }; + + //some objects need to be always unlocked + def(_unlocked); + _unlocked = [_obj] call o_isAlwaysUnlocked; + if (_unlocked) then { + _obj setVariable ["objectLocked", false, true]; + }; +};}; + + + +//pre-define a list of objects that can be saved +o_saveList = []; +{if (true) then { + + if (not(call o_isBaseSavingOn)) exitWith {}; + def(_obj); + _obj = _x select 1; + + if (!isOBJECT(_obj)) exitWith {}; + if (_obj isKindOf "ReammoBox_F") exitWith {}; + if ((o_saveList find _obj) >= 0) exitWith {}; + + o_saveList pushBack _obj; +};} forEach [objectList, call genObjectsArray]; + + +o_isInSaveList = { + ARGVX4(0,_obj,objNull,false); + ((o_saveList find _obj) >= 0) +}; + + +o_fillVariables = { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_variables,[]); + + if (_obj isKindOf "Land_Sacks_goods_F") then { + _variables pushBack ["food", _obj getVariable ["food", 20]]; + }; + + if (_obj isKindOf "Land_BarrelWater_F") then { + _variables pushBack ["water", _obj getVariable ["water", 20]]; + }; + + def(_ownerUID); + _ownerUID = _obj getVariable "ownerUID"; + if (isSTRING(_ownerUID)) then { + _variables pushBack ["ownerUID", _ownerUID]; + }; + + if ([_obj] call o_isBox) then { + _variables pushBack ["cmoney", _obj getVariable ["cmoney", 0]]; + }; + + if ([_obj] call o_isWarchest) then { + _variables pushBack ["a3w_warchest", true]; + _variables pushBack ["R3F_LOG_disabled", true]; + _variables pushBack ["side", str (_obj getVariable ["side", sideUnknown])]; + }; + + if ([_obj] call o_isBeacon) then { + _variables pushBack ["a3w_spawnBeacon", true]; + _variables pushBack ["R3F_LOG_disabled", true]; + _variables pushBack ["side", str(_obj getVariable ["side", sideUnknown])]; + _variables pushBack ["packing", false]; + _variables pushBack ["groupOnly", _obj getVariable ["groupOnly", false]]; + _variables pushBack ["ownerName", _obj getVariable ["ownerName", "[Beacon]"]]; + }; + + def(_r3fSide); + _r3fSide = _obj getVariable "R3F_Side"; + if (!isNil "_r3fSide" && {typeName _r3fSide == typeName sideUnknown}) then { + _variables pushBack ["R3F_Side", str _r3fSide]; + }; +}; + +o_addSaveObject = { + ARGVX3(0,_list,[]); + ARGVX3(1,_obj,objNull); + + if (!(alive _obj)) exitWith {}; + + def(_class); + def(_locked); + _class = typeOf _obj; + _locked = _obj getVariable ["objectLocked", false]; + + if (not(_locked)) exitWith {}; + + if ([_obj] call o_isVehicle) exitWith {}; + + def(_inSaveList); + def(_isSaveable); + + _inSaveList = [_obj] call o_isInSaveList; + _isSaveable = [_class,_obj] call o_isSaveable; + + diag_log format["[%1] call o_inSaveList = %2", _obj, _inSaveList]; + diag_log format["[%1] call o_isSaveable = %2", _obj, _isSaveable]; + + if (not(_inSaveList || {_isSaveable})) exitWith {}; + + diag_log format["will save %1", _obj]; + + def(_netId); + def(_pos); + def(_dir); + def(_damage); + def(_allowDamage); + + _netId = netId _obj; + _pos = ASLtoATL getPosWorld _obj; + _dir = [vectorDir _obj, vectorUp _obj]; + _damage = damage _obj; + _allowDamage = if (_obj getVariable ["allowDamage", false]) then { 1 } else { 0 }; + + + def(_spawnTime); + def(_hoursAlive); + _spawnTime = _obj getVariable "baseSaving_spawningTime"; + _hoursAlive = _obj getVariable "baseSaving_hoursAlive"; + + if (isNil "_spawnTime") then { + _spawnTime = diag_tickTime; + _obj setVariable ["baseSaving_spawningTime", _spawnTime, true]; + }; + + if (isNil "_hoursAlive") then { + _hoursAlive = 0; + _obj setVariable ["baseSaving_hoursAlive", _hoursAlive, true]; + }; + + def(_totalHours); + _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; + + + init(_variables,[]); + [_class, _obj,_variables] call o_fillVariables; + + + init(_weapons,[]); + init(_magazines,[]); + init(_items,[]); + init(_backpacks,[]); + + if ([_obj] call o_hasInventory) then { + // Save weapons & ammo + _weapons = (getWeaponCargo _obj) call cargoToPairs; + _magazines = (getMagazineCargo _obj) call cargoToPairs; + _items = (getItemCargo _obj) call cargoToPairs; + _backpacks = (getBackpackCargo _obj) call cargoToPairs; + }; + + init(_turretMags,[]); + if ((call o_isStaticWeaponSavingOn) && {[_class] call o_isStaticWeapon}) then { + _turretMags = magazinesAmmo _obj; + }; + + init(_ammoCargo,getAmmoCargo _obj); + init(_fuelCargo,getFuelCargo _obj); + init(_repairCargo,getRepairCargo _obj); + + + def(_objName); + _objName = _obj getVariable "object_key"; + + if (!isSTRING(_objName) || {_objName == ""}) then { + _objName = format["obj_%1_%2",ceil(time), ceil(random 10000)]; + _obj setVariable ["object_key", _objName, true]; + }; + + _list pushBack [ _objName + "." + "Class", _class]; + _list pushBack [ _objName + "." + "Position", _pos]; + _list pushBack [ _objName + "." + "Direction", _dir]; + _list pushBack [ _objName + "." + "HoursAlive", _totalHours]; + _list pushBack [ _objName + "." + "Damage", _damage]; + _list pushBack [ _objName + "." + "AllowDamage", _allowDamage]; + _list pushBack [ _objName + "." + "Variables", _variables]; + _list pushBack [ _objName + "." + "Texture", _texture]; + _list pushBack [ _objName + "." + "Weapons", _weapons]; + _list pushBack [ _objName + "." + "Magazines", _magazines]; + _list pushBack [ _objName + "." + "Items", _items]; + _list pushBack [ _objName + "." + "Backpacks", _backpacks]; + _list pushBack [ _objName + "." + "TurretMagazines", _turretMags]; + _list pushBack [ _objName + "." + "AmmoCargo", _ammoCargo]; + _list pushBack [ _objName + "." + "FuelCargo", _fuelCargo]; + _list pushBack [ _objName + "." + "RepairCargo", _repairCargo]; + + true +}; + + +o_saveInfo = { + ARGVX3(0,_scope,""); + + init(_fundsWest,0); + init(_fundsEast,0); + + init(_request,[_scope]); + + if (call o_isWarchestMoneySavingOn) then { + _fundsWest = ["pvar_warchest_funds_west", 0] call getPublicVar; + _fundsEast = ["pvar_warchest_funds_east", 0] call getPublicVar; + }; + + init(_objName, "Info"); + _request pushBack [ _objName + "." + "WarchestMoneyBLUFOR", _fundsWest]; + _request pushBack [ _objName + "." + "WarchestMoneyOPFOR", _fundsEast]; + + _request call stats_set; +}; + + +o_saveAllObjects = {_this spawn { + ARGVX3(0,_scope,""); + init(_count,0); + init(_request,[_scope]); + + //[_scope] call stats_wipe; + init(_bulk_size,5); + + { + if (!isNil{[_request, _x] call o_addSaveObject}) then { + _count = _count + 1; + }; + + //save objects in bulks + if ((_count % _bulk_size) == 0 && {count(_request) > 1}) then { + _request call stats_set; + _request = [_scope]; + }; + } forEach (allMissionObjects "All"); + + if (count(_request) > 1) then { + _request call stats_set; + }; + + diag_log format ["A3W - %1 objects have been saved", _count]; +};}; + +o_saveLoop = { + ARGVX3(0,_scope,""); + while {true} do { + sleep 30; + diag_log format["saving all objects"]; + [_scope] call o_saveInfo; + [_scope] call o_saveAllObjects; + }; +}; + +o_loadInfoPair = { + ARGVX3(0,_name,""); + ARGV2(1,_value); + + init(_warchestSavingOn, call o_isWarchestMoneySavingOn); + + if (_warchestSavingOn && _name == "WarchestMoneyBLUFOR" && {isSCALAR(_value)}) exitWith { + pvar_warchest_funds_west = _value; + publicVariable "pvar_warchest_funds_west"; + }; + + if (_warchestSavingOn && _name == "WarchestMoneyOPFOR" && {isSCALAR(_value)}) exitWith { + pvar_warchest_funds_east = _value; + publicVariable "pvar_warchest_funds_east"; + }; +}; + +o_loadInfo = { + ARGVX3(0,_scope,""); + + def(_info); + _info = [_scope, "Info"] call stats_get; + + def(_info_pairs); + _info_pairs = [OR(_info,nil)] call stats_hash_pairs; + + diag_log "_info_pairs"; + diag_log _info_pairs; + + def(_name); + def(_value); + { + _name = _x select 0; + _value = _x select 1; + [_name,OR(_value,nil)] call o_loadInfoPair; + + } forEach _info_pairs; +}; + +o_loadObjects = { + ARGVX3(0,_scope,""); + + def(_objects); + _objects = [_scope] call stats_get; + + //nothing to load + if (!isARRAY(_objects)) exitWith {}; + + diag_log format["A3Wasteland - will restore %1 objects", count(_objects)]; + { + [_x] call o_restoreObject; + } forEach _objects; +}; + +diag_log "oFunctions.sqf loading complete"; \ No newline at end of file diff --git a/persistence/world/oLoad.sqf b/persistence/world/oLoad.sqf index bb69388a8..08ab5ca87 100644 --- a/persistence/world/oLoad.sqf +++ b/persistence/world/oLoad.sqf @@ -1,200 +1,19 @@ -// @file Version: 1.2 -// @file Name: oLoad.sqf -// @file Author: JoSchaap, AgentRev, Austerror -// @file Description: Basesaving load script - -if (!isServer) exitWith {}; - -#include "functions.sqf" - -_strToSide = -{ - switch (toUpper _this) do - { - case "WEST": { BLUFOR }; - case "EAST": { OPFOR }; - case "GUER": { INDEPENDENT }; - case "CIV": { CIVILIAN }; - case "LOGIC": { sideLogic }; - default { sideUnknown }; - }; -}; - -_isWarchestEntry = { [_variables, "a3w_warchest", false] call fn_getFromPairs }; -_isBeaconEntry = { [_variables, "a3w_spawnBeacon", false] call fn_getFromPairs }; - -_maxLifetime = ["A3W_objectLifetime", 0] call getPublicVar; - -_exists = _fileName call PDB_exists; // iniDB_exists -_objectsCount = 0; - -_savingMethod = ["A3W_savingMethod", 1] call getPublicVar; - -if (!isNil "_exists" && {_exists}) then -{ - _objectsCount = [_fileName, "Info", "ObjCount", "NUMBER"] call PDB_read; // iniDB_read - - if (!isNil "_objectsCount") then - { - for "_i" from 1 to _objectsCount do - { - _objName = format ["Obj%1", _i]; - - _class = [_fileName, _objName, "Class", "STRING"] call PDB_read; // iniDB_read - _pos = [_fileName, _objName, "Position", "ARRAY"] call PDB_read; // iniDB_read - _hoursAlive = [_fileName, _objName, "HoursAlive", "NUMBER"] call PDB_read; // iniDB_read - - if (!isNil "_class" && {!isNil "_pos"} && {_maxLifetime <= 0 || {_hoursAlive < _maxLifetime}}) then - { - _variables = [_fileName, _objName, "Variables", "ARRAY"] call PDB_read; // iniDB_read - - _allowed = switch (true) do - { - case (call _isWarchestEntry): { _warchestSavingOn }; - case (call _isBeaconEntry): { _beaconSavingOn }; - case (_class call _isBox): { _boxSavingOn }; - case (_class call _isStaticWeapon): { _staticWeaponSavingOn }; - default { _baseSavingOn }; - }; - - if (_allowed) then - { - _dir = [_fileName, _objName, "Direction", "ARRAY"] call PDB_read; // iniDB_read - _damage = [_fileName, _objName, "Damage", "NUMBER"] call PDB_read; // iniDB_read - _allowDamage = [_fileName, _objName, "AllowDamage", "NUMBER"] call PDB_read; // iniDB_read - - _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; - _obj setPosWorld ATLtoASL _pos; - - if (!isNil "_dir") then - { - _obj setVectorDirAndUp _dir; - }; - - _obj setVariable ["baseSaving_hoursAlive", _hoursAlive]; - _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; - _obj setVariable ["objectLocked", true, true]; // force lock - - if (_allowDamage > 0) then - { - _obj setDamage _damage; - _obj setVariable ["allowDamage", true]; - } - else - { - _obj allowDamage false; - }; - - { - _var = _x select 0; - _value = _x select 1; - - switch (_var) do - { - case "side": { _value = _value call _strToSide }; - case "R3F_Side": { _value = _value call _strToSide }; - case "ownerName": - { - switch (typeName _value) do - { - case "ARRAY": { _value = toString _value }; - case "STRING": - { - if (_savingMethod == 2) then - { - _value = _value call iniDB_Base64Decode; - }; - }; - default { _value = "[Beacon]" }; - }; - }; - }; - - _obj setVariable [_var, _value, true]; - } forEach _variables; - - clearWeaponCargoGlobal _obj; - clearMagazineCargoGlobal _obj; - clearItemCargoGlobal _obj; - clearBackpackCargoGlobal _obj; - - _unlock = switch (true) do - { - case (_obj call _isWarchest): { true }; - case (_obj call _isBeacon): - { - pvar_spawn_beacons pushBack _obj; - publicVariable "pvar_spawn_beacons"; - true - }; - default { false }; - }; - - if (_unlock) exitWith - { - _obj setVariable ["objectLocked", false, true]; - }; - - if (_boxSavingOn && {_class call _isBox}) then - { - _weapons = [_fileName, _objName, "Weapons", "ARRAY"] call PDB_read; // iniDB_read - _magazines = [_fileName, _objName, "Magazines", "ARRAY"] call PDB_read; // iniDB_read - _items = [_fileName, _objName, "Items", "ARRAY"] call PDB_read; // iniDB_read - _backpacks = [_fileName, _objName, "Backpacks", "ARRAY"] call PDB_read; // iniDB_read - - if (!isNil "_weapons") then - { - { _obj addWeaponCargoGlobal _x } forEach _weapons; - }; - if (!isNil "_magazines") then - { - { _obj addMagazineCargoGlobal _x } forEach _magazines; - }; - if (!isNil "_items") then - { - { _obj addItemCargoGlobal _x } forEach _items; - }; - if (!isNil "_backpacks") then - { - { - if !((_x select 0) isKindOf "Weapon_Bag_Base") then - { - _obj addBackpackCargoGlobal _x; - }; - } forEach _backpacks; - }; - }; - - if (_staticWeaponSavingOn && {_class call _isStaticWeapon}) then - { - _turretMags = [_fileName, _objName, "TurretMagazines", "ARRAY"] call PDB_read; // iniDB_read - - if (!isNil "_turretMags") then - { - _obj setVehicleAmmo 0; - { _obj addMagazine _x } forEach _turretMags; - }; - }; - - _ammoCargo = [_fileName, _objName, "AmmoCargo", "NUMBER"] call PDB_read; // iniDB_read - _fuelCargo = [_fileName, _objName, "FuelCargo", "NUMBER"] call PDB_read; // iniDB_read - _repairCargo = [_fileName, _objName, "RepairCargo", "NUMBER"] call PDB_read; // iniDB_read - - if (!isNil "_ammoCargo") then { _obj setAmmoCargo _ammoCargo }; - if (!isNil "_fuelCargo") then { _obj setFuelCargo _fuelCargo }; - if (!isNil "_repairCargo") then { _obj setRepairCargo _repairCargo }; - }; - }; - }; - }; - - if (_warchestMoneySavingOn) then - { - pvar_warchest_funds_west = ([_fileName, "Info", "WarchestMoneyBLUFOR", "NUMBER"] call PDB_read) max 0; // iniDB_read - publicVariable "pvar_warchest_funds_west"; - pvar_warchest_funds_east = ([_fileName, "Info", "WarchestMoneyOPFOR", "NUMBER"] call PDB_read) max 0; // iniDB_read - publicVariable "pvar_warchest_funds_east"; - }; -}; - -diag_log format ["A3Wasteland - world persistence loaded %1 objects from %2", _objectsCount, ["A3W_savingMethodName", "a rip in the fabric of space-time"] call getPublicVar]; +// @file Version: 0.1 +// @file Name: oLoad.sqf +// @file Author: micovery +// @file Description: object loading + +diag_log "oLoad.sqf loading ..."; +if (!isServer) exitWith {}; + + +#include "oFunctions.sqf" + +init(_oScope, "Objects" call PDB_objectFileName); + +[_oScope] call o_loadObjects; +[_oScope] call o_loadInfo; +[_oScope] spawn o_saveLoop; + + +diag_log "oLoad.sqf loading complete"; \ No newline at end of file diff --git a/persistence/world/oSave.sqf b/persistence/world/oSave.sqf deleted file mode 100644 index b9bd63f03..000000000 --- a/persistence/world/oSave.sqf +++ /dev/null @@ -1,217 +0,0 @@ -// @file Version: 1.2 -// @file Name: oSave.sqf -// @file Author: [GoT] JoSchaap, AgentRev -// @file Description: Basesaving save script - -if (!isServer) exitWith {}; - -#include "functions.sqf" - -_saveableObjects = []; - -_isSaveable = -{ - _result = false; - { if (_this == _x) exitWith { _result = true } } forEach _saveableObjects; - _result -}; - -// Add objectList & general store objects -{ - _index = _forEachIndex; - - { - _obj = _x; - if (_index > 0) then { _obj = _x select 1 }; - - if (!(_obj isKindOf "ReammoBox_F") && {!(_obj call _isSaveable)}) then - { - _saveableObjects pushBack _obj; - }; - } forEach _x; -} forEach [objectList, call genObjectsArray]; - -// If file doesn't exist, create Info section at the top -if !(_fileName call PDB_exists) then // iniDB_exists -{ - [_fileName, "Info", "ObjCount", 0] call PDB_write; // iniDB_write -}; - -_savingMethod = ["A3W_savingMethod", 1] call getPublicVar; - -while {true} do -{ - uiSleep 60; - - _oldObjCount = [_fileName, "Info", "ObjCount", "NUMBER"] call PDB_read; // iniDB_read - _objCount = 0; - - { - _obj = _x; - - if (alive _obj) then - { - _class = typeOf _obj; - - if (_obj getVariable ["objectLocked", false] && - {(_baseSavingOn && {_class call _isSaveable}) || - (_boxSavingOn && {_class call _isBox}) || - (_staticWeaponSavingOn && {_class call _isStaticWeapon})} || - {_warchestSavingOn && {_obj call _isWarchest}} || - {_beaconSavingOn && {_obj call _isBeacon}}) then - { - _netId = netId _obj; - _pos = ASLtoATL getPosWorld _obj; - _dir = [vectorDir _obj, vectorUp _obj]; - _damage = damage _obj; - _allowDamage = if (_obj getVariable ["allowDamage", false]) then { 1 } else { 0 }; - - if (isNil {_obj getVariable "baseSaving_spawningTime"}) then - { - _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; - }; - - _hoursAlive = (_obj getVariable ["baseSaving_hoursAlive", 0]) + ((diag_tickTime - (_obj getVariable "baseSaving_spawningTime")) / 3600); - - _variables = []; - - switch (true) do - { - case (_obj isKindOf "Land_Sacks_goods_F"): - { - _variables pushBack ["food", _obj getVariable ["food", 20]]; - }; - case (_obj isKindOf "Land_BarrelWater_F"): - { - _variables pushBack ["water", _obj getVariable ["water", 20]]; - }; - }; - - _owner = _obj getVariable ["ownerUID", ""]; - - if (_owner != "") then - { - _variables pushBack ["ownerUID", _owner]; - }; - - switch (true) do - { - case (_obj call _isBox): - { - _variables pushBack ["cmoney", _obj getVariable ["cmoney", 0]]; - }; - case (_obj call _isWarchest): - { - _variables pushBack ["a3w_warchest", true]; - _variables pushBack ["R3F_LOG_disabled", true]; - _variables pushBack ["side", str (_obj getVariable ["side", sideUnknown])]; - }; - case (_obj call _isBeacon): - { - _variables pushBack ["a3w_spawnBeacon", true]; - _variables pushBack ["R3F_LOG_disabled", true]; - _variables pushBack ["side", str (_obj getVariable ["side", sideUnknown])]; - _variables pushBack ["packing", false]; - _variables pushBack ["groupOnly", _obj getVariable ["groupOnly", false]]; - _variables pushBack ["ownerName", toArray (_obj getVariable ["ownerName", "[Beacon]"])]; - }; - }; - - _r3fSide = _obj getVariable "R3F_Side"; - - if (!isNil "_r3fSide") then - { - _variables pushBack ["R3F_Side", str _r3fSide]; - }; - - _weapons = []; - _magazines = []; - _items = []; - _backpacks = []; - - if (_class call _hasInventory) then - { - // Save weapons & ammo - _weapons = (getWeaponCargo _obj) call cargoToPairs; - _magazines = (getMagazineCargo _obj) call cargoToPairs; - _items = (getItemCargo _obj) call cargoToPairs; - _backpacks = (getBackpackCargo _obj) call cargoToPairs; - }; - - _turretMags = []; - - if (_staticWeaponSavingOn && {_class call _isStaticWeapon}) then - { - _turretMags = magazinesAmmo _obj; - }; - - _ammoCargo = getAmmoCargo _obj; - _fuelCargo = getFuelCargo _obj; - _repairCargo = getRepairCargo _obj; - - // Save data - - _objCount = _objCount + 1; - _objName = format ["Obj%1", _objCount]; - - { - [_fileName, _objName, _x select 0, _x select 1, false] call PDB_write; // iniDB_write - } - forEach - [ - ["Class", _class], - ["Position", _pos], - ["Direction", _dir], - ["HoursAlive", _hoursAlive], - ["Damage", _damage], - ["AllowDamage", _allowDamage], - ["Variables", _variables], - - ["Weapons", _weapons], - ["Magazines", _magazines], - ["Items", _items], - ["Backpacks", _backpacks], - - ["TurretMagazines", _turretMags], - - ["AmmoCargo", _ammoCargo], - ["FuelCargo", _fuelCargo], - ["RepairCargo", _repairCargo] - ]; - - sleep 0.01; - }; - }; - } forEach allMissionObjects "All"; - - [_fileName, "Info", "ObjCount", _objCount] call PDB_write; // iniDB_write - - _fundsWest = 0; - _fundsEast = 0; - - if (["A3W_warchestMoneySaving"] call isConfigOn) then - { - _fundsWest = ["pvar_warchest_funds_west", 0] call getPublicVar; - _fundsEast = ["pvar_warchest_funds_east", 0] call getPublicVar; - }; - - [_fileName, "Info", "WarchestMoneyBLUFOR", _fundsWest] call PDB_write; // iniDB_write - [_fileName, "Info", "WarchestMoneyOPFOR", _fundsEast] call PDB_write; // iniDB_write - - diag_log format ["A3W - %1 baseparts and objects have been saved with %2", _objCount, ["A3W_savingMethodName", "-ERROR-"] call getPublicVar]; - - // Reverse-delete old objects - if (_oldObjCount > _objCount) then - { - for "_i" from _oldObjCount to (_objCount + 1) step -1 do - { - [_fileName, format ["Obj%1", _i], false] call PDB_deleteSection; // iniDB_deleteSection - }; - }; - - if (_savingMethod == 1) then - { - saveProfileNamespace; // this line is crucial to ensure all profileNamespace data submitted to the server is saved - diag_log "A3W - profileNamespace saved"; - }; -}; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf new file mode 100644 index 000000000..9c8f209ca --- /dev/null +++ b/persistence/world/vFunctions.sqf @@ -0,0 +1,434 @@ +diag_log "vFunctions.sqf loading ..."; + +#include "macro.h"; + +/** + * List of class names of locked objects. + */ +VLOAD_LOCKED = +[ + "StaticWeapon", + "MRAP_01_base_F", + "MRAP_02_base_F", + "MRAP_03_base_F", + "O_Truck_03_device_F", + "Wheeled_APC_F", + "Tank_F", + "O_Heli_Light_02_unarmed_F", + "I_Heli_light_03_unarmed_F", + "I_Heli_Transport_02_F", + "B_Heli_Transport_01_F", + "B_Heli_Transport_01_camo_F", + "B_Heli_Light_01_armed_F", + "O_Heli_Light_02_F", + "I_Heli_light_03_F", + "B_Heli_Attack_01_F", + "O_Heli_Attack_02_F", + "O_Heli_Attack_02_black_F", + "Plane" +]; + + +v_isWarchest = { + _this getVariable ["a3w_warchest", false] && {(_this getVariable ["side", sideUnknown]) in [WEST,EAST]} +}; + +v_isBeacon = { + _this getVariable ["a3w_spawnBeacon", false] +}; + +v_strToSide = { + def(_result); + _result = switch (toUpper _this) do + { + case "WEST": { BLUFOR }; + case "EAST": { OPFOR }; + case "GUER": { INDEPENDENT }; + case "CIV": { CIVILIAN }; + case "LOGIC": { sideLogic }; + default { sideUnknown }; + }; + (_result) +}; + +v_isAlwaysUnlocked = { + ARGVX4(0,_obj,objNull, false); + + def(_result); + _result = switch (true) do { + case (_obj call v_isWarchest): { true }; + case (_obj call v_isBeacon): {true}; + default { false }; + }; + + (_result) +}; + + +v_getVehicleTextureSelections = { + ARGVX3(0,_veh,objNull); + + _selections = switch (true) do { + case (_veh isKindOf "Van_01_base_F"): { [0,1] }; + case (_veh isKindOf "MRAP_01_base_F"): { [0,2] }; + case (_veh isKindOf "MRAP_02_base_F"): { [0,2] }; + case (_veh isKindOf "MRAP_03_base_F"): { [0,1] }; + + case (_veh isKindOf "Truck_01_base_F"): { [0,1,2] }; + case (_veh isKindOf "Truck_02_base_F"): { [0,1] }; + case (_veh isKindOf "Truck_03_base_F"): { [0,1] }; + + case (_veh isKindOf "APC_Wheeled_01_base_F"): { [0,2] }; + case (_veh isKindOf "APC_Wheeled_02_base_F"): { [0,2] }; + case (_veh isKindOf "APC_Wheeled_03_base_F"): { [0,2,3] }; + + case (_veh isKindOf "APC_Tracked_01_base_F"): { [0,1,2,3] }; + case (_veh isKindOf "APC_Tracked_02_base_F"): { [0,1,2] }; + case (_veh isKindOf "APC_Tracked_03_base_F"): { [0,1] }; + + case (_veh isKindOf "MBT_01_base_F"): { [0,1,2] }; + case (_veh isKindOf "MBT_02_base_F"): { [0,1,2,3] }; + case (_veh isKindOf "MBT_03_base_F"): { [0,1,2] }; + + case (_veh isKindOf "Heli_Transport_01_base_F"): { [0,1] }; + case (_veh isKindOf "Heli_Transport_02_base_F"): { [0,1,2] }; + case (_veh isKindOf "Heli_Attack_02_base_F"): { [0,1] }; + + case (_veh isKindOf "Plane_Base_F"): { [0,1] }; + + default { [0] }; + }; + + (_selections) +}; + + +v_isVehicle = { + ARGVX4(0,_obj,objNull,false); + + init(_result, false); + { + if (_obj isKindOf _x) exitWith { + _result = true; + }; + } forEach ["Helicopter", "Plane", "Boat_F", "Car", "Motorcycle", "Tank"]; + + (_result) +}; + +def(_maxLifetime); +v_maxLifetime = ["A3W_vehicleLifetime", 0] call getPublicVar; + +v_restoreVehicle = {_this spawn { + //diag_log format["%1 call v_restoreVehicle", _this]; + ARGVX3(0,_data_pair,[]); + + _this = _data_pair; + ARGVX3(0,_vehicle_key,""); + ARGVX2(1,_vehicle_hash); + + if (!isCODE(_vehicle_hash)) exitWith {}; + + def(_vehicle_data); + _vehicle_data = call _vehicle_hash; + //diag_log _vehicle_data; + + + def(_hours_alive); + def(_pos); + def(_class); + def(_dir); + def(_damage); + def(_allow_damage); + def(_texture); + def(_variables); + def(_cargo_weapons); + def(_cargo_magazines); + def(_cargo_backpacks); + def(_cargo_items); + def(_key); + def(_value); + + { + _key = _x select 0; + _value = _x select 1; + switch (_key) do { + case "Class": { _class = OR(_value,nil);}; + case "Position": { _pos = OR(_value,nil);}; + case "Direction": { _dir = OR(_value,nil);}; + case "Damage": { _damage = OR(_value,nil);}; + case "AllowDamage": { _allow_damage = OR(_value,nil);}; + case "Texture": { _texture = OR(_value,nil);}; + case "Weapons": { _cargo_weapons = OR(_value,nil);}; + case "Items": { _cargo_items = OR(_value,nil);}; + case "Magazines": { _cargo_magazines = OR(_value,nil);}; + case "Backpacks": { _cargo_backpacks = OR(_value,nil);}; + case "HoursAlive": { _hours_alive = OR(_value,nil);}; + case "Variables": { _variables = OR(_value,nil);}; + + }; + } forEach _vehicle_data; + + //if there is no class and position, there is no point to recreating the vehicle + if (not(isSTRING(_class)) || {not(isARRAY(_pos))}) exitWith { + diag_log format["No class or position available for vehicle: %1", _vehicle_key]; + }; + + def(_obj); + _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; + if (!isOBJECT(_obj)) exitWith { + diag_log format["Could not create vehicle of class: %1", _class]; + }; + + _obj setVariable ["vehicle_key", _vehicle_key, true]; + + _obj setPosWorld ATLtoASL _pos; + if (isARRAY(_dir)) then { + _obj setVectorDirAndUp _dir; + }; + + _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; + if (isSCALAR(_hours_alive)) then { + _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; + }; + + // disables thermal equipment on loaded vehicles, comment out if you want thermal + _obj disableTIEquipment true; + + //lock vehicles form this list + if ({_obj isKindOf _x} count VLOAD_LOCKED > 0) then { + _obj lock 2; + _obj setVariable ["locked", 2, true]; + _obj setVariable ["objectLocked", true, true]; + _obj setVariable ["R3F_LOG_disabled",true,true]; + }; + + + if (isSTRING(_texture) && {_texture != ""}) then { + def(_selections); + _selections = [_obj] call v_getVehicleTextureSelections; + if (!isARRAY(_selections)) exitWith {}; + + _obj setVariable ["A3W_objectTexture", _texture, true]; + _obj setVariable ["BIS_enableRandomization", false, true]; + + { + _obj setObjectTextureGlobal [_x, _texture] + } forEach _selections; + }; + + + if (isSCALAR(_damage)) then { + _obj setDamage _damage; + }; + + _allowDamage = if(isSCALAR(_allowDamage) && {_allowDamage > 0}) then { true } else { false}; + _obj setVariable ["allowDamage", _allowDamage]; + _obj allowDamage _allowDamage; + + //restore vehicle variables + if (isARRAY(_variables)) then { + def(_name); + def(_value); + { + _name = _x select 0; + _value = _x select 1; + + if (!isNil "_value") then { + switch (_name) do { + case "side": { _value = _value call v_strToSide}; + }; + }; + + _obj setVariable [_name, OR(_value,nil), true]; + } forEach _variables; + }; + + //restore the stuff inside the vehicle + clearWeaponCargoGlobal _obj; + clearMagazineCargoGlobal _obj; + clearItemCargoGlobal _obj; + clearBackpackCargoGlobal _obj; + + if (isARRAY(_cargo_weapons)) then { + { _obj addWeaponCargoGlobal _x } forEach _cargo_weapons; + }; + + if (isARRAY(_cargo_backpacks)) then { + { _obj addBackpackCargoGlobal _x } forEach _cargo_backpacks; + }; + + if (isARRAY(_cargo_items)) then { + { _obj addItemCargoGlobal _x } forEach _cargo_items; + }; + + if (isARRAY(_cargo_magazines)) then { + { _obj addMagazineCargoGlobal _x } forEach _cargo_magazines; + }; + + //some vehicles need to be always unlocked + def(_unlocked); + _unlocked = [_obj] call v_isAlwaysUnlocked; + if (_unlocked) then { + _obj setVariable ["objectLocked", false, true]; + }; + + +};}; + +//build list of object that should not be saved +v_skipList = []; +def(_obj); +{ + _obj = _x select 1; + if (isOBJECT(_obj)) then { + v_skipList pushBack _obj; + }; + v_skipList pushBack _obj; +} forEach [civilianVehicles, call allVehStoreVehicles]; + +v_addSaveVehicle = { + ARGVX3(0,_list,[]); + ARGVX3(1,_obj,objNull); + + def(_class); + def(_ownerUID); + + _class = typeOf _obj; + _ownerUID = _obj getVariable "ownerUID"; + + if (!isSTRING(_ownerUID) || {_ownerUID == ""}) exitWith {}; + if (not([_obj] call v_isVehicle)) exitWith {}; + if ((v_skipList find _obj) >= 0) exitWith {}; + + def(_netId); + def(_pos); + def(_dir); + def(_damage); + def(_allowDamage); + def(_texture); + def(_spawnTime); + def(_hoursAlive); + def(_hoursSinceSpawn); + + _netId = netId _obj; + _pos = ASLtoATL getPosWorld _obj; + _value = (_pos select 2) + 0.3; + _pos set [2, ((_pos select 2) + 0.3)]; + _dir = [vectorDir _obj, vectorUp _obj]; + _damage = damage _obj; + _allowDamage = 1; + _texture = _obj getVariable ["A3W_objectTexture", ""]; + _spawnTime = _obj getVariable "baseSaving_spawningTime"; + _hoursAlive = _obj getVariable "baseSaving_hoursAlive"; + + if (isNil "_spawnTime") then { + _spawnTime = diag_tickTime; + _obj setVariable ["baseSaving_spawningTime", _spawnTime, true]; + }; + + if (isNil "_hoursAlive") then { + _hoursAlive = 0; + _obj setVariable ["baseSaving_hoursAlive", _hoursAlive, true]; + }; + + def(_totalHours); + _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; + + def(_variables); + _variables = []; + + _variables pushBack ["ownerUID", _ownerUID]; + + def(_ownerN); + _ownerN = _obj getVariable ["ownerN", nil]; + if (isSTRING(_ownerN) && {_ownerN != ""}) then { + _variables pushBack ["ownerN", _ownerN]; + }; + + init(_weapons,[]); + init(_magazines,[]); + init(_items,[]); + init(_backpacks,[]); + + // Save weapons & ammo + _weapons = (getWeaponCargo _obj) call cargoToPairs; + _magazines = (getMagazineCargo _obj) call cargoToPairs; + _items = (getItemCargo _obj) call cargoToPairs; + _backpacks = (getBackpackCargo _obj) call cargoToPairs; + + def(_objName); + _objName = _obj getVariable ["vehicle_key", nil]; + + if (isNil "_objName") then { + _objName = format["veh_%1_%2",ceil(time), ceil(random 10000)]; + _obj setVariable ["vehicle_key", _objName, true]; + }; + + _list pushBack [ _objName + "." + "Class", _class]; + _list pushBack [ _objName + "." + "Position", _pos]; + _list pushBack [ _objName + "." + "Direction", _dir]; + _list pushBack [ _objName + "." + "HoursAlive", _totalHours]; + _list pushBack [ _objName + "." + "Damage", _damage]; + _list pushBack [ _objName + "." + "AllowDamage", _allowDamage]; + _list pushBack [ _objName + "." + "Variables", _variables]; + _list pushBack [ _objName + "." + "Texture", _texture]; + _list pushBack [ _objName + "." + "Weapons", _weapons]; + _list pushBack [ _objName + "." + "Magazines", _magazines]; + _list pushBack [ _objName + "." + "Items", _items]; + _list pushBack [ _objName + "." + "Backpacks", _backpacks]; + + true +}; + +v_saveAllVechiles = {_this spawn { + ARGVX3(0,_scope,""); + init(_count,0); + init(_request,[_scope]); + + [_scope] call stats_wipe; + init(_bulk_size,5); + + { + if (!isNil{[_request, _x] call v_addSaveVehicle}) then { + _count = _count + 1; + }; + + //save vehicles in bulks + if ((_count % _bulk_size) == 0 && {count(_request) > 1}) then { + _request call stats_set; + _request = [_scope]; + }; + } forEach (allMissionObjects "All"); + + if (count(_request) > 1) then { + _request call stats_set; + }; + + diag_log format ["A3W - %1 vehicles have been saved", _count]; +};}; + +v_saveLoop = { + ARGVX3(0,_scope,""); + while {true} do { + sleep 60; + [_scope] call v_saveAllVechiles; + }; +}; + +v_loadVehicles = { + ARGVX3(0,_scope,""); + + def(_vehicles); + _vehicles = [_scope] call stats_get; + + //nothing to load + if (!isARRAY(_vehicles)) exitWith {}; + + diag_log format["A3Wasteland - will restore %1 vehicles", count(_vehicles)]; + { + [_x] call v_restoreVehicle; + } forEach _vehicles; +}; + +diag_log "vFunctions.sqf loading complete"; \ No newline at end of file diff --git a/persistence/world/vLoad.sqf b/persistence/world/vLoad.sqf new file mode 100644 index 000000000..964b25e35 --- /dev/null +++ b/persistence/world/vLoad.sqf @@ -0,0 +1,16 @@ +// @file Version: 0.1 +// @file Name: vLoad.sqf +// @file Author: micovery +// @file Description: vehicle loading + +diag_log "vLoad.sqf loading ..."; +if (!isServer) exitWith {}; + +#include "vFunctions.sqf" + +init(_vScope, "Vehicles" call PDB_objectFileName); + +[_vScope] call v_loadVehicles; +[_vScope] spawn v_saveLoop; + +diag_log "vLoad.sqf loading complete"; \ No newline at end of file diff --git a/server/init.sqf b/server/init.sqf index c258b96f0..6d3d9b142 100644 --- a/server/init.sqf +++ b/server/init.sqf @@ -140,12 +140,10 @@ if (_playerSavingOn || _serverSavingOn) then if (_serverSavingOn) then { call compile preprocessFileLineNumbers "persistence\world\oLoad.sqf"; + call compile preprocessFileLineNumbers "persistence\world\vLoad.sqf"; }; - if (_serverSavingOn || (_playerSavingOn && ["A3W_savingMethod", 1] call getPublicVar == 1)) then - { - execVM "persistence\world\oSave.sqf"; - }; + }; { From 48c65e8698243dcef8950ef75b9f42df67bb0e0e Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 19 Oct 2014 20:48:40 -0700 Subject: [PATCH 005/544] Update README.md --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index e895328aa..f9934f2bc 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,15 @@ +This is a fork of the Wasteland mission with persistence support using the Node.js module [sock-rpc-stats](https://www.npmjs.org/package/sock-rpc-stats), and the [sock.dll / sock.so](https://bitbucket.org/micovery/sock.dll) Arma 3 extension. + +The main mission itself is maintained by "Team Wasteland". + +For defects related to the mission please visit their [forums](http://forums.a3wasteland.com/), or submit issues directly to their [github repository](https://github.com/A3Wasteland/ArmA3_Wasteland.Altis/issues) + +For defects related to persistence, use the [issue tracker](https://github.com/micovery/ArmA3_Wasteland.Altis/issues) in this repository. + +If you are looking for the prebuilt PBO files head over to the [Releas_Files repository](https://github.com/micovery/Release_Files/tree/master/sock-rpc-stats). There also instructions, and a video of how to setup the mission. + + + *Wasteland.Altis* by Team Wasteland! =================== @@ -15,3 +27,6 @@ The mission is not ready yet, so for now it's just a placeholder :) KoS - His_Shadow KoS - Bewilderbeest 404 - Del1te + + + From 4cbf939aa496b47e20cbfe433e45c58e64b68734 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 19 Oct 2014 20:49:44 -0700 Subject: [PATCH 006/544] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f9934f2bc..a9c520e48 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ For defects related to the mission please visit their [forums](http://forums.a3w For defects related to persistence, use the [issue tracker](https://github.com/micovery/ArmA3_Wasteland.Altis/issues) in this repository. -If you are looking for the prebuilt PBO files head over to the [Releas_Files repository](https://github.com/micovery/Release_Files/tree/master/sock-rpc-stats). There also instructions, and a video of how to setup the mission. +If you are looking for the prebuilt PBO files head over to the [Release_Files repository](https://github.com/micovery/Release_Files/tree/master/sock-rpc-stats). There also instructions, and a video of how to setup the mission. From 10271c88414c65feb6d600c5e7caae80edb39a78 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 19 Oct 2014 22:39:14 -0700 Subject: [PATCH 007/544] fix defect where NaN, and -NaN values were not being mapped correctly to JSON --- addons/sock/sock.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/sock/sock.sqf b/addons/sock/sock.sqf index 4e50388ea..77fe643bb 100644 --- a/addons/sock/sock.sqf +++ b/addons/sock/sock.sqf @@ -122,7 +122,7 @@ sock_json = { def(_val); _val = (format["%1", _data]); //if value is indefinite or infinite, default to 0 - if (_val == "-1.#IND" || {_val == "-1.#INF"}) then { + if (_val == "-1.#IND" || {_val == "-1.#INF" || {_val == "nan" || {_val == "-nan" || _val == "+nan"}}}) then { _val = (format["%1", 0]); }; _val From 93c965ed636cd567c377c1e08b92c3e84e46319f Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 19 Oct 2014 23:19:33 -0700 Subject: [PATCH 008/544] fix defect in stats wiping when player dies --- persistence/players/s_deletePlayerSave.sqf | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/persistence/players/s_deletePlayerSave.sqf b/persistence/players/s_deletePlayerSave.sqf index c1a39be87..912c19492 100644 --- a/persistence/players/s_deletePlayerSave.sqf +++ b/persistence/players/s_deletePlayerSave.sqf @@ -1,17 +1,8 @@ // @file Name: s_deletePlayerSave.sqf -// @file Author: AgentRev +// @file Author: micovery if (!isServer) exitWith {}; +#include "macro.h" -private "_fileName"; -_fileName = _this call PDB_playerFileName; - -if (["A3W_savingMethod", 1] call getPublicVar == 2 && {parseNumber (call iniDB_version) < 1.2}) then -{ - // Required for iniDB v1.0 - _fileName call iniDB_delete; -} -else -{ - [_fileName, "PlayerSave"] call PDB_deleteSection; -}; +init(_scope,_this call PDB_playerFileName); +[_scope] call stats_wipe; \ No newline at end of file From d4f2b6d0877b7da333ec7bd096bccd9b52fed3f0 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 19 Oct 2014 23:23:00 -0700 Subject: [PATCH 009/544] fix defect in expected type used for stats_wipe --- addons/sock/stats.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/sock/stats.sqf b/addons/sock/stats.sqf index e17a69668..a13d3bc45 100644 --- a/addons/sock/stats.sqf +++ b/addons/sock/stats.sqf @@ -504,8 +504,8 @@ stats_wipe = { false }; - if (not(isSCALAR(_result))) exitWith { - format["protocol error: was expecting _result of typeName %1, but instead got typeName %2", typeName 0, typeName _result] call stats_log_severe; + if (not(isBOOLEAN(_result))) exitWith { + format["protocol error: was expecting _result of typeName %1, but instead got typeName %2", typeName false, typeName _result] call stats_log_severe; false }; From 7740c84040ff70b85ae92a706ef54d804703da83 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 19 Oct 2014 23:44:07 -0700 Subject: [PATCH 010/544] relocate the sock from addons to persistence directory --- addons/sock/main.sqf | 11 - persistence/fn_inidb_custom.sqf | 2 +- .../sock/inidb_adapter.sqf | 2 +- {addons => persistence}/sock/log.sqf | 0 {addons => persistence}/sock/macro.h | 0 persistence/sock/main.sqf | 11 + {addons => persistence}/sock/sock.sqf | 814 +++++++++--------- {addons => persistence}/sock/stats.sqf | 0 {addons => persistence}/sock/stats_extra.sqf | 70 +- 9 files changed, 455 insertions(+), 455 deletions(-) delete mode 100644 addons/sock/main.sqf rename {addons => persistence}/sock/inidb_adapter.sqf (98%) rename {addons => persistence}/sock/log.sqf (100%) rename {addons => persistence}/sock/macro.h (100%) create mode 100644 persistence/sock/main.sqf rename {addons => persistence}/sock/sock.sqf (96%) rename {addons => persistence}/sock/stats.sqf (100%) rename {addons => persistence}/sock/stats_extra.sqf (94%) diff --git a/addons/sock/main.sqf b/addons/sock/main.sqf deleted file mode 100644 index 2b2208b97..000000000 --- a/addons/sock/main.sqf +++ /dev/null @@ -1,11 +0,0 @@ -//load the logging library -call compile preProcessFileLineNumbers "addons\sock\log.sqf"; - -//load the socket rpc library -call compile preProcessFileLineNumbers "addons\sock\sock.sqf"; - -//load the generic stats library -call compile preProcessFileLineNumbers "addons\sock\stats.sqf"; - -//load the stats extra function library -call compile preProcessFileLineNumbers "addons\sock\stats_extra.sqf"; \ No newline at end of file diff --git a/persistence/fn_inidb_custom.sqf b/persistence/fn_inidb_custom.sqf index c0ba13536..9b0de0cea 100644 --- a/persistence/fn_inidb_custom.sqf +++ b/persistence/fn_inidb_custom.sqf @@ -30,7 +30,7 @@ PDB_databaseNameCompiler = PDB_objectFileName; if (("sock" callExtension "version") != "") then { //sock-rpc-stats pretending to be iniDB 1.2 - call compile preProcessFileLineNumbers "addons\sock\inidb_adapter.sqf"; + call compile preProcessFileLineNumbers "persistence\sock\inidb_adapter.sqf"; } else { diff --git a/addons/sock/inidb_adapter.sqf b/persistence/sock/inidb_adapter.sqf similarity index 98% rename from addons/sock/inidb_adapter.sqf rename to persistence/sock/inidb_adapter.sqf index eb69c60e5..c4b16133a 100644 --- a/addons/sock/inidb_adapter.sqf +++ b/persistence/sock/inidb_adapter.sqf @@ -1,7 +1,7 @@ diag_log format["loading sock-rpc-stats iniDB API adapter ..."]; //load the iniDB adapter library -call compile preProcessFileLineNumbers "addons\sock\main.sqf"; +call compile preProcessFileLineNumbers "persistence\sock\main.sqf"; #include "macro.h" diff --git a/addons/sock/log.sqf b/persistence/sock/log.sqf similarity index 100% rename from addons/sock/log.sqf rename to persistence/sock/log.sqf diff --git a/addons/sock/macro.h b/persistence/sock/macro.h similarity index 100% rename from addons/sock/macro.h rename to persistence/sock/macro.h diff --git a/persistence/sock/main.sqf b/persistence/sock/main.sqf new file mode 100644 index 000000000..8086090c6 --- /dev/null +++ b/persistence/sock/main.sqf @@ -0,0 +1,11 @@ +//load the logging library +call compile preProcessFileLineNumbers "persistence\sock\log.sqf"; + +//load the socket rpc library +call compile preProcessFileLineNumbers "persistence\sock\sock.sqf"; + +//load the generic stats library +call compile preProcessFileLineNumbers "persistence\sock\stats.sqf"; + +//load the stats extra function library +call compile preProcessFileLineNumbers "persistence\sock\stats_extra.sqf"; \ No newline at end of file diff --git a/addons/sock/sock.sqf b/persistence/sock/sock.sqf similarity index 96% rename from addons/sock/sock.sqf rename to persistence/sock/sock.sqf index 77fe643bb..7b7bf6a40 100644 --- a/addons/sock/sock.sqf +++ b/persistence/sock/sock.sqf @@ -1,408 +1,408 @@ -diag_log format["loading sock library ..."]; -#include "macro.h" - -//Some wrappers for logging -sock_log_severe = { - ["sock", _this] call log_severe; -}; - -sock_log_info = { - ["sock", _this] call log_info; -}; - -sock_log_fine = { - ["sock", _this] call log_fine; -}; - -sock_log_finer = { - ["sock", _this] call log_finer; -}; - -sock_log_finest = { - ["sock", _this] call log_finest; -}; - - -sock_log_set_level = { - ["sock", _this] call log_set_level; -}; - - -//Set default logging level for this component -LOG_INFO_LEVEL call sock_log_set_level; - -#define BACKSLASH (toString [92]) - -/** -* This function escapes all instances of {@code _char} within the -* specified string {@code _str} -* -* @param _str (String type) -* @param _char (String type) -* @return -* -* Returns the same {@code _str} value, but with all intances of {@code _char} -* escaped with a back-slash character '\'. If the string already contains -* back-slashes, they are also escaped. -* -*/ - -sock_json_string_escape = { - ARGV2(0,_str); - ARGV2(1,_char); - - private["_str_data", "_new_str_data", "_target_char"]; - _str_data = toArray(_str); - _new_str_data = []; - _target_char = (toArray(_char)) select 0; - - private["_escape_char", "_escaped", "_count", "_i"]; - _escape_char = 92; // ASCII value for back-slash - _escaped = false; - _count = count(_str_data); - _i = 0; - while {_i < _count} do { - _current_char = _str_data select _i; - if (_escaped) then { - _escaped = false; - _new_str_data set [count(_new_str_data), _current_char]; - } - else { if (_current_char == _target_char) then { - _new_str_data set [count(_new_str_data), _escape_char]; - _new_str_data set [count(_new_str_data), _current_char]; - } - else { if ( _current_char == _escape_char) then { - _escaped = true; - _new_str_data set [count(_new_str_data), _escape_char]; - } - else { - _new_str_data set [count(_new_str_data), _current_char]; - };};}; - _i = _i + 1; - }; - - toString(_new_str_data) -}; - -/** -* This function recursively converts an SQF value into its equivalent JSON representation. -* -* @param _data (Any type) - Data to be converted to JSON -* @return -* -* Returns the JSON representation of {@code data}. -* -* SQF array, is mapped directly to JSON array -* SQF number, is mapped directly to JSON number -* SQF string, is escaped so that it does not have nested double-quotes, and then mapped to JSON string -* SQF nil, is mapped to JSON null -* SQF objNull, is mapped to JSON null -* SQF objects, are mapped to a simplified JSON object with the netId, and the name of the SQF object -* -*/ - -sock_json = { - if (undefined(_this)) exitWith { - "null" - }; - - - def(_type); - _type = typeName _this; - - init(_data,_this); - - if (_type == typeName "") exitWith { - def(_val); - _val = ([_data, """"] call sock_json_string_escape); - str([_val, BACKSLASH] call sock_json_string_escape) - }; - - if (_type == typeName 0) exitWith { - def(_val); - _val = (format["%1", _data]); - //if value is indefinite or infinite, default to 0 - if (_val == "-1.#IND" || {_val == "-1.#INF" || {_val == "nan" || {_val == "-nan" || _val == "+nan"}}}) then { - _val = (format["%1", 0]); - }; - _val - }; - - if (_type == typeName objNull) exitWith { - ('{"netId":' + ((netId _data) call sock_json) + ',"name":' + ((name _data) call sock_json) + '}') - }; - - if (_type == typeName []) exitWith { - private["_array_json", "_i", "_count", "_element", "_element_json"]; - _array_json = "["; - _count = count(_data); - _i = 0; - while {_i < _count} do { - - _element = _data select _i; - _element_json = if (isNil "_element") then { "null" } else {_element call sock_json}; - - if (_i == 0) then { - _array_json = _array_json + _element_json; - } - else { - _array_json = _array_json + "," + _element_json; - }; - _i = _i + 1; - }; - _array_json = _array_json + "]"; - (_array_json) - }; - - //other types, just convert to string - (str(_data) call sock_json) -}; - -/** -* This function talks directly to the sock.dll extension using the SOCK-SQF protocol. -* -* @param _request (String type) - This is the actual text to be sent to the remote side. -* @return -* -* On success, returns the reponse string that was sent by the remote side -* On failure, returns nil -*/ -sock_get_response = { - if (isNil "_this") exitWith {}; - format["%1 call sock_get_response;", _this] call sock_log_finest; - - if (typeName _this != typeName "") exitWith {}; - - - init(_request,_this); - init(_extension,"sock"); - - //("sock_get_response: _request=" + _request) call sock_log_fine; - - def(_response_info); - _response_info = call compile (_extension callExtension _request); - - if (undefined(_response_info)) exitWith { - (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), "nil"]) call sock_log_severe; - nil - }; - - - if (isSTRING(_response_info)) exitWith { - ("error: " + _response_info) call sock_log_severe; - nil - }; - - if (not(isARRAY(_response_info))) exitWith { - (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), typeName _response_info]) call sock_log_severe; - nil - }; - - init(_chunks,_response_info); - init(_chunk_count,count(_chunks)); - - init(_i,0); - init(_response,""); - - //retrieve all the response chunks, and concatenate them - while {_i < _chunk_count } do { - init(_address,xGet(_chunks,_i)); - def(_data); - _data = _extension callExtension (_address); - _response = _response + _data; - _i = _i + 1; - }; - - format["sock_get_response: _response = %1", OR(_response,"nil")] call sock_log_finest; - OR(_response,nil) -}; - - -/** -* This function sends a JSON-RPC request using the sock.dll/sock.so extension. -* -* @param _method (String type) - This is the name of the remote method to be invoked -* @param _params (Array type) - This is an array of arguments to be passed in, when invoking {@code _method} -* @param default (Any type) - This is the value to return if there is an error -* @return -* -* On success, returns the response from the RPC server -* On failure, returns the value of the {@code _default} argument, or nil if {@code _default} was not specified. -*/ -sock_rpc = { - if (isNil "_this") exitWith {nil}; - format["%1 call sock_rpc;", _this] call sock_log_finest; - - if (not(isServer)) exitWith { - (_this call sock_rpc_remote) - }; - - (_this call sock_rpc_local) -}; - - -sock_rpc_remote = { - if (isNil "_this") exitWith {nil}; - format["%1 call sock_rpc_remote;", _this] call sock_log_finest; - - init(_request,_this); - - if (not(isClient)) exitWith {nil}; - - def(_var_name); - _var_name = format["sock_rpc_remote_response_%1",ceil(random 10000)]; - missionNamespace setVariable [_var_name, nil]; - missionNamespace setVariable [sock_rpc_remote_request_name, [player, _var_name, _request]]; - publicVariableServer sock_rpc_remote_request_name; - - - def(_response); - init(_end_time, time + 5); - while {true} do { - _response = missionNamespace getVariable [_var_name, nil]; - if (!isNil "_response") exitWith {}; - if (time > _end_time) exitWith {}; - sleep 0.01; - }; - missionNamespace setVariable [_var_name, nil]; - - if (undefined(_response)) exitWith { - format["timeout occurred while waiting for response of %1", _var_name] call sock_log_severe; - nil - }; - - if (not(isARRAY(_response))) exitWith { - format["protocol error, expected response to be of type %1", typeName []] call sock_log_severe; - nil - }; - - if (count(_response) == 0) exitWith { - format["protocol error, expected response to have at least one element"] call sock_log_severe; - nil - }; - - (_response select 0) -}; - - - - -sock_rpc_remote_request_listener = { - if (isNil "_this") exitWith {nil}; - format["%1 call sock_rpc_remote_request_listener;", _this] call sock_log_finest; - - private["_variable", "_request"]; - - ARGV3(0,_variable,""); - ARGV3(1,_request,[]); - - if (undefined(_variable) || {undefined(_request)}) exitWith {nil}; - - _this = _request; - ARGVX3(0,_client,objNull); - ARGVX3(1,_var_name,""); - ARGVX3(2,_args,[]); - - private["_response"]; - _response = _args call sock_rpc_local; - _response = [OR(_response,nil)]; - - private["_client_id"]; - _client_id = owner _client; - - missionNamespace setVariable [_var_name, _response]; - format["sock_rpc_remote_request_listener: client_id: %1", _client_id] call sock_log_finest; - format["sock_rpc_remote_request_listener: response: %1", _response] call sock_log_finest; - _client_id publicVariableClient _var_name; - missionNamespace setVariable [_var_name, nil]; -}; - - - -sock_rpc_local = { - if (isNil "_this") exitWith {nil}; - format["%1 call sock_rpc_local;", _this] call sock_log_finest; - - ARGV3(0,_method,""); - ARGV3(1,_params,[]); - ARGV2(2,_default) - - if (undefined(_method)) exitWith {nil}; - initIf(defined(_params),_params_str,(_params call sock_json),'[]'); - - private["_json_rpc"]; - _json_rpc = '{"method":' + str(_method) + ', "params":' + _params_str + '}'; - //format["_json_rpc = %1;", _json_rpc] call sock_log_finest; - - private["_result_container"]; - _result_container = call compile(_json_rpc call sock_get_response); - - - if (isNil "_result_container") exitWith { - (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), "nil"]) call sock_log_severe; - if (isNil "_default") exitWith {nil}; - OR(_default,nil) - }; - - if (typeName _result_container != typeName []) exitWith { - (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), (typeName _result_container)]) call sock_log_severe; - if (isNil "_default") exitWith {nil}; - OR(_default,nil) - }; - - if (count _result_container < 2) exitWith { - (format["protocol error: Was expecting response count of %1, but got %2 ", 2, count(_result_container)]) call sock_log_severe; - if (isNil "_default") exitWith {nil}; - OR(_default,nil) - }; - - private["_error", "_result"]; - _this = _result_container; - ARGV3(0,_error,false); - ARGV2(1,_result); - - //success case - if (not(_error)) exitWith { - OR(_result,nil) - }; - - //error cases - if (typeName _result != typeName "") exitWith { - (format["protocol error: Was expecting error response of typeName %1, but got %2", (typeName ""), (typeName _result)]) call sock_log_severe; - if (isNil "_default") exitWith {nil}; - OR(_default,nil) - }; - - (format["remote error: %1", _result]) call sock_log_severe; - OR(_default,nil) -}; - - - - -sock_init = { - init(_flag_name, "sock_init_complete"); - - sock_rpc_remote_request_name = "sock_rpc_remote_request"; - //Server-side init - if (isServer) then { - sock_rpc_remote_request_name addPublicVariableEventHandler { _this call sock_rpc_remote_request_listener;}; - - //tell clients that server pstats has initialized - missionNamespace setVariable[_flag_name, true]; - publicVariable _flag_name; - "sock_rpc library loaded on server ..." call sock_log_info; - }; - - //Client-side init (must wait for server-side init to complete) - if (isClient) then { - "waiting for server to load sock_rpc library ..." call sock_log_info; - waitUntil {not(isNil _flag_name)}; - "waiting for server to load sock_rpc library ... done" call sock_log_info; - }; -}; - - -[] call sock_init; - +diag_log format["loading sock library ..."]; +#include "macro.h" + +//Some wrappers for logging +sock_log_severe = { + ["sock", _this] call log_severe; +}; + +sock_log_info = { + ["sock", _this] call log_info; +}; + +sock_log_fine = { + ["sock", _this] call log_fine; +}; + +sock_log_finer = { + ["sock", _this] call log_finer; +}; + +sock_log_finest = { + ["sock", _this] call log_finest; +}; + + +sock_log_set_level = { + ["sock", _this] call log_set_level; +}; + + +//Set default logging level for this component +LOG_INFO_LEVEL call sock_log_set_level; + +#define BACKSLASH (toString [92]) + +/** +* This function escapes all instances of {@code _char} within the +* specified string {@code _str} +* +* @param _str (String type) +* @param _char (String type) +* @return +* +* Returns the same {@code _str} value, but with all intances of {@code _char} +* escaped with a back-slash character '\'. If the string already contains +* back-slashes, they are also escaped. +* +*/ + +sock_json_string_escape = { + ARGV2(0,_str); + ARGV2(1,_char); + + private["_str_data", "_new_str_data", "_target_char"]; + _str_data = toArray(_str); + _new_str_data = []; + _target_char = (toArray(_char)) select 0; + + private["_escape_char", "_escaped", "_count", "_i"]; + _escape_char = 92; // ASCII value for back-slash + _escaped = false; + _count = count(_str_data); + _i = 0; + while {_i < _count} do { + _current_char = _str_data select _i; + if (_escaped) then { + _escaped = false; + _new_str_data set [count(_new_str_data), _current_char]; + } + else { if (_current_char == _target_char) then { + _new_str_data set [count(_new_str_data), _escape_char]; + _new_str_data set [count(_new_str_data), _current_char]; + } + else { if ( _current_char == _escape_char) then { + _escaped = true; + _new_str_data set [count(_new_str_data), _escape_char]; + } + else { + _new_str_data set [count(_new_str_data), _current_char]; + };};}; + _i = _i + 1; + }; + + toString(_new_str_data) +}; + +/** +* This function recursively converts an SQF value into its equivalent JSON representation. +* +* @param _data (Any type) - Data to be converted to JSON +* @return +* +* Returns the JSON representation of {@code data}. +* +* SQF array, is mapped directly to JSON array +* SQF number, is mapped directly to JSON number +* SQF string, is escaped so that it does not have nested double-quotes, and then mapped to JSON string +* SQF nil, is mapped to JSON null +* SQF objNull, is mapped to JSON null +* SQF objects, are mapped to a simplified JSON object with the netId, and the name of the SQF object +* +*/ + +sock_json = { + if (undefined(_this)) exitWith { + "null" + }; + + + def(_type); + _type = typeName _this; + + init(_data,_this); + + if (_type == typeName "") exitWith { + def(_val); + _val = ([_data, """"] call sock_json_string_escape); + str([_val, BACKSLASH] call sock_json_string_escape) + }; + + if (_type == typeName 0) exitWith { + def(_val); + _val = (format["%1", _data]); + //if value is indefinite or infinite, default to 0 + if (_val == "-1.#IND" || {_val == "-1.#INF" || {_val == "nan" || {_val == "-nan" || _val == "+nan"}}}) then { + _val = (format["%1", 0]); + }; + _val + }; + + if (_type == typeName objNull) exitWith { + ('{"netId":' + ((netId _data) call sock_json) + ',"name":' + ((name _data) call sock_json) + '}') + }; + + if (_type == typeName []) exitWith { + private["_array_json", "_i", "_count", "_element", "_element_json"]; + _array_json = "["; + _count = count(_data); + _i = 0; + while {_i < _count} do { + + _element = _data select _i; + _element_json = if (isNil "_element") then { "null" } else {_element call sock_json}; + + if (_i == 0) then { + _array_json = _array_json + _element_json; + } + else { + _array_json = _array_json + "," + _element_json; + }; + _i = _i + 1; + }; + _array_json = _array_json + "]"; + (_array_json) + }; + + //other types, just convert to string + (str(_data) call sock_json) +}; + +/** +* This function talks directly to the sock.dll extension using the SOCK-SQF protocol. +* +* @param _request (String type) - This is the actual text to be sent to the remote side. +* @return +* +* On success, returns the reponse string that was sent by the remote side +* On failure, returns nil +*/ +sock_get_response = { + if (isNil "_this") exitWith {}; + format["%1 call sock_get_response;", _this] call sock_log_finest; + + if (typeName _this != typeName "") exitWith {}; + + + init(_request,_this); + init(_extension,"sock"); + + //("sock_get_response: _request=" + _request) call sock_log_fine; + + def(_response_info); + _response_info = call compile (_extension callExtension _request); + + if (undefined(_response_info)) exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), "nil"]) call sock_log_severe; + nil + }; + + + if (isSTRING(_response_info)) exitWith { + ("error: " + _response_info) call sock_log_severe; + nil + }; + + if (not(isARRAY(_response_info))) exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), typeName _response_info]) call sock_log_severe; + nil + }; + + init(_chunks,_response_info); + init(_chunk_count,count(_chunks)); + + init(_i,0); + init(_response,""); + + //retrieve all the response chunks, and concatenate them + while {_i < _chunk_count } do { + init(_address,xGet(_chunks,_i)); + def(_data); + _data = _extension callExtension (_address); + _response = _response + _data; + _i = _i + 1; + }; + + format["sock_get_response: _response = %1", OR(_response,"nil")] call sock_log_finest; + OR(_response,nil) +}; + + +/** +* This function sends a JSON-RPC request using the sock.dll/sock.so extension. +* +* @param _method (String type) - This is the name of the remote method to be invoked +* @param _params (Array type) - This is an array of arguments to be passed in, when invoking {@code _method} +* @param default (Any type) - This is the value to return if there is an error +* @return +* +* On success, returns the response from the RPC server +* On failure, returns the value of the {@code _default} argument, or nil if {@code _default} was not specified. +*/ +sock_rpc = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc;", _this] call sock_log_finest; + + if (not(isServer)) exitWith { + (_this call sock_rpc_remote) + }; + + (_this call sock_rpc_local) +}; + + +sock_rpc_remote = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc_remote;", _this] call sock_log_finest; + + init(_request,_this); + + if (not(isClient)) exitWith {nil}; + + def(_var_name); + _var_name = format["sock_rpc_remote_response_%1",ceil(random 10000)]; + missionNamespace setVariable [_var_name, nil]; + missionNamespace setVariable [sock_rpc_remote_request_name, [player, _var_name, _request]]; + publicVariableServer sock_rpc_remote_request_name; + + + def(_response); + init(_end_time, time + 5); + while {true} do { + _response = missionNamespace getVariable [_var_name, nil]; + if (!isNil "_response") exitWith {}; + if (time > _end_time) exitWith {}; + sleep 0.01; + }; + missionNamespace setVariable [_var_name, nil]; + + if (undefined(_response)) exitWith { + format["timeout occurred while waiting for response of %1", _var_name] call sock_log_severe; + nil + }; + + if (not(isARRAY(_response))) exitWith { + format["protocol error, expected response to be of type %1", typeName []] call sock_log_severe; + nil + }; + + if (count(_response) == 0) exitWith { + format["protocol error, expected response to have at least one element"] call sock_log_severe; + nil + }; + + (_response select 0) +}; + + + + +sock_rpc_remote_request_listener = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc_remote_request_listener;", _this] call sock_log_finest; + + private["_variable", "_request"]; + + ARGV3(0,_variable,""); + ARGV3(1,_request,[]); + + if (undefined(_variable) || {undefined(_request)}) exitWith {nil}; + + _this = _request; + ARGVX3(0,_client,objNull); + ARGVX3(1,_var_name,""); + ARGVX3(2,_args,[]); + + private["_response"]; + _response = _args call sock_rpc_local; + _response = [OR(_response,nil)]; + + private["_client_id"]; + _client_id = owner _client; + + missionNamespace setVariable [_var_name, _response]; + format["sock_rpc_remote_request_listener: client_id: %1", _client_id] call sock_log_finest; + format["sock_rpc_remote_request_listener: response: %1", _response] call sock_log_finest; + _client_id publicVariableClient _var_name; + missionNamespace setVariable [_var_name, nil]; +}; + + + +sock_rpc_local = { + if (isNil "_this") exitWith {nil}; + format["%1 call sock_rpc_local;", _this] call sock_log_finest; + + ARGV3(0,_method,""); + ARGV3(1,_params,[]); + ARGV2(2,_default) + + if (undefined(_method)) exitWith {nil}; + initIf(defined(_params),_params_str,(_params call sock_json),'[]'); + + private["_json_rpc"]; + _json_rpc = '{"method":' + str(_method) + ', "params":' + _params_str + '}'; + //format["_json_rpc = %1;", _json_rpc] call sock_log_finest; + + private["_result_container"]; + _result_container = call compile(_json_rpc call sock_get_response); + + + if (isNil "_result_container") exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), "nil"]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + if (typeName _result_container != typeName []) exitWith { + (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), (typeName _result_container)]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + if (count _result_container < 2) exitWith { + (format["protocol error: Was expecting response count of %1, but got %2 ", 2, count(_result_container)]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + private["_error", "_result"]; + _this = _result_container; + ARGV3(0,_error,false); + ARGV2(1,_result); + + //success case + if (not(_error)) exitWith { + OR(_result,nil) + }; + + //error cases + if (typeName _result != typeName "") exitWith { + (format["protocol error: Was expecting error response of typeName %1, but got %2", (typeName ""), (typeName _result)]) call sock_log_severe; + if (isNil "_default") exitWith {nil}; + OR(_default,nil) + }; + + (format["remote error: %1", _result]) call sock_log_severe; + OR(_default,nil) +}; + + + + +sock_init = { + init(_flag_name, "sock_init_complete"); + + sock_rpc_remote_request_name = "sock_rpc_remote_request"; + //Server-side init + if (isServer) then { + sock_rpc_remote_request_name addPublicVariableEventHandler { _this call sock_rpc_remote_request_listener;}; + + //tell clients that server pstats has initialized + missionNamespace setVariable[_flag_name, true]; + publicVariable _flag_name; + "sock_rpc library loaded on server ..." call sock_log_info; + }; + + //Client-side init (must wait for server-side init to complete) + if (isClient) then { + "waiting for server to load sock_rpc library ..." call sock_log_info; + waitUntil {not(isNil _flag_name)}; + "waiting for server to load sock_rpc library ... done" call sock_log_info; + }; +}; + + +[] call sock_init; + diag_log format["loading sock library complete"]; \ No newline at end of file diff --git a/addons/sock/stats.sqf b/persistence/sock/stats.sqf similarity index 100% rename from addons/sock/stats.sqf rename to persistence/sock/stats.sqf diff --git a/addons/sock/stats_extra.sqf b/persistence/sock/stats_extra.sqf similarity index 94% rename from addons/sock/stats_extra.sqf rename to persistence/sock/stats_extra.sqf index ce12f3929..1e5f03970 100644 --- a/addons/sock/stats_extra.sqf +++ b/persistence/sock/stats_extra.sqf @@ -1,35 +1,35 @@ -diag_log format["loading sock-rpc-stats extra functions ..."]; - -#include "macro.h" - -stats_hash_pairs = { - ARGV3(0,_hash,{}); - ARGV2(1,_default); - - if (isNil "_hash") exitWith { - OR(_default,[]) - }; - - init(_val, call _hash); - OR(_val,[]) -}; - -stats_hash_set = { - ARGVX3(0,_scope,""); - ARGVX3(1,_key,""); - ARGVX3(2,_pairs,[]); - - init(_request,[]); - _request pushBack _scope; - - { - _request pushBack [_key + "." + (_x select 0), _x select 1]; - } forEach _pairs; - - if (count(_request) > 1) then { - _request call stats_set; - }; -}; - - -diag_log format["loading sock-rpc-stats extra functions complete"]; +diag_log format["loading sock-rpc-stats extra functions ..."]; + +#include "macro.h" + +stats_hash_pairs = { + ARGV3(0,_hash,{}); + ARGV2(1,_default); + + if (isNil "_hash") exitWith { + OR(_default,[]) + }; + + init(_val, call _hash); + OR(_val,[]) +}; + +stats_hash_set = { + ARGVX3(0,_scope,""); + ARGVX3(1,_key,""); + ARGVX3(2,_pairs,[]); + + init(_request,[]); + _request pushBack _scope; + + { + _request pushBack [_key + "." + (_x select 0), _x select 1]; + } forEach _pairs; + + if (count(_request) > 1) then { + _request call stats_set; + }; +}; + + +diag_log format["loading sock-rpc-stats extra functions complete"]; From 2788f4eef8da82bbf418fbe00f57740e100054bc Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 20 Oct 2014 19:18:34 -0700 Subject: [PATCH 011/544] modify vehicle saving so that all store-bought vehicles are saved --- persistence/world/vFunctions.sqf | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 9c8f209ca..dff19b4e2 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -287,20 +287,23 @@ def(_obj); v_skipList pushBack _obj; } forEach [civilianVehicles, call allVehStoreVehicles]; +v_vehicleIsSaveble = { + ARGVX4(0,_obj,objNull,false); + + if (not([_obj] call v_isVehicle)) exitWith {false}; + if (not(isNil{_obj getVariable "vehicle_key"})) exitWith {true}; + if (not(isNil{_obj getVariable "A3W_purchasedStoreObject"})) exitWith {true}; + + false +}; + v_addSaveVehicle = { ARGVX3(0,_list,[]); ARGVX3(1,_obj,objNull); - + + if (not([_obj] call v_vehicleIsSaveble)) exitWith {}; + def(_class); - def(_ownerUID); - - _class = typeOf _obj; - _ownerUID = _obj getVariable "ownerUID"; - - if (!isSTRING(_ownerUID) || {_ownerUID == ""}) exitWith {}; - if (not([_obj] call v_isVehicle)) exitWith {}; - if ((v_skipList find _obj) >= 0) exitWith {}; - def(_netId); def(_pos); def(_dir); @@ -309,8 +312,10 @@ v_addSaveVehicle = { def(_texture); def(_spawnTime); def(_hoursAlive); - def(_hoursSinceSpawn); - + def(_hoursSinceSpawn); + def(_ownerUID); + + _class = typeOf _obj; _netId = netId _obj; _pos = ASLtoATL getPosWorld _obj; _value = (_pos select 2) + 0.3; @@ -321,6 +326,7 @@ v_addSaveVehicle = { _texture = _obj getVariable ["A3W_objectTexture", ""]; _spawnTime = _obj getVariable "baseSaving_spawningTime"; _hoursAlive = _obj getVariable "baseSaving_hoursAlive"; + _ownerUID = _obj getVariable ["ownerUID",""]; if (isNil "_spawnTime") then { _spawnTime = diag_tickTime; From 83a4b969abd08784229e3143138dcd0f0fa9a5aa Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 20 Oct 2014 19:21:08 -0700 Subject: [PATCH 012/544] add life-time check for vehicles, during restore --- persistence/world/vFunctions.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index dff19b4e2..ac65fdbaf 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -116,7 +116,6 @@ v_isVehicle = { (_result) }; -def(_maxLifetime); v_maxLifetime = ["A3W_vehicleLifetime", 0] call getPublicVar; v_restoreVehicle = {_this spawn { @@ -173,6 +172,11 @@ v_restoreVehicle = {_this spawn { if (not(isSTRING(_class)) || {not(isARRAY(_pos))}) exitWith { diag_log format["No class or position available for vehicle: %1", _vehicle_key]; }; + + if (v_maxLifetime <= 0 || {_hours_alive > v_maxLifetime}) exitWith { + diag_log format["vehicle %1(%2) has exceeded max lifetime, skipping it", _vehicle_key, _class]; + }; + def(_obj); _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; From 80f699bb7c900b7f7beb90c37cc3dada4a46724f Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 20 Oct 2014 19:27:38 -0700 Subject: [PATCH 013/544] refactor player load, and save logic to make use of stats_get directly --- persistence/fn_inidb_custom.sqf | 12 +- persistence/fn_inidb_custom_api.sqf | 196 -------- persistence/players/c_applyPlayerData.sqf | 128 ----- persistence/players/c_applyPlayerInfo.sqf | 21 - persistence/players/c_savePlayerData.sqf | 180 ------- persistence/players/c_setupPlayerDB.sqf | 78 +-- persistence/players/functions.sqf | 103 ---- persistence/players/pFunctions.sqf | 528 +++++++++++++++++++++ persistence/players/s_deletePlayerSave.sqf | 8 - persistence/players/s_loadAccount.sqf | 34 -- persistence/players/s_setupPlayerDB.sqf | 30 +- 11 files changed, 539 insertions(+), 779 deletions(-) delete mode 100644 persistence/fn_inidb_custom_api.sqf delete mode 100644 persistence/players/c_applyPlayerData.sqf delete mode 100644 persistence/players/c_applyPlayerInfo.sqf delete mode 100644 persistence/players/c_savePlayerData.sqf delete mode 100644 persistence/players/functions.sqf create mode 100644 persistence/players/pFunctions.sqf delete mode 100644 persistence/players/s_deletePlayerSave.sqf delete mode 100644 persistence/players/s_loadAccount.sqf diff --git a/persistence/fn_inidb_custom.sqf b/persistence/fn_inidb_custom.sqf index 9b0de0cea..2946d5abc 100644 --- a/persistence/fn_inidb_custom.sqf +++ b/persistence/fn_inidb_custom.sqf @@ -26,17 +26,9 @@ PDB_objectFileName = compileFinal ("format ['%1%2', '" + PDB_ObjectFileID + "', PDB_databaseNameCompiler = PDB_objectFileName; +call compile preProcessFileLineNumbers "persistence\sock\inidb_adapter.sqf"; +publicVariable "PDB_ServerID"; -if (("sock" callExtension "version") != "") then -{ - //sock-rpc-stats pretending to be iniDB 1.2 - call compile preProcessFileLineNumbers "persistence\sock\inidb_adapter.sqf"; -} -else -{ - //actual iniDB functions - call compile preProcessFileLineNumbers "persistence\fn_inidb_custom_api.sqf"; -}; PDB_defaultValue = { private ["_type", "_data"]; diff --git a/persistence/fn_inidb_custom_api.sqf b/persistence/fn_inidb_custom_api.sqf deleted file mode 100644 index a1620d0ec..000000000 --- a/persistence/fn_inidb_custom_api.sqf +++ /dev/null @@ -1,196 +0,0 @@ -//Persistent Scripts by ZA-Gamers. www.za-gamers.co.za -//Filename: fn_inidb_custom.sqf -//Author: {ZAG}Ed! -//Email: edwin(at)vodamail(dot)co(dot)za -//Date: 26/03/2013 -//Thanx to iniDB's author SicSemperTyrannis! May you have many wives and children! - -// WARNING! This is a modified version for use with A3Wasteland! -// This is NOT a default persistantdb script! -// changes by: JoSchaap, Bewilderbeest, and AgentRev @ http://a3wasteland.com/ - -iniDB_version = compileFinal str ("iniDB" callExtension "version"); - -iniDB_HashFunction = { - private["_mode", "_data", "_cdata"]; - _mode = _this select 0; - _data = _this select 1; - - if((typeName _data) == "STRING") then { - _data = "iniDB" callExtension format["%1;%2", _mode, _data]; - _cdata = call compile _data; - - if((_cdata select 0)) then { - _cdata select 1 - } else { - nil - }; - } else { - nil - }; -} -call mf_compile; - -iniDB_CRC32 = { - _this = ["crc", _this] call iniDB_HashFunction; - _this -} -call mf_compile; - -iniDB_MD5 = { - _this = ["md5", _this] call iniDB_HashFunction; - _this -} -call mf_compile; - -iniDB_Base64Encode = { - _this = ["b64_enc", _this] call iniDB_HashFunction; - _this -} -call mf_compile; - -iniDB_Base64Decode = { - _this = ["b64_dec", _this] call iniDB_HashFunction; - _this -} -call mf_compile; - -iniDB_exists = { - private ["_data", "_cdata"]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_exists called with %1", _this]; }; - _data = "iniDB" callExtension format["exists;%1", _this]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_exists returned %1", _data]; }; - _cdata = call compile _data; - - if((_cdata select 0) && (_cdata select 1)) then { - true - } else { - false - }; -} -call mf_compile; - - -iniDB_delete = { - private ["_data", "_cdata"]; - _data = "iniDB" callExtension format["delete;%1", _this select 0]; //############################ - _cdata = call compile _data; - - if((_cdata select 0)) then { - true - } else { - false - }; -} -call mf_compile; - -iniDB_deleteSection = { - private ["_data", "_cdata"]; - _data = "iniDB" callExtension format["deletesection;%1;%2", _this select 0, _this select 1]; - _cdata = call compile _data; - - if((_cdata select 0)) then { - true - } else { - false - }; -} -call mf_compile; - -// ======================================================================= - -iniDB_readRaw = { - private["_file", "_sec", "_key", "_data", "_cdata"]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_readRaw called with %1", _this]; }; - _file = _this select 0; - _sec = _this select 1; - _key = _this select 2; - _data = "iniDB" callExtension format["read;%1;%2;%3", _file, _sec, _key]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_readRaw returned '%1'", _data]; }; - _cdata = [false]; - // Better handling of empty strings which don't compile well - if (_data != "") then { - _cdata = call compile _data; - }; - - if((_cdata select 0)) then { - _cdata select 1 - } else { - "" - }; -} -call mf_compile; - -iniDB_writeRaw = { - private["_file", "_sec", "_key", "_val", "_data", "_cdata"]; - if (__DEBUG_INIDB_CALLS__ == 1) then {diag_log format["iniDB_writeRaw called with %1", _this];}; - - _file = _this select 0; - _sec = _this select 1; - _key = _this select 2; - _val = _this select 3; - _data = "iniDB" callExtension format["write;%1;%2;%3;%4", _file, _sec, _key, _val]; - _cdata = call compile _data; - - if((_cdata select 0)) then { - true - } else { - false - }; -} -call mf_compile; - -// ======================================================================= - -iniDB_Datarizer = { - private["_string", "_type", "_return"]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_Datarizer called with %1", _this]; }; - _string = _this select 0; - _type = _this select 1; - - if(_type == "ARRAY") then { - _return = call compile _string; - } else { - if((_type == "SCALAR") || (_type == "NUMBER")) then { // "NUMBER" is less confusing for new folks - _return = parseNumber _string; - } else { - _return = _string; - }; - }; - - _return -} -call mf_compile; - -iniDB_read = { - private["_file", "_sec", "_key", "_type", "_data"]; - if (__DEBUG_INIDB_CALLS__ == 1) then { diag_log format["iniDB_read called with %1", _this]; }; - - _file = _this select 0; - _sec = _this select 1; - _key = _this select 2; - _data = [_file, _sec, _key] call iniDB_readRaw; - - if (count _this > 3) then { - _type = _this select 3; - _data = [_data, _type] call iniDB_Datarizer; - }; - - _data -} -call mf_compile; - -iniDB_write = { - private["_file", "_sec", "_key", "_data"]; - if (__DEBUG_INIDB_CALLS__ == 1) then {diag_log format["iniDB_write called with %1", _this];}; - - _file = _this select 0; - _sec = _this select 1; - _key = _this select 2; - _data = _this select 3; - - _data = format['"%1"', _data]; - _data = [_file, _sec, _key, _data] call iniDB_writeRaw; - _data -} -call mf_compile; \ No newline at end of file diff --git a/persistence/players/c_applyPlayerData.sqf b/persistence/players/c_applyPlayerData.sqf deleted file mode 100644 index 0ede7afed..000000000 --- a/persistence/players/c_applyPlayerData.sqf +++ /dev/null @@ -1,128 +0,0 @@ -// @file Name: c_applyPlayerData.sqf -// @file Author: AgentRev - -// This is where you load player status & inventory data which will be wiped upon death, for persistent variables use c_applyPlayerInfo.sqf instead - -#include "macro.h" - -if (isDedicated) exitWith {}; - -init(_data,_this); - -#include "functions.sqf" - -def(_loaded_magazines); -def(_backpack_class); -def(_backpack_weapons); -def(_backpack_items); -def(_backpack_magazines); -def(_partial_magazines); -def(_primary_weapon); -def(_secondary_weapon); -def(_handgun_weapon); -def(_uniform_class); -def(_vest_class); - -//iterate through the data, and extract the hash variables into local variables -{ - init(_name,_x select 0); - init(_value,_x select 1); - - switch (_name) do { - case "Backpack": { _backpack_class = _value;}; - case "LoadedMagazines": { _loaded_magazines = _value; }; - case "BackpackWeapons": { _backpack_weapons = _value}; - case "BackpackItems": { _backpack_items = _value; }; - case "BackpackMagazines": { _backpack_magazines = _value }; - case "PrimaryWeapon": { _primary_weapon = _value }; - case "SecondaryWeapon": {_secondary_weapon = _value}; - case "HandgunWeapon": { _handgun_weapon = _value}; - case "Uniform":{ _uniform_class = _value}; - case "Vest": { _vest_class = _value}; - }; -} forEach _data; - -//Restore the weapons, backpack, uniform, and vest in correct order -player addBackpack "B_Carryall_Base"; // add a temporary backpack for holding loaded weapon magazines -[OR(_loaded_magazines,nil)] call _restoreLoadedMagazines; -[OR(_primary_weapon,nil)] call _restorePrimaryWeapon; -[OR(_secondary_weapon,nil)] call _restoreSecondaryWeapon; -[OR(_handgun_weapon,nil)] call _restoreHandgunWeapon; -removeBackpack player; //remove the temporary backpack - -//Restore backpack, and stuff inside -if (isSTRING(_backpack_class) && {_backpack_class != ""}) then { - diag_log format["Resting backpack: %1", _backpack_class]; - [_backpack_class] call _restoreBackpack; - - //restore the stuff inside the backpack - [OR(_backpack_weapons,nil)] call _restoreBackpackWeapons; - [OR(_backpack_magazines,nil)] call _restoreBackpackMagazines; - [OR(_backpack_items,nil)] call _restoreBackpackItems; -}; - -[OR(_uniform_class,nil)] call _restoreUniform; -[OR(_vest_class,nil)] call _restoreVest; - -//restore other stuff that is not order-dependent -def(_name); -def(_value); -{ - _name = _x select 0; - _value = _x select 1; - - switch (_name) do { - case "Damage": { player setDamage _value }; - case "HitPoints": { { player setHitPointDamage _x } forEach _value }; - case "Hunger": { hungerLevel = _value }; - case "Thirst": { thirstLevel = _value }; - case "Money": { player setVariable ["cmoney", _value, true] }; - case "Position": { if (count _value == 3) then { player setPosATL _value } }; - case "Direction": { player setDir _value }; - case "Goggles": { if (_value != "") then { player addGoggles _value } }; - case "Headgear": { - // If wearing one of the default headgears, give the one belonging to actual team instead - if (_value != "") then { - _defHeadgear = [player, "headgear"] call getDefaultClothing; - _defHeadgears = - [ - [typeOf player, "headgear", BLUFOR] call getDefaultClothing, - [typeOf player, "headgear", OPFOR] call getDefaultClothing, - [typeOf player, "headgear", INDEPENDENT] call getDefaultClothing - ]; - - if (_value != _defHeadgear && {_defHeadgear != ""} && {{_value == _x} count _defHeadgears > 0}) then { - player addHeadgear _defHeadgear; - } - else - { - player addHeadgear _value; - }; - }; - }; - case "PrimaryWeaponItems": { { if (_x != "") then { player addPrimaryWeaponItem _x } } forEach _value }; - case "SecondaryWeaponItems": { { if (_x != "") then { player addSecondaryWeaponItem _x } } forEach _value }; - case "HandgunItems": { { if (_x != "") then { player addHandgunItem _x } } forEach _value }; - case "AssignedItems": { - { - if ([player, _x] call isAssignableBinocular) then { - player addWeapon _x; - } - else { - player linkItem _x; - }; - } forEach _value; - }; - case "CurrentWeapon": { player selectWeapon _value }; - case "Stance": { [player, [player, _value] call getFullMove] call switchMoveGlobal }; - case "UniformWeapons": { { (uniformContainer player) addWeaponCargoGlobal _x } forEach _value }; - case "UniformItems": { { (uniformContainer player) addItemCargoGlobal _x } forEach _value }; - case "UniformMagazines": { { (uniformContainer player) addMagazineCargoGlobal _x } forEach _value }; - case "VestWeapons": { { (vestContainer player) addWeaponCargoGlobal _x } forEach _value }; - case "VestItems": { { (vestContainer player) addItemCargoGlobal _x } forEach _value }; - case "VestMagazines": { { (vestContainer player) addMagazineCargoGlobal _x } forEach _value }; - case "PartialMagazines": { { player addMagazine _x } forEach _value }; - case "WastelandItems": { { [_x select 0, _x select 1, true] call mf_inventory_add } forEach _value }; - }; -} forEach _data; - diff --git a/persistence/players/c_applyPlayerInfo.sqf b/persistence/players/c_applyPlayerInfo.sqf deleted file mode 100644 index 47213bdde..000000000 --- a/persistence/players/c_applyPlayerInfo.sqf +++ /dev/null @@ -1,21 +0,0 @@ -// @file Name: c_applyPlayerInfo.sqf -// @file Author: AgentRev - -// This is where you load custom player variables that must persist between deaths, i.e. bank money amount if you have an ATM addon - -if (isDedicated) exitWith {}; - -private ["_data", "_name", "_value"]; - -_data = _this; - -{ - _name = _x select 0; - _value = _x select 1; - - switch (_name) do - { - case "Donator": { player setVariable ["isDonator", _value > 0] }; - //case "BankMoney": { player setVariable ["bmoney", _value max 0] }; // Not implemented in vanilla mission - }; -} forEach _data; diff --git a/persistence/players/c_savePlayerData.sqf b/persistence/players/c_savePlayerData.sqf deleted file mode 100644 index 39875884c..000000000 --- a/persistence/players/c_savePlayerData.sqf +++ /dev/null @@ -1,180 +0,0 @@ -// @file Name: c_savePlayerData.sqf -// @file Author: AgentRev - -if (isDedicated) exitWith {}; -if (!isNil "savePlayerHandle" && {typeName savePlayerHandle == "SCRIPT"} && {!scriptDone savePlayerHandle}) exitWith {}; - -savePlayerHandle = _this spawn -{ - if (alive player && - {!isNil "isConfigOn" && {["A3W_playerSaving"] call isConfigOn}} && - {!isNil "playerSetupComplete" && {playerSetupComplete}} && - {!isNil "respawnDialogActive" && {!respawnDialogActive}} && - {player getVariable ["FAR_isUnconscious", 0] == 0}) then - { - _UID = getPlayerUID player; - _manualSave = [_this, 0, false, [false]] call BIS_fnc_param; - - // In case script is triggered via menu action - if (!_manualSave) then - { - _manualSave = [_this, 3, false, [false]] call BIS_fnc_param; - }; - - _info = - [ - ["UID", _UID], - ["Name", name player], - ["LastGroupSide", str side group player], - ["LastPlayerSide", str playerSide]/*, - ["BankMoney", player getVariable ["bmoney", 0]]*/ // Not implemented in vanilla mission - ]; - - _hitPoints = []; - { - _hitPoint = configName _x; - _hitPoints pushBack [_hitPoint, player getHitPointDamage _hitPoint]; - } forEach (player call getHitPoints); - - _data = - [ - ["Damage", damage player], - ["HitPoints", _hitPoints], - ["Hunger", ["hungerLevel", 0] call getPublicVar], - ["Thirst", ["thirstLevel", 0] call getPublicVar], - ["Money", player getVariable ["cmoney", 0]] // Money is always saved, but only restored if A3W_moneySaving = 1 - ]; - - // Only save those when on ground or underwater (you probably wouldn't want to spawn 500m in the air if you get logged off in flight) - if (isTouchingGround vehicle player || {(getPos player) select 2 < 0.5 || (getPosASL player) select 2 < 0.5}) then - { - _data pushBack ["Position", getPosATL player]; - _data pushBack ["Direction", direction player]; - - if (vehicle player == player) then - { - _data pushBack ["CurrentWeapon", format ["%1", currentMuzzle player]]; // currentMuzzle returns a number sometimes, hence the format - _data pushBack ["Stance", [player, ["P"]] call getMoveParams]; - }; - }; - - _gear = - [ - ["Uniform", uniform player], - ["Vest", vest player], - ["Backpack", backpack player], - ["Goggles", goggles player], - ["Headgear", headgear player], - - ["PrimaryWeapon", primaryWeapon player], - ["SecondaryWeapon", secondaryWeapon player], - ["HandgunWeapon", handgunWeapon player], - - ["PrimaryWeaponItems", primaryWeaponItems player], - ["SecondaryWeaponItems", secondaryWeaponItems player], - ["HandgunItems", handgunItems player], - - ["AssignedItems", assignedItems player] - ]; - - - _uMags = []; - _vMags = []; - _bMags = []; - _partialMags = []; - - { - _magArr = _x select 0; - - { - _mag = _x select 0; - _ammo = _x select 1; - - if (_ammo == getNumber (configFile >> "CfgMagazines" >> _mag >> "count")) then - { - [_magArr, _mag, 1] call fn_addToPairs; - } - else - { - if (_ammo > 0) then - { - _partialMags pushBack [_mag, _ammo]; - }; - }; - } forEach magazinesAmmoCargo (_x select 1); - } - forEach - [ - [_uMags, uniformContainer player], - [_vMags, vestContainer player], - [_bMags, backpackContainer player] - ]; - - _loadedMags = []; - - { - _mag = _x select 0; - _ammo = _x select 1; - _loaded = _x select 2; - _type = _x select 3; - - // if loaded in weapon, not empty, and not hand grenade - if (_loaded && _ammo > 0 && _type != 0) then - { - _loadedMags pushBack [_mag, _ammo]; - }; - } forEach magazinesAmmoFull player; - - _data pushBack ["UniformWeapons", (getWeaponCargo uniformContainer player) call cargoToPairs]; - _data pushBack ["UniformItems", (getItemCargo uniformContainer player) call cargoToPairs]; - _data pushBack ["UniformMagazines", _uMags]; - - _data pushBack ["VestWeapons", (getWeaponCargo vestContainer player) call cargoToPairs]; - _data pushBack ["VestItems", (getItemCargo vestContainer player) call cargoToPairs]; - _data pushBack ["VestMagazines", _vMags]; - - _data pushBack ["BackpackWeapons", (getWeaponCargo backpackContainer player) call cargoToPairs]; - _data pushBack ["BackpackItems", (getItemCargo backpackContainer player) call cargoToPairs]; - _data pushBack ["BackpackMagazines", _bMags]; - - _gear pushBack ["PartialMagazines", _partialMags]; - _gear pushBack ["LoadedMagazines", _loadedMags]; - - _wastelandItems = []; - { - if (_x select 1 > 0) then - { - _wastelandItems pushBack [_x select 0, _x select 1]; - }; - } forEach call mf_inventory_all; - - _gear pushBack ["WastelandItems", _wastelandItems]; - - - _gearStr = str _gear; - - if (_gearStr != ["playerData_gear", ""] call getPublicVar) then - { - { _data pushBack _x } forEach _gear; - playerData_gear = _gearStr; - }; - - if (alive player) then - { - savePlayerData = [_UID, _info, _data, player]; - publicVariableServer "savePlayerData"; - - if (_manualSave) then - { - cutText ["\nPlayer saved!", "PLAIN DOWN", 0.2]; - }; - }; - }; -}; - -if (typeName savePlayerHandle == "SCRIPT") then -{ - _savePlayerHandle = savePlayerHandle; - waitUntil {scriptDone _savePlayerHandle}; - savePlayerHandle = nil; -}; diff --git a/persistence/players/c_setupPlayerDB.sqf b/persistence/players/c_setupPlayerDB.sqf index 485253ff3..4f074ffeb 100644 --- a/persistence/players/c_setupPlayerDB.sqf +++ b/persistence/players/c_setupPlayerDB.sqf @@ -3,82 +3,8 @@ if (isDedicated) exitWith {}; -fn_applyPlayerData = "persistence\players\c_applyPlayerData.sqf" call mf_compile; -fn_applyPlayerInfo = "persistence\players\c_applyPlayerInfo.sqf" call mf_compile; -fn_savePlayerData = "persistence\players\c_savePlayerData.sqf" call mf_compile; +#include "pFunctions.sqf" -fn_requestPlayerData = -{ - playerData_alive = nil; - playerData_loaded = nil; - playerData_resetPos = nil; - requestPlayerData = player; - publicVariableServer "requestPlayerData"; -} call mf_compile; +call compile preProcessFileLineNumbers "persistence\sock\main.sqf"; -fn_deletePlayerData = -{ - deletePlayerData = player; - publicVariableServer "deletePlayerData"; - playerData_gear = ""; -} call mf_compile; - -"applyPlayerData" addPublicVariableEventHandler -{ - _this spawn - { - _data = _this select 1; - _saveValid = [_data, "PlayerSaveValid", false] call fn_getFromPairs; - - if (_saveValid) then - { - playerData_alive = true; - - _pos = [_data, "Position", []] call fn_getFromPairs; - _preload = profileNamespace getVariable ["A3W_preloadSpawn", true]; - - if (count _pos == 2) then { _pos set [2, 0] }; - if (count _pos == 3) then - { - if (_preload) then - { - player groupChat "Preloading previous location..."; - waitUntil {sleep 0.1; preloadCamera _pos}; - } - else - { - player groupChat "Loading previous location..."; - }; - } - else - { - playerData_resetPos = true; - }; - - _data call fn_applyPlayerData; - }; - - _data call fn_applyPlayerInfo; - - if (_saveValid) then - { - player groupChat "Player account loaded!"; - - if (isNil "playerData_resetPos") then - { - player enableSimulation true; - player allowDamage true; - player setVelocity [0,0,0]; - - execVM "client\functions\firstSpawn.sqf"; - } - else - { - player groupChat "Your position has been reset"; - }; - }; - - playerData_loaded = true; - }; -}; diff --git a/persistence/players/functions.sqf b/persistence/players/functions.sqf deleted file mode 100644 index 719d37766..000000000 --- a/persistence/players/functions.sqf +++ /dev/null @@ -1,103 +0,0 @@ -// @file Version: 1.2 -// @file Name: oLoad.sqf -// @file Author: micovery -// @file Description: Utility functions for player stats - -#include "macro.h" - -def(_resetPlayerData); -_resetPlayerData = { - removeAllWeapons player; - removeAllAssignedItems player; - removeUniform player; - removeVest player; - removeBackpack player; - removeGoggles player; - removeHeadgear player; -}; - -def(_restoreBackpack); -_restoreBackpack = { - ARGVX3(0,_value,""); - removeBackpack player; - - if (_value == "") exitWith {}; - - if (_value isKindOf "Weapon_Bag_Base") exitWith { - player addBackpack "B_AssaultPack_rgr"; // NO SOUP FOR YOU - }; - - player addBackpack _value; -}; - - -def(_restoreBackpackWeapons); -_restoreBackpackWeapons = { - ARGVX3(0,_value,[]); - { (backpackContainer player) addWeaponCargoGlobal _x } forEach _value -}; - -def(_restoreBackpackItems); -_restoreBackpackItems = { - ARGVX3(0,_value, []); - { (backpackContainer player) addItemCargoGlobal _x } forEach _value -}; - -def(_restoreBackpackMagazines); -_restoreBackpackMagazines = { - ARGVX3(0,_value,[]); - { (backpackContainer player) addMagazineCargoGlobal _x } forEach _value -}; - -def(_restorePrimaryWeapon); -_restorePrimaryWeapon = { - ARGVX3(0,_value,""); - player addWeapon _value; removeAllPrimaryWeaponItems player; -}; - -def(_restoreSecondaryWeapon); -_restoreSecondaryWeapon = { - ARGVX3(0,_value,""); - player addWeapon _value; -}; - -def(_restoreHandgunWeapon); -_restoreHandgunWeapon = { - //diag_log format["%1 call _restoreHandgunWeapon", _this]; - ARGVX3(0,_value,""); - player addWeapon _value; removeAllHandgunItems player; -}; - -def(_restoreLoadedMagazines); -_restoreLoadedMagazines = { - ARGVX3(0,_value,[]); - { player addMagazine _x } forEach _value; -}; - -def(_restoreUniform); -_restoreUniform = { - ARGV3(0,_value,""); - if (_value == "") exitWith {}; - - if (player isUniformAllowed _value) exitWith { - player addUniform _value; - }; - - // If uniform cannot be worn by player due to different team, try to convert it, else give default instead - def(_newUniform); - _newUniform = [player, _value] call uniformConverter; - - if (player isUniformAllowed _newUniform) exitWith { - player addUniform _newUniform; - }; - - player addUniform ([player, "uniform"] call getDefaultClothing); -}; - -def(_restoreVest); -_restoreVest = { - ARGVX3(0,_value,""); - if (_value == "") exitWith {}; - player addVest _value; -}; - diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf new file mode 100644 index 000000000..aac7e9dff --- /dev/null +++ b/persistence/players/pFunctions.sqf @@ -0,0 +1,528 @@ +// @file Version: 0.1 +// @file Name: pFunctions.sqf +// @file Author: micovery +// @file Description: Player loading + +diag_log "pFunctions.sqf loading ..."; + +#include "macro.h" + +p_resetPlayerData = { + removeAllWeapons player; + removeAllAssignedItems player; + removeUniform player; + removeVest player; + removeBackpack player; + removeGoggles player; + removeHeadgear player; +}; + +p_restoreBackpack = { + ARGVX3(0,_value,""); + removeBackpack player; + + if (_value == "") exitWith {}; + + if (_value isKindOf "Weapon_Bag_Base") exitWith { + player addBackpack "B_AssaultPack_rgr"; // NO SOUP FOR YOU + }; + + player addBackpack _value; +}; + +p_restoreBackpackWeapons = { + ARGVX3(0,_value,[]); + { (backpackContainer player) addWeaponCargoGlobal _x } forEach _value +}; + + +p_restoreBackpackItems = { + ARGVX3(0,_value, []); + { (backpackContainer player) addItemCargoGlobal _x } forEach _value +}; + + +p_restoreBackpackMagazines = { + ARGVX3(0,_value,[]); + { (backpackContainer player) addMagazineCargoGlobal _x } forEach _value +}; + + +p_restorePrimaryWeapon = { + ARGVX3(0,_value,""); + player addWeapon _value; removeAllPrimaryWeaponItems player; +}; + + +p_restoreSecondaryWeapon = { + ARGVX3(0,_value,""); + player addWeapon _value; +}; + + +p_restoreHandgunWeapon = { + //diag_log format["%1 call _restoreHandgunWeapon", _this]; + ARGVX3(0,_value,""); + player addWeapon _value; removeAllHandgunItems player; +}; + +p_restoreLoadedMagazines = { + ARGVX3(0,_value,[]); + { player addMagazine _x } forEach _value; +}; + +p_restoreUniform = { + ARGV4(0,_value,"",""); + + if (_value == "") exitWith { + player addUniform ([player, "uniform"] call getDefaultClothing); + }; + + if (player isUniformAllowed _value) exitWith { + player addUniform _value; + }; + + // If uniform cannot be worn by player due to different team, try to convert it, else give default instead + def(_newUniform); + _newUniform = [player, _value] call uniformConverter; + + if (player isUniformAllowed _newUniform) exitWith { + player addUniform _newUniform; + }; + + player addUniform ([player, "uniform"] call getDefaultClothing); +}; + +p_restoreVest = { + ARGVX3(0,_value,""); + if (_value == "") exitWith {}; + player addVest _value; +}; + + +p_copy_pairs = { + ARGVX3(0,_target,[]); + ARGVX3(1,_source,[]); + { + _target pushBack _x; + } forEach _source; +}; + + + +fn_applyPlayerData = { + diag_log format["%1 call fn_applyPlayerData",_this]; + ARGVX3(0,_data,[]); + + def(_loaded_magazines); + def(_backpack_class); + def(_backpack_weapons); + def(_backpack_items); + def(_backpack_magazines); + def(_partial_magazines); + def(_primary_weapon); + def(_secondary_weapon); + def(_handgun_weapon); + def(_uniform_class); + def(_vest_class); + + //iterate through the data, and extract the hash variables into local variables + { + init(_name,_x select 0); + init(_value,_x select 1); + + switch (_name) do { + case "Backpack": { _backpack_class = _value;}; + case "LoadedMagazines": { _loaded_magazines = _value; }; + case "BackpackWeapons": { _backpack_weapons = _value}; + case "BackpackItems": { _backpack_items = _value; }; + case "BackpackMagazines": { _backpack_magazines = _value }; + case "PrimaryWeapon": { _primary_weapon = _value }; + case "SecondaryWeapon": {_secondary_weapon = _value}; + case "HandgunWeapon": { _handgun_weapon = _value}; + case "Uniform":{ _uniform_class = _value}; + case "Vest": { _vest_class = _value}; + }; + } forEach _data; + + //Restore the weapons, backpack, uniform, and vest in correct order + player addBackpack "B_Carryall_Base"; // add a temporary backpack for holding loaded weapon magazines + [OR(_loaded_magazines,nil)] call p_restoreLoadedMagazines; + [OR(_primary_weapon,nil)] call p_restorePrimaryWeapon; + [OR(_secondary_weapon,nil)] call p_restoreSecondaryWeapon; + [OR(_handgun_weapon,nil)] call p_restoreHandgunWeapon; + removeBackpack player; //remove the temporary backpack + + //Restore backpack, and stuff inside + if (isSTRING(_backpack_class) && {_backpack_class != ""}) then { + diag_log format["Resting backpack: %1", _backpack_class]; + [_backpack_class] call p_restoreBackpack; + + //restore the stuff inside the backpack + [OR(_backpack_weapons,nil)] call p_restoreBackpackWeapons; + [OR(_backpack_magazines,nil)] call p_restoreBackpackMagazines; + [OR(_backpack_items,nil)] call p_restoreBackpackItems; + }; + + [OR(_uniform_class,nil)] call p_restoreUniform; + [OR(_vest_class,nil)] call p_restoreVest; + + //restore other stuff that is not order-dependent + def(_name); + def(_value); + { + _name = _x select 0; + _value = _x select 1; + + switch (_name) do { + case "Damage": { player setDamage _value }; + case "HitPoints": { { player setHitPointDamage _x } forEach _value }; + case "Hunger": { hungerLevel = _value }; + case "Thirst": { thirstLevel = _value }; + case "Money": { player setVariable ["cmoney", _value, true] }; + case "Position": { if (count _value == 3) then { player setPosATL _value } }; + case "Direction": { player setDir _value }; + case "Goggles": { if (_value != "") then { player addGoggles _value } }; + case "Headgear": { + // If wearing one of the default headgears, give the one belonging to actual team instead + if (_value != "") then { + _defHeadgear = [player, "headgear"] call getDefaultClothing; + _defHeadgears = + [ + [typeOf player, "headgear", BLUFOR] call getDefaultClothing, + [typeOf player, "headgear", OPFOR] call getDefaultClothing, + [typeOf player, "headgear", INDEPENDENT] call getDefaultClothing + ]; + + if (_value != _defHeadgear && {_defHeadgear != ""} && {{_value == _x} count _defHeadgears > 0}) then { + player addHeadgear _defHeadgear; + } + else { + player addHeadgear _value; + }; + }; + }; + case "PrimaryWeaponItems": { { if (_x != "") then { player addPrimaryWeaponItem _x } } forEach _value }; + case "SecondaryWeaponItems": { { if (_x != "") then { player addSecondaryWeaponItem _x } } forEach _value }; + case "HandgunItems": { { if (_x != "") then { player addHandgunItem _x } } forEach _value }; + case "AssignedItems": { + { + if ([player, _x] call isAssignableBinocular) then { + player addWeapon _x; + } + else { + player linkItem _x; + }; + } forEach _value; + }; + case "CurrentWeapon": { player selectWeapon _value }; + case "Stance": { [player, [player, _value] call getFullMove] call switchMoveGlobal }; + case "UniformWeapons": { { (uniformContainer player) addWeaponCargoGlobal _x } forEach _value }; + case "UniformItems": { { (uniformContainer player) addItemCargoGlobal _x } forEach _value }; + case "UniformMagazines": { { (uniformContainer player) addMagazineCargoGlobal _x } forEach _value }; + case "VestWeapons": { { (vestContainer player) addWeaponCargoGlobal _x } forEach _value }; + case "VestItems": { { (vestContainer player) addItemCargoGlobal _x } forEach _value }; + case "VestMagazines": { { (vestContainer player) addMagazineCargoGlobal _x } forEach _value }; + case "PartialMagazines": { { player addMagazine _x } forEach _value }; + case "WastelandItems": { { [_x select 0, _x select 1, true] call mf_inventory_add } forEach _value }; + }; + } forEach _data; +}; + +fn_savePlayerData = { + if (isDedicated) exitWith {}; + if (isCODE(savePlayerHandle) && {!scriptDone savePlayerHandle}) exitWith {}; + + savePlayerHandle = _this spawn { + if (alive player && + {!isNil "isConfigOn" && {["A3W_playerSaving"] call isConfigOn}} && + {!isNil "playerSetupComplete" && {playerSetupComplete}} && + {!isNil "respawnDialogActive" && {!respawnDialogActive}} && + {player getVariable ["FAR_isUnconscious", 0] == 0}) then { + _UID = getPlayerUID player; + _manualSave = [_this, 0, false, [false]] call BIS_fnc_param; + + // In case script is triggered via menu action + if (!_manualSave) then { + _manualSave = [_this, 3, false, [false]] call BIS_fnc_param; + }; + + _info = + [ + ["UID", _UID], + ["Name", name player], + ["LastGroupSide", str side group player], + ["LastPlayerSide", str playerSide]/*, + ["BankMoney", player getVariable ["bmoney", 0]]*/ // Not implemented in vanilla mission + ]; + + _hitPoints = []; + { + _hitPoint = configName _x; + _hitPoints pushBack [_hitPoint, player getHitPointDamage _hitPoint]; + } forEach (player call getHitPoints); + + _data = + [ + ["Damage", damage player], + ["HitPoints", _hitPoints], + ["Hunger", ["hungerLevel", 0] call getPublicVar], + ["Thirst", ["thirstLevel", 0] call getPublicVar], + ["Money", player getVariable ["cmoney", 0]] // Money is always saved, but only restored if A3W_moneySaving = 1 + ]; + + // Only save those when on ground or underwater (you probably wouldn't want to spawn 500m in the air if you get logged off in flight) + if (isTouchingGround vehicle player || {(getPos player) select 2 < 0.5 || (getPosASL player) select 2 < 0.5}) then { + _data pushBack ["Position", getPosATL player]; + _data pushBack ["Direction", direction player]; + + if (vehicle player == player) then + { + _data pushBack ["CurrentWeapon", format ["%1", currentMuzzle player]]; // currentMuzzle returns a number sometimes, hence the format + _data pushBack ["Stance", [player, ["P"]] call getMoveParams]; + }; + }; + + _gear = + [ + ["Uniform", uniform player], + ["Vest", vest player], + ["Backpack", backpack player], + ["Goggles", goggles player], + ["Headgear", headgear player], + + ["PrimaryWeapon", primaryWeapon player], + ["SecondaryWeapon", secondaryWeapon player], + ["HandgunWeapon", handgunWeapon player], + + ["PrimaryWeaponItems", primaryWeaponItems player], + ["SecondaryWeaponItems", secondaryWeaponItems player], + ["HandgunItems", handgunItems player], + + ["AssignedItems", assignedItems player] + ]; + + + _uMags = []; + _vMags = []; + _bMags = []; + _partialMags = []; + + { + _magArr = _x select 0; + + { + _mag = _x select 0; + _ammo = _x select 1; + + if (_ammo == getNumber (configFile >> "CfgMagazines" >> _mag >> "count")) then + { + [_magArr, _mag, 1] call fn_addToPairs; + } + else + { + if (_ammo > 0) then + { + _partialMags pushBack [_mag, _ammo]; + }; + }; + } forEach magazinesAmmoCargo (_x select 1); + } + forEach + [ + [_uMags, uniformContainer player], + [_vMags, vestContainer player], + [_bMags, backpackContainer player] + ]; + + _loadedMags = []; + + { + _mag = _x select 0; + _ammo = _x select 1; + _loaded = _x select 2; + _type = _x select 3; + + // if loaded in weapon, not empty, and not hand grenade + if (_loaded && _ammo > 0 && _type != 0) then + { + _loadedMags pushBack [_mag, _ammo]; + }; + } forEach magazinesAmmoFull player; + + _data pushBack ["UniformWeapons", (getWeaponCargo uniformContainer player) call cargoToPairs]; + _data pushBack ["UniformItems", (getItemCargo uniformContainer player) call cargoToPairs]; + _data pushBack ["UniformMagazines", _uMags]; + + _data pushBack ["VestWeapons", (getWeaponCargo vestContainer player) call cargoToPairs]; + _data pushBack ["VestItems", (getItemCargo vestContainer player) call cargoToPairs]; + _data pushBack ["VestMagazines", _vMags]; + + _data pushBack ["BackpackWeapons", (getWeaponCargo backpackContainer player) call cargoToPairs]; + _data pushBack ["BackpackItems", (getItemCargo backpackContainer player) call cargoToPairs]; + _data pushBack ["BackpackMagazines", _bMags]; + + _gear pushBack ["PartialMagazines", _partialMags]; + _gear pushBack ["LoadedMagazines", _loadedMags]; + + _wastelandItems = []; + { + if (_x select 1 > 0) then + { + _wastelandItems pushBack [_x select 0, _x select 1]; + }; + } forEach call mf_inventory_all; + + _gear pushBack ["WastelandItems", _wastelandItems]; + + _gearStr = str _gear; + + if (_gearStr != ["playerData_gear", ""] call getPublicVar) then + { + { _data pushBack _x } forEach _gear; + playerData_gear = _gearStr; + }; + + if (alive player) then + { + savePlayerData = [_UID, _info, _data, player]; + publicVariableServer "savePlayerData"; + + if (_manualSave) then + { + cutText ["\nPlayer saved!", "PLAIN DOWN", 0.2]; + }; + }; + }; + }; + + if (isCODE(savePlayerHandle)) then { + _savePlayerHandle = savePlayerHandle; + waitUntil {scriptDone _savePlayerHandle}; + savePlayerHandle = nil; + }; +}; + +fn_deletePlayerData = { + deletePlayerData = player; + publicVariableServer "deletePlayerData"; + playerData_gear = ""; +}; + + +fn_applyPlayerInfo = { + init(_data,_this); + def(_name); + def(_value); + + _data = _this; + + { + _name = _x select 0; + _value = _x select 1; + + switch (_name) do + { + case "Donator": { player setVariable ["isDonator", _value > 0] }; + //case "BankMoney": { player setVariable ["bmoney", _value max 0] }; // Not implemented in vanilla mission + }; + } forEach _data; +}; + + +p_restoreInfo = { + ARGVX2(0,_hash); + if (!isCODE(_hash)) exitWith {}; + def(_data); + _data = call _hash; + + _data call fn_applyPlayerInfo; +}; + +p_preloadEnabled = { + (profileNamespace getVariable ["A3W_preloadSpawn", true]) +}; + +p_preloadPosition = { + ARGV3(0,_pos,[]); + + if (!(call p_preloadEnabled || {undefined(_pos)})) exitWith { + player groupChat "Loading previous location..."; + }; + + _pos set [2,OR(_pos select 2,0)]; + player groupChat "Preloading previous location..."; + waitUntil {sleep 0.1; preloadCamera _pos}; +}; + +p_firstSpawn = { + player enableSimulation true; + player allowDamage true; + player setVelocity [0,0,0]; + + execVM "client\functions\firstSpawn.sqf"; +}; + +p_restoreData = { + diag_log format["%1 call p_restoreData",_this]; + ARGV2(0,_hash); + + def(_exit); + _exit = { + playerData_loaded = true; + }; + + def(_data); + _data = getIf(isCODE(_hash),call _hash,nil); + + def(_dataValid); + _dataValid = (isARRAY(_data) && {count(_data) > 0}); + + if (!_dataValid) exitWith { + playerData_resetPos = true; + call p_firstSpawn; + call _exit; + }; + + playerData_alive = true; + [_data] spawn fn_applyPlayerData; + call _exit; +}; + +p_getScope = { + ARGVX3(0,_id,""); + waitUntil {not(isNil "PDB_ServerID")}; + (format["%1%2",PDB_ServerID,_id]) +}; + +fn_requestPlayerData = {[] spawn { + init(_player,player); + init(_uid,getPlayerUID player); + init(_scope,[_uid] call p_getScope); + + + playerData_alive = nil; + playerData_loaded = nil; + playerData_resetPos = nil; + init(_dataKey, "PlayerSave"); + init(_infoKey, "PlayerInfo"); + + def(_pData); + _pData = [_scope, [_dataKey, nil], [_infoKey, nil]] call stats_get; + + def(_key); + { + _key = xGet(_x,0); + switch(_key) do { + case _dataKey: { + [xGet(_x,1)] call p_restoreData; + }; + case _infoKey: { + [xGet(_x,1)] call p_restoreInfo; + }; + }; + } forEach _pData; +};}; + + +diag_log "pFunctions.sqf loading complete"; diff --git a/persistence/players/s_deletePlayerSave.sqf b/persistence/players/s_deletePlayerSave.sqf deleted file mode 100644 index 912c19492..000000000 --- a/persistence/players/s_deletePlayerSave.sqf +++ /dev/null @@ -1,8 +0,0 @@ -// @file Name: s_deletePlayerSave.sqf -// @file Author: micovery - -if (!isServer) exitWith {}; -#include "macro.h" - -init(_scope,_this call PDB_playerFileName); -[_scope] call stats_wipe; \ No newline at end of file diff --git a/persistence/players/s_loadAccount.sqf b/persistence/players/s_loadAccount.sqf deleted file mode 100644 index 965f50f79..000000000 --- a/persistence/players/s_loadAccount.sqf +++ /dev/null @@ -1,34 +0,0 @@ -// @file Version: 1.0 -// @file Name: s_loadAccount.sqf -// @file Author: AgentRev, micovery -// @file Created: 25/02/2014 22:21 - -if (!isServer) exitWith {}; - -#include "macro.h" -def(_copyPairs); -_copyPairs = { - ARGVX3(0,_target,[]); - ARGVX3(1,_source,[]); - - { - _target pushBack _x; - } forEach _source; -}; - - -init(_UID,_this); -init(_data,[]); -init(_scope,_UID call PDB_playerFileName); - -def(_allData); -_allData = [_scope, ["PlayerSave", nil], ["PlayerInfo", nil]] call stats_get; -init(_playerSave_pairs, [((_allData select 0) select 1)] call stats_hash_pairs); -init(_playerInfo_pairs, [((_allData select 1) select 1)] call stats_hash_pairs); -init(_saveValid,(count(_playerSave_pairs) > 0)); - -_data pushBack ["PlayerSaveValid", _saveValid]; -[_data,_playerInfo_pairs] call _copyPairs; -[_data,_playerSave_pairs] call _copyPairs; - -_data diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index b0783334d..522664e14 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -6,11 +6,13 @@ if (!isServer) exitWith {}; diag_log "Loading s_setupPlayerDB ..."; #include "macro.h" -fn_deletePlayerSave = "persistence\players\s_deletePlayerSave.sqf" call mf_compile; -fn_loadAccount = "persistence\players\s_loadAccount.sqf" call mf_compile; -"savePlayerData" addPublicVariableEventHandler -{ +fn_deletePlayerSave = { + init(_scope,_this call PDB_playerFileName); + [_scope] call stats_wipe; +}; + +"savePlayerData" addPublicVariableEventHandler { ARGVX3(1,_this,[]); ARGVX3(0,_UID,""); ARGVX3(1,_info,[]); @@ -28,25 +30,7 @@ fn_loadAccount = "persistence\players\s_loadAccount.sqf" call mf_compile; }; }; -"requestPlayerData" addPublicVariableEventHandler -{ - _player = _this select 1; - _UID = getPlayerUID _player; - - if ((_UID call PDB_playerFileName) call PDB_exists) then // iniDB_exists - { - applyPlayerData = _UID call fn_loadAccount; - } - else - { - applyPlayerData = []; - }; - - (owner _player) publicVariableClient "applyPlayerData"; -}; - -"deletePlayerData" addPublicVariableEventHandler -{ +"deletePlayerData" addPublicVariableEventHandler { _player = _this select 1; (getPlayerUID _player) call fn_deletePlayerSave; }; From d2d768b88515c90f6e9cd1f5274507bf6539318c Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 20 Oct 2014 20:13:25 -0700 Subject: [PATCH 014/544] fix bug where if max vehicle lifetime was not defined, vehicles were not restored --- persistence/world/vFunctions.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index ac65fdbaf..03e18b3d8 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -116,7 +116,7 @@ v_isVehicle = { (_result) }; -v_maxLifetime = ["A3W_vehicleLifetime", 0] call getPublicVar; +v_maxLifetime = A3W_vehicleLifetime; v_restoreVehicle = {_this spawn { //diag_log format["%1 call v_restoreVehicle", _this]; @@ -173,8 +173,8 @@ v_restoreVehicle = {_this spawn { diag_log format["No class or position available for vehicle: %1", _vehicle_key]; }; - if (v_maxLifetime <= 0 || {_hours_alive > v_maxLifetime}) exitWith { - diag_log format["vehicle %1(%2) has exceeded max lifetime, skipping it", _vehicle_key, _class]; + if (isSCALAR(v_maxLifetime) && {v_maxLifetime <= 0 || {_hours_alive > v_maxLifetime}}) exitWith { + diag_log format["vehicle %1(%2) has exceeded max lifetime of %3, skipping it", _vehicle_key, _class, v_maxLifetime]; }; From f2c0a5ca4d384874ad72f91e3ba798c97e34028f Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 20 Oct 2014 20:15:26 -0700 Subject: [PATCH 015/544] disable static weapon saving from oFunctions --- persistence/world/oFunctions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 0624e8031..0e7ab4db0 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -125,7 +125,7 @@ o_isVehicle = { if (_obj isKindOf _x) exitWith { _result = true; }; - } forEach ["Helicopter", "Plane", "Boat_F", "Car", "Motorcycle", "Tank"]; + } forEach ["Helicopter", "Plane", "Boat_F", "Car", "Motorcycle", "Tank", "StaticWeapon"]; (_result) }; From 0dca58e6dff93b0b0beaaa76bfa31713b87681c7 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 20 Oct 2014 20:43:52 -0700 Subject: [PATCH 016/544] move static weapon saving into vFuntions --- persistence/players/pFunctions.sqf | 1 + persistence/world/vFunctions.sqf | 52 ++++++++++++++++++++++++++++-- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index aac7e9dff..8e552c673 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -411,6 +411,7 @@ fn_deletePlayerData = { fn_applyPlayerInfo = { + diag_log format["%1 call fn_applyPlayerInfo;",_this]; init(_data,_this); def(_name); def(_value); diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 03e18b3d8..e6b60fd99 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -28,6 +28,14 @@ VLOAD_LOCKED = "Plane" ]; +v_isStaticWeapon = { + ARGVX4(0,_class,"",false); + (_class isKindOf "StaticWeapon") +}; + +v_isStaticWeaponSavingOn = { + (["A3W_staticWeaponSaving"] call isConfigOn) +}; v_isWarchest = { _this getVariable ["a3w_warchest", false] && {(_this getVariable ["side", sideUnknown]) in [WEST,EAST]} @@ -111,12 +119,12 @@ v_isVehicle = { if (_obj isKindOf _x) exitWith { _result = true; }; - } forEach ["Helicopter", "Plane", "Boat_F", "Car", "Motorcycle", "Tank"]; + } forEach ["Helicopter", "Plane", "Boat_F", "Car", "Motorcycle", "Tank", "StaticWeapon"]; (_result) }; -v_maxLifetime = A3W_vehicleLifetime; +v_maxLifetime = OR(A3W_vehicleLifetime,nil); v_restoreVehicle = {_this spawn { //diag_log format["%1 call v_restoreVehicle", _this]; @@ -145,8 +153,14 @@ v_restoreVehicle = {_this spawn { def(_cargo_magazines); def(_cargo_backpacks); def(_cargo_items); + def(_turret_magazines); + def(_cargo_ammo); + def(_cargo_fuel); + def(_cargo_repair); + def(_key); def(_value); + { _key = _x select 0; @@ -164,6 +178,10 @@ v_restoreVehicle = {_this spawn { case "Backpacks": { _cargo_backpacks = OR(_value,nil);}; case "HoursAlive": { _hours_alive = OR(_value,nil);}; case "Variables": { _variables = OR(_value,nil);}; + case "AmmoCargo": { _cargo_ammo = OR(_value,nil);}; + case "FuelCargo": { _cargo_fuel = OR(_value,nil);}; + case "RepairCargo": { _cargo_repair = OR(_value,nil);}; + case "TurretMagazines": { _turret_magazines = OR(_value,nil);}; }; } forEach _vehicle_data; @@ -253,6 +271,7 @@ v_restoreVehicle = {_this spawn { clearMagazineCargoGlobal _obj; clearItemCargoGlobal _obj; clearBackpackCargoGlobal _obj; + _obj setVehicleAmmo 0; if (isARRAY(_cargo_weapons)) then { { _obj addWeaponCargoGlobal _x } forEach _cargo_weapons; @@ -269,6 +288,22 @@ v_restoreVehicle = {_this spawn { if (isARRAY(_cargo_magazines)) then { { _obj addMagazineCargoGlobal _x } forEach _cargo_magazines; }; + + if (isARRAY(_turret_magazines)) then { + { _obj addMagazine _x } forEach _turret_magazines; + }; + + if (isSCALAR(_cargo_ammo)) then { + _obj setAmmoCargo _cargo_ammo; + }; + + if (isSCALAR(_cargo_fuel)) then { + _obj setFuelCargo _cargo_fuel; + }; + + if (isSCALAR(_cargo_repair)) then { + _obj setRepairCargo _cargo_repair; + }; //some vehicles need to be always unlocked def(_unlocked); @@ -367,6 +402,15 @@ v_addSaveVehicle = { _items = (getItemCargo _obj) call cargoToPairs; _backpacks = (getBackpackCargo _obj) call cargoToPairs; + init(_turretMags,[]); + if ((call v_isStaticWeaponSavingOn) && {[_class] call v_isStaticWeapon}) then { + _turretMags = magazinesAmmo _obj; + }; + + init(_ammoCargo,getAmmoCargo _obj); + init(_fuelCargo,getFuelCargo _obj); + init(_repairCargo,getRepairCargo _obj); + def(_objName); _objName = _obj getVariable ["vehicle_key", nil]; @@ -387,6 +431,10 @@ v_addSaveVehicle = { _list pushBack [ _objName + "." + "Magazines", _magazines]; _list pushBack [ _objName + "." + "Items", _items]; _list pushBack [ _objName + "." + "Backpacks", _backpacks]; + _list pushBack [ _objName + "." + "TurretMagazines", _turretMags]; + _list pushBack [ _objName + "." + "AmmoCargo", _ammoCargo]; + _list pushBack [ _objName + "." + "FuelCargo", _fuelCargo]; + _list pushBack [ _objName + "." + "RepairCargo", _repairCargo]; true }; From 6c1aeb8f3811ef14e0f9e4afa3e88169b95707a5 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 20 Oct 2014 20:57:34 -0700 Subject: [PATCH 017/544] disallow weapon bags from being restored inside vehicles --- persistence/world/vFunctions.sqf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index e6b60fd99..dc2430362 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -278,7 +278,11 @@ v_restoreVehicle = {_this spawn { }; if (isARRAY(_cargo_backpacks)) then { - { _obj addBackpackCargoGlobal _x } forEach _cargo_backpacks; + { + if (not((_x select 0) isKindOf "Weapon_Bag_Base")) then { + _obj addBackpackCargoGlobal _x + }; + } forEach _cargo_backpacks; }; if (isARRAY(_cargo_items)) then { From ec9f4613fa1590a8dc6c1927411743cb121eaa0c Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 20 Oct 2014 20:58:21 -0700 Subject: [PATCH 018/544] fix bug, only wipe PlayerSave when player dies --- persistence/players/s_setupPlayerDB.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index 522664e14..438b539a8 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -9,7 +9,7 @@ diag_log "Loading s_setupPlayerDB ..."; fn_deletePlayerSave = { init(_scope,_this call PDB_playerFileName); - [_scope] call stats_wipe; + [_scope, "PlayerSave", nil] call stats_set; }; "savePlayerData" addPublicVariableEventHandler { From c3c51376000205ed3585962f6fb65b6f7f7cc729 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 20 Oct 2014 21:00:26 -0700 Subject: [PATCH 019/544] enable saving and loading of bank money --- persistence/players/pFunctions.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 8e552c673..df9632bf9 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -252,8 +252,8 @@ fn_savePlayerData = { ["UID", _UID], ["Name", name player], ["LastGroupSide", str side group player], - ["LastPlayerSide", str playerSide]/*, - ["BankMoney", player getVariable ["bmoney", 0]]*/ // Not implemented in vanilla mission + ["LastPlayerSide", str playerSide], + ["BankMoney", player getVariable ["bmoney", 0]] ]; _hitPoints = []; @@ -425,7 +425,7 @@ fn_applyPlayerInfo = { switch (_name) do { case "Donator": { player setVariable ["isDonator", _value > 0] }; - //case "BankMoney": { player setVariable ["bmoney", _value max 0] }; // Not implemented in vanilla mission + case "BankMoney": { player setVariable ["bmoney", _value max 0] }; }; } forEach _data; }; From 09f20f4e15fc1ef0f884a663f6073e9de70133ae Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 20 Oct 2014 22:57:21 -0700 Subject: [PATCH 020/544] fix admin menu log to append data records, instead of overwrite --- server/antihack/adminMenuLog.sqf | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/server/antihack/adminMenuLog.sqf b/server/antihack/adminMenuLog.sqf index 2fed5a9e3..467f44467 100644 --- a/server/antihack/adminMenuLog.sqf +++ b/server/antihack/adminMenuLog.sqf @@ -7,15 +7,12 @@ private ["_name", "_uid", "_action", "_value", "_sentChecksum"]; _sentChecksum = [_this, 4, "", [""]] call BIS_fnc_param; -if (_sentChecksum == _flagChecksum) then -{ +if (_sentChecksum == _flagChecksum) then { _name = [_this, 0, "", [""]] call BIS_fnc_param; _uid = [_this, 1, "", [""]] call BIS_fnc_param; _action = [_this, 2, "", [""]] call BIS_fnc_param; _value = [_this, 3, "", [0,"",[]]] call BIS_fnc_param; - if (["A3W_savingMethod", 1] call getPublicVar == 2) then - { - ["AdminLog" call PDB_objectFileName, "AdminLog", _uid, [_name, _action, _value]] call iniDB_write; - }; + ["AdminLog2" call PDB_objectFileName, _uid + ".records", [_name, _action, _value]] call stats_push; + }; From 0afcc3d7543f40a04a677f0b7c553cf705dcf10b Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 21 Oct 2014 00:51:38 -0700 Subject: [PATCH 021/544] fix bug in sock.sqf with BOOLEAN types, and also add support for serializing SQF {[[k,v],...]} as JSON object --- persistence/sock/sock.sqf | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/persistence/sock/sock.sqf b/persistence/sock/sock.sqf index 7b7bf6a40..2a58f5b0f 100644 --- a/persistence/sock/sock.sqf +++ b/persistence/sock/sock.sqf @@ -112,6 +112,49 @@ sock_json = { init(_data,_this); + if (_type == typeName false) exitWith { + def(_val); + _val = if (_data) then {"true"} else {"false"}; + (_val) + }; + + if (_type == typeName {}) exitWith { + def(_val); + _val = call _data; + if (isNil "_val" || {typeName _val != typeName []}) exitWith { + (str(_data) call sock_json) + }; + + private["_object_json", "_i", "_count", "_element", "_element_json", "_el_key", "_el_val"]; + _object_json = "{"; + _count = count(_val); + _i = 0; + while {_i < _count} do { + if (true) then { + _element = _val select _i; + if (isNil "_element" || {typeName _element != typeName [] || {count(_element) < 2}}) exitWith {}; + + _el_key = _element select 0; + if (isNil "_el_key" || {typeName _el_key != typeName ""}) exitWith {}; + _el_key = _el_key call sock_json; + + _el_val = (_element select 1) call sock_json; + + _element_json = _el_key + ":" + _el_val; + + if (_i == 0) then { + _object_json = _object_json + _element_json; + } + else { + _object_json = _object_json + "," + _element_json; + }; + }; + _i = _i + 1; + }; + _object_json = _object_json + "}"; + (_object_json) + }; + if (_type == typeName "") exitWith { def(_val); _val = ([_data, """"] call sock_json_string_escape); From f0e75f931bbd977c096cb515270624967359326e Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 21 Oct 2014 01:03:19 -0700 Subject: [PATCH 022/544] push admin log records as objects intead of arrays --- server/antihack/adminMenuLog.sqf | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/server/antihack/adminMenuLog.sqf b/server/antihack/adminMenuLog.sqf index 467f44467..20a3c8d46 100644 --- a/server/antihack/adminMenuLog.sqf +++ b/server/antihack/adminMenuLog.sqf @@ -13,6 +13,12 @@ if (_sentChecksum == _flagChecksum) then { _action = [_this, 2, "", [""]] call BIS_fnc_param; _value = [_this, 3, "", [0,"",[]]] call BIS_fnc_param; - ["AdminLog2" call PDB_objectFileName, _uid + ".records", [_name, _action, _value]] call stats_push; + private["_record"]; + _record = {[ + ["name",_name], + ["action",_action], + ["value",_value] + ]}; + ["AdminLog2" call PDB_objectFileName, _uid + ".records", _record] call stats_push; }; From 09ec0e2bd420fc7faafceb8bcc686fe06401e25c Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 21 Oct 2014 01:11:20 -0700 Subject: [PATCH 023/544] fix saving, and loading of warchest and beacons --- persistence/world/oFunctions.sqf | 90 +++++++++++++++----------------- 1 file changed, 41 insertions(+), 49 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 0e7ab4db0..4c52840c6 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -25,7 +25,8 @@ o_isBaseSavingOn = { }; o_isStaticWeapon = { - ARGVX4(0,_class,"",false); + ARGVX4(0,_obj,objNull,false); + init(_class,typeOf _obj); (_class isKindOf "StaticWeapon") }; @@ -43,7 +44,8 @@ o_isBeaconSavingOn = { }; o_isBox = { - ARGVX4(0,_class,"",false); + ARGVX4(0,_obj,objNull,false); + init(_class,typeOf _obj); (_class isKindOf "ReammoBox_F") }; @@ -91,30 +93,41 @@ o_hasInventory = { }; o_isSaveable = { - ARGVX3(0,_class,""); - ARGV4(1,_obj,objNull); + //diag_log format["%1 call o_isSaveable", _this]; + ARGVX3(0,_obj,objNull); + + init(_class, typeOf _obj); + + if (!(alive _obj)) exitWith {false}; + if ([_obj] call o_isVehicle) exitWith {false}; + if ([_obj] call o_isInSaveList) exitWith {true}; + init(_boxSavingOn, call o_isBoxSavingOn); - - if (isNil "_class") exitWith {_boxSavingOn}; - + if ([_obj] call o_isBeacon) exitWith { - call o_isBeaconSavingOn; + diag_log format["%1 is beacon", _obj]; + (call o_isBeaconSavingOn) }; if ([_obj] call o_isWarchest) exitWith { - call o_isWarchestSavingOn; + //diag_log format["%1 is warchest", _obj]; + (call o_isWarchestSavingOn) }; - if ([_class] call o_isStaticWeapon) exitWith { - call o_isStaticWeaponSavingOn; + if ([_obj] call o_isStaticWeapon) exitWith { + //diag_log format["%1 is static weapon", _obj]; + (call o_isStaticWeaponSavingOn) }; - - if ([_class] call o_isBox) exitWith { - (_boxSavingOn) + + def(_locked); + _locked = _obj getVariable ["objectLocked", false]; + + if ([_obj] call o_isBox) exitWith { + (_boxSavingOn && _locked) }; - - (_boxSavingOn) + + (_boxSavingOn && _locked) }; o_isVehicle = { @@ -240,13 +253,12 @@ o_restoreObject = {_this spawn { } forEach _variables; }; - - if (not([_class,_obj] call o_isSaveable)) exitWith { + _obj setVariable ["objectLocked", true, true]; // force lock + + if (not([_obj] call o_isSaveable)) exitWith { diag_log format["%1(%2) has been deleted, it is not saveable", _object_key, _class]; deleteVehicle _obj; }; - - _obj setPosWorld ATLtoASL _pos; @@ -259,8 +271,7 @@ o_restoreObject = {_this spawn { _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; }; - _obj setVariable ["objectLocked", true, true]; // force lock - + if (isSCALAR(_damage)) then { _obj setDamage _damage; }; @@ -349,7 +360,6 @@ o_isInSaveList = { ((o_saveList find _obj) >= 0) }; - o_fillVariables = { ARGVX3(0,_obj,objNull); ARGVX3(1,_variables,[]); @@ -398,36 +408,18 @@ o_addSaveObject = { ARGVX3(0,_list,[]); ARGVX3(1,_obj,objNull); - if (!(alive _obj)) exitWith {}; - - def(_class); - def(_locked); - _class = typeOf _obj; - _locked = _obj getVariable ["objectLocked", false]; - - if (not(_locked)) exitWith {}; - - if ([_obj] call o_isVehicle) exitWith {}; - - def(_inSaveList); - def(_isSaveable); - - _inSaveList = [_obj] call o_isInSaveList; - _isSaveable = [_class,_obj] call o_isSaveable; - - diag_log format["[%1] call o_inSaveList = %2", _obj, _inSaveList]; - diag_log format["[%1] call o_isSaveable = %2", _obj, _isSaveable]; - if (not(_inSaveList || {_isSaveable})) exitWith {}; - + if (not([_obj] call o_isSaveable)) exitWith {}; + diag_log format["will save %1", _obj]; - + def(_class); def(_netId); def(_pos); def(_dir); def(_damage); def(_allowDamage); - + + _class = typeOf _obj; _netId = netId _obj; _pos = ASLtoATL getPosWorld _obj; _dir = [vectorDir _obj, vectorUp _obj]; @@ -455,7 +447,7 @@ o_addSaveObject = { init(_variables,[]); - [_class, _obj,_variables] call o_fillVariables; + [_obj,_variables] call o_fillVariables; init(_weapons,[]); @@ -472,7 +464,7 @@ o_addSaveObject = { }; init(_turretMags,[]); - if ((call o_isStaticWeaponSavingOn) && {[_class] call o_isStaticWeapon}) then { + if ((call o_isStaticWeaponSavingOn) && {[_obj] call o_isStaticWeapon}) then { _turretMags = magazinesAmmo _obj; }; @@ -536,7 +528,7 @@ o_saveAllObjects = {_this spawn { init(_count,0); init(_request,[_scope]); - //[_scope] call stats_wipe; + [_scope] call stats_wipe; init(_bulk_size,5); { From 98bb27845bc087d965e5c65234e39d091d50e76f Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 21 Oct 2014 04:55:52 -0700 Subject: [PATCH 024/544] modify sock library to support new hash notation [{},[["key", "val"],...]] --- persistence/sock/sock.sqf | 134 ++++++++++++++++++++++++++------------ 1 file changed, 94 insertions(+), 40 deletions(-) diff --git a/persistence/sock/sock.sqf b/persistence/sock/sock.sqf index 2a58f5b0f..7c347d389 100644 --- a/persistence/sock/sock.sqf +++ b/persistence/sock/sock.sqf @@ -32,6 +32,7 @@ sock_log_set_level = { LOG_INFO_LEVEL call sock_log_set_level; #define BACKSLASH (toString [92]) +#define DOUBLE_QUOTE """" /** * This function escapes all instances of {@code _char} within the @@ -101,14 +102,19 @@ sock_json_string_escape = { * */ + sock_json = { - if (undefined(_this)) exitWith { + if (isNil "_this") exitWith { "null" }; - def(_type); - _type = typeName _this; + _type = typeName _this; + + //diag_log format["---->%1<----->%2<----", str(_type),_this]; + if (format["%1",str(_type)] == "") exitWith { //handle Nothing, and Anything ... + "null" + }; init(_data,_this); @@ -119,46 +125,11 @@ sock_json = { }; if (_type == typeName {}) exitWith { - def(_val); - _val = call _data; - if (isNil "_val" || {typeName _val != typeName []}) exitWith { - (str(_data) call sock_json) - }; - - private["_object_json", "_i", "_count", "_element", "_element_json", "_el_key", "_el_val"]; - _object_json = "{"; - _count = count(_val); - _i = 0; - while {_i < _count} do { - if (true) then { - _element = _val select _i; - if (isNil "_element" || {typeName _element != typeName [] || {count(_element) < 2}}) exitWith {}; - - _el_key = _element select 0; - if (isNil "_el_key" || {typeName _el_key != typeName ""}) exitWith {}; - _el_key = _el_key call sock_json; - - _el_val = (_element select 1) call sock_json; - - _element_json = _el_key + ":" + _el_val; - - if (_i == 0) then { - _object_json = _object_json + _element_json; - } - else { - _object_json = _object_json + "," + _element_json; - }; - }; - _i = _i + 1; - }; - _object_json = _object_json + "}"; - (_object_json) + ((call _data) call sock_json_hash) }; if (_type == typeName "") exitWith { - def(_val); - _val = ([_data, """"] call sock_json_string_escape); - str([_val, BACKSLASH] call sock_json_string_escape) + (_data call sock_json_string) }; if (_type == typeName 0) exitWith { @@ -176,6 +147,11 @@ sock_json = { }; if (_type == typeName []) exitWith { + //special case for arrays that represent hash [{}, [["key","value"],...]] + if (count(_data) > 1 && {typeName (_data select 0) == typeName {}}) exitWith { + ((_data select 1) call sock_json_hash) + }; + private["_array_json", "_i", "_count", "_element", "_element_json"]; _array_json = "["; _count = count(_data); @@ -197,10 +173,88 @@ sock_json = { (_array_json) }; + //other types, just convert to string (str(_data) call sock_json) }; +sock_json_string = { + if(isNil "_this") exitWith {}; + init(_val,_this); + + _val = [_val, DOUBLE_QUOTE] call sock_json_string_escape; + if (isNil "_val") exitWith {'""'}; + + _val =[_val, BACKSLASH] call sock_json_string_escape; + if (isNil "_val") exitWith {'""'}; + + str(_val) +}; + +sock_json_hash = { + if (isNil "_this" || {typeName _this != typeName []}) exitWith { + ((OR(_this,nil)) call sock_json) + }; + + init(_val,_this); + + private["_json", "_i", "_count", "_el", "_el_json", "_el_key", "_el_val","_el_key_json", "_el_val_json"]; + _json = "{"; + _count = count(_val); + _i = 0; + while {_i < _count} do { + if (true) then { + _el = _val select _i; + if (isNil "_el" || {typeName _el != typeName [] || {count(_el) < 2}}) exitWith {}; + + _el_key = (_el select 0); + _el_val = (_el select 1); + + if (isNil "_el_key") exitWith {}; + _el_key_json = _el_key call sock_json; + _el_val_json = if (isNil "_el_val") then {"null"} else {_el_val call sock_json}; + + + if ((isNil "_el_key_json" || {typeName _el_key_json != typeName ""}) || + (isNil "_el_val_json" || {typeName _el_val_json != typeName ""})) exitWith { + diag_log format["=== JSON Serialization Error ==="]; + diag_log format["_el=%1",_el]; + diag_log format["(_el select 0) = %1",(_el select 0)]; + diag_log format["(_el select 1) = %1",(_el select 1)]; + diag_log format["typeName _el_key_json = %1",typeName _el_key_json]; + diag_log format["typeName _el_val_json = %1",typeName _el_val_json]; + diag_log format["_el_key_json = %1",OR(_el_key_json,nil)]; + diag_log format["_el_val_json = %1",OR(_el_val_json,nil)]; + diag_log format["================================"]; + }; + + _el_json = _el_key_json + ":" + _el_val_json; + + if (_i == 0) then { + _json = _json + _el_json; + } + else { + _json = _json + "," + _el_json; + }; + }; + _i = _i + 1; + }; + _json = _json + "}"; + (_json) +}; + +/** +* This function is used for creating JSON hash/object from an array with a set of key-value pairs +* +* @param _key_value_pairs (Array type) - An array containing key-value pairs e.g. [["key1", "val1"], ...] +* @return +* +* Returns the hash representation. +*/ +sock_hash = { + ([{},OR(_this,nil)]) +}; + /** * This function talks directly to the sock.dll extension using the SOCK-SQF protocol. * From 9be9ad6cc8b9e12fd10deaadbbfd7546e957412e Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 21 Oct 2014 04:57:32 -0700 Subject: [PATCH 025/544] modify save calls for objects, players, and vehicles to use a hash --- persistence/players/s_setupPlayerDB.sqf | 4 +-- persistence/world/oFunctions.sqf | 38 +++++++++++++------------ persistence/world/vFunctions.sqf | 37 +++++++++++++----------- server/antihack/adminMenuLog.sqf | 6 ++-- 4 files changed, 45 insertions(+), 40 deletions(-) diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index 438b539a8..217fb10bd 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -25,8 +25,8 @@ fn_deletePlayerSave = { if (alive _player && {_player getVariable ["FAR_isUnconscious", 0] == 0}) exitWith { init(_scope,_UID call PDB_playerFileName); - [_scope, "PlayerInfo", _info] call stats_hash_set; - [_scope, "PlayerSave", _data] call stats_hash_set; + [_scope, "PlayerInfo", (_info call sock_hash)] call stats_set; + [_scope, "PlayerSave", (_data call sock_hash)] call stats_set; }; }; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 4c52840c6..6e3f5776d 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -480,24 +480,26 @@ o_addSaveObject = { _objName = format["obj_%1_%2",ceil(time), ceil(random 10000)]; _obj setVariable ["object_key", _objName, true]; }; - - _list pushBack [ _objName + "." + "Class", _class]; - _list pushBack [ _objName + "." + "Position", _pos]; - _list pushBack [ _objName + "." + "Direction", _dir]; - _list pushBack [ _objName + "." + "HoursAlive", _totalHours]; - _list pushBack [ _objName + "." + "Damage", _damage]; - _list pushBack [ _objName + "." + "AllowDamage", _allowDamage]; - _list pushBack [ _objName + "." + "Variables", _variables]; - _list pushBack [ _objName + "." + "Texture", _texture]; - _list pushBack [ _objName + "." + "Weapons", _weapons]; - _list pushBack [ _objName + "." + "Magazines", _magazines]; - _list pushBack [ _objName + "." + "Items", _items]; - _list pushBack [ _objName + "." + "Backpacks", _backpacks]; - _list pushBack [ _objName + "." + "TurretMagazines", _turretMags]; - _list pushBack [ _objName + "." + "AmmoCargo", _ammoCargo]; - _list pushBack [ _objName + "." + "FuelCargo", _fuelCargo]; - _list pushBack [ _objName + "." + "RepairCargo", _repairCargo]; - + + _list pushBack [_objName, ([ + ["Class", _class], + ["Position", _pos], + ["Direction", _dir], + ["HoursAlive", _totalHours], + ["Damage", _damage], + ["AllowDamage", _allowDamage], + ["Variables", _variables], + ["Texture", _texture], + ["Weapons", _weapons], + ["Magazines", _magazines], + ["Items", _items], + ["Backpacks", _backpacks], + ["TurretMagazines", _turretMags], + ["AmmoCargo", _ammoCargo], + ["FuelCargo", _fuelCargo], + ["RepairCargo", _repairCargo] + ] call sock_hash)]; + true }; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index dc2430362..06b3e148c 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -422,23 +422,26 @@ v_addSaveVehicle = { _objName = format["veh_%1_%2",ceil(time), ceil(random 10000)]; _obj setVariable ["vehicle_key", _objName, true]; }; - - _list pushBack [ _objName + "." + "Class", _class]; - _list pushBack [ _objName + "." + "Position", _pos]; - _list pushBack [ _objName + "." + "Direction", _dir]; - _list pushBack [ _objName + "." + "HoursAlive", _totalHours]; - _list pushBack [ _objName + "." + "Damage", _damage]; - _list pushBack [ _objName + "." + "AllowDamage", _allowDamage]; - _list pushBack [ _objName + "." + "Variables", _variables]; - _list pushBack [ _objName + "." + "Texture", _texture]; - _list pushBack [ _objName + "." + "Weapons", _weapons]; - _list pushBack [ _objName + "." + "Magazines", _magazines]; - _list pushBack [ _objName + "." + "Items", _items]; - _list pushBack [ _objName + "." + "Backpacks", _backpacks]; - _list pushBack [ _objName + "." + "TurretMagazines", _turretMags]; - _list pushBack [ _objName + "." + "AmmoCargo", _ammoCargo]; - _list pushBack [ _objName + "." + "FuelCargo", _fuelCargo]; - _list pushBack [ _objName + "." + "RepairCargo", _repairCargo]; + + _list pushBack [_objName, ([ + ["Class", _class], + ["Position", _pos], + ["Direction", _dir], + ["HoursAlive", _totalHours], + ["Damage", _damage], + ["AllowDamage", _allowDamage], + ["Variables", _variables], + ["Texture", _texture], + ["Weapons", _weapons], + ["Magazines", _magazines], + ["Items", _items], + ["Backpacks", _backpacks], + ["TurretMagazines", _turretMags], + ["AmmoCargo", _ammoCargo], + ["FuelCargo", _fuelCargo], + ["RepairCargo", _repairCargo] + ] call sock_hash)]; + true }; diff --git a/server/antihack/adminMenuLog.sqf b/server/antihack/adminMenuLog.sqf index 20a3c8d46..61a3d1c1a 100644 --- a/server/antihack/adminMenuLog.sqf +++ b/server/antihack/adminMenuLog.sqf @@ -14,11 +14,11 @@ if (_sentChecksum == _flagChecksum) then { _value = [_this, 3, "", [0,"",[]]] call BIS_fnc_param; private["_record"]; - _record = {[ + _record = [ ["name",_name], ["action",_action], ["value",_value] - ]}; + ]; - ["AdminLog2" call PDB_objectFileName, _uid + ".records", _record] call stats_push; + ["AdminLog2" call PDB_objectFileName, _uid + ".records", (_record call sock_hash)] call stats_push; }; From 92e6157516dfd46444184259abe1d524edf77949 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 21 Oct 2014 18:09:21 -0700 Subject: [PATCH 026/544] fix bug where client would get stuck during initialization while waiting for the player file prefix --- persistence/fn_inidb_custom.sqf | 2 +- persistence/players/pFunctions.sqf | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/persistence/fn_inidb_custom.sqf b/persistence/fn_inidb_custom.sqf index 2946d5abc..dd4075078 100644 --- a/persistence/fn_inidb_custom.sqf +++ b/persistence/fn_inidb_custom.sqf @@ -27,7 +27,7 @@ PDB_objectFileName = compileFinal ("format ['%1%2', '" + PDB_ObjectFileID + "', PDB_databaseNameCompiler = PDB_objectFileName; call compile preProcessFileLineNumbers "persistence\sock\inidb_adapter.sqf"; -publicVariable "PDB_ServerID"; +publicVariable "PDB_PlayerFileID"; PDB_defaultValue = { diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index df9632bf9..b67b12230 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -492,8 +492,8 @@ p_restoreData = { p_getScope = { ARGVX3(0,_id,""); - waitUntil {not(isNil "PDB_ServerID")}; - (format["%1%2",PDB_ServerID,_id]) + waitUntil {not(isNil "PDB_PlayerFileID")}; + (format["%1%2",PDB_PlayerFileID,_id]) }; fn_requestPlayerData = {[] spawn { From 13932dd7a24bed93e0523906ffd8ad0b7236ad08 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 21 Oct 2014 18:12:44 -0700 Subject: [PATCH 027/544] add some finest level logging calls during player stats loading --- persistence/players/c_setupPlayerDB.sqf | 2 +- persistence/players/pFunctions.sqf | 29 ++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/persistence/players/c_setupPlayerDB.sqf b/persistence/players/c_setupPlayerDB.sqf index 4f074ffeb..a01735c2b 100644 --- a/persistence/players/c_setupPlayerDB.sqf +++ b/persistence/players/c_setupPlayerDB.sqf @@ -3,8 +3,8 @@ if (isDedicated) exitWith {}; +call compile preProcessFileLineNumbers "persistence\sock\main.sqf"; #include "pFunctions.sqf" -call compile preProcessFileLineNumbers "persistence\sock\main.sqf"; diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index b67b12230..c3417dae3 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -7,6 +7,27 @@ diag_log "pFunctions.sqf loading ..."; #include "macro.h" +//Some wrappers for logging +p_log_severe = { + ["p_functions", _this] call log_severe; +}; +p_log_info = { + ["p_functions", _this] call log_info; +}; +p_log_fine = { + ["p_functions", _this] call log_fine; +}; +p_log_finer = { + ["p_functions", _this] call log_finer; +}; +p_log_finest = { + ["p_functions", _this] call log_finest; +}; +p_log_set_level = { + ["p_functions", _this] call log_set_level; +}; +//Set default logging level for this component +LOG_INFO_LEVEL call p_log_set_level; p_resetPlayerData = { removeAllWeapons player; removeAllAssignedItems player; @@ -111,8 +132,8 @@ p_copy_pairs = { fn_applyPlayerData = { - diag_log format["%1 call fn_applyPlayerData",_this]; ARGVX3(0,_data,[]); + format["%1 call fn_applyPlayerData;", _this] call p_log_finest; def(_loaded_magazines); def(_backpack_class); @@ -434,6 +455,7 @@ fn_applyPlayerInfo = { p_restoreInfo = { ARGVX2(0,_hash); if (!isCODE(_hash)) exitWith {}; + format["%1 call p_restoreInfo;", _this] call p_log_finest; def(_data); _data = call _hash; @@ -460,6 +482,7 @@ p_firstSpawn = { player enableSimulation true; player allowDamage true; player setVelocity [0,0,0]; + format["%1 call p_firstSpawn;", _this] call p_log_finest; execVM "client\functions\firstSpawn.sqf"; }; @@ -467,6 +490,7 @@ p_firstSpawn = { p_restoreData = { diag_log format["%1 call p_restoreData",_this]; ARGV2(0,_hash); + format["%1 call p_restoreData;", _this] call p_log_finest; def(_exit); _exit = { @@ -480,6 +504,7 @@ p_restoreData = { _dataValid = (isARRAY(_data) && {count(_data) > 0}); if (!_dataValid) exitWith { + format["saved data for %1 is not valid;", player] call p_log_finest; playerData_resetPos = true; call p_firstSpawn; call _exit; @@ -492,6 +517,7 @@ p_restoreData = { p_getScope = { ARGVX3(0,_id,""); + format["%1 call p_getScope;", _this] call p_log_finest; waitUntil {not(isNil "PDB_PlayerFileID")}; (format["%1%2",PDB_PlayerFileID,_id]) }; @@ -500,6 +526,7 @@ fn_requestPlayerData = {[] spawn { init(_player,player); init(_uid,getPlayerUID player); init(_scope,[_uid] call p_getScope); + format["%1 call fn_requestPlayerData;", _this] call p_log_finest; playerData_alive = nil; From 3ef5a9abd0045622ce6433b42802545733fdd13b Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 21 Oct 2014 18:14:15 -0700 Subject: [PATCH 028/544] temparily disable optimization where player gear is not sent all the time --- persistence/players/pFunctions.sqf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index c3417dae3..863a693f3 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -396,6 +396,8 @@ fn_savePlayerData = { _gear pushBack ["WastelandItems", _wastelandItems]; + //FIXME: re-enable this optimization once stats_merge is implement + /* _gearStr = str _gear; if (_gearStr != ["playerData_gear", ""] call getPublicVar) then @@ -403,6 +405,8 @@ fn_savePlayerData = { { _data pushBack _x } forEach _gear; playerData_gear = _gearStr; }; + */ + { _data pushBack _x } forEach _gear; if (alive player) then { From 0acdcfeb1bfc13bcbd8e1c55b46c074de84fc88e Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 21 Oct 2014 18:37:21 -0700 Subject: [PATCH 029/544] add support for A3W_vehicle_saveInterval, and A3W_object_saveInterval ... used to control the loop interval for save operations --- persistence/world/oFunctions.sqf | 6 +++++- persistence/world/vFunctions.sqf | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 6e3f5776d..bf5678230 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -552,10 +552,14 @@ o_saveAllObjects = {_this spawn { diag_log format ["A3W - %1 objects have been saved", _count]; };}; + +o_saveLoop_interval = OR(A3W_object_saveInterval,60); +diag_log format["config: A3W_object_saveInterval = %1", o_saveLoop_interval]; + o_saveLoop = { ARGVX3(0,_scope,""); while {true} do { - sleep 30; + sleep o_saveLoop_interval; diag_log format["saving all objects"]; [_scope] call o_saveInfo; [_scope] call o_saveAllObjects; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 06b3e148c..0f336cd0d 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -473,10 +473,14 @@ v_saveAllVechiles = {_this spawn { diag_log format ["A3W - %1 vehicles have been saved", _count]; };}; +v_saveLoop_interval = OR(A3W_vehicle_saveInterval,60); +diag_log format["config: A3W_vehicle_saveInterval = %1", v_saveLoop_interval]; + + v_saveLoop = { ARGVX3(0,_scope,""); while {true} do { - sleep 60; + sleep v_saveLoop_interval; [_scope] call v_saveAllVechiles; }; }; From 93a39dbd3c28db811b1c7bf0f5f8c6db08790523 Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 22 Oct 2014 01:56:51 -0700 Subject: [PATCH 030/544] update stats.sqf library with support for merge, keys, and count operations --- persistence/sock/stats.sqf | 283 +++++++++++++++++++++++++++++++++---- 1 file changed, 255 insertions(+), 28 deletions(-) diff --git a/persistence/sock/stats.sqf b/persistence/sock/stats.sqf index a13d3bc45..13840ba5b 100644 --- a/persistence/sock/stats.sqf +++ b/persistence/sock/stats.sqf @@ -87,7 +87,7 @@ stats_build_params = { * e.g. * * //set the value for "key1" in "scope1" -* stats_set("scope1", "key1", "value1"); +* ["scope1", "key1", "value1"] call stats_set; * * @param {String} _scope Name of the scope to use * @param {String} _key Name of the key to set @@ -103,7 +103,7 @@ stats_build_params = { * e.g. * * //set values for "key1", and "key2" in "scope1" - * stats_set("scope1", ["key1", "value1"], ["key2", "value2"]); + * ["scope1", ["key1", "value1"], ["key2", "value2"])] call stats_set; * * * @param {String} _scope Name of the scope to use @@ -126,7 +126,7 @@ stats_set = { * e.g. * * //push the value into the array at "key1" within "scope1" -* stats_push("scope1", "key1", "value1"); +* ["scope1", "key1", "value1"] call stats_push; * * @param {String} _scope Name of the scope to use * @param {String} _key Name of the key to push into @@ -142,7 +142,7 @@ stats_set = { * e.g. * * //push values into arrays at "key1", and "key2" within "scope1" - * stats_push("scope1", ["key1", "value1"], ["key2", "value2"]); + * ["scope1", ["key1", "value1"], ["key2", "value2"]] call stats_push; * * * @param {String} _scope Name of the scope to use @@ -163,7 +163,7 @@ stats_push = { * e.g. * * //unshift the value into the array at "key1" within "scope1" -* stats_unshift("scope1", "key1", "value1"); +* ["scope1", "key1", "value1"] call stats_unshift; * * @param {String} _scope Name of the scope to use * @param {String} _key Name of the key to unshift into @@ -179,7 +179,7 @@ stats_push = { * e.g. * * //unshift values into arrays at "key1", and "key2" within "scope1" - * stats_unshift("scope1", ["key1", "value1"], ["key2", "value2"]); + * ["scope1", ["key1", "value1"], ["key2", "value2"]] call stats_unshift; * * * @param {String} _scope Name of the scope to use @@ -194,6 +194,60 @@ stats_unshift = { (["unshift", _this] call stats_write) }; +/** +* This function merges the given {@code _value} with the existing value at the specified {@code _key}, and within the given scope {@code _scope} +* +* e.g. +* +* //merges the _hash into the existing value at "key1" +* private["_hash"]; +* _hash = [ +* ["child1", "val1"], +* ["child2", "val2"] +* ] call sock_hash; +* +* ["scope1", "key1", _hash] call stats_merge; +* +* @param {String} _scope Name of the scope to use +* @param {String} _key Name of the key to merge into +* @param {*} _value Value to merge +* +* @returns {boolean} true on success, false on failure +*/ + + +/** + * This function merges one or more values into the existing values at the specified keys within the given {@code _scope} + * + * e.g. + * + * private["_hash1", "_hash2"]; + * _hash1 = [ + * ["child1", "val1"], + * ["child2", "val2"] + * ] call sock_hash; + * + * _hash12= [ + * ["child1", "val1"], + * ["child2", "val2"] + * ] call sock_hash; + * + * //merges _hash1 into the value at "key1", and _hash2 into the value at "key2" + * ["scope1", ["key1", _hash1], ["key2", _hash2]] call stats_merge; + * + * + * @param {String} _scope Name of the scope to use + * @param {...Array} _pair Key-value pair + * @param {String} _pair[0] Name of the key to merge into + * @param {*} _pair[1] Value to merge + * + * @returns true on success, false on failure + * + */ + +stats_merge = { + (["merge", _this] call stats_write) +}; stats_write = { if (isNil "_this") exitWith {false}; @@ -238,7 +292,7 @@ stats_write = { * stats_get("scope", "key1"); * * //get the value for "key1", or use "default1" if not found -* stats_get("scope", "key1", "default1") +* ["scope", "key1", "default1"] call stats_get; * * @param {String} _scope Name of the scope to use * @param {String} _key Name of the key to set @@ -255,12 +309,12 @@ stats_write = { * e.g. * * //get the values for all keys within "scope1" -* stats_get("scope1") +* ["scope1"] call stats_get; * * //get the values for "key1", "key2", and "key3" -* stats_get("scope1", ["key1", "default1"], [key2, "default2"], ["key3"]) +* ["scope1", ["key1", "default1"], [key2, "default2"], ["key3"]] call stats_get; +* * - * @param {Strnig} _scope Name of the scope to use * @param {...Array} [_pair] One or more key-value pairs to retrieve * @param {String} [_pair[0]] Name of the key @@ -273,7 +327,7 @@ stats_write = { * * [["key1","value1"],["key2", "value2"],...] * -* On failure, returns null +* On failure, returns nil * */ @@ -289,10 +343,10 @@ stats_get = { * e.g. * * //pop the value for array at "key1" -* stats_pop("scope", "key1"); +* ["scope", "key1"] call stats_pop; * * //pop the value for array at "key1", or use "default1" if not found -* stats_pop("scope", "key1", "default1") +* ["scope", "key1", "default1"] call stats_pop; * * @param {String} _scope Name of the scope to use * @param {String} _key Name of the key to pop value off @@ -310,7 +364,7 @@ stats_get = { * * * //pop the values for arrays at "key1", "key2", and "key3" -* stats_pop("scope1", ["key1", "default1"], [key2, "default2"], ["key3"]) +* ["scope1", ["key1", "default1"], [key2, "default2"], ["key3"]] call stats_pop; * * @param {Strnig} _scope Name of the scope to use @@ -325,7 +379,7 @@ stats_get = { * * [["key1","value1"],["key2", "value2"],...] * -* On failure, returns null +* On failure, returns nil * */ @@ -340,10 +394,10 @@ stats_pop = { * e.g. * * //shift the value for array at "key1" -* stats_shift("scope", "key1"); +* ["scope", "key1"] call stats_shift; * * //shift the value for array at "key1", or use "default1" if not found -* stats_shift("scope", "key1", "default1") +* ["scope", "key1", "default1"] call stats_shift; * * @param {String} _scope Name of the scope to use * @param {String} _key Name of the key to shift value out @@ -361,9 +415,9 @@ stats_pop = { * * * //shift the values for arrays at "key1", "key2", and "key3" -* stats_shift("scope1", ["key1", "default1"], [key2, "default2"], ["key3"]) +* ["scope1", ["key1", "default1"], [key2, "default2"], ["key3"]] call stats_shift; +* * - * @param {Strnig} _scope Name of the scope to use * @param {...Array} [_pair] One or more key-value pairs to retrieve * @param {String} [_pair[0]] Name of the key to shift value out @@ -376,13 +430,159 @@ stats_pop = { * * [["key1","value1"],["key2", "value2"],...] * -* On failure, returns null +* On failure, returns nil * */ stats_shift = { (["shift", _this] call stats_read) }; +/** +* This function counts the child keys within the given {@code _scope} +* +* e.g. +* +* //count child keys at "scope1" +* ["scope"] call stats_count; +* +* +* @param {String} _scope Name of the scope to use +* +* @return +* +* The count of child keys at the specified {@code _scope} +* +*/ + +/** +* This function counts the child keys at the specified {@code _key}, within the given {@code _scope} +* +* e.g. +* +* //count child keys at "key1" +* ["scope", "key1"] call stats_count; +* +* //count the child keys at "key1", or use -1 if not found +* ["scope", "key1", -1] call stats_count; +* +* @param {String} _scope Name of the scope to use +* @param {String} _key Name of the key where child keys will be counted +* @param {*} [_default] Default value to use if {@code _key} does not exist +* @return +* +* The count of child keys at the specified {@code _key} +* +*/ + +/** +* This function counts the child keys for one or more of the specified keys, within the given {@code _scope} +* +* e.g. +* +* +* //count the child keys at "key1", "key2", and "key3" +* ["scope1", ["key1", -1], [key2, -1], ["key3", -1]] call stats_count; +* +* +* @param {Strnig} _scope Name of the scope to use +* @param {...Array} [_pair] One or more key-value pairs +* @param {String} [_pair[0]] Name of the key where child keys will be counted +* @param {*} [_pair[1]] Default value to use, if key is not found +* +* @return +* +* On success, returns array containing the key-value pairs. +* e.g. +* +* [["key1", 0],["key2", 2], ["key3", -1], ...] +* +* On failure, returns nil +* +*/ +stats_count = { + (["count", _this] call stats_read) +}; + + + +/** +* This function retrieves the names of child keys within the given {@code _scope} +* +* e.g. +* +* //retrieve the names of child keys at "scope1" +* ["scope"] call stats_keys; +* +* +* @param {String} _scope Name of the scope to use +* +* @return +* +* Array containing the names of child keys +* +* e.g. +* +* ["key1", "key2", "key3", ...] +* +* +*/ + +/** +* This function retrievs the names of child keys at the specified {@code _key}, within the given {@code _scope} +* +* e.g. +* +* //retrieve the names of child keys at "key1" +* ["scope", "key1"] call stats_keys; +* +* //retrieve the names of child keys at "key1", or use nil if not found +* ["scope", "key1", nil] call stats_keys; +* +* @param {String} _scope Name of the scope to use +* @param {String} _key Name of the key where the names of child keys will be retrieved +* @param {*} [_default] Default value to use if {@code _key} does not exist +* @return +* +* On success returns an array with the names of the child keys within specified {@code _key} +* +* e.g. +* +* [ "a", "b", "c"] +* +* On failure, or if the key is not found, returns the default value +* +*/ + +/** +* This function retrieves the names of child keys for one or more of the specified keys, within the given {@code _scope} +* +* e.g. +* +* +* //retrieve the names of child keys at "key1", "key2", and "key3" +* ["scope1", ["key1", nil], ["key2", []], ["key3", nil]] call stats_keys; +* +* +* @param {Strnig} _scope Name of the scope to use +* @param {...Array} [_pair] One or more key-value pairs +* @param {String} [_pair[0]] Name of the key where the names of chikd keys will be retreived +* @param {*} [_pair[1]] Default value to use, if key is not found +* +* @return +* +* On success, returns array containing the key-value pairs. +* e.g. +* +* [["key1", ["a", "b", "c"]],["key2", []], ["key3", nil], ...] +* +* On failure, returns nil +* +*/ + +stats_keys = { + (["keys", _this] call stats_read) +}; + stats_read = { if (isNil "_this") exitWith {}; @@ -398,26 +598,53 @@ stats_read = { def(_result); _result = [_method, _params] call sock_rpc; - //get(scope, key, default) - Expect anything - if (isSTRING(xGet(_params,1))) exitWith { + + /* For single result operations, - Expect anything + * get(scope, key, default) + * shift(scope, key default) + * pop(scope, key, default) + * count(scope) + * keys(scope) + * Expect anything as the result + */ + if (isSTRING(xGet(_params,1)) || { + ((["keys","count"] find _method) >= 0 && { undefined(xGet(_params,1))}) + }) exitWith { OR(_result,nil) }; - //get(scope) or get(scope, pair, ...) - Expect [["k", "v"],["k", "v"],...] - _result = OR(_result,false); + /* For multi result operations, + * get(scope) + * get(scope, [k,v],...) + * pop(scope, [k,v],...) + * shift(scope, [k,v],...) + * keys(scope, [k,v],...) + * count(scope, [k,v],...) + * Expect as result + * + * A code {[["k", "v"],["k", "v"],...]} for a sucessful response + * A string result might indicate an error message + * A nil result is an outright failure + */ + + + if (undefined(_result)) exitWith { + format["was expecting _result of typeName %1, but instead got nil during %2 operation", typeName {}, _method] call stats_log_severe; + nil + }; + //an error must have occurred if (isSTRING(_result)) exitWith { _result call stats_log_severe; - false + nil }; if (not(isCODE(_result))) exitWith { - format["was expecting _result of typeName %1, but instead got typeName %2", typeName {}, typeName _result] call stats_log_severe; - false + format["was expecting _result of typeName %1, but instead got typeName %2 during %3 operation", typeName {}, typeName _result, _method] call stats_log_severe; + nil }; (call _result) - }; /** From f7007ad914ff474535a11babb60d69fde43b865d Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 22 Oct 2014 03:53:33 -0700 Subject: [PATCH 031/544] Update README.md --- README.md | 54 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index a9c520e48..b5c50fc6e 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,61 @@ -This is a fork of the Wasteland mission with persistence support using the Node.js module [sock-rpc-stats](https://www.npmjs.org/package/sock-rpc-stats), and the [sock.dll / sock.so](https://bitbucket.org/micovery/sock.dll) Arma 3 extension. +###Wasteland.Altis (Sock-RPC-Stats fork) ### + +This is a fork of the Wasteland mission with persistence support using the [sock-rpc-stats Node.js module](https://www.npmjs.org/package/sock-rpc-stats), and the [sock.dll / sock.so](https://bitbucket.org/micovery/sock.dll) Arma 3 extension. The main mission itself is maintained by "Team Wasteland". -For defects related to the mission please visit their [forums](http://forums.a3wasteland.com/), or submit issues directly to their [github repository](https://github.com/A3Wasteland/ArmA3_Wasteland.Altis/issues) -For defects related to persistence, use the [issue tracker](https://github.com/micovery/ArmA3_Wasteland.Altis/issues) in this repository. +###Demo video tutorial (dedicated server)### + + +[![Demo Video](http://img.youtube.com/vi/-NIziTcKwok/0.jpg)](http://www.youtube.com/watch?v=-NIziTcKwok) -If you are looking for the prebuilt PBO files head over to the [Release_Files repository](https://github.com/micovery/Release_Files/tree/master/sock-rpc-stats). There also instructions, and a video of how to setup the mission. +### Prerequisites ### + * Download and install [Node.js](http://nodejs.org/download/) + * Install Arma 3 dedicated server by following [these instructions](https://community.bistudio.com/wiki/Arma_3_Dedicated_Server) from the BIS Wiki + +###Linux Setup Instructions (dedicated server)### +0. Install the stats server packages using npm +
npm install -g sock-rpc-stats
+0. Start the Stats server (example below using file system storage) +
sock-rpc-stats --url=file://./stats --repl
+0. Open a new terminal, and switch to the Arma 3 server directory +
cd ~/steamcmd/arma3
+0. Download and unzip the Wasteland saving pack +
wget https://github.com/micovery/Release_Files/raw/master/sock-rpc-stats/A3W_Saving_Pack-sock.zip
+
unzip A3W_Saving_Pack-sock.zip
+0. Download misison file, and put it in the mpmissions directory +
wget https://github.com/micovery/Release_Files/raw/master/sock-rpc-stats/ArmA3_Wasteland_v0.9h-sock.Altis.pbo
+
mv ArmA3_Wasteland_v0.9h-sock.Altis.pbo mpmissions/
+0. Modify your server config file to reference the Wasteland mission +
+  //excerpt from server.cfg
+  class Missions {
+    class Test {
+      template="ArmA3_Wasteland_v0.9h-sock.Altis";
+      difficulty="regular";
+    };
+  };
+
+0. Start the Arma 3 server +
./arma3server -sock_host=127.0.0.1 -sock_port=1337 -profiles=server -config=server/server.cfg -cfg=server/arma3.cfg -port=2302
-*Wasteland.Altis* by Team Wasteland! -=================== +### PBOs ### -ArmA 3 Wasteland is a harsh survival sandbox mission where 2 teams and independent players fight for survival. +If you are looking for the prebuilt PBO files head over to the [Release Files](https://github.com/micovery/ArmA3_Wasteland.Altis/releases/). +###Help### + + +For defects related to the mission please visit their [forums](http://forums.a3wasteland.com/), or submit issues directly to their [github repository](https://github.com/A3Wasteland/ArmA3_Wasteland.Altis/issues) + +For defects related to persistence, use the [issue tracker](https://github.com/micovery/ArmA3_Wasteland.Altis/issues) in this repository. -The mission is not ready yet, so for now it's just a placeholder :) -*Team Wasteland* collaborators: +### *Team Wasteland* ### GoT - JoSchaap TPG - AgentRev From f09534f27bf7470aeb76434a5aa3c23f9aa880f7 Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 22 Oct 2014 03:59:24 -0700 Subject: [PATCH 032/544] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b5c50fc6e..1f8a7a891 100644 --- a/README.md +++ b/README.md @@ -24,17 +24,17 @@ The main mission itself is maintained by "Team Wasteland". 0. Open a new terminal, and switch to the Arma 3 server directory
cd ~/steamcmd/arma3
0. Download and unzip the Wasteland saving pack -
wget https://github.com/micovery/Release_Files/raw/master/sock-rpc-stats/A3W_Saving_Pack-sock.zip
-
unzip A3W_Saving_Pack-sock.zip
+
wget https://github.com/micovery/ArmA3_Wasteland.Altis/releases/download/v0.0.1/A3W_Saving_Pack-sock_v0.0.1.zip
+
unzip A3W_Saving_Pack-sock_v0.0.1.zip
0. Download misison file, and put it in the mpmissions directory -
wget https://github.com/micovery/Release_Files/raw/master/sock-rpc-stats/ArmA3_Wasteland_v0.9h-sock.Altis.pbo
-
mv ArmA3_Wasteland_v0.9h-sock.Altis.pbo mpmissions/
+
wget https://github.com/micovery/ArmA3_Wasteland.Altis/releases/download/v0.0.1/ArmA3_Wasteland_v0.9h-sock_v0.0.1.Altis.pbo
+
mv ArmA3_Wasteland_v0.9h-sock_v0.0.1.Altis.pbo mpmissions/
0. Modify your server config file to reference the Wasteland mission
   //excerpt from server.cfg
   class Missions {
     class Test {
-      template="ArmA3_Wasteland_v0.9h-sock.Altis";
+      template="ArmA3_Wasteland_v0.9h-sock_v0.0.1.Altis";
       difficulty="regular";
     };
   };

From 78d48beaddf92468bc2931ed4a97bd3d55ec15ee Mon Sep 17 00:00:00 2001
From: micovery 
Date: Wed, 22 Oct 2014 04:00:20 -0700
Subject: [PATCH 033/544] Update README.md

---
 README.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index 1f8a7a891..7553a8bbd 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,9 @@ This is a fork of the Wasteland mission with persistence support using the [sock
 
 The main mission itself is maintained by "Team Wasteland".
 
+### PBOs ###
+
+If you are looking for the prebuilt PBO files head over to the [Release Files](https://github.com/micovery/ArmA3_Wasteland.Altis/releases/). 
 
 ###Demo video tutorial (dedicated server)###
 
@@ -42,9 +45,6 @@ The main mission itself is maintained by "Team Wasteland".
 0. Start the Arma 3 server
 
./arma3server -sock_host=127.0.0.1 -sock_port=1337 -profiles=server -config=server/server.cfg -cfg=server/arma3.cfg -port=2302
-### PBOs ### - -If you are looking for the prebuilt PBO files head over to the [Release Files](https://github.com/micovery/ArmA3_Wasteland.Altis/releases/). ###Help### From d59e7aae941e99373d51590d799c752a18dc2e7a Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 22 Oct 2014 04:46:09 -0700 Subject: [PATCH 034/544] fix #1 player not taking damage --- persistence/players/pFunctions.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 863a693f3..c389387a8 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -499,6 +499,7 @@ p_restoreData = { def(_exit); _exit = { playerData_loaded = true; + player allowDamage true; }; def(_data); @@ -515,7 +516,7 @@ p_restoreData = { }; playerData_alive = true; - [_data] spawn fn_applyPlayerData; + [_data] call fn_applyPlayerData; call _exit; }; From 6bddca7bc5f295a4328d432d65a302eb81f762ac Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 22 Oct 2014 21:27:23 -0700 Subject: [PATCH 035/544] fix #6 firstSpawn logic not executed when player stats are restored --- persistence/players/pFunctions.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index c389387a8..925d9900b 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -498,8 +498,9 @@ p_restoreData = { def(_exit); _exit = { - playerData_loaded = true; player allowDamage true; + call p_firstSpawn; + playerData_loaded = true; }; def(_data); @@ -511,7 +512,6 @@ p_restoreData = { if (!_dataValid) exitWith { format["saved data for %1 is not valid;", player] call p_log_finest; playerData_resetPos = true; - call p_firstSpawn; call _exit; }; From fe09a0e444dfe07fb0317b9734bdb4f1a12988d6 Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 23 Oct 2014 11:40:24 -0700 Subject: [PATCH 036/544] fix #8 add new config variables to default_config.sqf --- persistence/world/vFunctions.sqf | 24 ++---------------------- server/default_config.sqf | 3 +++ 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 0f336cd0d..da22f2d27 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -5,28 +5,8 @@ diag_log "vFunctions.sqf loading ..."; /** * List of class names of locked objects. */ -VLOAD_LOCKED = -[ - "StaticWeapon", - "MRAP_01_base_F", - "MRAP_02_base_F", - "MRAP_03_base_F", - "O_Truck_03_device_F", - "Wheeled_APC_F", - "Tank_F", - "O_Heli_Light_02_unarmed_F", - "I_Heli_light_03_unarmed_F", - "I_Heli_Transport_02_F", - "B_Heli_Transport_01_F", - "B_Heli_Transport_01_camo_F", - "B_Heli_Light_01_armed_F", - "O_Heli_Light_02_F", - "I_Heli_light_03_F", - "B_Heli_Attack_01_F", - "O_Heli_Attack_02_F", - "O_Heli_Attack_02_black_F", - "Plane" -]; +VLOAD_LOCKED = OR(A3W_locked_vehicles_list,[]); + v_isStaticWeapon = { ARGVX4(0,_class,"",false); diff --git a/server/default_config.sqf b/server/default_config.sqf index 5ba19a622..697ef002d 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -39,6 +39,9 @@ A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts A3W_objectLifetime = 5*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc.) across server restarts (0 = no time limit) PDB_PlayerFileID = "A3W_"; // Player savefile prefix (change this in case you run multiple servers from the same folder) PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in case you run multiple servers from the same folder) +A3W_vehicle_saveInterval = 60; // Number of seconds between vehicle saves +A3W_object_saveInterval = 60; // Number of seconds between object saves +A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked unpon restore // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) From d1dd272730683675f003b7f4bdd1e2a9a9967f6d Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 23 Oct 2014 11:57:25 -0700 Subject: [PATCH 037/544] fix #8 add config for maximum vehicle life time --- server/default_config.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/server/default_config.sqf b/server/default_config.sqf index 697ef002d..b94b2fa11 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -42,6 +42,7 @@ PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in cas A3W_vehicle_saveInterval = 60; // Number of seconds between vehicle saves A3W_object_saveInterval = 60; // Number of seconds between object saves A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked unpon restore +A3W_vehicleLifetime = 36; // Maximum lifetime in hours for saved vehicles (leave it unset, or set to 0 for no limit) // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) From 2ac4b448bbc00083a274009cd14730e73f5d7c8b Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 23 Oct 2014 15:53:01 -0700 Subject: [PATCH 038/544] fix #9 and #10 save owner name for objects, also fix alloDamage being set back to 0 when restoring objects --- .../objet_deplacable/objectLockStateMachine.sqf | 2 ++ persistence/world/oFunctions.sqf | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf index d46bf43cc..3f0ced9d9 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf @@ -56,6 +56,8 @@ switch (_lockState) do { _object setVariable ["objectLocked", true, true]; _object setVariable ["ownerUID", getPlayerUID player, true]; + _object setVariable ["ownerN", name player, true]; + ["Object locked!", 5] call mf_notify_client; }; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index bf5678230..bc33ae6fd 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -177,7 +177,7 @@ o_restoreObject = {_this spawn { def(_class); def(_dir); def(_damage); - def(_allow_damage); + def(_allowDamage); def(_texture); def(_variables); def(_cargo_weapons); @@ -200,7 +200,7 @@ o_restoreObject = {_this spawn { case "Position": { _pos = OR(_value,nil);}; case "Direction": { _dir = OR(_value,nil);}; case "Damage": { _damage = OR(_value,nil);}; - case "AllowDamage": { _allow_damage = OR(_value,nil);}; + case "AllowDamage": { _allowDamage = OR(_value,nil);}; case "Texture": { _texture = OR(_value,nil);}; case "Weapons": { _cargo_weapons = OR(_value,nil);}; case "Items": { _cargo_items = OR(_value,nil);}; @@ -276,7 +276,7 @@ o_restoreObject = {_this spawn { _obj setDamage _damage; }; - _allowDamage = if(isSCALAR(_allowDamage) && {_allowDamage > 0}) then { true } else { false}; + _allowDamage = if(isSCALAR(_allowDamage) && {_allowDamage <= 0}) then { false } else { true }; _obj setVariable ["allowDamage", _allowDamage]; _obj allowDamage _allowDamage; @@ -377,6 +377,12 @@ o_fillVariables = { if (isSTRING(_ownerUID)) then { _variables pushBack ["ownerUID", _ownerUID]; }; + + def(_ownerN); + _ownerN = _obj getVariable "ownerN"; + if (isSTRING(_ownerN)) then { + _variables pushBack ["ownerN", _ownerN]; + }; if ([_obj] call o_isBox) then { _variables pushBack ["cmoney", _obj getVariable ["cmoney", 0]]; From b54f41c7cccbef0da9907798790805d184d60578 Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 23 Oct 2014 16:00:23 -0700 Subject: [PATCH 039/544] save vehicle hitpoints, and fuel, and overall damage --- persistence/world/vFunctions.sqf | 50 ++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index da22f2d27..51efbb737 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -126,7 +126,6 @@ v_restoreVehicle = {_this spawn { def(_class); def(_dir); def(_damage); - def(_allow_damage); def(_texture); def(_variables); def(_cargo_weapons); @@ -137,11 +136,13 @@ v_restoreVehicle = {_this spawn { def(_cargo_ammo); def(_cargo_fuel); def(_cargo_repair); + def(_fuel); + def(_hitPoints); + def(_key); def(_value); - { _key = _x select 0; _value = _x select 1; @@ -150,7 +151,6 @@ v_restoreVehicle = {_this spawn { case "Position": { _pos = OR(_value,nil);}; case "Direction": { _dir = OR(_value,nil);}; case "Damage": { _damage = OR(_value,nil);}; - case "AllowDamage": { _allow_damage = OR(_value,nil);}; case "Texture": { _texture = OR(_value,nil);}; case "Weapons": { _cargo_weapons = OR(_value,nil);}; case "Items": { _cargo_items = OR(_value,nil);}; @@ -161,8 +161,9 @@ v_restoreVehicle = {_this spawn { case "AmmoCargo": { _cargo_ammo = OR(_value,nil);}; case "FuelCargo": { _cargo_fuel = OR(_value,nil);}; case "RepairCargo": { _cargo_repair = OR(_value,nil);}; - case "TurretMagazines": { _turret_magazines = OR(_value,nil);}; - + //case "TurretMagazines": { _turret_magazines = OR(_value,nil);}; + case "Fuel": { _fuel = OR(_value,nil);}; + case "Hitpoints": { _hitPoints = OR(_value,nil);}; }; } forEach _vehicle_data; @@ -223,10 +224,15 @@ v_restoreVehicle = {_this spawn { if (isSCALAR(_damage)) then { _obj setDamage _damage; }; + + if (isSCALAR(_fuel)) then { + _obj setFuel _fuel; + }; + + if (isARRAY(_hitPoints)) then { + { _obj setHitPointDamage _x } forEach _hitPoints; + }; - _allowDamage = if(isSCALAR(_allowDamage) && {_allowDamage > 0}) then { true } else { false}; - _obj setVariable ["allowDamage", _allowDamage]; - _obj allowDamage _allowDamage; //restore vehicle variables if (isARRAY(_variables)) then { @@ -251,7 +257,7 @@ v_restoreVehicle = {_this spawn { clearMagazineCargoGlobal _obj; clearItemCargoGlobal _obj; clearBackpackCargoGlobal _obj; - _obj setVehicleAmmo 0; + //_obj setVehicleAmmo 0; if (isARRAY(_cargo_weapons)) then { { _obj addWeaponCargoGlobal _x } forEach _cargo_weapons; @@ -331,12 +337,10 @@ v_addSaveVehicle = { def(_pos); def(_dir); def(_damage); - def(_allowDamage); def(_texture); def(_spawnTime); def(_hoursAlive); def(_hoursSinceSpawn); - def(_ownerUID); _class = typeOf _obj; _netId = netId _obj; @@ -345,12 +349,10 @@ v_addSaveVehicle = { _pos set [2, ((_pos select 2) + 0.3)]; _dir = [vectorDir _obj, vectorUp _obj]; _damage = damage _obj; - _allowDamage = 1; _texture = _obj getVariable ["A3W_objectTexture", ""]; _spawnTime = _obj getVariable "baseSaving_spawningTime"; _hoursAlive = _obj getVariable "baseSaving_hoursAlive"; - _ownerUID = _obj getVariable ["ownerUID",""]; - + if (isNil "_spawnTime") then { _spawnTime = diag_tickTime; _obj setVariable ["baseSaving_spawningTime", _spawnTime, true]; @@ -366,8 +368,12 @@ v_addSaveVehicle = { def(_variables); _variables = []; - - _variables pushBack ["ownerUID", _ownerUID]; + + def(_ownerUID); + _ownerUID = _obj getVariable ["ownerUID", nil]; + if (isSTRING(_ownerUID) && {_ownerUID != ""}) then { + _variables pushBack ["ownerUID", _ownerUID];; + }; def(_ownerN); _ownerN = _obj getVariable ["ownerN", nil]; @@ -391,9 +397,16 @@ v_addSaveVehicle = { _turretMags = magazinesAmmo _obj; }; + init(_hitPoints,[]); + { + _hitPoint = configName _x; + _hitPoints pushBack [_hitPoint, _obj getHitPointDamage _hitPoint]; + } forEach (_obj call getHitPoints); + init(_ammoCargo,getAmmoCargo _obj); init(_fuelCargo,getFuelCargo _obj); init(_repairCargo,getRepairCargo _obj); + init(_fuel, fuel _obj); def(_objName); _objName = _obj getVariable ["vehicle_key", nil]; @@ -409,7 +422,7 @@ v_addSaveVehicle = { ["Direction", _dir], ["HoursAlive", _totalHours], ["Damage", _damage], - ["AllowDamage", _allowDamage], + ["Fuel", _fuel], ["Variables", _variables], ["Texture", _texture], ["Weapons", _weapons], @@ -419,7 +432,8 @@ v_addSaveVehicle = { ["TurretMagazines", _turretMags], ["AmmoCargo", _ammoCargo], ["FuelCargo", _fuelCargo], - ["RepairCargo", _repairCargo] + ["RepairCargo", _repairCargo], + ["Hitpoints", _hitPoints] ] call sock_hash)]; From 583ddceec3c6577501b5122017f9a78280137f7a Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 23 Oct 2014 18:40:53 -0700 Subject: [PATCH 040/544] fix #12, do not save vehicle wrecks --- persistence/world/vFunctions.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 51efbb737..45a13dae9 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -319,6 +319,7 @@ def(_obj); v_vehicleIsSaveble = { ARGVX4(0,_obj,objNull,false); + if (not(alive _obj)) exitWith {false}; if (not([_obj] call v_isVehicle)) exitWith {false}; if (not(isNil{_obj getVariable "vehicle_key"})) exitWith {true}; if (not(isNil{_obj getVariable "A3W_purchasedStoreObject"})) exitWith {true}; From 558866dca5c86c9e3dd1cf3246e4ed2b7c13f783 Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 23 Oct 2014 22:44:38 -0700 Subject: [PATCH 041/544] add restart message handler --- persistence/fn_inidb_custom.sqf | 10 +- persistence/players/pFunctions.sqf | 288 ++++++++++++------------ persistence/players/sFunctions.sqf | 170 ++++++++++++++ persistence/players/s_setupPlayerDB.sqf | 22 +- persistence/world/oFunctions.sqf | 8 +- persistence/world/vFunctions.sqf | 4 +- 6 files changed, 337 insertions(+), 165 deletions(-) create mode 100644 persistence/players/sFunctions.sqf diff --git a/persistence/fn_inidb_custom.sqf b/persistence/fn_inidb_custom.sqf index dd4075078..84800a09f 100644 --- a/persistence/fn_inidb_custom.sqf +++ b/persistence/fn_inidb_custom.sqf @@ -15,11 +15,11 @@ if (!isServer) exitWith {}; _savingMethod = ["A3W_savingMethod", 1] call getPublicVar; -if (!isNil "PDB_ServerID") then -{ - PDB_PlayerFileID = PDB_ServerID; - PDB_ObjectFileID = PDB_ServerID; -}; + +PDB_ServerID = if (isNil "PDB_ServerID") then {"A3W"} else {PDB_ServerID}; +PDB_PlayerFileID = if (isNil "PDB_PlayerFileID") then {PDB_ServerID} else {PDB_PlayerFileID}; +PDB_ObjectFileID = if (isNil "PDB_ObjectFileID") then {PDB_ServerID} else {PDB_ObjectFileID}; + PDB_playerFileName = compileFinal ("format ['%1%2', '" + PDB_PlayerFileID + "', _this]"); PDB_objectFileName = compileFinal ("format ['%1%2', '" + PDB_ObjectFileID + "', _this]"); diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 925d9900b..3ccdcabeb 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -254,178 +254,179 @@ fn_savePlayerData = { if (isDedicated) exitWith {}; if (isCODE(savePlayerHandle) && {!scriptDone savePlayerHandle}) exitWith {}; - savePlayerHandle = _this spawn { - if (alive player && - {!isNil "isConfigOn" && {["A3W_playerSaving"] call isConfigOn}} && - {!isNil "playerSetupComplete" && {playerSetupComplete}} && - {!isNil "respawnDialogActive" && {!respawnDialogActive}} && - {player getVariable ["FAR_isUnconscious", 0] == 0}) then { - _UID = getPlayerUID player; - _manualSave = [_this, 0, false, [false]] call BIS_fnc_param; - - // In case script is triggered via menu action - if (!_manualSave) then { - _manualSave = [_this, 3, false, [false]] call BIS_fnc_param; - }; + ARGV4(0,_manual_save,false,false); - _info = - [ - ["UID", _UID], - ["Name", name player], - ["LastGroupSide", str side group player], - ["LastPlayerSide", str playerSide], - ["BankMoney", player getVariable ["bmoney", 0]] - ]; - _hitPoints = []; - { - _hitPoint = configName _x; - _hitPoints pushBack [_hitPoint, player getHitPointDamage _hitPoint]; - } forEach (player call getHitPoints); - - _data = - [ - ["Damage", damage player], - ["HitPoints", _hitPoints], - ["Hunger", ["hungerLevel", 0] call getPublicVar], - ["Thirst", ["thirstLevel", 0] call getPublicVar], - ["Money", player getVariable ["cmoney", 0]] // Money is always saved, but only restored if A3W_moneySaving = 1 - ]; - - // Only save those when on ground or underwater (you probably wouldn't want to spawn 500m in the air if you get logged off in flight) - if (isTouchingGround vehicle player || {(getPos player) select 2 < 0.5 || (getPosASL player) select 2 < 0.5}) then { - _data pushBack ["Position", getPosATL player]; - _data pushBack ["Direction", direction player]; - - if (vehicle player == player) then - { - _data pushBack ["CurrentWeapon", format ["%1", currentMuzzle player]]; // currentMuzzle returns a number sometimes, hence the format - _data pushBack ["Stance", [player, ["P"]] call getMoveParams]; - }; - }; + savePlayerHandle = ["savePlayerData"] spawn p_savePlayerData; - _gear = - [ - ["Uniform", uniform player], - ["Vest", vest player], - ["Backpack", backpack player], - ["Goggles", goggles player], - ["Headgear", headgear player], + if (isCODE(savePlayerHandle)) then { + _savePlayerHandle = savePlayerHandle; + waitUntil {scriptDone _savePlayerHandle}; + savePlayerHandle = nil; + }; - ["PrimaryWeapon", primaryWeapon player], - ["SecondaryWeapon", secondaryWeapon player], - ["HandgunWeapon", handgunWeapon player], + if (_manual_save) then { + cutText ["\nPlayer saved!", "PLAIN DOWN", 0.2]; + }; +}; - ["PrimaryWeaponItems", primaryWeaponItems player], - ["SecondaryWeaponItems", secondaryWeaponItems player], - ["HandgunItems", handgunItems player], +p_isPlayerSaveable = { + ( + alive player && + {!isNil "isConfigOn" && {["A3W_playerSaving"] call isConfigOn}} && + {!isNil "playerSetupComplete" && {playerSetupComplete}} && + {!isNil "respawnDialogActive" && {!respawnDialogActive}} && + {player getVariable ["FAR_isUnconscious", 0] == 0} + ) +}; - ["AssignedItems", assignedItems player] - ]; +p_savePlayerData = { + ARGVX3(0,_reply_variable,""); + if (not(call p_isPlayerSaveable)) exitWith {}; + def(_UID); + _UID = getPlayerUID player; - _uMags = []; - _vMags = []; - _bMags = []; - _partialMags = []; + _info = + [ + ["UID", _UID], + ["Name", name player], + ["LastGroupSide", str side group player], + ["LastPlayerSide", str playerSide], + ["BankMoney", player getVariable ["bmoney", 0]] + ]; - { - _magArr = _x select 0; + _hitPoints = []; + { + _hitPoint = configName _x; + _hitPoints pushBack [_hitPoint, player getHitPointDamage _hitPoint]; + } forEach (player call getHitPoints); + + _data = + [ + ["Damage", damage player], + ["HitPoints", _hitPoints], + ["Hunger", ["hungerLevel", 0] call getPublicVar], + ["Thirst", ["thirstLevel", 0] call getPublicVar], + ["Money", player getVariable ["cmoney", 0]] // Money is always saved, but only restored if A3W_moneySaving = 1 + ]; + + // Only save those when on ground or underwater (you probably wouldn't want to spawn 500m in the air if you get logged off in flight) + if (isTouchingGround vehicle player || {(getPos player) select 2 < 0.5 || (getPosASL player) select 2 < 0.5}) then { + _data pushBack ["Position", getPosATL player]; + _data pushBack ["Direction", direction player]; + + if (vehicle player == player) then { + _data pushBack ["CurrentWeapon", format ["%1", currentMuzzle player]]; // currentMuzzle returns a number sometimes, hence the format + _data pushBack ["Stance", [player, ["P"]] call getMoveParams]; + }; + }; - { - _mag = _x select 0; - _ammo = _x select 1; + _gear = + [ + ["Uniform", uniform player], + ["Vest", vest player], + ["Backpack", backpack player], + ["Goggles", goggles player], + ["Headgear", headgear player], - if (_ammo == getNumber (configFile >> "CfgMagazines" >> _mag >> "count")) then - { - [_magArr, _mag, 1] call fn_addToPairs; - } - else - { - if (_ammo > 0) then - { - _partialMags pushBack [_mag, _ammo]; - }; - }; - } forEach magazinesAmmoCargo (_x select 1); - } - forEach - [ - [_uMags, uniformContainer player], - [_vMags, vestContainer player], - [_bMags, backpackContainer player] - ]; + ["PrimaryWeapon", primaryWeapon player], + ["SecondaryWeapon", secondaryWeapon player], + ["HandgunWeapon", handgunWeapon player], + + ["PrimaryWeaponItems", primaryWeaponItems player], + ["SecondaryWeaponItems", secondaryWeaponItems player], + ["HandgunItems", handgunItems player], - _loadedMags = []; + ["AssignedItems", assignedItems player] + ]; + + + _uMags = []; + _vMags = []; + _bMags = []; + _partialMags = []; + + { + _magArr = _x select 0; { _mag = _x select 0; _ammo = _x select 1; - _loaded = _x select 2; - _type = _x select 3; - // if loaded in weapon, not empty, and not hand grenade - if (_loaded && _ammo > 0 && _type != 0) then - { - _loadedMags pushBack [_mag, _ammo]; + if (_ammo == getNumber (configFile >> "CfgMagazines" >> _mag >> "count")) then { + [_magArr, _mag, 1] call fn_addToPairs; + } + else { + if (_ammo > 0) then { + _partialMags pushBack [_mag, _ammo]; + }; }; - } forEach magazinesAmmoFull player; + } forEach magazinesAmmoCargo (_x select 1); + } + forEach + [ + [_uMags, uniformContainer player], + [_vMags, vestContainer player], + [_bMags, backpackContainer player] + ]; - _data pushBack ["UniformWeapons", (getWeaponCargo uniformContainer player) call cargoToPairs]; - _data pushBack ["UniformItems", (getItemCargo uniformContainer player) call cargoToPairs]; - _data pushBack ["UniformMagazines", _uMags]; + _loadedMags = []; - _data pushBack ["VestWeapons", (getWeaponCargo vestContainer player) call cargoToPairs]; - _data pushBack ["VestItems", (getItemCargo vestContainer player) call cargoToPairs]; - _data pushBack ["VestMagazines", _vMags]; + { + _mag = _x select 0; + _ammo = _x select 1; + _loaded = _x select 2; + _type = _x select 3; - _data pushBack ["BackpackWeapons", (getWeaponCargo backpackContainer player) call cargoToPairs]; - _data pushBack ["BackpackItems", (getItemCargo backpackContainer player) call cargoToPairs]; - _data pushBack ["BackpackMagazines", _bMags]; + // if loaded in weapon, not empty, and not hand grenade + if (_loaded && _ammo > 0 && _type != 0) then + { + _loadedMags pushBack [_mag, _ammo]; + }; + } forEach magazinesAmmoFull player; - _gear pushBack ["PartialMagazines", _partialMags]; - _gear pushBack ["LoadedMagazines", _loadedMags]; + _data pushBack ["UniformWeapons", (getWeaponCargo uniformContainer player) call cargoToPairs]; + _data pushBack ["UniformItems", (getItemCargo uniformContainer player) call cargoToPairs]; + _data pushBack ["UniformMagazines", _uMags]; - _wastelandItems = []; - { - if (_x select 1 > 0) then - { - _wastelandItems pushBack [_x select 0, _x select 1]; - }; - } forEach call mf_inventory_all; + _data pushBack ["VestWeapons", (getWeaponCargo vestContainer player) call cargoToPairs]; + _data pushBack ["VestItems", (getItemCargo vestContainer player) call cargoToPairs]; + _data pushBack ["VestMagazines", _vMags]; - _gear pushBack ["WastelandItems", _wastelandItems]; + _data pushBack ["BackpackWeapons", (getWeaponCargo backpackContainer player) call cargoToPairs]; + _data pushBack ["BackpackItems", (getItemCargo backpackContainer player) call cargoToPairs]; + _data pushBack ["BackpackMagazines", _bMags]; - //FIXME: re-enable this optimization once stats_merge is implement - /* - _gearStr = str _gear; + _gear pushBack ["PartialMagazines", _partialMags]; + _gear pushBack ["LoadedMagazines", _loadedMags]; - if (_gearStr != ["playerData_gear", ""] call getPublicVar) then + _wastelandItems = []; + { + if (_x select 1 > 0) then { - { _data pushBack _x } forEach _gear; - playerData_gear = _gearStr; + _wastelandItems pushBack [_x select 0, _x select 1]; }; - */ - { _data pushBack _x } forEach _gear; + } forEach call mf_inventory_all; - if (alive player) then - { - savePlayerData = [_UID, _info, _data, player]; - publicVariableServer "savePlayerData"; + _gear pushBack ["WastelandItems", _wastelandItems]; - if (_manualSave) then - { - cutText ["\nPlayer saved!", "PLAIN DOWN", 0.2]; - }; - }; + //FIXME: re-enable this optimization once stats_merge is implement + /* + _gearStr = str _gear; + + if (_gearStr != ["playerData_gear", ""] call getPublicVar) then + { + { _data pushBack _x } forEach _gear; + playerData_gear = _gearStr; }; - }; + */ + { _data pushBack _x } forEach _gear; - if (isCODE(savePlayerHandle)) then { - _savePlayerHandle = savePlayerHandle; - waitUntil {scriptDone _savePlayerHandle}; - savePlayerHandle = nil; - }; + if (alive player) then { + missionNamespace setVariable [_reply_variable, [_UID, _info, _data, player]]; + publicVariableServer _reply_variable; + }; }; fn_deletePlayerData = { @@ -558,4 +559,11 @@ fn_requestPlayerData = {[] spawn { };}; +"reportStats" addPublicVariableEventHandler { + diag_log format["reportStats: %1", _this]; + [_this select 1] spawn p_savePlayerData; +}; + + + diag_log "pFunctions.sqf loading complete"; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf new file mode 100644 index 000000000..a0e872f4f --- /dev/null +++ b/persistence/players/sFunctions.sqf @@ -0,0 +1,170 @@ +// @file Version: 0.1 +// @file Name: pFunctions.sqf +// @file Author: micovery +// @file Description: server functions + +diag_log "pFunctions.sqf loading ..."; + +#include "macro.h" + +s_processRestartMessage = { + ARGVX3(0,_scope,""); + ARGVX3(1,_id,""); + ARGVX3(2,_from,""); + ARGVX3(3,_to,""); + ARGVX3(4,_subject,""); + ARGV2(5,_body); + + diag_log format["Requesting all players to report their stats"]; + def(_var_name); + _var_name = format["reportStats_%1",ceil(random 10000)]; + + reportStats_received = 0; + //setup an event listener for receiving player stats + _var_name addPublicVariableEventHandler { + reportStats_received = reportStats_received + 1; + _this call s_handleSaveEvent; + }; + + //ask all clients to report their stats + reportStats = _var_name; + publicVariable "reportStats"; + + diag_log format["Saving all vehicles on the map"]; + //save all vehilce stats + v_saveLoopActive = false; + init(_vScope, "Vehicles" call PDB_objectFileName); + [_vScope] call v_saveAllVechiles; + + diag_log format["Saving all objects on the map"]; + //save all object scopes + o_saveLoopActive = false; + init(_oScope, "Objects" call PDB_objectFileName); + [_oScope] call o_saveAllObjects; + + //wait for 15 seconds, to give a chance for players to report their stats + sleep 15; + diag_log format["%1 players reported their stats", reportStats_received]; + + diag_log format["Sending restart message ack"]; + //send ack that the message has been processed + def(_res_body); + _res = + [ + ["id", _id], + ["from", "server"], + ["to", _from], + ["subject", "ack"], + ["body", _id] + ] call sock_hash; + + [_scope, format["%1.recv", _from], _res] call stats_push; + + //just to be safe, if the server is still up after 5 minutes, re-activate the saving loops + [] spawn { + sleep (5 * 60); + diag_log format["WARNING: looks like server did not go down 5 minutes after a restart request"]; + v_saveLoopActive = false; + o_saveLoopActive = false; + }; + + true +}; + +s_processMessage = { + ARGVX3(0,_scope,""); + ARGV2(1,_message); + if (isNil "_message" || not(isCODE(_message))) exitWith {}; + + def(_data); + _data = call _message; + if (not(isARRAY(_data))) exitWith {}; + + def(_id); + def(_from); + def(_to); + def(_subject); + def(_body); + + { + switch (_x select 0) do { + case "id": { _id = _x select 1;}; + case "from": { _from = _x select 1;}; + case "to": { _to = _x select 1;}; + case "subject": {_subject = _x select 1;}; + case "body": {_body = _x select 1;}; + }; + } forEach _data; + + if (isNil "_id") exitWith {}; + if (isNil "_from") exitWith {}; + if (isNil "_to") exitWith {}; + if (isNil "_subject") exitWith {}; + + + diag_log format["message queue: process(id:%1): {from: %2, to: %3, subject: %4}", str(_id), str(_from), str(_to), str(_subject)]; + if (_subject == "restart" && _to == "server") exitWith { + ([_scope,_id,_from,_to,_subject, OR(_body,nil)] call s_processRestartMessage) + }; + diag_log format["message queue: process(id:%1): complete"]; + + false +}; + +s_processMessages = { + ARGVX3(0,_scope,""); + + //retrieve all the messages + def(_messages); + _messages = [_scope, "server.recv"] call stats_get; + if (isNil "_messages") exitWith { + diag_log format["message queue: no messages to process"]; + }; + + if(typeName _messages != typeName []) exitWith { + diag_log format["message queue: protocol error: recv typeName was %1, but was expecting typeName %2", typeName _messages, typeName []]; + }; + + init(_count, count(_messages)); + diag_log format["message queue: %1 messages to process", _count]; + if (_count == 0) exitWith {}; + + { + [_scope, OR(_x,nil)] call s_processMessage; + } forEach _messages; + + + //clear the processed messages + [_scope, "server.recv", []] call stats_set; + +}; + +s_messageLoop = { + ARGVX3(0,_scope,""); + while {true} do { + sleep 30; + def(_script); + _script = [_scope] spawn s_processMessages; + waitUntil {scriptDone _script}; + }; +}; + +s_handleSaveEvent = { _this spawn { + ARGVX3(1,_this,[]); + ARGVX3(0,_uid,""); + ARGVX3(1,_info,[]); + ARGVX3(2,_data,[]); + ARGVX3(3,_player,objNull); + + if (!alive _player) exitWith { + _uid call fn_deletePlayerSave; + }; + + if (alive _player && {_player getVariable ["FAR_isUnconscious", 0] == 0}) exitWith { + init(_scope,_UID call PDB_playerFileName); + [_scope, "PlayerInfo", (_info call sock_hash)] call stats_set; + [_scope, "PlayerSave", (_data call sock_hash)] call stats_set; + }; +};}; + +diag_log "pFunctions.sqf loading complete"; diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index 217fb10bd..777362b18 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -5,7 +5,7 @@ if (!isServer) exitWith {}; diag_log "Loading s_setupPlayerDB ..."; -#include "macro.h" +#include "sFunctions.sqf" fn_deletePlayerSave = { init(_scope,_this call PDB_playerFileName); @@ -13,26 +13,16 @@ fn_deletePlayerSave = { }; "savePlayerData" addPublicVariableEventHandler { - ARGVX3(1,_this,[]); - ARGVX3(0,_UID,""); - ARGVX3(1,_info,[]); - ARGVX3(2,_data,[]); - ARGVX3(3,_player,objNull); - - if (!alive _player) exitWith { - _UID call fn_deletePlayerSave; - }; - - if (alive _player && {_player getVariable ["FAR_isUnconscious", 0] == 0}) exitWith { - init(_scope,_UID call PDB_playerFileName); - [_scope, "PlayerInfo", (_info call sock_hash)] call stats_set; - [_scope, "PlayerSave", (_data call sock_hash)] call stats_set; - }; + _this call s_handleSaveEvent; }; + "deletePlayerData" addPublicVariableEventHandler { _player = _this select 1; (getPlayerUID _player) call fn_deletePlayerSave; }; + +[format["%1Messages", PDB_ServerID]] spawn s_messageLoop; + diag_log "Loading s_setupPlayerDB complete"; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index bc33ae6fd..a161cc291 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -566,9 +566,11 @@ o_saveLoop = { ARGVX3(0,_scope,""); while {true} do { sleep o_saveLoop_interval; - diag_log format["saving all objects"]; - [_scope] call o_saveInfo; - [_scope] call o_saveAllObjects; + if (not(isBOOLEAN(o_saveLoopActive) && {!o_saveLoopActive})) then { + diag_log format["saving all objects"]; + [_scope] call o_saveInfo; + [_scope] call o_saveAllObjects; + }; }; }; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 45a13dae9..69e454f4b 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -476,7 +476,9 @@ v_saveLoop = { ARGVX3(0,_scope,""); while {true} do { sleep v_saveLoop_interval; - [_scope] call v_saveAllVechiles; + if (not(isBOOLEAN(v_saveLoopActive) && {!v_saveLoopActive})) then { + [_scope] call v_saveAllVechiles; + }; }; }; From c3447290484cdf9977b9454eca4a26ee490a5a7a Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 23 Oct 2014 22:52:23 -0700 Subject: [PATCH 042/544] minor fix, wrong variable name --- persistence/players/sFunctions.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index a0e872f4f..7f03671fa 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -3,7 +3,7 @@ // @file Author: micovery // @file Description: server functions -diag_log "pFunctions.sqf loading ..."; +diag_log "sFunctions.sqf loading ..."; #include "macro.h" @@ -48,7 +48,7 @@ s_processRestartMessage = { diag_log format["Sending restart message ack"]; //send ack that the message has been processed - def(_res_body); + def(_res); _res = [ ["id", _id], @@ -167,4 +167,4 @@ s_handleSaveEvent = { _this spawn { }; };}; -diag_log "pFunctions.sqf loading complete"; +diag_log "sFunctions.sqf loading complete"; From b7cb0909d97ab456fcc845863396e88f858f4e9b Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 24 Oct 2014 03:28:44 -0700 Subject: [PATCH 043/544] add node script for managing server restarts --- node-scripts/server-restart.js | 162 +++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 node-scripts/server-restart.js diff --git a/node-scripts/server-restart.js b/node-scripts/server-restart.js new file mode 100644 index 000000000..10ae210ce --- /dev/null +++ b/node-scripts/server-restart.js @@ -0,0 +1,162 @@ +var Client = require("sock-rpc-stats").Client, + yargs = require("sock-rpc-stats/node_modules/yargs"), + async = require("sock-rpc-stats/node_modules/async"), + util = require("util"); + + +var options = { + host: { + default: "localhost", + describe: "IP address of the stats server to connect to" + }, + port: { + default: 1337, + describe: "port number of the stats server to connect to" + } +}; + +var ctx = {}; + +var processCommandLine = function(cb) { + try { + var argv = yargs + .options(options) + .help("help") + .alias("help", "h") + .argv; + + ctx.argv = argv; + return cb(null); + } + catch(ex) { + cb(ex); + } +}; + +var connectToStatsServer = function(cb) { + try { + var client = new Client(ctx.argv); + client.connect(function(err) { + ctx.client = client; + return cb(err); + }); + } + catch(ex) { + cb(ex); + } +}; + +var findMessageQueue = function(cb) { + try { + ctx.client.keys(function(err, result) { + try { + if (err) throw err; + for(var i = 0; i < result.length; i++) { + var key = result[i]; + if (key.match(/_Messages/)) { + ctx.scope = key; + return cb(null); + } + } + throw new Error("Could not find a message queue on the stats server"); + } + catch(ex) { + cb(ex); + } + }); + } + catch(ex) { + cb(ex); + } +}; + +var sendMessageToServer = function(cb) { + try { + var message = { + id: new Date().getTime().toString(), + from: "server-restart", + to: "server", + subject: "restart" + }; + + ctx.client.push(ctx.scope, "server.recv", message, function(err) { + try { + if (err) throw err; + ctx.message = message; + return cb(null); + } + catch(ex) { + cb(ex); + } + }); + } + catch(ex) { + cb(ex); + } +}; + +var waitForServerResponse = function(cb) { + try { + var delay = 10; + var attempts = 0; + var waitResponse = function(){ + attempts++; + if (attempts > 6) { + return cb(new Error(util.format("Did not receive response form server after %s contact attempts", attempts -1))); + } + + var key = ctx.message.from + ".recv"; + console.log("Waiting for server response at %s.%s", ctx.scope, key); + ctx.client.pop(ctx.scope, key, function(err, result) { + if (err) { + console.log("Remote error, will try again in %s seconds", delay); + console.log(err); + return setTimeout(waitResponse,delay*1000); + } + + if (!result) { + console.log("No response from server yet, will try again in %s seconds", delay); + console.log(err); + return setTimeout(waitResponse,delay*1000); + } + + if (!result.id || result.id != ctx.message.id) { + console.log("Protocol error, server sent invalid response: %s, will try again in %s seconds", JSON.stringify(result), delay); + console.log(err); + return setTimeout(waitResponse,delay*1000); + } + + console.log("Server responded with: %s", JSON.stringify(result)); + return cb(null); + }); + }; + + waitResponse(); + } + catch(ex) { + cb(ex); + } +}; + +var errorHandler = function(err) { + if (err) { + console.log(err); + } + + if (ctx.client) { + ctx.client.disconnect(function() { + console.log("disconnected"); + }); + } +}; + +async.waterfall( + [ + processCommandLine, + connectToStatsServer, + findMessageQueue, + sendMessageToServer, + waitForServerResponse + ], + errorHandler +); \ No newline at end of file From dab1691340bcf675cc03e7e3a59446d60d1c867f Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 24 Oct 2014 04:55:35 -0700 Subject: [PATCH 044/544] cleanup the restart script --- node-scripts/server-restart.js | 68 +++++++++++++++++++++--------- persistence/players/sFunctions.sqf | 2 +- 2 files changed, 48 insertions(+), 22 deletions(-) diff --git a/node-scripts/server-restart.js b/node-scripts/server-restart.js index 10ae210ce..afb986672 100644 --- a/node-scripts/server-restart.js +++ b/node-scripts/server-restart.js @@ -12,10 +12,22 @@ var options = { port: { default: 1337, describe: "port number of the stats server to connect to" + }, + wait: { + default: 120, + describe: "Maximum number of seconds to wait for server response" } }; -var ctx = {}; +var id = new Date().getTime().toString(); +var ctx = { + msg: { + id: id, + from: id, + to: "server", + subject: "restart" + } +}; var processCommandLine = function(cb) { try { @@ -37,6 +49,7 @@ var connectToStatsServer = function(cb) { try { var client = new Client(ctx.argv); client.connect(function(err) { + console.log("connected"); ctx.client = client; return cb(err); }); @@ -70,19 +83,31 @@ var findMessageQueue = function(cb) { } }; -var sendMessageToServer = function(cb) { +var flushReceiveQueue = function(cb) { try { - var message = { - id: new Date().getTime().toString(), - from: "server-restart", - to: "server", - subject: "restart" - }; + ctx.send = ctx.msg.to + ".recv"; + ctx.recv = ctx.msg.from + ".recv"; + console.log("scope=%s, send=%s, recv=%s", JSON.stringify(ctx.scope), JSON.stringify(ctx.send),JSON.stringify(ctx.recv)); + ctx.client.set(ctx.scope, ctx.send, [], function(err) { + try { + if (err) throw err; + cb(null); + } + catch(ex) { + cb(ex); + } + }); + } + catch(ex) { + cb(ex); + }; +}; - ctx.client.push(ctx.scope, "server.recv", message, function(err) { +var sendMessageToServer = function(cb) { + try { + ctx.client.push(ctx.scope, ctx.send, ctx.msg, function(err) { try { if (err) throw err; - ctx.message = message; return cb(null); } catch(ex) { @@ -99,34 +124,34 @@ var waitForServerResponse = function(cb) { try { var delay = 10; var attempts = 0; + var maxAttempts = Math.ceil(ctx.argv.wait / delay); var waitResponse = function(){ attempts++; - if (attempts > 6) { - return cb(new Error(util.format("Did not receive response form server after %s contact attempts", attempts -1))); + if (attempts > maxAttempts) { + attempts--; + return cb(new Error(util.format("attempt(%s/%s): no response form server, giving up",attempts, maxAttempts, attempts))); } - var key = ctx.message.from + ".recv"; - console.log("Waiting for server response at %s.%s", ctx.scope, key); - ctx.client.pop(ctx.scope, key, function(err, result) { + + ctx.client.pop(ctx.scope, ctx.recv, function(err, result) { if (err) { - console.log("Remote error, will try again in %s seconds", delay); + console.log("attempt(%s/%s): remote error, will try again in %s seconds", attempts, maxAttempts, delay); console.log(err); return setTimeout(waitResponse,delay*1000); } if (!result) { - console.log("No response from server yet, will try again in %s seconds", delay); - console.log(err); + console.log("attempt(%s/%s): no response from server, will try again in %s seconds", attempts, maxAttempts, delay); return setTimeout(waitResponse,delay*1000); } - if (!result.id || result.id != ctx.message.id) { - console.log("Protocol error, server sent invalid response: %s, will try again in %s seconds", JSON.stringify(result), delay); + if (!result.id || result.id != ctx.msg.id) { + console.log("attempt(%s/%s): protocol error, invalid response from server: %s, will try again in %s seconds", attempts, maxAttempts, JSON.stringify(result), delay); console.log(err); return setTimeout(waitResponse,delay*1000); } - console.log("Server responded with: %s", JSON.stringify(result)); + console.log("attempt(%s/%s): server response: %s", attempts, maxAttempts, JSON.stringify(result)); return cb(null); }); }; @@ -155,6 +180,7 @@ async.waterfall( processCommandLine, connectToStatsServer, findMessageQueue, + flushReceiveQueue, sendMessageToServer, waitForServerResponse ], diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 7f03671fa..cb620642d 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -103,7 +103,7 @@ s_processMessage = { diag_log format["message queue: process(id:%1): {from: %2, to: %3, subject: %4}", str(_id), str(_from), str(_to), str(_subject)]; - if (_subject == "restart" && _to == "server") exitWith { + if (_subject == "restart" && _to == "server" && _from != "server") exitWith { ([_scope,_id,_from,_to,_subject, OR(_body,nil)] call s_processRestartMessage) }; diag_log format["message queue: process(id:%1): complete"]; From 20461e727c989daa696e751c97bc1fbc50fef054 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 24 Oct 2014 13:44:55 -0700 Subject: [PATCH 045/544] couple of fixes for the server-restart.js script --- node-scripts/server-restart.js | 6 +++++- persistence/fn_inidb_custom.sqf | 2 +- persistence/players/sFunctions.sqf | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/node-scripts/server-restart.js b/node-scripts/server-restart.js index afb986672..5980428fe 100644 --- a/node-scripts/server-restart.js +++ b/node-scripts/server-restart.js @@ -16,6 +16,10 @@ var options = { wait: { default: 120, describe: "Maximum number of seconds to wait for server response" + }, + name: { + default: "A3W", + describe: "Prefix name of the server to communicate with" } }; @@ -66,7 +70,7 @@ var findMessageQueue = function(cb) { if (err) throw err; for(var i = 0; i < result.length; i++) { var key = result[i]; - if (key.match(/_Messages/)) { + if (key.match(new RegExp(ctx.argv.name + "_Messages$"))) { ctx.scope = key; return cb(null); } diff --git a/persistence/fn_inidb_custom.sqf b/persistence/fn_inidb_custom.sqf index 84800a09f..64a387943 100644 --- a/persistence/fn_inidb_custom.sqf +++ b/persistence/fn_inidb_custom.sqf @@ -16,7 +16,7 @@ if (!isServer) exitWith {}; _savingMethod = ["A3W_savingMethod", 1] call getPublicVar; -PDB_ServerID = if (isNil "PDB_ServerID") then {"A3W"} else {PDB_ServerID}; +PDB_ServerID = if (isNil "PDB_ServerID") then {"A3W_"} else {PDB_ServerID}; PDB_PlayerFileID = if (isNil "PDB_PlayerFileID") then {PDB_ServerID} else {PDB_PlayerFileID}; PDB_ObjectFileID = if (isNil "PDB_ObjectFileID") then {PDB_ServerID} else {PDB_ObjectFileID}; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index cb620642d..293208da6 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -141,6 +141,11 @@ s_processMessages = { s_messageLoop = { ARGVX3(0,_scope,""); + + //cleanup the message queue + diag_log format["message queue: cleaning up old messages"]; + [_scope, "server.recv",[]] call stats_set; + while {true} do { sleep 30; def(_script); From bb74dcc823a8710fcc889d808e4ceef244dd411b Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 24 Oct 2014 13:44:55 -0700 Subject: [PATCH 046/544] couple of fixes for the server-restart.js script --- node-scripts/server-restart.js | 6 +++++- persistence/fn_inidb_custom.sqf | 2 +- persistence/players/sFunctions.sqf | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/node-scripts/server-restart.js b/node-scripts/server-restart.js index afb986672..5980428fe 100644 --- a/node-scripts/server-restart.js +++ b/node-scripts/server-restart.js @@ -16,6 +16,10 @@ var options = { wait: { default: 120, describe: "Maximum number of seconds to wait for server response" + }, + name: { + default: "A3W", + describe: "Prefix name of the server to communicate with" } }; @@ -66,7 +70,7 @@ var findMessageQueue = function(cb) { if (err) throw err; for(var i = 0; i < result.length; i++) { var key = result[i]; - if (key.match(/_Messages/)) { + if (key.match(new RegExp(ctx.argv.name + "_Messages$"))) { ctx.scope = key; return cb(null); } diff --git a/persistence/fn_inidb_custom.sqf b/persistence/fn_inidb_custom.sqf index 84800a09f..64a387943 100644 --- a/persistence/fn_inidb_custom.sqf +++ b/persistence/fn_inidb_custom.sqf @@ -16,7 +16,7 @@ if (!isServer) exitWith {}; _savingMethod = ["A3W_savingMethod", 1] call getPublicVar; -PDB_ServerID = if (isNil "PDB_ServerID") then {"A3W"} else {PDB_ServerID}; +PDB_ServerID = if (isNil "PDB_ServerID") then {"A3W_"} else {PDB_ServerID}; PDB_PlayerFileID = if (isNil "PDB_PlayerFileID") then {PDB_ServerID} else {PDB_PlayerFileID}; PDB_ObjectFileID = if (isNil "PDB_ObjectFileID") then {PDB_ServerID} else {PDB_ObjectFileID}; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index cb620642d..293208da6 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -141,6 +141,11 @@ s_processMessages = { s_messageLoop = { ARGVX3(0,_scope,""); + + //cleanup the message queue + diag_log format["message queue: cleaning up old messages"]; + [_scope, "server.recv",[]] call stats_set; + while {true} do { sleep 30; def(_script); From 48ce3ec12cfea42493f61b60b2654e2829673056 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 25 Oct 2014 18:21:22 -0700 Subject: [PATCH 047/544] remove the node.js script from the mission, the scripts are now available through the sock-wasteland Node.js module --- node-scripts/server-restart.js | 192 --------------------------------- 1 file changed, 192 deletions(-) delete mode 100644 node-scripts/server-restart.js diff --git a/node-scripts/server-restart.js b/node-scripts/server-restart.js deleted file mode 100644 index 5980428fe..000000000 --- a/node-scripts/server-restart.js +++ /dev/null @@ -1,192 +0,0 @@ -var Client = require("sock-rpc-stats").Client, - yargs = require("sock-rpc-stats/node_modules/yargs"), - async = require("sock-rpc-stats/node_modules/async"), - util = require("util"); - - -var options = { - host: { - default: "localhost", - describe: "IP address of the stats server to connect to" - }, - port: { - default: 1337, - describe: "port number of the stats server to connect to" - }, - wait: { - default: 120, - describe: "Maximum number of seconds to wait for server response" - }, - name: { - default: "A3W", - describe: "Prefix name of the server to communicate with" - } -}; - -var id = new Date().getTime().toString(); -var ctx = { - msg: { - id: id, - from: id, - to: "server", - subject: "restart" - } -}; - -var processCommandLine = function(cb) { - try { - var argv = yargs - .options(options) - .help("help") - .alias("help", "h") - .argv; - - ctx.argv = argv; - return cb(null); - } - catch(ex) { - cb(ex); - } -}; - -var connectToStatsServer = function(cb) { - try { - var client = new Client(ctx.argv); - client.connect(function(err) { - console.log("connected"); - ctx.client = client; - return cb(err); - }); - } - catch(ex) { - cb(ex); - } -}; - -var findMessageQueue = function(cb) { - try { - ctx.client.keys(function(err, result) { - try { - if (err) throw err; - for(var i = 0; i < result.length; i++) { - var key = result[i]; - if (key.match(new RegExp(ctx.argv.name + "_Messages$"))) { - ctx.scope = key; - return cb(null); - } - } - throw new Error("Could not find a message queue on the stats server"); - } - catch(ex) { - cb(ex); - } - }); - } - catch(ex) { - cb(ex); - } -}; - -var flushReceiveQueue = function(cb) { - try { - ctx.send = ctx.msg.to + ".recv"; - ctx.recv = ctx.msg.from + ".recv"; - console.log("scope=%s, send=%s, recv=%s", JSON.stringify(ctx.scope), JSON.stringify(ctx.send),JSON.stringify(ctx.recv)); - ctx.client.set(ctx.scope, ctx.send, [], function(err) { - try { - if (err) throw err; - cb(null); - } - catch(ex) { - cb(ex); - } - }); - } - catch(ex) { - cb(ex); - }; -}; - -var sendMessageToServer = function(cb) { - try { - ctx.client.push(ctx.scope, ctx.send, ctx.msg, function(err) { - try { - if (err) throw err; - return cb(null); - } - catch(ex) { - cb(ex); - } - }); - } - catch(ex) { - cb(ex); - } -}; - -var waitForServerResponse = function(cb) { - try { - var delay = 10; - var attempts = 0; - var maxAttempts = Math.ceil(ctx.argv.wait / delay); - var waitResponse = function(){ - attempts++; - if (attempts > maxAttempts) { - attempts--; - return cb(new Error(util.format("attempt(%s/%s): no response form server, giving up",attempts, maxAttempts, attempts))); - } - - - ctx.client.pop(ctx.scope, ctx.recv, function(err, result) { - if (err) { - console.log("attempt(%s/%s): remote error, will try again in %s seconds", attempts, maxAttempts, delay); - console.log(err); - return setTimeout(waitResponse,delay*1000); - } - - if (!result) { - console.log("attempt(%s/%s): no response from server, will try again in %s seconds", attempts, maxAttempts, delay); - return setTimeout(waitResponse,delay*1000); - } - - if (!result.id || result.id != ctx.msg.id) { - console.log("attempt(%s/%s): protocol error, invalid response from server: %s, will try again in %s seconds", attempts, maxAttempts, JSON.stringify(result), delay); - console.log(err); - return setTimeout(waitResponse,delay*1000); - } - - console.log("attempt(%s/%s): server response: %s", attempts, maxAttempts, JSON.stringify(result)); - return cb(null); - }); - }; - - waitResponse(); - } - catch(ex) { - cb(ex); - } -}; - -var errorHandler = function(err) { - if (err) { - console.log(err); - } - - if (ctx.client) { - ctx.client.disconnect(function() { - console.log("disconnected"); - }); - } -}; - -async.waterfall( - [ - processCommandLine, - connectToStatsServer, - findMessageQueue, - flushReceiveQueue, - sendMessageToServer, - waitForServerResponse - ], - errorHandler -); \ No newline at end of file From 54a6226b6336059aa384180d84d2bdbf53b1557c Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 25 Oct 2014 18:23:15 -0700 Subject: [PATCH 048/544] major performance improvemnts in sock library, (measured up to 15x), do not serialize the request as JSON anymore, use the game's str function instead --- persistence/sock/macro.h | 14 +-- persistence/sock/sock.sqf | 243 ++++++-------------------------------- 2 files changed, 45 insertions(+), 212 deletions(-) diff --git a/persistence/sock/macro.h b/persistence/sock/macro.h index c2268b262..4b8e4febe 100644 --- a/persistence/sock/macro.h +++ b/persistence/sock/macro.h @@ -2,27 +2,27 @@ #define _undefined objNull #define isARRAY(x) \ -(not(isNil {x}) && {typeName x == typeName []}) +(not(isNil {x}) && {typeName (x) == typeName []}) #define isSTRING(x) \ -(not(isNil {x}) && {typeName x == typeName ""}) +(not(isNil {x}) && {typeName (x) == typeName ""}) #define isSCALAR(x) \ -(not(isNil {x}) && {typeName x == typeName 0}) +(not(isNil {x}) && {typeName (x) == typeName 0}) #define isBOOLEAN(x) \ -(not(isNil {x}) && {typeName x == typeName true}) +(not(isNil {x}) && {typeName (x) == typeName true}) #define isOBJECT(x) \ -(not(isNil {x}) && {typeName x == typeName objNull}) +(not(isNil {x}) && {typeName (x) == typeName objNull}) #define isCODE(x) \ -(not(isNil {x}) && {typeName x == typeName {}}) +(not(isNil {x}) && {typeName (x) == typeName {}}) #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ - _t = typeName x; \ + _t = typeName (x); \ _t == typeName controlNull ||{ \ _t == typeName displayNull ||{ \ _t == typeName locationNull ||{ \ diff --git a/persistence/sock/sock.sqf b/persistence/sock/sock.sqf index 7c347d389..e674d091e 100644 --- a/persistence/sock/sock.sqf +++ b/persistence/sock/sock.sqf @@ -31,218 +31,54 @@ sock_log_set_level = { //Set default logging level for this component LOG_INFO_LEVEL call sock_log_set_level; -#define BACKSLASH (toString [92]) -#define DOUBLE_QUOTE """" -/** -* This function escapes all instances of {@code _char} within the -* specified string {@code _str} -* -* @param _str (String type) -* @param _char (String type) -* @return -* -* Returns the same {@code _str} value, but with all intances of {@code _char} -* escaped with a back-slash character '\'. If the string already contains -* back-slashes, they are also escaped. -* -*/ - -sock_json_string_escape = { - ARGV2(0,_str); - ARGV2(1,_char); - - private["_str_data", "_new_str_data", "_target_char"]; - _str_data = toArray(_str); - _new_str_data = []; - _target_char = (toArray(_char)) select 0; - - private["_escape_char", "_escaped", "_count", "_i"]; - _escape_char = 92; // ASCII value for back-slash - _escaped = false; - _count = count(_str_data); - _i = 0; - while {_i < _count} do { - _current_char = _str_data select _i; - if (_escaped) then { - _escaped = false; - _new_str_data set [count(_new_str_data), _current_char]; - } - else { if (_current_char == _target_char) then { - _new_str_data set [count(_new_str_data), _escape_char]; - _new_str_data set [count(_new_str_data), _current_char]; - } - else { if ( _current_char == _escape_char) then { - _escaped = true; - _new_str_data set [count(_new_str_data), _escape_char]; - } - else { - _new_str_data set [count(_new_str_data), _current_char]; - };};}; - _i = _i + 1; - }; - - toString(_new_str_data) -}; - -/** -* This function recursively converts an SQF value into its equivalent JSON representation. -* -* @param _data (Any type) - Data to be converted to JSON -* @return -* -* Returns the JSON representation of {@code data}. -* -* SQF array, is mapped directly to JSON array -* SQF number, is mapped directly to JSON number -* SQF string, is escaped so that it does not have nested double-quotes, and then mapped to JSON string -* SQF nil, is mapped to JSON null -* SQF objNull, is mapped to JSON null -* SQF objects, are mapped to a simplified JSON object with the netId, and the name of the SQF object -* -*/ +sock_raw = { + _this = _this select 0; -sock_json = { - if (isNil "_this") exitWith { - "null" - }; + private["_stack","_holder"]; + _holder = []; + _stack = [[0,_holder,_this]]; //seed the stack - def(_type); - _type = typeName _this; + while {count(_stack) > 0} do { + private["_current","_parent","_index", "_params"]; + _params = _stack deleteAt (count(_stack)-1); + _index = _params select 0; + _parent = _params select 1; + _current = _params select 2; - //diag_log format["---->%1<----->%2<----", str(_type),_this]; - if (format["%1",str(_type)] == "") exitWith { //handle Nothing, and Anything ... - "null" - }; + private["_clone"]; + _clone = []; - init(_data,_this); - - if (_type == typeName false) exitWith { - def(_val); - _val = if (_data) then {"true"} else {"false"}; - (_val) - }; - - if (_type == typeName {}) exitWith { - ((call _data) call sock_json_hash) - }; - - if (_type == typeName "") exitWith { - (_data call sock_json_string) - }; - - if (_type == typeName 0) exitWith { - def(_val); - _val = (format["%1", _data]); - //if value is indefinite or infinite, default to 0 - if (_val == "-1.#IND" || {_val == "-1.#INF" || {_val == "nan" || {_val == "-nan" || _val == "+nan"}}}) then { - _val = (format["%1", 0]); - }; - _val - }; - - if (_type == typeName objNull) exitWith { - ('{"netId":' + ((netId _data) call sock_json) + ',"name":' + ((name _data) call sock_json) + '}') - }; - - if (_type == typeName []) exitWith { - //special case for arrays that represent hash [{}, [["key","value"],...]] - if (count(_data) > 1 && {typeName (_data select 0) == typeName {}}) exitWith { - ((_data select 1) call sock_json_hash) - }; - - private["_array_json", "_i", "_count", "_element", "_element_json"]; - _array_json = "["; - _count = count(_data); - _i = 0; - while {_i < _count} do { - - _element = _data select _i; - _element_json = if (isNil "_element") then { "null" } else {_element call sock_json}; - - if (_i == 0) then { - _array_json = _array_json + _element_json; + { + if (isNil "_x") then { + _clone pushBack {nil}; + } + else {private["_type"]; _type = typeName _x; if( _type == "STRING") then { + _clone pushBack ([toArray _x,{}]); + } + else { if(_type == "SCALAR" || {_type == "BOOL"}) then { + _clone pushBack _x; + } + else { if(_type == "CODE") then { + _clone pushBack {}; + } + else { if (_type == "ARRAY") then { + _stack pushBack [_forEachIndex,_clone,_x]; } else { - _array_json = _array_json + "," + _element_json; - }; - _i = _i + 1; - }; - _array_json = _array_json + "]"; - (_array_json) - }; + _clone pushBack {nil}; + };};};};}; + } forEach _current; + _parent set [_index, _clone]; - //other types, just convert to string - (str(_data) call sock_json) -}; - -sock_json_string = { - if(isNil "_this") exitWith {}; - init(_val,_this); - - _val = [_val, DOUBLE_QUOTE] call sock_json_string_escape; - if (isNil "_val") exitWith {'""'}; - - _val =[_val, BACKSLASH] call sock_json_string_escape; - if (isNil "_val") exitWith {'""'}; - - str(_val) -}; - -sock_json_hash = { - if (isNil "_this" || {typeName _this != typeName []}) exitWith { - ((OR(_this,nil)) call sock_json) }; - init(_val,_this); - - private["_json", "_i", "_count", "_el", "_el_json", "_el_key", "_el_val","_el_key_json", "_el_val_json"]; - _json = "{"; - _count = count(_val); - _i = 0; - while {_i < _count} do { - if (true) then { - _el = _val select _i; - if (isNil "_el" || {typeName _el != typeName [] || {count(_el) < 2}}) exitWith {}; - - _el_key = (_el select 0); - _el_val = (_el select 1); - - if (isNil "_el_key") exitWith {}; - _el_key_json = _el_key call sock_json; - _el_val_json = if (isNil "_el_val") then {"null"} else {_el_val call sock_json}; - - - if ((isNil "_el_key_json" || {typeName _el_key_json != typeName ""}) || - (isNil "_el_val_json" || {typeName _el_val_json != typeName ""})) exitWith { - diag_log format["=== JSON Serialization Error ==="]; - diag_log format["_el=%1",_el]; - diag_log format["(_el select 0) = %1",(_el select 0)]; - diag_log format["(_el select 1) = %1",(_el select 1)]; - diag_log format["typeName _el_key_json = %1",typeName _el_key_json]; - diag_log format["typeName _el_val_json = %1",typeName _el_val_json]; - diag_log format["_el_key_json = %1",OR(_el_key_json,nil)]; - diag_log format["_el_val_json = %1",OR(_el_val_json,nil)]; - diag_log format["================================"]; - }; - - _el_json = _el_key_json + ":" + _el_val_json; - - if (_i == 0) then { - _json = _json + _el_json; - } - else { - _json = _json + "," + _el_json; - }; - }; - _i = _i + 1; - }; - _json = _json + "}"; - (_json) + ("RAW:" + str(_holder select 0)) }; + /** * This function is used for creating JSON hash/object from an array with a set of key-value pairs * @@ -354,7 +190,7 @@ sock_rpc_remote = { def(_response); - init(_end_time, time + 5); + init(_end_time, time + 60); while {true} do { _response = missionNamespace getVariable [_var_name, nil]; if (!isNil "_response") exitWith {}; @@ -425,15 +261,12 @@ sock_rpc_local = { ARGV2(2,_default) if (undefined(_method)) exitWith {nil}; - initIf(defined(_params),_params_str,(_params call sock_json),'[]'); - private["_json_rpc"]; - _json_rpc = '{"method":' + str(_method) + ', "params":' + _params_str + '}'; - //format["_json_rpc = %1;", _json_rpc] call sock_log_finest; + private["_raw_rpc"]; + _raw_rpc = [([["method",_method],["params",OR(_params,[])]] call sock_hash)] call sock_raw; private["_result_container"]; - _result_container = call compile(_json_rpc call sock_get_response); - + _result_container = call compile(_raw_rpc call sock_get_response); if (isNil "_result_container") exitWith { (format["protocol error: Was expecting response of typeName of %1, but got %2", (typeName []), "nil"]) call sock_log_severe; From 8a5a41d734557e7a2b82fa10a55c1f4f93643820 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 25 Oct 2014 18:24:39 -0700 Subject: [PATCH 049/544] force player back to lobby if the stats do not load, this is to prevent his stats being overwritten --- persistence/players/pFunctions.sqf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 3ccdcabeb..783347679 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -543,6 +543,10 @@ fn_requestPlayerData = {[] spawn { def(_pData); _pData = [_scope, [_dataKey, nil], [_infoKey, nil]] call stats_get; + if (not(isARRAY(_pData))) exitWith { + //player data did not load, force him back to lobby + endMission "LOSER"; + }; def(_key); { From 8797016e2a873419dc517e9d84c541f46ef25b2d Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 25 Oct 2014 18:26:51 -0700 Subject: [PATCH 050/544] fix bug in save loops, where saving iterations would overlap with eachother and not wait for the previous one to be complete. Also add some logging around object saving to measure the time taken collecting the objects info, as well as while making the actual save calls --- description.ext | 74 -------------------------------- persistence/world/oFunctions.sqf | 17 +++++--- persistence/world/vFunctions.sqf | 6 +-- 3 files changed, 14 insertions(+), 83 deletions(-) delete mode 100644 description.ext diff --git a/description.ext b/description.ext deleted file mode 100644 index e9e2aae19..000000000 --- a/description.ext +++ /dev/null @@ -1,74 +0,0 @@ -respawn="BASE"; -respawnDelay=15; -disabledAI=1; -disableChannels[] = {2}; // {0} to disable global, {2} for command channel -joinUnassigned = 0; -enableItemsDropping = 0; -weaponPool = 0; -corpseLimit = 20; -corpseManagerMode = 1; -corpseRemovalMinTime = 15*60; -corpseRemovalMaxTime = 30*60; -wreckManagerMode = 1; -wreckRemovalMinTime = 5*60; -wreckRemovalMaxTime = 10*60; -enableDebugConsole = 1; -loadScreen = "Loading.jpg"; -onPauseScript = "client\clientEvents\onPause.sqf"; -class Header -{ - gameType=Sandbox; - minPlayers=1; - maxPlayers=145; // 144 players, 1 headless client -}; -author="Team Wasteland - A3Wasteland.com"; -onLoadName = "A3Wasteland Altis"; // it would be great if you could keep "A3" in the name, like "ABC A3Wasteland" instead of "ABC Wasteland" :) -onLoadMission = "Wasteland is a harsh survival sandbox where two teams and independent players fight for survival."; -overviewText = "Wasteland is a harsh survival sandbox where two teams and independent players fight for survival."; -overviewTextLocked = "Wasteland is a harsh survival sandbox where two teams and independent players fight for survival."; -overviewPicture = "Loading.jpg"; - -//Dialog includes - -#include "client\gui_base.hpp" -#include "addons\R3F_ARTY_AND_LOG\desc_include.h" -#include "client\systems\common.hpp" -#include "client\systems\ui_toolkit.hpp" -#include "client\items\warchest\dialog.hpp" -#include "client\actions\gui.hpp" -#include "addons\far_revive\revive_gui.hpp" -#include "client\systems\playerMenu\dialog\player_settings.hpp" -#include "client\systems\groups\dialog\groupManagement.hpp" -#include "client\systems\gunStore\dialog\gunshop_settings.hpp" -#include "client\systems\generalStore\dialog\genstore_settings.hpp" -#include "client\systems\vehicleStore\dialog\vehiclestore_settings.hpp" -#include "client\systems\adminPanel\dialog\adminMenu.hpp" -#include "client\systems\adminPanel\dialog\modMenu.hpp" -#include "client\systems\adminPanel\dialog\serverAdminMenu.hpp" -#include "client\systems\adminPanel\dialog\debugMenu.hpp" -#include "client\systems\adminPanel\dialog\playerMenu.hpp" -#include "client\systems\adminPanel\dialog\vehicleManagement.hpp" -#include "client\systems\adminPanel\dialog\objectSearch.hpp" -#include "client\systems\playerMenu\dialog\respawn_dialog.hpp" -#include "client\systems\playerMenu\dialog\teamkill_dialog.hpp" -#include "addons\proving_ground\PG_config.hpp" - -class RscTitles -{ - #include "addons\proving_ground\PG_rsctitles.hpp" - #include "client\systems\hud\dialog\hud.hpp" - #include "client\systems\playerMenu\dialog\welcome.hpp" -}; - -class CfgFunctions -{ - class A3W - { - #include "server\CfgFunctions.hpp" - }; -}; - -class CfgNotifications -{ - #include "client\CfgNotifications.hpp" -}; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index a161cc291..b82595703 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -417,7 +417,7 @@ o_addSaveObject = { if (not([_obj] call o_isSaveable)) exitWith {}; - diag_log format["will save %1", _obj]; + //diag_log format["will save %1", _obj]; def(_class); def(_netId); def(_pos); @@ -531,14 +531,14 @@ o_saveInfo = { }; -o_saveAllObjects = {_this spawn { +o_saveAllObjects = { ARGVX3(0,_scope,""); init(_count,0); init(_request,[_scope]); [_scope] call stats_wipe; - init(_bulk_size,5); - + init(_bulk_size,100); + init(_start_time, diag_tickTime); { if (!isNil{[_request, _x] call o_addSaveObject}) then { _count = _count + 1; @@ -546,17 +546,22 @@ o_saveAllObjects = {_this spawn { //save objects in bulks if ((_count % _bulk_size) == 0 && {count(_request) > 1}) then { + init(_save_start, diag_tickTime); _request call stats_set; + init(_save_end, diag_tickTime); _request = [_scope]; + diag_log format["Bulk of %1 objects saved in %2 ticks, save call took %3 ticks", (_bulk_size), (diag_tickTime - _start_time), (_save_end - _save_start)]; }; } forEach (allMissionObjects "All"); if (count(_request) > 1) then { + init(_save_start, diag_tickTime); _request call stats_set; + init(_save_end, diag_tickTime); + diag_log format["Total of %1 objects saved in %2 ticks, last save call took %3 ticks", (_count), (diag_tickTime - _start_time), (_save_end - _save_start)]; }; - diag_log format ["A3W - %1 objects have been saved", _count]; -};}; +}; o_saveLoop_interval = OR(A3W_object_saveInterval,60); diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 69e454f4b..859fb8463 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -441,13 +441,13 @@ v_addSaveVehicle = { true }; -v_saveAllVechiles = {_this spawn { +v_saveAllVechiles = { ARGVX3(0,_scope,""); init(_count,0); init(_request,[_scope]); [_scope] call stats_wipe; - init(_bulk_size,5); + init(_bulk_size,25); { if (!isNil{[_request, _x] call v_addSaveVehicle}) then { @@ -466,7 +466,7 @@ v_saveAllVechiles = {_this spawn { }; diag_log format ["A3W - %1 vehicles have been saved", _count]; -};}; +}; v_saveLoop_interval = OR(A3W_vehicle_saveInterval,60); diag_log format["config: A3W_vehicle_saveInterval = %1", v_saveLoop_interval]; From 584e4f657173ded4f8fbebf6388c698ac2368448 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 25 Oct 2014 19:10:43 -0700 Subject: [PATCH 051/544] oops, fix deleted file --- description.ext | 74 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 description.ext diff --git a/description.ext b/description.ext new file mode 100644 index 000000000..e9e2aae19 --- /dev/null +++ b/description.ext @@ -0,0 +1,74 @@ +respawn="BASE"; +respawnDelay=15; +disabledAI=1; +disableChannels[] = {2}; // {0} to disable global, {2} for command channel +joinUnassigned = 0; +enableItemsDropping = 0; +weaponPool = 0; +corpseLimit = 20; +corpseManagerMode = 1; +corpseRemovalMinTime = 15*60; +corpseRemovalMaxTime = 30*60; +wreckManagerMode = 1; +wreckRemovalMinTime = 5*60; +wreckRemovalMaxTime = 10*60; +enableDebugConsole = 1; +loadScreen = "Loading.jpg"; +onPauseScript = "client\clientEvents\onPause.sqf"; +class Header +{ + gameType=Sandbox; + minPlayers=1; + maxPlayers=145; // 144 players, 1 headless client +}; +author="Team Wasteland - A3Wasteland.com"; +onLoadName = "A3Wasteland Altis"; // it would be great if you could keep "A3" in the name, like "ABC A3Wasteland" instead of "ABC Wasteland" :) +onLoadMission = "Wasteland is a harsh survival sandbox where two teams and independent players fight for survival."; +overviewText = "Wasteland is a harsh survival sandbox where two teams and independent players fight for survival."; +overviewTextLocked = "Wasteland is a harsh survival sandbox where two teams and independent players fight for survival."; +overviewPicture = "Loading.jpg"; + +//Dialog includes + +#include "client\gui_base.hpp" +#include "addons\R3F_ARTY_AND_LOG\desc_include.h" +#include "client\systems\common.hpp" +#include "client\systems\ui_toolkit.hpp" +#include "client\items\warchest\dialog.hpp" +#include "client\actions\gui.hpp" +#include "addons\far_revive\revive_gui.hpp" +#include "client\systems\playerMenu\dialog\player_settings.hpp" +#include "client\systems\groups\dialog\groupManagement.hpp" +#include "client\systems\gunStore\dialog\gunshop_settings.hpp" +#include "client\systems\generalStore\dialog\genstore_settings.hpp" +#include "client\systems\vehicleStore\dialog\vehiclestore_settings.hpp" +#include "client\systems\adminPanel\dialog\adminMenu.hpp" +#include "client\systems\adminPanel\dialog\modMenu.hpp" +#include "client\systems\adminPanel\dialog\serverAdminMenu.hpp" +#include "client\systems\adminPanel\dialog\debugMenu.hpp" +#include "client\systems\adminPanel\dialog\playerMenu.hpp" +#include "client\systems\adminPanel\dialog\vehicleManagement.hpp" +#include "client\systems\adminPanel\dialog\objectSearch.hpp" +#include "client\systems\playerMenu\dialog\respawn_dialog.hpp" +#include "client\systems\playerMenu\dialog\teamkill_dialog.hpp" +#include "addons\proving_ground\PG_config.hpp" + +class RscTitles +{ + #include "addons\proving_ground\PG_rsctitles.hpp" + #include "client\systems\hud\dialog\hud.hpp" + #include "client\systems\playerMenu\dialog\welcome.hpp" +}; + +class CfgFunctions +{ + class A3W + { + #include "server\CfgFunctions.hpp" + }; +}; + +class CfgNotifications +{ + #include "client\CfgNotifications.hpp" +}; From 5f704468a0aa0028d89e83cccfb7857943294519 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 25 Oct 2014 21:28:55 -0700 Subject: [PATCH 052/544] add additional benchmarking code for vehicle saves, and also increment the bulk size save size to 100 at a time --- persistence/world/oFunctions.sqf | 9 +++++++-- persistence/world/vFunctions.sqf | 15 +++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index b82595703..604c7a2af 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -539,6 +539,7 @@ o_saveAllObjects = { [_scope] call stats_wipe; init(_bulk_size,100); init(_start_time, diag_tickTime); + init(_last_save, diag_tickTime); { if (!isNil{[_request, _x] call o_addSaveObject}) then { _count = _count + 1; @@ -550,7 +551,8 @@ o_saveAllObjects = { _request call stats_set; init(_save_end, diag_tickTime); _request = [_scope]; - diag_log format["Bulk of %1 objects saved in %2 ticks, save call took %3 ticks", (_bulk_size), (diag_tickTime - _start_time), (_save_end - _save_start)]; + diag_log format["o_saveLoop: %1 objects saved in %2 ticks, save call took %3 ticks", (_bulk_size), (diag_tickTime - _start_time), (_save_end - _save_start)]; + _last_save = _save_end; }; } forEach (allMissionObjects "All"); @@ -558,8 +560,11 @@ o_saveAllObjects = { init(_save_start, diag_tickTime); _request call stats_set; init(_save_end, diag_tickTime); - diag_log format["Total of %1 objects saved in %2 ticks, last save call took %3 ticks", (_count), (diag_tickTime - _start_time), (_save_end - _save_start)]; + diag_log format["o_saveLoop: %1 objects saved in %2 ticks, save call took %3 ticks", (count(_request) -1), (_save_end - _last_save), (_save_end - _save_start)]; }; + + diag_log format["o_saveLoop: total of %1 objects saved in %2 ticks", (_count), (diag_tickTime - _start_time)]; + }; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 859fb8463..fb844b51c 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -447,7 +447,10 @@ v_saveAllVechiles = { init(_request,[_scope]); [_scope] call stats_wipe; - init(_bulk_size,25); + init(_bulk_size,100); + init(_start_time, diag_tickTime); + init(_last_save, diag_tickTime); + { if (!isNil{[_request, _x] call v_addSaveVehicle}) then { @@ -456,16 +459,24 @@ v_saveAllVechiles = { //save vehicles in bulks if ((_count % _bulk_size) == 0 && {count(_request) > 1}) then { + init(_save_start, diag_tickTime); _request call stats_set; + init(_save_end, diag_tickTime); _request = [_scope]; + diag_log format["v_saveLoop: %1 vehicles saved in %2 ticks, save call took %3 ticks", (_bulk_size), (diag_tickTime - _start_time), (_save_end - _save_start)]; + _last_save = _save_end; }; } forEach (allMissionObjects "All"); if (count(_request) > 1) then { + init(_save_start, diag_tickTime); _request call stats_set; + init(_save_end, diag_tickTime); + diag_log format["v_saveLoop: %1 vehicles saved in %2 ticks, save call took %3 ticks", (count(_request) -1), (_save_end - _last_save), (_save_end - _save_start)]; }; - diag_log format ["A3W - %1 vehicles have been saved", _count]; + diag_log format["v_saveLoop: total of %1 vehicles saved in %2 ticks", (_count), (diag_tickTime - _start_time)]; + }; v_saveLoop_interval = OR(A3W_vehicle_saveInterval,60); From 7ffec8cff80ddd03f4f5c7f0ff883b0620210224 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 26 Oct 2014 02:47:28 -0700 Subject: [PATCH 053/544] add fix to prevent objects from taking damage while being restored --- persistence/world/oFunctions.sqf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 604c7a2af..e1891d382 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -228,6 +228,7 @@ o_restoreObject = {_this spawn { def(_obj); _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; + _obj allowDamage false; //set damage to false immediately to avoid taking fall damage if (!isOBJECT(_obj)) exitWith { diag_log format["%1(%2) could not be created.", _object_key, _class]; }; @@ -277,8 +278,14 @@ o_restoreObject = {_this spawn { }; _allowDamage = if(isSCALAR(_allowDamage) && {_allowDamage <= 0}) then { false } else { true }; + [_obj, _allowDamage] spawn { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_allowDamage,false); + //delay the allow damage to allow the box to settle + sleep 5; _obj setVariable ["allowDamage", _allowDamage]; _obj allowDamage _allowDamage; + }; //broadcast the spawn beacon if ([_obj] call o_isBeacon) then { From 26a2b8d2b2e181c1679b06a454dfaa9962b93c4e Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 26 Oct 2014 02:51:49 -0700 Subject: [PATCH 054/544] minor fixes, and commented logging --- persistence/world/oFunctions.sqf | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index e1891d382..981b49ad0 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -94,7 +94,7 @@ o_hasInventory = { o_isSaveable = { //diag_log format["%1 call o_isSaveable", _this]; - ARGVX3(0,_obj,objNull); + ARGVX4(0,_obj,objNull,false); init(_class, typeOf _obj); @@ -106,17 +106,17 @@ o_isSaveable = { init(_boxSavingOn, call o_isBoxSavingOn); if ([_obj] call o_isBeacon) exitWith { - diag_log format["%1 is beacon", _obj]; + //diag_log format["box5(%1): o_isBeaconSavingOn = %2", _obj, (call o_isBeaconSavingOn)]; (call o_isBeaconSavingOn) }; if ([_obj] call o_isWarchest) exitWith { - //diag_log format["%1 is warchest", _obj]; + //diag_log format["box4(%1): o_isWarchestSavingOn = %2", _obj, (call o_isWarchestSavingOn)]; (call o_isWarchestSavingOn) }; if ([_obj] call o_isStaticWeapon) exitWith { - //diag_log format["%1 is static weapon", _obj]; + //diag_log format["box3(%1): o_isStaticWeaponSavingOn = %2", _obj, (call o_isStaticWeaponSavingOn)]; (call o_isStaticWeaponSavingOn) }; @@ -124,10 +124,12 @@ o_isSaveable = { _locked = _obj getVariable ["objectLocked", false]; if ([_obj] call o_isBox) exitWith { - (_boxSavingOn && _locked) + //diag_log format["box2(%1): _boxSavingOn = %2, _locked = %3", _obj, _boxSavingOn, _locked]; + (_boxSavingOn && {_locked}) }; - (_boxSavingOn && _locked) + //diag_log format["box1(%1): _boxSavingOn = %2, _locked = %3",_obj, _boxSavingOn, _locked]; + (_boxSavingOn && {_locked}) }; o_isVehicle = { From 65875768c97d9bfeafa120c497538d6e8e2f94a0 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 26 Oct 2014 02:54:45 -0700 Subject: [PATCH 055/544] put vehicles back on the ground, or sea-surface when restoring --- persistence/world/vFunctions.sqf | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index fb844b51c..725524c48 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -345,9 +345,6 @@ v_addSaveVehicle = { _class = typeOf _obj; _netId = netId _obj; - _pos = ASLtoATL getPosWorld _obj; - _value = (_pos select 2) + 0.3; - _pos set [2, ((_pos select 2) + 0.3)]; _dir = [vectorDir _obj, vectorUp _obj]; _damage = damage _obj; _texture = _obj getVariable ["A3W_objectTexture", ""]; @@ -416,6 +413,15 @@ v_addSaveVehicle = { _objName = format["veh_%1_%2",ceil(time), ceil(random 10000)]; _obj setVariable ["vehicle_key", _objName, true]; }; + _pos = ASLtoATL getPosWorld _obj; + _pos set [2, ((_pos select 2) + 0.3)]; + //force the Z-axis if the vehicle is high above ground + if (!(isTouchingGround _obj || {(getPos _obj) select 2 < 0.5 || (getPosASL _obj) select 2 < 0.5})) then { + _pos set [2, 0]; + if (surfaceIsWater _posATL) then { + _posATL = ASLToATL (_posATL); + }; + }; _list pushBack [_objName, ([ ["Class", _class], From aacdefa4ea03cec26a18c03af72ab28f1982361c Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 26 Oct 2014 02:56:48 -0700 Subject: [PATCH 056/544] fix defect where thirst, and hunger were being reset back to 100 all the time --- client/functions/playerSetupEnd.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/functions/playerSetupEnd.sqf b/client/functions/playerSetupEnd.sqf index f4acd2c96..317b16006 100644 --- a/client/functions/playerSetupEnd.sqf +++ b/client/functions/playerSetupEnd.sqf @@ -6,8 +6,8 @@ _player = _this; _player addRating 9999999; -thirstLevel = 100; -hungerLevel = 100; +thirstLevel = if (isNil "thirstLevel") then {100} else {thirstLevel}; +hungerLevel = if (isNil "hungerLevel") then {100} else {hungerLevel}; [objNull, _player] call mf_player_actions_refresh; [] execVM "client\functions\playerActions.sqf"; From b1af8c7613d8972ef804f760e65b1205692278d3 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 26 Oct 2014 14:56:03 -0700 Subject: [PATCH 057/544] Fix defect, wrong variable name, _obj vs _object --- server/spawning/objectCreation.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/spawning/objectCreation.sqf b/server/spawning/objectCreation.sqf index c94649edf..8caba673b 100644 --- a/server/spawning/objectCreation.sqf +++ b/server/spawning/objectCreation.sqf @@ -43,7 +43,7 @@ switch (true) do }; default { - _object setVariable ["allowDamage", true]; + _obj setVariable ["allowDamage", true]; }; }; From 7ce721482a157efc6a11b1af037501c7723a7b86 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 26 Oct 2014 16:45:22 -0700 Subject: [PATCH 058/544] add missing vehicle setup --- persistence/world/vFunctions.sqf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 725524c48..3748a6c0c 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -182,7 +182,9 @@ v_restoreVehicle = {_this spawn { if (!isOBJECT(_obj)) exitWith { diag_log format["Could not create vehicle of class: %1", _class]; }; - + + [_obj, false] call vehicleSetup; + _obj setVariable ["vehicle_key", _vehicle_key, true]; _obj setPosWorld ATLtoASL _pos; From 00b7bec811bcfcc7c8e523637fbc80e68510fe3a Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 27 Oct 2014 00:08:42 -0700 Subject: [PATCH 059/544] support for hand-off vehicle persistence This is also making the vehicle persistence support compatible with the config variables introduced by AgentRev A3W_purchasedVehicleSaving A3W_missionVehicleSaving A3W_vehicleMaxUnusedTime A3W_vehicleLifetime --- persistence/world/vFunctions.sqf | 283 ++++++++++++++++++++++++------ server/default_config.sqf | 10 ++ server/functions/vehicleSetup.sqf | 7 + 3 files changed, 251 insertions(+), 49 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 3748a6c0c..71a5335d5 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -104,7 +104,32 @@ v_isVehicle = { (_result) }; -v_maxLifetime = OR(A3W_vehicleLifetime,nil); + + +v_restoreVehicleVariables = { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_variables,[]); + + def(_name); + def(_value); + + { + _name = _x select 0; + _value = _x select 1; + + if (!isNil "_value") then { + switch (_name) do { + case "side": { _value = _value call v_strToSide}; + }; + }; + _obj setVariable [_name, OR(_value,nil), true]; + } forEach _variables; +}; + + +v_maxLifetime = if (isSCALAR(A3W_vehicleLifetime)) then {A3W_vehicleLifetime} else {0}; +v_maxAbandonedTime = if (isSCALAR(A3W_vehicleMaxUnusedTime)) then {A3W_vehicleMaxUnusedTime} else {0}; + v_restoreVehicle = {_this spawn { //diag_log format["%1 call v_restoreVehicle", _this]; @@ -122,6 +147,7 @@ v_restoreVehicle = {_this spawn { def(_hours_alive); + def(_hours_abandoned); def(_pos); def(_class); def(_dir); @@ -140,6 +166,7 @@ v_restoreVehicle = {_this spawn { def(_hitPoints); + def(_key); def(_value); @@ -157,6 +184,7 @@ v_restoreVehicle = {_this spawn { case "Magazines": { _cargo_magazines = OR(_value,nil);}; case "Backpacks": { _cargo_backpacks = OR(_value,nil);}; case "HoursAlive": { _hours_alive = OR(_value,nil);}; + case "HoursAbandoned": { _hours_abandoned = OR(_value,nil);}; case "Variables": { _variables = OR(_value,nil);}; case "AmmoCargo": { _cargo_ammo = OR(_value,nil);}; case "FuelCargo": { _cargo_fuel = OR(_value,nil);}; @@ -172,11 +200,15 @@ v_restoreVehicle = {_this spawn { diag_log format["No class or position available for vehicle: %1", _vehicle_key]; }; - if (isSCALAR(v_maxLifetime) && {v_maxLifetime <= 0 || {_hours_alive > v_maxLifetime}}) exitWith { + if (v_maxLifetime > 0 && {_hours_alive > v_maxLifetime}) exitWith { diag_log format["vehicle %1(%2) has exceeded max lifetime of %3, skipping it", _vehicle_key, _class, v_maxLifetime]; }; - + if (v_maxAbandonedTime > 0 && {_hours_abandoned > v_maxAbandonedTime}) exitWith { + diag_log format["vehicle %1(%2) has exceeded max abandoned time of %3, skipping it", _vehicle_key, _class, v_maxAbandonedTime]; + }; + + def(_obj); _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; if (!isOBJECT(_obj)) exitWith { @@ -196,6 +228,11 @@ v_restoreVehicle = {_this spawn { if (isSCALAR(_hours_alive)) then { _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; }; + + _obj setVariable ["vehicle_abandoned_time", diag_tickTime]; //the moment the vehicle is restored, consider it abandoned + if (isSCALAR(_hours_abandoned)) then { + _obj setVariable ["vehicle_abandoned_hours", _hours_abandoned]; + }; // disables thermal equipment on loaded vehicles, comment out if you want thermal _obj disableTIEquipment true; @@ -235,25 +272,8 @@ v_restoreVehicle = {_this spawn { { _obj setHitPointDamage _x } forEach _hitPoints; }; + [_obj,_variables] call v_restoreVehicleVariables; - //restore vehicle variables - if (isARRAY(_variables)) then { - def(_name); - def(_value); - { - _name = _x select 0; - _value = _x select 1; - - if (!isNil "_value") then { - switch (_name) do { - case "side": { _value = _value call v_strToSide}; - }; - }; - - _obj setVariable [_name, OR(_value,nil), true]; - } forEach _variables; - }; - //restore the stuff inside the vehicle clearWeaponCargoGlobal _obj; clearMagazineCargoGlobal _obj; @@ -305,7 +325,7 @@ v_restoreVehicle = {_this spawn { }; -};}; +}};; //build list of object that should not be saved v_skipList = []; @@ -318,38 +338,49 @@ def(_obj); v_skipList pushBack _obj; } forEach [civilianVehicles, call allVehStoreVehicles]; -v_vehicleIsSaveble = { + +v_isSavingMissionVehiclesDisabled = (isSCALAR(A3W_missionVehicleSaving) && {A3W_missionVehicleSaving == 0}); +v_isSavingPurchasedVehiclesDisabled = (isSCALAR(A3W_purchasedVehicleSaving) && {A3W_purchasedVehicleSaving == 0}); + + +v_isAMissionVehicle = { + ARGVX4(0,_obj,objNull,false); + not(isNil{_obj getVariable "A3W_missionVehicle"}) +}; + +v_isAPurchasedVehicle = { + ARGVX4(0,_obj,objNull,false); + not(isNil{_obj getVariable "A3W_purchasedVehicle"}) +}; + +v_isVehicleSaveable = { ARGVX4(0,_obj,objNull,false); + //it's a wreck, don't save it if (not(alive _obj)) exitWith {false}; + + //not a vehicle, don't save it if (not([_obj] call v_isVehicle)) exitWith {false}; - if (not(isNil{_obj getVariable "vehicle_key"})) exitWith {true}; - if (not(isNil{_obj getVariable "A3W_purchasedStoreObject"})) exitWith {true}; + + //it's a purchased vehicle, but saving purchased vehicles has been disabled, don't save it + if (([_obj] call v_isAPurchasedVehicle) && {v_isSavingPurchasedVehiclesDisabled}) exitWith {false}; + + //it's a mission spawned vehicle, but saving mission vehicles has been disabled, don't save it + if (([_obj] call v_isAMissionVehicle) && {v_isSavingMissionVehiclesDisabled}) exitWith {false}; + + //the vehicle has been used at least once + if (not([_obj] call v_isVehicleVirgin)) exitWith {true}; false }; -v_addSaveVehicle = { - ARGVX3(0,_list,[]); - ARGVX3(1,_obj,objNull); - if (not([_obj] call v_vehicleIsSaveble)) exitWith {}; +v_trackVehicleHoursAlive = { + ARGVX3(0,_obj,objNull); - def(_class); - def(_netId); - def(_pos); - def(_dir); - def(_damage); - def(_texture); def(_spawnTime); def(_hoursAlive); - def(_hoursSinceSpawn); - _class = typeOf _obj; - _netId = netId _obj; - _dir = [vectorDir _obj, vectorUp _obj]; - _damage = damage _obj; - _texture = _obj getVariable ["A3W_objectTexture", ""]; _spawnTime = _obj getVariable "baseSaving_spawningTime"; _hoursAlive = _obj getVariable "baseSaving_hoursAlive"; @@ -357,30 +388,133 @@ v_addSaveVehicle = { _spawnTime = diag_tickTime; _obj setVariable ["baseSaving_spawningTime", _spawnTime, true]; }; - + if (isNil "_hoursAlive") then { _hoursAlive = 0; - _obj setVariable ["baseSaving_hoursAlive", _hoursAlive, true]; + _obj setVariable ["baseSaving_hoursAlive", _hoursAlive, true]; }; - + def(_totalHours); _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; - - def(_variables); - _variables = []; + + (_totalHours) +}; + +v_trackVehicleHoursAbandoned = { + ARGVX3(0,_obj,objNull); + + //if the vehicle is not empty, it can't possibly be abandoned + if (not([_obj] call v_isVehicleEmpty)) exitWith {0}; + + //if the vehicle has never been used, it's not technically abandoned, just un-used + if (isNil{_obj getVariable "vehicle_first_user"}) exitWith {0}; + + /* + * past this point, we know for sure that the vehicle is in 'abandoned' state + * which means that it has been used at least once, and left empty somewhere + * by a player + */ + + def(_hoursAbandoned); + def(_abandonedTime); + + _abandonedTime = _obj getVariable "vehicle_abandoned_time"; + _hoursAbandoned = _obj getVariable "vehicle_abandoned_hours"; + + if (!isSCALAR(_abandonedTime)) then { + _abandonedTime = diag_tickTime; + _obj setVariable ["vehicle_abandoned_time", _abandonedTime]; + }; + + if (!isSCALAR(_hoursAbandoned)) then { + _hoursAbandoned = 0; + _obj setVariable ["vehicle_abandoned_hours", _hoursAbandoned]; + }; + + + def(_totalHours); + _totalHours = _hoursAbandoned + (diag_tickTime - _abandonedTime) / 3600; + + (_totalHours) +}; + +v_setupVehicleSavedVariables = { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_variables,[]); def(_ownerUID); _ownerUID = _obj getVariable ["ownerUID", nil]; if (isSTRING(_ownerUID) && {_ownerUID != ""}) then { _variables pushBack ["ownerUID", _ownerUID];; }; - + def(_ownerN); _ownerN = _obj getVariable ["ownerN", nil]; if (isSTRING(_ownerN) && {_ownerN != ""}) then { _variables pushBack ["ownerN", _ownerN]; }; + def(_firstUser); + _firstUser = _obj getVariable ["vehicle_first_user", nil]; + if (isSTRING(_firstUser) && {_firstUser != ""}) then { + _variables pushBack ["vehicle_first_user", _firstUser]; + }; + + _variables pushBack ["vehicle_abandoned_by", (_obj getVariable "vehicle_abandoned_by")]; + + def(_purchasedVehicle); + _purchasedVehicle = _obj getVariable "A3W_purchasedVehicle"; + if (defined(_purchasedVehicle)) then { + _variables pushBack ["A3W_purchasedVehicle", _purchasedVehicle]; + }; + + def(_missionVehicle); + _missionVehicle = _obj getVariable "A3W_missionVehicle"; + if (defined(_missionVehicle)) then { + _variables pushBack ["A3W_missionVehicle", _missionVehicle]; + }; + + def(_r3f_log_disabled); + _r3f_log_disabled = _obj getVariable "R3F_LOG_disabled"; + if (defined(_r3f_log_disabled)) then { + _variables pushBack ["R3F_LOG_disabled", _r3f_log_disabled]; + }; + + +}; + +v_addSaveVehicle = { + ARGVX3(0,_list,[]); + ARGVX3(1,_obj,objNull); + + if (not([_obj] call v_isVehicleSaveable)) exitWith {}; + + def(_class); + def(_netId); + def(_pos); + def(_dir); + def(_damage); + def(_texture); + def(_hoursAlive); + def(_hoursAbandoned); + + _class = typeOf _obj; + _netId = netId _obj; + _dir = [vectorDir _obj, vectorUp _obj]; + _damage = damage _obj; + _texture = _obj getVariable ["A3W_objectTexture", ""]; + + _hoursAlive = [_obj] call v_trackVehicleHoursAlive; + _hoursAbandoned = [_obj] call v_trackVehicleHoursAbandoned; + + //diag_log format["%1: _hoursAlive = %2", _obj,_hoursAlive]; + //diag_log format["%1: _hoursAbandoned = %2", _obj,_hoursAbandoned]; + + def(_variables); + _variables = []; + [_obj,_variables] call v_setupVehicleSavedVariables; + + init(_weapons,[]); init(_magazines,[]); init(_items,[]); @@ -429,7 +563,8 @@ v_addSaveVehicle = { ["Class", _class], ["Position", _pos], ["Direction", _dir], - ["HoursAlive", _totalHours], + ["HoursAlive", _hoursAlive], + ["HoursAbandoned", _hoursAbandoned], ["Damage", _damage], ["Fuel", _fuel], ["Variables", _variables], @@ -449,6 +584,56 @@ v_addSaveVehicle = { true }; +v_isVehicleEmpty = { + ARGVX4(0,_obj,objNull,false); + not({isPlayer _x} count crew _obj > 0 || isPlayer ((uavControl _obj) select 0)) +}; + +//a virgin vehicle is one that no-one has ever used +v_isVehicleVirgin = { + ARGVX4(0,_obj,objNull,false); + (isNil {_obj getVariable "vehicle_first_user"}) +}; + +v_GetIn_handler = { + //diag_log format["%1 call v_GetIn_handler", _this]; + ARGVX3(0,_obj,objNull); + ARGVX3(2,_player,objNull); + + //only track players + if (!(isPlayer _player)) exitWith {}; + init(_uid,getPlayerUID _player); + + if ([_obj] call v_isVehicleVirgin) then { + _obj setVariable ["vehicle_first_user", _uid]; + }; + + //diag_log format["%1 entered vehicle by %2", _obj, _player]; + _obj setVariable ["vehicle_abandoned_by", nil]; + _obj setVariable ["vehicle_abandoned_time", nil]; +}; + +v_GetOut_handler = { + //diag_log format["%1 call v_GetOut_handler", _this]; + ARGVX3(0,_obj,objNull); + ARGVX3(2,_player,objNull); + + //only track players + if (!(isPlayer _player)) exitWith {}; + init(_uid,getPlayerUID _player); + + //in case the player was already inside the vehicle ... (the get-in handler did not catch it) + if ([_obj] call v_isVehicleVirgin) then { + _obj setVariable ["vehicle_first_user", _uid]; + }; + + if ([_obj] call v_isVehicleEmpty) then { + //diag_log format["%1 left abandoned by %2", _obj, _player]; + _obj setVariable ["vehicle_abandoned_by", _uid]; + _obj setVariable ["vehicle_abandoned_time", diag_tickTime]; + }; +}; + v_saveAllVechiles = { ARGVX3(0,_scope,""); init(_count,0); diff --git a/server/default_config.sqf b/server/default_config.sqf index b94b2fa11..44ded2225 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -43,6 +43,10 @@ A3W_vehicle_saveInterval = 60; // Number of seconds between vehicle saves A3W_object_saveInterval = 60; // Number of seconds between object saves A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked unpon restore A3W_vehicleLifetime = 36; // Maximum lifetime in hours for saved vehicles (leave it unset, or set to 0 for no limit) +A3W_vehicleMaxUnusedTime = 8; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) +A3W_purchasedVehicleSaving = 1; // Save vehicles purchased at vehicle stores between server restarts (0 = no, 1 = yes) +A3W_missionVehicleSaving = 1; // Save vehicles captured from missions between server restarts (0 = no, 1 = yes) + // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) @@ -80,3 +84,9 @@ A3W_missionsDifficulty = 0; // Missions difficulty (0 = normal, 1 = hard) // A3W_moneyMissionTimeout = 60*60; // Time in seconds that a Money Mission will run for, unless completed // A3W_moneyMissionDelay = 15*60; // Time in seconds between Money Missions // A3W_missionCompleteRadius = 99999; // Radius from a mission in which a player must be present in order mark it as complete after AIs are killed + +A3W_purchasedVehicleSaving = 1; // Save vehicles purchased at vehicle stores between server restarts (0 = no, 1 = yes) +A3W_missionVehicleSaving = 1; // Save vehicles captured from missions between server restarts (0 = no, 1 = yes) + +A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) +A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) \ No newline at end of file diff --git a/server/functions/vehicleSetup.sqf b/server/functions/vehicleSetup.sqf index 35ec7b296..cda119346 100644 --- a/server/functions/vehicleSetup.sqf +++ b/server/functions/vehicleSetup.sqf @@ -51,3 +51,10 @@ if (_vehicle isKindOf "SUV_01_base_F") then _centerOfMass set [2, -0.657]; _vehicle setCenterOfMass _centerOfMass; }; + + +if (isDedicated) then { + //used for keeping track of the vehicle used un-used lifetime + _vehicle addEventHandler ["GetIn", { _this spawn v_GetIn_handler}]; + _vehicle addEventHandler ["GetOut", { _this spawn v_GetOut_handler}]; +}; \ No newline at end of file From 2ad684182b62001a70c36e6d9e901d89008a30f6 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 27 Oct 2014 00:15:53 -0700 Subject: [PATCH 060/544] remove duplicate config settings --- server/default_config.sqf | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/server/default_config.sqf b/server/default_config.sqf index 44ded2225..2949497a7 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -43,7 +43,7 @@ A3W_vehicle_saveInterval = 60; // Number of seconds between vehicle saves A3W_object_saveInterval = 60; // Number of seconds between object saves A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked unpon restore A3W_vehicleLifetime = 36; // Maximum lifetime in hours for saved vehicles (leave it unset, or set to 0 for no limit) -A3W_vehicleMaxUnusedTime = 8; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) +A3W_vehicleMaxUnusedTime = 8; // Maximum time in hours that a vehicle can be left abandoned, after X hours of being abandoned, it will not be saved anymore (0 = no limit) A3W_purchasedVehicleSaving = 1; // Save vehicles purchased at vehicle stores between server restarts (0 = no, 1 = yes) A3W_missionVehicleSaving = 1; // Save vehicles captured from missions between server restarts (0 = no, 1 = yes) @@ -83,10 +83,4 @@ A3W_missionsDifficulty = 0; // Missions difficulty (0 = normal, 1 = hard) // A3W_sideMissionDelay = 5*60; // Time in seconds between Side Missions // A3W_moneyMissionTimeout = 60*60; // Time in seconds that a Money Mission will run for, unless completed // A3W_moneyMissionDelay = 15*60; // Time in seconds between Money Missions -// A3W_missionCompleteRadius = 99999; // Radius from a mission in which a player must be present in order mark it as complete after AIs are killed - -A3W_purchasedVehicleSaving = 1; // Save vehicles purchased at vehicle stores between server restarts (0 = no, 1 = yes) -A3W_missionVehicleSaving = 1; // Save vehicles captured from missions between server restarts (0 = no, 1 = yes) - -A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) -A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) \ No newline at end of file +// A3W_missionCompleteRadius = 99999; // Radius from a mission in which a player must be present in order mark it as complete after AIs are killed \ No newline at end of file From b5a12854d751e9bdc49c2f7ff517702179470ae7 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 27 Oct 2014 13:16:39 -0700 Subject: [PATCH 061/544] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7553a8bbd..675a7c756 100644 --- a/README.md +++ b/README.md @@ -27,17 +27,17 @@ If you are looking for the prebuilt PBO files head over to the [Release Files](h 0. Open a new terminal, and switch to the Arma 3 server directory
cd ~/steamcmd/arma3
0. Download and unzip the Wasteland saving pack -
wget https://github.com/micovery/ArmA3_Wasteland.Altis/releases/download/v0.0.1/A3W_Saving_Pack-sock_v0.0.1.zip
-
unzip A3W_Saving_Pack-sock_v0.0.1.zip
+
wget https://github.com/micovery/ArmA3_Wasteland.Altis/releases/download/v0.9hi-sock_v0.0.2/A3W_Saving_Pack_v0.9hi-sock_v0.0.2.zip
+
unzip A3W_Saving_Pack_v0.9hi-sock_v0.0.2.zip
0. Download misison file, and put it in the mpmissions directory -
wget https://github.com/micovery/ArmA3_Wasteland.Altis/releases/download/v0.0.1/ArmA3_Wasteland_v0.9h-sock_v0.0.1.Altis.pbo
-
mv ArmA3_Wasteland_v0.9h-sock_v0.0.1.Altis.pbo mpmissions/
+
wget https://github.com/micovery/ArmA3_Wasteland.Altis/releases/download/v0.9hi-sock_v0.0.2/ArmA3_Wasteland_v0.9hi-sock_v0.0.2.Altis.pbo
+
mv ArmA3_Wasteland_v0.9hi-sock_v0.0.2.Altis.pbo mpmissions/
0. Modify your server config file to reference the Wasteland mission
   //excerpt from server.cfg
   class Missions {
     class Test {
-      template="ArmA3_Wasteland_v0.9h-sock_v0.0.1.Altis";
+      template="ArmA3_Wasteland_v0.9hi-sock_v0.0.2.Altis.pbo";
       difficulty="regular";
     };
   };

From 19b884d1f98649ba2e77402fe4662cf46f5e05ed Mon Sep 17 00:00:00 2001
From: micovery 
Date: Mon, 27 Oct 2014 17:35:25 -0700
Subject: [PATCH 062/544] fix defect where if objects had not hours alive, or
 hours abandoned, it would error out

---
 persistence/world/vFunctions.sqf | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf
index 71a5335d5..a244bbbb8 100644
--- a/persistence/world/vFunctions.sqf
+++ b/persistence/world/vFunctions.sqf
@@ -200,11 +200,11 @@ v_restoreVehicle = {_this spawn {
     diag_log format["No class or position available for vehicle: %1", _vehicle_key];
   };
 
-  if (v_maxLifetime > 0 && {_hours_alive > v_maxLifetime}) exitWith {
+  if (isSCALAR(_hours_alive) && {v_maxLifetime > 0 && {_hours_alive > v_maxLifetime}}) exitWith {
     diag_log format["vehicle %1(%2) has exceeded max lifetime of %3, skipping it", _vehicle_key, _class, v_maxLifetime];
   };
 
-  if (v_maxAbandonedTime > 0 && {_hours_abandoned > v_maxAbandonedTime}) exitWith {
+  if (isSCALAR(_hours_abandoned) && {v_maxAbandonedTime > 0 && {_hours_abandoned > v_maxAbandonedTime}}) exitWith {
     diag_log format["vehicle %1(%2) has exceeded max abandoned time of %3, skipping it", _vehicle_key, _class, v_maxAbandonedTime];
   };
 

From b8e2628f1d9c5649be48f475af250c1e5e9f1312 Mon Sep 17 00:00:00 2001
From: micovery 
Date: Mon, 27 Oct 2014 17:36:24 -0700
Subject: [PATCH 063/544] peformance fix for object save

Keep a list in-memory of all the locked objects, instead of discovering
them each time.
---
 .../objectLockStateMachine.sqf                |  7 +++
 persistence/world/oFunctions.sqf              | 60 ++++++++++++++++++-
 2 files changed, 65 insertions(+), 2 deletions(-)

diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf
index 3f0ced9d9..5e588dc4d 100644
--- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf
+++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf
@@ -58,6 +58,9 @@ switch (_lockState) do
 			_object setVariable ["ownerUID", getPlayerUID player, true];
 			_object setVariable ["ownerN", name player, true];
 
+      //tell the server that this object was locked
+			objectLocked = _object;
+			publicVariableServer "objectLocked";
 			
 			["Object locked!", 5] call mf_notify_client;
 		};
@@ -138,6 +141,10 @@ switch (_lockState) do
 			_object setVariable ["ownerUID", nil, true];
 			_object setVariable ["baseSaving_hoursAlive", nil, true];
 			_object setVariable ["baseSaving_spawningTime", nil, true];
+
+      //tell the server that this object was unlocked
+      objectUnlocked = _object;
+      publicVariableServer "objectUnlocked";
 			
 			["Object unlocked!", 5] call mf_notify_client;
 		};
diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf
index 981b49ad0..7a8ed910e 100644
--- a/persistence/world/oFunctions.sqf
+++ b/persistence/world/oFunctions.sqf
@@ -343,7 +343,11 @@ o_restoreObject = {_this spawn {
   _unlocked = [_obj] call o_isAlwaysUnlocked;
   if (_unlocked) then {
     _obj setVariable ["objectLocked", false, true];
+	}
+	else {
+	  (locked_objects_list pushBack _obj);
 	};
+
 };};
 
 
@@ -549,6 +553,8 @@ o_saveAllObjects = {
   init(_bulk_size,100);
   init(_start_time, diag_tickTime);
   init(_last_save, diag_tickTime);
+
+
   {
     if (!isNil{[_request, _x] call o_addSaveObject}) then {
       _count = _count + 1;
@@ -563,7 +569,7 @@ o_saveAllObjects = {
       diag_log format["o_saveLoop: %1 objects saved in %2 ticks, save call took %3 ticks", (_bulk_size), (diag_tickTime - _start_time), (_save_end - _save_start)];
       _last_save = _save_end;
     };
-  } forEach (allMissionObjects "All");
+  } forEach (locked_objects_list);
   
   if (count(_request) > 1) then {
     init(_save_start, diag_tickTime);
@@ -574,10 +580,60 @@ o_saveAllObjects = {
 
   diag_log format["o_saveLoop: total of %1 objects saved in %2 ticks", (_count), (diag_tickTime - _start_time)];
 
-  
+  call o_lockedObjectsListCleanup;
+};
+
+o_lockedObjectsListCleanup = {
+
+  //post cleanup the array
+  init(_cleanup_start, diag_tickTime);
+  init(_nulls,[]);
+  init(_index,-1);
+  init(_start_size,count(locked_objects_list));
+  while {true} do {
+    _index = locked_objects_list find objNull;
+    if (_index < 0) exitWith {};
+    locked_objects_list deleteAt _index;
+  };
+  init(_end_size,count(locked_objects_list));
+  init(_cleanup_end, diag_tickTime);
+  diag_log format["o_saveLoop: count(locked_objects_list) = %1, %2 nulls deleted in %3 ticks", count(locked_objects_list), (_start_size - _end_size), (_cleanup_end - _cleanup_start)];
+};
+
+
+locked_objects_list = [];
+
+o_getLockedObjectIndex = {
+  ARGVX4(0,_obj,objNull,-1);
+  if (isNull _obj) exitWith {-1};
+
+  (locked_objects_list find _obj)
+};
+
+//event handlers for object locking and unlocking
+"objectLocked" addPublicVariableEventHandler {
+  private["_index","_object"];
+  _object = _this select 1;
+  _index = [OR(_object,nil)] call o_getLockedObjectIndex;
+  if (_index >= 0) exitWith {};
+
+  //diag_log format["%1 is being added to the lock list", _object];
+  locked_objects_list pushBack _object;
 };
 
 
+"objectUnlocked" addPublicVariableEventHandler {
+  private["_index","_object"];
+  _object = _this select 1;
+  _index = [OR(_object,nil)] call o_getLockedObjectIndex;
+  if (_index < 0) exitWith {};
+
+  //diag_log format["%1 is being removed from the lock list", _object];
+  locked_objects_list deleteAt _index;
+};
+
+
+
 o_saveLoop_interval = OR(A3W_object_saveInterval,60);
 diag_log format["config: A3W_object_saveInterval = %1", o_saveLoop_interval];
 

From 4a878bbeed7da83718d837dc2083cbc0364b8a9a Mon Sep 17 00:00:00 2001
From: micovery 
Date: Mon, 27 Oct 2014 19:43:33 -0700
Subject: [PATCH 064/544] minor tab/space/syntax fixes

---
 persistence/world/oFunctions.sqf | 58 ++++++++++++++++----------------
 persistence/world/vFunctions.sqf | 48 +++++++++++++-------------
 2 files changed, 53 insertions(+), 53 deletions(-)

diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf
index 7a8ed910e..d808f9afc 100644
--- a/persistence/world/oFunctions.sqf
+++ b/persistence/world/oFunctions.sqf
@@ -1,7 +1,7 @@
-//	@file Version: 0.1
-//	@file Name: oFunctions.sqf
-//	@file Author: micovery
-//	@file Description: Object loading
+//  @file Version: 0.1
+//  @file Name: oFunctions.sqf
+//  @file Author: micovery
+//  @file Description: Object loading
 
 diag_log "oFunctions.sqf loading ...";
 
@@ -9,14 +9,14 @@ diag_log "oFunctions.sqf loading ...";
 
 o_strToSide = {
   def(_result);
-	_result = switch (toUpper _this) do {
-		case "WEST":  { BLUFOR };
-		case "EAST":  { OPFOR };
-		case "GUER":  { INDEPENDENT };
-		case "CIV":   { CIVILIAN };
-		case "LOGIC": { sideLogic };
-		default       { sideUnknown };
-	};
+  _result = switch (toUpper _this) do {
+    case "WEST":  { BLUFOR };
+    case "EAST":  { OPFOR };
+    case "GUER":  { INDEPENDENT };
+    case "CIV":   { CIVILIAN };
+    case "LOGIC": { sideLogic };
+    default       { sideUnknown };
+  };
   (_result)
 };
 
@@ -86,10 +86,10 @@ o_hasInventory = {
   def(_config);
   _config = (configFile >> "CfgVehicles" >> _class);
 
-	(isClass _config && {
+  (isClass _config && {
    getNumber (_config >> "transportMaxWeapons") > 0 ||
-	 getNumber (_config >> "transportMaxMagazines") > 0 ||
-	 getNumber (_config >> "transportMaxBackpacks") > 0})
+   getNumber (_config >> "transportMaxMagazines") > 0 ||
+   getNumber (_config >> "transportMaxBackpacks") > 0})
 };
          
 o_isSaveable = {
@@ -149,11 +149,11 @@ o_isAlwaysUnlocked = {
   ARGVX4(0,_obj,objNull, false);
   
   def(_result);
-	_result = switch (true) do {
+  _result = switch (true) do {
     case ([_obj] call o_isWarchest): { true };
     case ([_obj] call o_isBeacon): {true};
     default { false };
-	};
+  };
   
   (_result)
 };
@@ -343,10 +343,10 @@ o_restoreObject = {_this spawn {
   _unlocked = [_obj] call o_isAlwaysUnlocked;
   if (_unlocked) then {
     _obj setVariable ["objectLocked", false, true];
-	}
-	else {
-	  (locked_objects_list pushBack _obj);
-	};
+  }
+  else {
+    (locked_objects_list pushBack _obj);
+  };
 
 };};
 
@@ -417,7 +417,7 @@ o_fillVariables = {
   };
 
   def(_r3fSide);
-	_r3fSide = _obj getVariable "R3F_Side";
+  _r3fSide = _obj getVariable "R3F_Side";
   if (!isNil "_r3fSide" && {typeName _r3fSide == typeName sideUnknown}) then {
     _variables pushBack ["R3F_Side", str _r3fSide];
   };  
@@ -439,7 +439,7 @@ o_addSaveObject = {
   def(_allowDamage);
 
   _class = typeOf _obj;
- 	_netId = netId _obj;
+   _netId = netId _obj;
   _pos = ASLtoATL getPosWorld _obj;
   _dir = [vectorDir _obj, vectorUp _obj];
   _damage = damage _obj;
@@ -485,13 +485,13 @@ o_addSaveObject = {
   init(_turretMags,[]);
   if ((call o_isStaticWeaponSavingOn) && {[_obj] call o_isStaticWeapon}) then {
     _turretMags = magazinesAmmo _obj;
-	};
+  };
 
   init(_ammoCargo,getAmmoCargo _obj);
   init(_fuelCargo,getFuelCargo _obj);
   init(_repairCargo,getRepairCargo _obj);
   
-	
+  
   def(_objName);
   _objName = _obj getVariable "object_key";
 
@@ -526,14 +526,14 @@ o_addSaveObject = {
 o_saveInfo = {
   ARGVX3(0,_scope,"");
   
-	init(_fundsWest,0);
-	init(_fundsEast,0);
+  init(_fundsWest,0);
+  init(_fundsEast,0);
   
   init(_request,[_scope]);
   
   if (call o_isWarchestMoneySavingOn) then {
     _fundsWest = ["pvar_warchest_funds_west", 0] call getPublicVar;
-		_fundsEast = ["pvar_warchest_funds_east", 0] call getPublicVar;
+    _fundsEast = ["pvar_warchest_funds_east", 0] call getPublicVar;
   };
   
   init(_objName, "Info");
@@ -541,7 +541,7 @@ o_saveInfo = {
   _request pushBack [ _objName + "." + "WarchestMoneyOPFOR", _fundsEast];
   
   _request call stats_set;  
-};	
+};  
 
 
 o_saveAllObjects = {
diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf
index a244bbbb8..82171deaa 100644
--- a/persistence/world/vFunctions.sqf
+++ b/persistence/world/vFunctions.sqf
@@ -27,15 +27,15 @@ v_isBeacon = {
 
 v_strToSide = {
   def(_result);
-	_result = switch (toUpper _this) do
-	{
-		case "WEST":  { BLUFOR };
-		case "EAST":  { OPFOR };
-		case "GUER":  { INDEPENDENT };
-		case "CIV":   { CIVILIAN };
-		case "LOGIC": { sideLogic };
-		default       { sideUnknown };
-	};
+  _result = switch (toUpper _this) do
+  {
+    case "WEST":  { BLUFOR };
+    case "EAST":  { OPFOR };
+    case "GUER":  { INDEPENDENT };
+    case "CIV":   { CIVILIAN };
+    case "LOGIC": { sideLogic };
+    default       { sideUnknown };
+  };
   (_result)
 };
 
@@ -43,11 +43,11 @@ v_isAlwaysUnlocked = {
   ARGVX4(0,_obj,objNull, false);
   
   def(_result);
-	_result = switch (true) do {
+  _result = switch (true) do {
     case (_obj call v_isWarchest): { true };
     case (_obj call v_isBeacon): {true};
-		default { false };
-	};
+    default { false };
+  };
   
   (_result)
 };
@@ -243,7 +243,7 @@ v_restoreVehicle = {_this spawn {
     _obj setVariable ["locked", 2, true];
     _obj setVariable ["objectLocked", true, true];
     _obj setVariable ["R3F_LOG_disabled",true,true];
-	};
+  };
 
 
   if (isSTRING(_texture) && {_texture != ""}) then {  
@@ -251,8 +251,8 @@ v_restoreVehicle = {_this spawn {
     _selections = [_obj] call v_getVehicleTextureSelections;
     if (!isARRAY(_selections)) exitWith {};
     
-    _obj setVariable ["A3W_objectTexture", _texture, true];		
-		_obj setVariable ["BIS_enableRandomization", false, true];
+    _obj setVariable ["A3W_objectTexture", _texture, true];
+    _obj setVariable ["BIS_enableRandomization", false, true];
 
     { 
       _obj setObjectTextureGlobal [_x, _texture] 
@@ -322,7 +322,7 @@ v_restoreVehicle = {_this spawn {
   _unlocked = [_obj] call v_isAlwaysUnlocked;
   if (_unlocked) then {
     _obj setVariable ["objectLocked", false, true];
-	};
+  };
   
   
 }};;
@@ -597,26 +597,26 @@ v_isVehicleVirgin = {
 
 v_GetIn_handler = {
   //diag_log format["%1 call v_GetIn_handler", _this];
-	ARGVX3(0,_obj,objNull);
-	ARGVX3(2,_player,objNull);
+  ARGVX3(0,_obj,objNull);
+  ARGVX3(2,_player,objNull);
 
   //only track players
-	if (!(isPlayer _player)) exitWith {};
-	init(_uid,getPlayerUID _player);
+  if (!(isPlayer _player)) exitWith {};
+  init(_uid,getPlayerUID _player);
 
   if ([_obj] call v_isVehicleVirgin) then {
     _obj setVariable ["vehicle_first_user", _uid];
   };
 
   //diag_log format["%1 entered vehicle by %2", _obj, _player];
-	_obj setVariable ["vehicle_abandoned_by", nil];
+  _obj setVariable ["vehicle_abandoned_by", nil];
   _obj setVariable ["vehicle_abandoned_time", nil];
 };
 
 v_GetOut_handler = {
   //diag_log format["%1 call v_GetOut_handler", _this];
-	ARGVX3(0,_obj,objNull);
-	ARGVX3(2,_player,objNull);
+  ARGVX3(0,_obj,objNull);
+  ARGVX3(2,_player,objNull);
 
   //only track players
   if (!(isPlayer _player)) exitWith {};
@@ -631,7 +631,7 @@ v_GetOut_handler = {
     //diag_log format["%1 left abandoned by %2", _obj, _player];
     _obj setVariable ["vehicle_abandoned_by", _uid];
     _obj setVariable ["vehicle_abandoned_time", diag_tickTime];
-	};
+  };
 };
 
 v_saveAllVechiles = {

From e04c507d95f6ac81c9c75995a2c16ab2a359fa64 Mon Sep 17 00:00:00 2001
From: micovery 
Date: Mon, 27 Oct 2014 19:52:20 -0700
Subject: [PATCH 065/544] minor logging improvements for vehicle, and object
 restoring

---
 persistence/world/oFunctions.sqf | 4 ++--
 persistence/world/vFunctions.sqf | 7 +++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf
index d808f9afc..4746e2a34 100644
--- a/persistence/world/oFunctions.sqf
+++ b/persistence/world/oFunctions.sqf
@@ -225,14 +225,14 @@ o_restoreObject = {_this spawn {
   diag_log format["%1(%2) is being restored.", _object_key, _class];
 
   if (o_maxLifetime <= 0 || {_hours_alive > o_maxLifetime}) exitWith {
-    diag_log format["%1(%2) has exceeded max lifetime, skipping it", _object_key, _class];
+    diag_log format["object %1(%2) has been alive for %3 (max=%4), skipping it", _object_key, _class, _hours_alive, o_maxLifetime];
   };
   
   def(_obj);
   _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"];
   _obj allowDamage false; //set damage to false immediately to avoid taking fall damage
   if (!isOBJECT(_obj)) exitWith {
-    diag_log format["%1(%2) could not be created.", _object_key, _class];
+    diag_log format["object %1(%2) could not be created.", _object_key, _class];
   };
   
   _obj setVariable ["object_key", _object_key, true];
diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf
index 82171deaa..2b5e2e7a8 100644
--- a/persistence/world/vFunctions.sqf
+++ b/persistence/world/vFunctions.sqf
@@ -200,12 +200,15 @@ v_restoreVehicle = {_this spawn {
     diag_log format["No class or position available for vehicle: %1", _vehicle_key];
   };
 
+  diag_log format["%1(%2) is being restored.", _object_key, _class];
+
+
   if (isSCALAR(_hours_alive) && {v_maxLifetime > 0 && {_hours_alive > v_maxLifetime}}) exitWith {
-    diag_log format["vehicle %1(%2) has exceeded max lifetime of %3, skipping it", _vehicle_key, _class, v_maxLifetime];
+    diag_log format["vehicle %1(%2) has been alive for %3 (max=%4), skipping it", _object_key, _class, _hours_alive, v_maxLifetime];
   };
 
   if (isSCALAR(_hours_abandoned) && {v_maxAbandonedTime > 0 && {_hours_abandoned > v_maxAbandonedTime}}) exitWith {
-    diag_log format["vehicle %1(%2) has exceeded max abandoned time of %3, skipping it", _vehicle_key, _class, v_maxAbandonedTime];
+    diag_log format["vehicle %1(%2) has been abandoned for %3 hours, (max=%4), skipping it", _vehicle_key, _class, _hours_abandoned, v_maxAbandonedTime];
   };
 
 

From 1f47fc1473444eaea59134f0bfa674a8d3ea1e86 Mon Sep 17 00:00:00 2001
From: micovery 
Date: Mon, 27 Oct 2014 20:13:54 -0700
Subject: [PATCH 066/544] fix defect where civ boats were not saved

---
 persistence/world/oFunctions.sqf | 2 +-
 persistence/world/vFunctions.sqf | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf
index 4746e2a34..6eca3c058 100644
--- a/persistence/world/oFunctions.sqf
+++ b/persistence/world/oFunctions.sqf
@@ -140,7 +140,7 @@ o_isVehicle = {
     if (_obj isKindOf _x) exitWith {
       _result = true;
     };
-  } forEach ["Helicopter", "Plane", "Boat_F", "Car", "Motorcycle", "Tank", "StaticWeapon"];
+  } forEach ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank", "StaticWeapon"];
   
   (_result)
 };
diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf
index 2b5e2e7a8..ee04e28cd 100644
--- a/persistence/world/vFunctions.sqf
+++ b/persistence/world/vFunctions.sqf
@@ -99,7 +99,7 @@ v_isVehicle = {
     if (_obj isKindOf _x) exitWith {
       _result = true;
     };
-  } forEach ["Helicopter", "Plane", "Boat_F", "Car", "Motorcycle", "Tank", "StaticWeapon"];
+  } forEach ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank", "StaticWeapon"];
   
   (_result)
 };

From 7fad34eac8e7a6591e0600f3e57d85f1b4f6f5b7 Mon Sep 17 00:00:00 2001
From: micovery 
Date: Tue, 28 Oct 2014 10:45:57 -0700
Subject: [PATCH 067/544] fix defect, wrong variable name in log messages

---
 persistence/world/vFunctions.sqf | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf
index ee04e28cd..05417bb8c 100644
--- a/persistence/world/vFunctions.sqf
+++ b/persistence/world/vFunctions.sqf
@@ -200,11 +200,11 @@ v_restoreVehicle = {_this spawn {
     diag_log format["No class or position available for vehicle: %1", _vehicle_key];
   };
 
-  diag_log format["%1(%2) is being restored.", _object_key, _class];
+  diag_log format["%1(%2) is being restored.", _vehicle_key, _class];
 
 
   if (isSCALAR(_hours_alive) && {v_maxLifetime > 0 && {_hours_alive > v_maxLifetime}}) exitWith {
-    diag_log format["vehicle %1(%2) has been alive for %3 (max=%4), skipping it", _object_key, _class, _hours_alive, v_maxLifetime];
+    diag_log format["vehicle %1(%2) has been alive for %3 (max=%4), skipping it", _vehicle_key, _class, _hours_alive, v_maxLifetime];
   };
 
   if (isSCALAR(_hours_abandoned) && {v_maxAbandonedTime > 0 && {_hours_abandoned > v_maxAbandonedTime}}) exitWith {

From 3b623d02b7989cd58cec6faf71caafb62f52d6c4 Mon Sep 17 00:00:00 2001
From: micovery 
Date: Tue, 28 Oct 2014 13:32:10 -0700
Subject: [PATCH 068/544] performance fix for vehicle save

---
 persistence/world/vFunctions.sqf | 62 +++++++++++++++++++++++++++++---
 1 file changed, 58 insertions(+), 4 deletions(-)

diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf
index 05417bb8c..39e2e61d3 100644
--- a/persistence/world/vFunctions.sqf
+++ b/persistence/world/vFunctions.sqf
@@ -326,10 +326,61 @@ v_restoreVehicle = {_this spawn {
   if (_unlocked) then {
     _obj setVariable ["objectLocked", false, true];
   };
-  
-  
+
+  tracked_vehicles_list pushBack _obj;
+
 }};;
 
+
+tracked_vehicles_list = [];
+
+v_getTrackedVehicleIndex = {
+  ARGVX4(0,_obj,objNull,-1);
+  if (isNull _obj) exitWith {-1};
+
+  (tracked_vehicles_list find _obj)
+};
+
+//event handlers for object locking and unlocking
+v_trackVehicle = {
+  private["_index","_object"];
+  _object = _this select 0;
+  _index = [OR(_object,nil)] call v_getTrackedVehicleIndex;
+  if (_index >= 0) exitWith {};
+
+  //diag_log format["%1 is being added to the tracked list", _object];
+  tracked_vehicles_list pushBack _object;
+};
+
+
+v_untrackVehicle = {
+  private["_index","_object"];
+  _object = _this select 0;
+  _index = [OR(_object,nil)] call o_getLockedObjectIndex;
+  if (_index < 0) exitWith {};
+
+  //diag_log format["%1 is being removed from the tracked list", _object];
+  tracked_vehicles_list deleteAt _index;
+};
+
+v_trackedVehiclesListCleanup = {
+  //post cleanup the array
+  init(_cleanup_start, diag_tickTime);
+  init(_nulls,[]);
+  init(_index,-1);
+  init(_start_size,count(tracked_vehicles_list));
+  while {true} do {
+    _index = tracked_vehicles_list find objNull;
+    if (_index < 0) exitWith {};
+    tracked_vehicles_list deleteAt _index;
+  };
+  init(_end_size,count(tracked_vehicles_list));
+  init(_cleanup_end, diag_tickTime);
+  diag_log format["v_saveLoop: count(tracked_vehicles_list) = %1, %2 nulls deleted in %3 ticks", count(tracked_vehicles_list), (_start_size - _end_size), (_cleanup_end - _cleanup_start)];
+};
+
+
+
 //build list of object that should not be saved
 v_skipList = [];
 def(_obj);
@@ -614,6 +665,8 @@ v_GetIn_handler = {
   //diag_log format["%1 entered vehicle by %2", _obj, _player];
   _obj setVariable ["vehicle_abandoned_by", nil];
   _obj setVariable ["vehicle_abandoned_time", nil];
+
+  [_obj] call v_trackVehicle;
 };
 
 v_GetOut_handler = {
@@ -662,7 +715,7 @@ v_saveAllVechiles = {
       diag_log format["v_saveLoop: %1 vehicles saved in %2 ticks, save call took %3 ticks", (_bulk_size), (diag_tickTime - _start_time), (_save_end - _save_start)];
       _last_save = _save_end;
     };
-  } forEach (allMissionObjects "All");
+  } forEach (tracked_vehicles_list);
   
   if (count(_request) > 1) then {
     init(_save_start, diag_tickTime);
@@ -672,7 +725,8 @@ v_saveAllVechiles = {
   };
   
   diag_log format["v_saveLoop: total of %1 vehicles saved in %2 ticks", (_count), (diag_tickTime - _start_time)];
-
+  
+  call v_trackedVehiclesListCleanup;
 };
 
 v_saveLoop_interval = OR(A3W_vehicle_saveInterval,60);

From e97d8818113c4e76c4b6722d4ded834268a1b851 Mon Sep 17 00:00:00 2001
From: micovery 
Date: Tue, 28 Oct 2014 21:23:51 -0700
Subject: [PATCH 069/544] fix #14 textures not saving/loading

---
 persistence/world/vFunctions.sqf | 68 ++++++--------------------------
 1 file changed, 12 insertions(+), 56 deletions(-)

diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf
index 39e2e61d3..d53c0915b 100644
--- a/persistence/world/vFunctions.sqf
+++ b/persistence/world/vFunctions.sqf
@@ -53,44 +53,6 @@ v_isAlwaysUnlocked = {
 };
 
 
-v_getVehicleTextureSelections = {
-  ARGVX3(0,_veh,objNull);
-  
-  _selections = switch (true) do {
-    case (_veh isKindOf "Van_01_base_F"):             { [0,1] };
-    case (_veh isKindOf "MRAP_01_base_F"):            { [0,2] };
-    case (_veh isKindOf "MRAP_02_base_F"):            { [0,2] };
-    case (_veh isKindOf "MRAP_03_base_F"):            { [0,1] };
-
-    case (_veh isKindOf "Truck_01_base_F"):           { [0,1,2] };
-    case (_veh isKindOf "Truck_02_base_F"):           { [0,1] };
-    case (_veh isKindOf "Truck_03_base_F"):           { [0,1] };
-
-    case (_veh isKindOf "APC_Wheeled_01_base_F"):     { [0,2] };
-    case (_veh isKindOf "APC_Wheeled_02_base_F"):     { [0,2] };
-    case (_veh isKindOf "APC_Wheeled_03_base_F"):     { [0,2,3] };
-
-    case (_veh isKindOf "APC_Tracked_01_base_F"):     { [0,1,2,3] };
-    case (_veh isKindOf "APC_Tracked_02_base_F"):     { [0,1,2] };
-    case (_veh isKindOf "APC_Tracked_03_base_F"):     { [0,1] };
-
-    case (_veh isKindOf "MBT_01_base_F"):             { [0,1,2] };
-    case (_veh isKindOf "MBT_02_base_F"):             { [0,1,2,3] };
-    case (_veh isKindOf "MBT_03_base_F"):             { [0,1,2] };
-
-    case (_veh isKindOf "Heli_Transport_01_base_F"):  { [0,1] };
-    case (_veh isKindOf "Heli_Transport_02_base_F"):  { [0,1,2] };
-    case (_veh isKindOf "Heli_Attack_02_base_F"):     { [0,1] };
-
-    case (_veh isKindOf "Plane_Base_F"):              { [0,1] };
-
-    default                                           { [0] };
-  };
-  
-  (_selections)
-};
-
-
 v_isVehicle = {
   ARGVX4(0,_obj,objNull,false);
   
@@ -105,7 +67,6 @@ v_isVehicle = {
 };
 
 
-
 v_restoreVehicleVariables = {
   ARGVX3(0,_obj,objNull);
   ARGVX3(1,_variables,[]);
@@ -178,7 +139,6 @@ v_restoreVehicle = {_this spawn {
       case "Position": { _pos = OR(_value,nil);};
       case "Direction": { _dir = OR(_value,nil);};
       case "Damage": { _damage = OR(_value,nil);};
-      case "Texture": { _texture = OR(_value,nil);};
       case "Weapons": { _cargo_weapons = OR(_value,nil);};
       case "Items": { _cargo_items = OR(_value,nil);};
       case "Magazines": { _cargo_magazines = OR(_value,nil);};
@@ -249,20 +209,7 @@ v_restoreVehicle = {_this spawn {
   };
 
 
-  if (isSTRING(_texture) && {_texture != ""}) then {  
-    def(_selections);
-    _selections = [_obj] call v_getVehicleTextureSelections;
-    if (!isARRAY(_selections)) exitWith {};
-    
-    _obj setVariable ["A3W_objectTexture", _texture, true];
-    _obj setVariable ["BIS_enableRandomization", false, true];
 
-    { 
-      _obj setObjectTextureGlobal [_x, _texture] 
-    } forEach _selections;
-  };
-  
-  
   if (isSCALAR(_damage)) then {
     _obj setDamage _damage;
   };
@@ -277,6 +224,17 @@ v_restoreVehicle = {_this spawn {
    
   [_obj,_variables] call v_restoreVehicleVariables;
 
+
+  def(_textures);
+  _textures = _obj getVariable ["A3W_objectTextures",[]];
+  if (isARRAY(_textures)) then {
+    _obj setVariable ["BIS_enableRandomization", false, true];
+    {
+      _obj setObjectTextureGlobal _x;
+    } forEach _textures;
+  };
+
+
   //restore the stuff inside the vehicle  
   clearWeaponCargoGlobal _obj;
   clearMagazineCargoGlobal _obj;
@@ -534,6 +492,7 @@ v_setupVehicleSavedVariables = {
     _variables pushBack ["R3F_LOG_disabled", _r3f_log_disabled];
   };
 
+  _variables pushBack ["A3W_objectTextures", (_obj getVariable ["A3W_objectTextures",[]])];
 
 };
 
@@ -548,7 +507,6 @@ v_addSaveVehicle = {
   def(_pos);
   def(_dir);
   def(_damage);
-  def(_texture);
   def(_hoursAlive);
   def(_hoursAbandoned);
 
@@ -556,7 +514,6 @@ v_addSaveVehicle = {
   _netId = netId _obj;
   _dir = [vectorDir _obj, vectorUp _obj];
   _damage = damage _obj;
-  _texture = _obj getVariable ["A3W_objectTexture", ""];
 
   _hoursAlive = [_obj] call v_trackVehicleHoursAlive;
   _hoursAbandoned = [_obj] call v_trackVehicleHoursAbandoned;
@@ -622,7 +579,6 @@ v_addSaveVehicle = {
     ["Damage", _damage],
     ["Fuel", _fuel],
     ["Variables", _variables],
-    ["Texture", _texture],
     ["Weapons", _weapons],
     ["Magazines", _magazines],
     ["Items", _items],

From 62f98e0b940b59621d1f5f90dd82589aecfc1437 Mon Sep 17 00:00:00 2001
From: micovery 
Date: Wed, 29 Oct 2014 03:19:31 -0700
Subject: [PATCH 070/544] automatically add bought vehicle to the tracked list

---
 server/functions/spawnStoreObject.sqf | 1 +
 1 file changed, 1 insertion(+)

diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf
index 364112dc9..5ce28c1ff 100644
--- a/server/functions/spawnStoreObject.sqf
+++ b/server/functions/spawnStoreObject.sqf
@@ -129,6 +129,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore
 			_objectID = netId _object;
 			_object setVariable ["A3W_purchasedStoreObject", true];
 			_object setVariable ["ownerUID", getPlayerUID _player];
+			[_object] call v_trackVehicle;
 
 			if (getNumber (configFile >> "CfgVehicles" >> _class >> "isUav") > 0) then
 			{

From 3d06d9d1b64f0be36864b45550f82b7b1149afc9 Mon Sep 17 00:00:00 2001
From: micovery 
Date: Wed, 29 Oct 2014 03:20:10 -0700
Subject: [PATCH 071/544] put player back into vehicle on loading

---
 persistence/players/pFunctions.sqf | 32 ++++++++++++++++++++++++++++++
 persistence/world/vFunctions.sqf   | 30 ++++++++++++++++++++++++++++
 2 files changed, 62 insertions(+)

diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf
index 783347679..8049d5790 100644
--- a/persistence/players/pFunctions.sqf
+++ b/persistence/players/pFunctions.sqf
@@ -146,6 +146,7 @@ fn_applyPlayerData = {
   def(_handgun_weapon);
   def(_uniform_class);
   def(_vest_class);
+  def(_vehicle_key);
 
   //iterate through the data, and extract the hash variables into local variables
   {
@@ -163,6 +164,8 @@ fn_applyPlayerData = {
       case "HandgunWeapon": { _handgun_weapon = _value};
       case "Uniform":{ _uniform_class = _value};
       case "Vest": { _vest_class = _value};
+      case "InVehicle": { _vehicle_key = _value};
+
     };
   } forEach _data;
 
@@ -248,6 +251,18 @@ fn_applyPlayerData = {
       case "WastelandItems": { { [_x select 0, _x select 1, true] call mf_inventory_add } forEach _value };
     };
   } forEach _data;
+
+  if (isSTRING(_vehicle_key)) then {
+    diag_log format["Looks like you were in a vehicle, we will put you back inside, hang tight"];
+    backInVehicle = [player,_vehicle_key];
+    publicVariableServer "backInVehicle";
+    private["_end_time"];
+    _end_time = time + 30; //wait at most 30 seconds before givin up
+    while {((vehicle player) == player) && { time < _end_time}} do {
+      sleep 1;
+    };
+    diag_log format["Vehicle wait complete after %1 secs", (time - _end_time)];
+  };
 };
 
 fn_savePlayerData = {
@@ -423,6 +438,10 @@ p_savePlayerData = {
     */
     { _data pushBack _x } forEach _gear;
 
+
+    _data pushBack ["InVehicle", (vehicle player) getVariable ["vehicle_key",nil]];
+
+
     if (alive player) then {
       missionNamespace setVariable [_reply_variable, [_UID, _info, _data, player]];
       publicVariableServer _reply_variable;
@@ -570,4 +589,17 @@ fn_requestPlayerData = {[] spawn {
 
 
 
+
+"objectUnlocked" addPublicVariableEventHandler {
+  private["_index","_object"];
+  _object = _this select 1;
+  _index = [OR(_object,nil)] call o_getLockedObjectIndex;
+  if (_index < 0) exitWith {};
+
+  //diag_log format["%1 is being removed from the lock list", _object];
+  locked_objects_list deleteAt _index;
+};
+
+
+
 diag_log "pFunctions.sqf loading complete";
diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf
index d53c0915b..ff82183f6 100644
--- a/persistence/world/vFunctions.sqf
+++ b/persistence/world/vFunctions.sqf
@@ -181,6 +181,7 @@ v_restoreVehicle = {_this spawn {
   [_obj, false] call vehicleSetup;
 
   _obj setVariable ["vehicle_key", _vehicle_key, true];
+  missionNamespace setVariable [_vehicle_key, _obj];
   
   _obj setPosWorld ATLtoASL _pos;
   if (isARRAY(_dir)) then {
@@ -290,6 +291,33 @@ v_restoreVehicle = {_this spawn {
 }};;
 
 
+//event handlers for object locking and unlocking
+"backInVehicle" addPublicVariableEventHandler { _this spawn {
+  diag_log format["%1 backInVehicle", _this];
+  private["_player", "_vehicle_key"];
+  _this = _this select 1;
+  _player = _this select 0;
+  _vehicle_key = _this select 1;
+
+  if (isNil "_player" || {typeName _player != typeName objNull}) exitWith {};
+  if (isNil "_vehicle_key" || {typeName _vehicle_key != typeName ""}) exitWith {};
+
+  waitUntil {!isNil {v_loadVehicles_complete}};
+
+  private["_vehicle"];
+  _vehicle = missionNamespace getVariable _vehicle_key;
+  if (isNil "_vehicle" || {typeName _vehicle != typeName objNull}) exitWith {};
+
+  //diag_log format["Putting back %1 into vehicle %2", _player, _vehicle];
+  private["_lock_state"];
+  _lock_state = locked _vehicle;
+  _vehicle lock 0;
+  _player moveInAny _vehicle;
+  _vehicle lock _lock_state;
+  _player setVariable ["vehicle", _vehicle];
+};};
+
+
 tracked_vehicles_list = [];
 
 v_getTrackedVehicleIndex = {
@@ -712,6 +740,8 @@ v_loadVehicles = {
   { 
     [_x] call v_restoreVehicle;
   } forEach _vehicles;
+
+  v_loadVehicles_complete = true;
 };
 
 diag_log "vFunctions.sqf loading complete";
\ No newline at end of file

From 23758b1363b48a27b544dd4314eff31f3ea6ee36 Mon Sep 17 00:00:00 2001
From: micovery 
Date: Thu, 30 Oct 2014 23:55:58 -0700
Subject: [PATCH 072/544] change design so that player stats are saved on
 disconnect, and on a loop server-side

---
 client/functions/loadRespawnDialog.sqf  |   1 +
 client/functions/playerSetupEnd.sqf     |   4 +
 client/functions/spawnInTown.sqf        |   2 +
 client/functions/spawnOnBeacon.sqf      |   2 +
 client/functions/spawnRandom.sqf        |   2 +
 client/init.sqf                         |   1 +
 client/inventory/add.sqf                |   3 +
 client/inventory/remove.sqf             |   3 +
 client/inventory/set.sqf                |   3 +
 persistence/players/pFunctions.sqf      | 248 +++-------------
 persistence/players/sFunctions.sqf      | 374 ++++++++++++++++++++++--
 persistence/players/s_setupPlayerDB.sqf |   5 +-
 server/default_config.sqf               |   6 +-
 server/init.sqf                         |  11 +-
 14 files changed, 418 insertions(+), 247 deletions(-)

diff --git a/client/functions/loadRespawnDialog.sqf b/client/functions/loadRespawnDialog.sqf
index 68d650a9b..651a2fa38 100644
--- a/client/functions/loadRespawnDialog.sqf
+++ b/client/functions/loadRespawnDialog.sqf
@@ -53,6 +53,7 @@ _side = switch (playerSide) do
 
 _respawnText ctrlSetStructuredText parseText (format ["Welcome to Wasteland
You are on %1. Please select a spawn point.", _side]); respawnDialogActive = true; +player setVariable ["respawnDialogActive", true, true]; _dynamicControlsArray = [ diff --git a/client/functions/playerSetupEnd.sqf b/client/functions/playerSetupEnd.sqf index 6a2201784..ff5c6a58f 100644 --- a/client/functions/playerSetupEnd.sqf +++ b/client/functions/playerSetupEnd.sqf @@ -17,3 +17,7 @@ hungerLevel = if (isNil "hungerLevel") then {100} else {hungerLevel}; _player groupChat "Wasteland - Initialization Complete"; playerSetupComplete = true; +_player setVariable ["initComplete", true, true]; + +trackMe = [_player]; +publicVariable "trackMe"; \ No newline at end of file diff --git a/client/functions/spawnInTown.sqf b/client/functions/spawnInTown.sqf index 1cdd7c605..45c4623f4 100644 --- a/client/functions/spawnInTown.sqf +++ b/client/functions/spawnInTown.sqf @@ -25,6 +25,8 @@ _preload = [_this, 1, false, [false]] call BIS_fnc_param; } forEach (call cityList); respawnDialogActive = false; +player setVariable ["respawnDialogActive", false, true]; + closeDialog 0; _townName spawn diff --git a/client/functions/spawnOnBeacon.sqf b/client/functions/spawnOnBeacon.sqf index 451503a90..c9a78d022 100644 --- a/client/functions/spawnOnBeacon.sqf +++ b/client/functions/spawnOnBeacon.sqf @@ -21,6 +21,8 @@ if (_preload) then { waitUntil {sleep 0.1; preloadCamera _playerPos} }; player setPos _playerPos; respawnDialogActive = false; +player setVariable ["respawnDialogActive", false, true]; + closeDialog 0; _owner spawn diff --git a/client/functions/spawnRandom.sqf b/client/functions/spawnRandom.sqf index d834adadb..96b7aa483 100644 --- a/client/functions/spawnRandom.sqf +++ b/client/functions/spawnRandom.sqf @@ -21,6 +21,8 @@ if (_preload) then { waitUntil {sleep 0.1; preloadCamera _playerPos} }; player setPos _playerPos; respawnDialogActive = false; +player setVariable ["respawnDialogActive", false, true]; + closeDialog 0; _townName spawn diff --git a/client/init.sqf b/client/init.sqf index c35390d6a..3ec0f3438 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -23,6 +23,7 @@ waitUntil {!isNil "A3W_serverSetupComplete"}; showPlayerIcons = true; mutexScriptInProgress = false; respawnDialogActive = false; +player setVariable ["respawnDialogActive", false, true]; groupManagmentActive = false; pvar_PlayerTeamKiller = objNull; doCancelAction = false; diff --git a/client/inventory/add.sqf b/client/inventory/add.sqf index df738c779..01528e830 100644 --- a/client/inventory/add.sqf +++ b/client/inventory/add.sqf @@ -39,3 +39,6 @@ if (_abs) then { } else { _item set [QTY, _current + _qty]; }; + +trackMyInventory = [player, mf_inventory]; +publicVariableServer "trackMyInventory"; diff --git a/client/inventory/remove.sqf b/client/inventory/remove.sqf index 4e559ddbe..9ddc4daef 100644 --- a/client/inventory/remove.sqf +++ b/client/inventory/remove.sqf @@ -20,3 +20,6 @@ private ["_item", "_current"]; _item = _id call mf_inventory_get; _current = _item select QTY; _item set [QTY, _current - _qty]; + +trackMyInventory = [player, mf_inventory]; +publicVariableServer "trackMyInventory"; \ No newline at end of file diff --git a/client/inventory/set.sqf b/client/inventory/set.sqf index b743fe9a7..8bc9a7c14 100644 --- a/client/inventory/set.sqf +++ b/client/inventory/set.sqf @@ -33,3 +33,6 @@ _done = false; if (!_done) then { _new pushBack _this }; mf_inventory = _new; + +trackMyInventory = [player, mf_inventory]; +publicVariableServer "trackMyInventory"; diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 783347679..47dd3e055 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -176,7 +176,7 @@ fn_applyPlayerData = { //Restore backpack, and stuff inside if (isSTRING(_backpack_class) && {_backpack_class != ""}) then { - diag_log format["Resting backpack: %1", _backpack_class]; + //diag_log format["Restoring backpack: %1", _backpack_class]; [_backpack_class] call p_restoreBackpack; //restore the stuff inside the backpack @@ -191,22 +191,22 @@ fn_applyPlayerData = { //restore other stuff that is not order-dependent def(_name); def(_value); - { + {if (true) then { _name = _x select 0; _value = _x select 1; switch (_name) do { - case "Damage": { player setDamage _value }; - case "HitPoints": { { player setHitPointDamage _x } forEach _value }; - case "Hunger": { hungerLevel = _value }; - case "Thirst": { thirstLevel = _value }; - case "Money": { player setVariable ["cmoney", _value, true] }; - case "Position": { if (count _value == 3) then { player setPosATL _value } }; - case "Direction": { player setDir _value }; - case "Goggles": { if (_value != "") then { player addGoggles _value } }; + case "Damage": { if (isSCALAR(_value)) then {player setDamage _value;};}; + case "HitPoints": { { player setHitPointDamage _x } forEach (OR(_value,[])) }; + case "Hunger": { hungerLevel = OR(_value,nil); }; + case "Thirst": { thirstLevel = OR(_value,nil); }; + case "Money": { player setVariable ["cmoney", OR(_value,0), true] }; + case "Position": { if (isARRAY(_value) && {count _value == 3}) then { player setPosATL _value } }; + case "Direction": { if (defined(_value)) then {player setDir _value} }; + case "Goggles": { if (isSTRING(_value) && {_value != ""}) then { player addGoggles _value } }; case "Headgear": { // If wearing one of the default headgears, give the one belonging to actual team instead - if (_value != "") then { + if (isSTRING(_value) && {_value != ""}) then { _defHeadgear = [player, "headgear"] call getDefaultClothing; _defHeadgears = [ @@ -223,9 +223,9 @@ fn_applyPlayerData = { }; }; }; - case "PrimaryWeaponItems": { { if (_x != "") then { player addPrimaryWeaponItem _x } } forEach _value }; - case "SecondaryWeaponItems": { { if (_x != "") then { player addSecondaryWeaponItem _x } } forEach _value }; - case "HandgunItems": { { if (_x != "") then { player addHandgunItem _x } } forEach _value }; + case "PrimaryWeaponItems": { { if (_x != "") then { player addPrimaryWeaponItem _x } } forEach (OR(_value,[])) }; + case "SecondaryWeaponItems": { { if (_x != "") then { player addSecondaryWeaponItem _x } } forEach (OR(_value,[])) }; + case "HandgunItems": { { if (_x != "") then { player addHandgunItem _x } } forEach (OR(_value,[])) }; case "AssignedItems": { { if ([player, _x] call isAssignableBinocular) then { @@ -234,201 +234,36 @@ fn_applyPlayerData = { else { player linkItem _x; }; - } forEach _value; + } forEach (OR(_value,[])); }; - case "CurrentWeapon": { player selectWeapon _value }; - case "Stance": { [player, [player, _value] call getFullMove] call switchMoveGlobal }; - case "UniformWeapons": { { (uniformContainer player) addWeaponCargoGlobal _x } forEach _value }; - case "UniformItems": { { (uniformContainer player) addItemCargoGlobal _x } forEach _value }; - case "UniformMagazines": { { (uniformContainer player) addMagazineCargoGlobal _x } forEach _value }; - case "VestWeapons": { { (vestContainer player) addWeaponCargoGlobal _x } forEach _value }; - case "VestItems": { { (vestContainer player) addItemCargoGlobal _x } forEach _value }; - case "VestMagazines": { { (vestContainer player) addMagazineCargoGlobal _x } forEach _value }; + case "CurrentWeapon": { player selectWeapon OR(_value,"") }; + case "Animation": { if (isSTRING(_value) && {_value != ""}) then {[player, _value] call switchMoveGlobal};}; + case "UniformWeapons": { { (uniformContainer player) addWeaponCargoGlobal _x } forEach (OR(_value,[])) }; + case "UniformItems": { { (uniformContainer player) addItemCargoGlobal _x } forEach (OR(_value,[])) }; + case "UniformMagazines": { { (uniformContainer player) addMagazineCargoGlobal _x } forEach (OR(_value,[])) }; + case "VestWeapons": { { (vestContainer player) addWeaponCargoGlobal _x } forEach (OR(_value,[])) }; + case "VestItems": { { (vestContainer player) addItemCargoGlobal _x } forEach (OR(_value,[])) }; + case "VestMagazines": { { (vestContainer player) addMagazineCargoGlobal _x } forEach (OR(_value,[])) }; case "PartialMagazines": { { player addMagazine _x } forEach _value }; - case "WastelandItems": { { [_x select 0, _x select 1, true] call mf_inventory_add } forEach _value }; + case "WastelandItems": { { [_x select 0, _x select 1, true] call mf_inventory_add } forEach (OR(_value,[])) }; }; - } forEach _data; + };} forEach _data; }; fn_savePlayerData = { - if (isDedicated) exitWith {}; - if (isCODE(savePlayerHandle) && {!scriptDone savePlayerHandle}) exitWith {}; - - ARGV4(0,_manual_save,false,false); - - - savePlayerHandle = ["savePlayerData"] spawn p_savePlayerData; - - if (isCODE(savePlayerHandle)) then { - _savePlayerHandle = savePlayerHandle; - waitUntil {scriptDone _savePlayerHandle}; - savePlayerHandle = nil; - }; - - if (_manual_save) then { - cutText ["\nPlayer saved!", "PLAIN DOWN", 0.2]; - }; -}; - -p_isPlayerSaveable = { - ( - alive player && - {!isNil "isConfigOn" && {["A3W_playerSaving"] call isConfigOn}} && - {!isNil "playerSetupComplete" && {playerSetupComplete}} && - {!isNil "respawnDialogActive" && {!respawnDialogActive}} && - {player getVariable ["FAR_isUnconscious", 0] == 0} - ) -}; - -p_savePlayerData = { - ARGVX3(0,_reply_variable,""); - if (not(call p_isPlayerSaveable)) exitWith {}; - - def(_UID); - _UID = getPlayerUID player; - - _info = - [ - ["UID", _UID], - ["Name", name player], - ["LastGroupSide", str side group player], - ["LastPlayerSide", str playerSide], - ["BankMoney", player getVariable ["bmoney", 0]] - ]; - - _hitPoints = []; - { - _hitPoint = configName _x; - _hitPoints pushBack [_hitPoint, player getHitPointDamage _hitPoint]; - } forEach (player call getHitPoints); - - _data = - [ - ["Damage", damage player], - ["HitPoints", _hitPoints], - ["Hunger", ["hungerLevel", 0] call getPublicVar], - ["Thirst", ["thirstLevel", 0] call getPublicVar], - ["Money", player getVariable ["cmoney", 0]] // Money is always saved, but only restored if A3W_moneySaving = 1 - ]; - - // Only save those when on ground or underwater (you probably wouldn't want to spawn 500m in the air if you get logged off in flight) - if (isTouchingGround vehicle player || {(getPos player) select 2 < 0.5 || (getPosASL player) select 2 < 0.5}) then { - _data pushBack ["Position", getPosATL player]; - _data pushBack ["Direction", direction player]; - - if (vehicle player == player) then { - _data pushBack ["CurrentWeapon", format ["%1", currentMuzzle player]]; // currentMuzzle returns a number sometimes, hence the format - _data pushBack ["Stance", [player, ["P"]] call getMoveParams]; - }; - }; - - _gear = - [ - ["Uniform", uniform player], - ["Vest", vest player], - ["Backpack", backpack player], - ["Goggles", goggles player], - ["Headgear", headgear player], - - ["PrimaryWeapon", primaryWeapon player], - ["SecondaryWeapon", secondaryWeapon player], - ["HandgunWeapon", handgunWeapon player], - - ["PrimaryWeaponItems", primaryWeaponItems player], - ["SecondaryWeaponItems", secondaryWeaponItems player], - ["HandgunItems", handgunItems player], - - ["AssignedItems", assignedItems player] - ]; - - - _uMags = []; - _vMags = []; - _bMags = []; - _partialMags = []; - - { - _magArr = _x select 0; - - { - _mag = _x select 0; - _ammo = _x select 1; - - if (_ammo == getNumber (configFile >> "CfgMagazines" >> _mag >> "count")) then { - [_magArr, _mag, 1] call fn_addToPairs; - } - else { - if (_ammo > 0) then { - _partialMags pushBack [_mag, _ammo]; - }; - }; - } forEach magazinesAmmoCargo (_x select 1); - } - forEach + trackMyVitals = + [ + player, [ - [_uMags, uniformContainer player], - [_vMags, vestContainer player], - [_bMags, backpackContainer player] - ]; - - _loadedMags = []; - - { - _mag = _x select 0; - _ammo = _x select 1; - _loaded = _x select 2; - _type = _x select 3; - - // if loaded in weapon, not empty, and not hand grenade - if (_loaded && _ammo > 0 && _type != 0) then - { - _loadedMags pushBack [_mag, _ammo]; - }; - } forEach magazinesAmmoFull player; - - _data pushBack ["UniformWeapons", (getWeaponCargo uniformContainer player) call cargoToPairs]; - _data pushBack ["UniformItems", (getItemCargo uniformContainer player) call cargoToPairs]; - _data pushBack ["UniformMagazines", _uMags]; - - _data pushBack ["VestWeapons", (getWeaponCargo vestContainer player) call cargoToPairs]; - _data pushBack ["VestItems", (getItemCargo vestContainer player) call cargoToPairs]; - _data pushBack ["VestMagazines", _vMags]; + ["thirstLevel", thirstLevel], + ["hungerLevel", hungerLevel] + ] + ]; - _data pushBack ["BackpackWeapons", (getWeaponCargo backpackContainer player) call cargoToPairs]; - _data pushBack ["BackpackItems", (getItemCargo backpackContainer player) call cargoToPairs]; - _data pushBack ["BackpackMagazines", _bMags]; - - _gear pushBack ["PartialMagazines", _partialMags]; - _gear pushBack ["LoadedMagazines", _loadedMags]; - - _wastelandItems = []; - { - if (_x select 1 > 0) then - { - _wastelandItems pushBack [_x select 0, _x select 1]; - }; - } forEach call mf_inventory_all; - - _gear pushBack ["WastelandItems", _wastelandItems]; - - //FIXME: re-enable this optimization once stats_merge is implement - /* - _gearStr = str _gear; - - if (_gearStr != ["playerData_gear", ""] call getPublicVar) then - { - { _data pushBack _x } forEach _gear; - playerData_gear = _gearStr; - }; - */ - { _data pushBack _x } forEach _gear; - - if (alive player) then { - missionNamespace setVariable [_reply_variable, [_UID, _info, _data, player]]; - publicVariableServer _reply_variable; - }; + publicVariableServer "trackMyVitals"; }; + fn_deletePlayerData = { deletePlayerData = player; publicVariableServer "deletePlayerData"; @@ -563,11 +398,20 @@ fn_requestPlayerData = {[] spawn { };}; -"reportStats" addPublicVariableEventHandler { - diag_log format["reportStats: %1", _this]; - [_this select 1] spawn p_savePlayerData; + +p_handle_mprespawn = { + ARGV3(0,_unit,objNull); + ARGV3(1,_corpse,objNull); + //diag_log format["%1 call p_handle_mprespawn;", _this]; + + if (not(local _unit)) exitWith {}; + trackMe = [_unit]; + publicVariableServer "trackMe"; }; +player addMPEventHandler ["MPRespawn",{ _this call p_handle_mprespawn }]; + + diag_log "pFunctions.sqf loading complete"; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 293208da6..ce3956ead 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -15,36 +15,25 @@ s_processRestartMessage = { ARGVX3(4,_subject,""); ARGV2(5,_body); - diag_log format["Requesting all players to report their stats"]; - def(_var_name); - _var_name = format["reportStats_%1",ceil(random 10000)]; - - reportStats_received = 0; - //setup an event listener for receiving player stats - _var_name addPublicVariableEventHandler { - reportStats_received = reportStats_received + 1; - _this call s_handleSaveEvent; - }; + //halt all the save loops + p_saveLoopActive = false; + v_saveLoopActive = false; + o_saveLoopActive = false; - //ask all clients to report their stats - reportStats = _var_name; - publicVariable "reportStats"; + diag_log format["Saving players all player stats"]; + //save all player stats + call p_saveAllPlayers; diag_log format["Saving all vehicles on the map"]; //save all vehilce stats - v_saveLoopActive = false; init(_vScope, "Vehicles" call PDB_objectFileName); [_vScope] call v_saveAllVechiles; diag_log format["Saving all objects on the map"]; //save all object scopes - o_saveLoopActive = false; init(_oScope, "Objects" call PDB_objectFileName); [_oScope] call o_saveAllObjects; - //wait for 15 seconds, to give a chance for players to report their stats - sleep 15; - diag_log format["%1 players reported their stats", reportStats_received]; diag_log format["Sending restart message ack"]; //send ack that the message has been processed @@ -64,8 +53,9 @@ s_processRestartMessage = { [] spawn { sleep (5 * 60); diag_log format["WARNING: looks like server did not go down 5 minutes after a restart request"]; - v_saveLoopActive = false; - o_saveLoopActive = false; + v_saveLoopActive = true; + o_saveLoopActive = true; + p_saveLoopActive = true; }; true @@ -139,6 +129,7 @@ s_processMessages = { }; + s_messageLoop = { ARGVX3(0,_scope,""); @@ -154,22 +145,341 @@ s_messageLoop = { }; }; -s_handleSaveEvent = { _this spawn { - ARGVX3(1,_this,[]); - ARGVX3(0,_uid,""); - ARGVX3(1,_info,[]); - ARGVX3(2,_data,[]); - ARGVX3(3,_player,objNull); - if (!alive _player) exitWith { - _uid call fn_deletePlayerSave; +p_addPlayerSave = { + //diag_log format["%1 call p_addPlayerSave", _this]; + ARGVX3(0,_request,[]); + ARGVX3(1,_player,objNull); + ARGVX3(2,_uid,""); + ARGVX3(3,_name,""); + + + init(_alive, alive _player); + //diag_log format["Saving stats for %1, alive = %2", _player, _alive]; + + //alive player && //FIXME: need to add this check back + def(_initComplete); + _initComplete = _player getVariable ["initComplete", false]; + //diag_log format["_initComplete = %1", _initComplete]; + if (not(_initComplete)) exitWith {}; + + + def(_respawnDialogActive); + _respawnDialogActive = _player getVariable ["respawnDialogActive", false]; + //diag_log format["_respawnDialogActive = %1", _respawnDialogActive]; + + def(_FAR_isUnconscious); + _FAR_isUnconscious = (_player getVariable ["FAR_isUnconscious", 0] != 0); + //diag_log format["_FAR_isUnconscious = %1", _FAR_isUnconscious]; + + def(_reset_save); + _reset_save = (_respawnDialogActive || {_FAR_isUnconscious || {not(_alive)}}); //or not alive + //diag_log format["_reset_save = %1", _reset_save]; + + + def(_info); + _info = + [ + ["UID", _uid], + ["Name", _name], + ["LastGroupSide", str side group player], + ["LastPlayerSide", str playerSide], + ["BankMoney", _player getVariable ["bmoney", 0]] + ]; + + if (_reset_save) exitWith { + //diag_log format["%1 disconnected while dead, or unconcious, or from resspawn dialog",_player]; + _request pushBack ["PlayerInfo", (_info call sock_hash)]; + _request pushBack ["PlayerSave",nil]; + true + }; + + _hitPoints = []; + { + _hitPoint = configName _x; + _hitPoints pushBack [_hitPoint, _player getHitPointDamage _hitPoint]; + } forEach (_player call getHitPoints); + + _data = + [ + ["Damage", damage _player], + ["HitPoints", _hitPoints], + ["Hunger", _player getVariable ["hungerLevel", 0]], + ["Thirst", _player getVariable ["thirstLevel", 0]], + ["Money", _player getVariable ["cmoney", 0]] // Money is always saved, but only restored if A3W_moneySaving = 1 + ]; + + // Only save those when on ground or underwater (you probably wouldn't want to spawn 500m in the air if you get logged off in flight) + if (isTouchingGround vehicle _player || {(getPos _player) select 2 < 0.5 || (getPosASL _player) select 2 < 0.5}) then { + _data pushBack ["Position", getPosATL _player]; + _data pushBack ["Direction", direction _player]; + + if (vehicle _player == _player) then { + _data pushBack ["CurrentWeapon", format ["%1", currentMuzzle _player]]; // currentMuzzle returns a number sometimes, hence the format + _data pushBack ["Animation", (animationState _player)]; + }; }; - if (alive _player && {_player getVariable ["FAR_isUnconscious", 0] == 0}) exitWith { - init(_scope,_UID call PDB_playerFileName); - [_scope, "PlayerInfo", (_info call sock_hash)] call stats_set; - [_scope, "PlayerSave", (_data call sock_hash)] call stats_set; + _gear = + [ + ["Uniform", uniform _player], + ["Vest", vest _player], + ["Backpack", backpack _player], + ["Goggles", goggles _player], + ["Headgear", headgear _player], + + ["PrimaryWeapon", primaryWeapon _player], + ["SecondaryWeapon", secondaryWeapon _player], + ["HandgunWeapon", handgunWeapon _player], + + ["PrimaryWeaponItems", primaryWeaponItems _player], + ["SecondaryWeaponItems", secondaryWeaponItems _player], + ["HandgunItems", handgunItems _player], + + ["AssignedItems", assignedItems _player] + ]; + + + _uMags = []; + _vMags = []; + _bMags = []; + _partialMags = []; + + { + _magArr = _x select 0; + + { + _mag = _x select 0; + _ammo = _x select 1; + + if (_ammo == getNumber (configFile >> "CfgMagazines" >> _mag >> "count")) then { + [_magArr, _mag, 1] call fn_addToPairs; + } + else { + if (_ammo > 0) then { + _partialMags pushBack [_mag, _ammo]; + }; + }; + } forEach magazinesAmmoCargo (_x select 1); + } + forEach + [ + [_uMags, uniformContainer _player], + [_vMags, vestContainer _player], + [_bMags, backpackContainer _player] + ]; + + _loadedMags = []; + + { + _mag = _x select 0; + _ammo = _x select 1; + _loaded = _x select 2; + _type = _x select 3; + + // if loaded in weapon, not empty, and not hand grenade + if (_loaded && _ammo > 0 && _type != 0) then + { + _loadedMags pushBack [_mag, _ammo]; + }; + } forEach magazinesAmmoFull _player; + + _data pushBack ["UniformWeapons", (getWeaponCargo uniformContainer _player) call cargoToPairs]; + _data pushBack ["UniformItems", (getItemCargo uniformContainer _player) call cargoToPairs]; + _data pushBack ["UniformMagazines", _uMags]; + + _data pushBack ["VestWeapons", (getWeaponCargo vestContainer _player) call cargoToPairs]; + _data pushBack ["VestItems", (getItemCargo vestContainer _player) call cargoToPairs]; + _data pushBack ["VestMagazines", _vMags]; + + _data pushBack ["BackpackWeapons", (getWeaponCargo backpackContainer _player) call cargoToPairs]; + _data pushBack ["BackpackItems", (getItemCargo backpackContainer _player) call cargoToPairs]; + _data pushBack ["BackpackMagazines", _bMags]; + + _gear pushBack ["PartialMagazines", _partialMags]; + _gear pushBack ["LoadedMagazines", _loadedMags]; + + _wastelandItems = []; + { + if (_x select 1 > 0) then + { + _wastelandItems pushBack [_x select 0, _x select 1]; + }; + } forEach (_player getVariable ["inventory",[]]); + + _gear pushBack ["WastelandItems", _wastelandItems]; + + //FIXME: re-enable this optimization once stats_merge is implement + /* + _gearStr = str _gear; + + if (_gearStr != ["playerData_gear", ""] call getPublicVar) then + { + { _data pushBack _x } forEach _gear; + playerData_gear = _gearStr; }; + */ + { _data pushBack _x } forEach _gear; + + _request pushBack ["PlayerInfo", (_info call sock_hash)]; + _request pushBack ["PlayerSave", (_data call sock_hash)]; + + true +}; + +p_disconnectSave = { + //diag_log format["%1 call p_disconnectSave", _this]; + ARGVX3(0,_player,objNull); + ARGVX3(2,_uid,""); + ARGVX3(3,_name,""); + + + init(_scope,_uid call PDB_playerFileName); + init(_request,[_scope]); + + [_request,_player,_uid,_name] call p_addPlayerSave; + _request call stats_set; +}; + + +//event listener for server to track when the players inventory changes +"trackMyInventory" addPublicVariableEventHandler { + //diag_log format["%1 call trackMyInventory", _this]; + ARGVX3(1,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_inventory,[]); + + //note that this is not being set to broadcast on purpose + _player setVariable ["inventory", _inventory]; +}; + +"trackMyVitals" addPublicVariableEventHandler {_this spawn { + //diag_log format["%1 call trackMyVitals", _this]; + ARGVX3(1,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vitals,[]); + + { + private["_key", "_value"]; + _key = _x select 0; + _value = _x select 1; + + if (!isNil "_key" || {typeName _key == "STRING"}) then { + _player setVariable [_key,OR(_value,nil)]; + //diag_log format["_key = %1, _value = %2", _key, OR(_value,nil)]; + }; + } forEach _vitals; };}; + +active_players_list = []; + +p_getActivePlayerIndex = { + ARGVX4(0,_player,objNull,-1); + if (isNull _player) exitWith {-1}; + + (active_players_list find _player) +}; + +p_trackPlayer = { + ARGVX3(0,_player,objNull); + + def(_index); + _index = [_player] call p_getActivePlayerIndex; + if (_index >= 0) exitWith {}; + + //diag_log format["%1 is being added to the active list", _player]; + active_players_list pushBack _player; +}; + +p_untrackPlayer = { + ARGVX3(0,_player,objNull); + + def(_index); + _index = [_player] call p_getActivePlayerIndex; + if (_index < 0) exitWith {}; + + //diag_log format["%1 is being removed from the active list", _player]; + active_players_list deleteAt _index; +}; + + +p_ActivePlayersListCleanup = { + + //post cleanup the array + init(_cleanup_start, diag_tickTime); + init(_nulls,[]); + init(_index,-1); + init(_start_size,count(active_players_list)); + while {true} do { + _index = active_players_list find objNull; + if (_index < 0) exitWith {}; + active_players_list deleteAt _index; + }; + init(_end_size,count(active_players_list)); + init(_cleanup_end, diag_tickTime); + diag_log format["p_saveLoop: count(active_players_list) = %1, %2 nulls deleted in %3 ticks", count(active_players_list), (_start_size - _end_size), (_cleanup_end - _cleanup_start)]; +}; + + +//event handlers for when player spawns +"trackMe" addPublicVariableEventHandler { + //diag_log format["%1 call trackMe", _this]; + ARGVX3(1,_this,[]); + [_this select 0] call p_trackPlayer; +}; + + +p_saveAllPlayers = { + init(_count,0); + init(_start_time, diag_tickTime); + + def(_request); + def(_scope); + def(_player); + def(_uid); + def(_name); + + {if (true) then { + _player = _x; + if (isNil "_player" || {typeName _player != "OBJECT" || {isNull _player || {not(isPlayer _player) || { not(alive _player)}}}}) exitWith { + active_players_list set [_forEachIndex, objNull]; + }; + + _uid = getPlayerUID _player; + _name = name _player; + _scope = _uid call PDB_playerFileName; + _request = [_scope]; + + if (!isNil{[_request, _player, _uid, _name] call p_addPlayerSave}) then { + _count = _count + 1; + }; + + init(_save_start, diag_tickTime); + _request call stats_set; + diag_log format["p_saveLoop: (%1 - %2) saved in %3 ticks, save call took %4 ticks", _name, _uid, (diag_tickTime - _start_time), (diag_tickTime - _save_start)]; + + };} forEach (active_players_list); + + diag_log format["p_saveLoop: total of %1 players saved in %2 ticks", (_count), (diag_tickTime - _start_time)]; + + call p_ActivePlayersListCleanup; +}; + + +p_saveLoop_interval = OR(A3W_player_saveInterval,60); +diag_log format["config: A3W_player_saveInterval = %1", p_saveLoop_interval]; + + +p_saveLoop = { + while {true} do { + sleep p_saveLoop_interval; + if (not(isBOOLEAN(p_saveLoopActive) && {!p_saveLoopActive})) then { + diag_log format["saving all players"]; + call p_saveAllPlayers; + }; + }; +}; + + diag_log "sFunctions.sqf loading complete"; diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index 777362b18..aa1be4e6b 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -12,10 +12,6 @@ fn_deletePlayerSave = { [_scope, "PlayerSave", nil] call stats_set; }; -"savePlayerData" addPublicVariableEventHandler { - _this call s_handleSaveEvent; -}; - "deletePlayerData" addPublicVariableEventHandler { _player = _this select 1; @@ -24,5 +20,6 @@ fn_deletePlayerSave = { [format["%1Messages", PDB_ServerID]] spawn s_messageLoop; +[] spawn p_saveLoop; diag_log "Loading s_setupPlayerDB complete"; diff --git a/server/default_config.sqf b/server/default_config.sqf index 390d8fc69..33b2cfcf3 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -44,12 +44,14 @@ A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts A3W_objectLifetime = 5*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) -A3W_vehicle_saveInterval = 60; // Number of seconds between vehicle saves -A3W_object_saveInterval = 60; // Number of seconds between object saves A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked unpon restore PDB_PlayerFileID = "A3W_"; // Player savefile prefix (change this in case you run multiple servers from the same folder) PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in case you run multiple servers from the same folder) +A3W_vehicle_saveInterval = 300; // Number of seconds between vehicle saves +A3W_object_saveInterval = 300; // Number of seconds between object saves +A3W_player_saveInterval = 300; // Number of seconds between player saves + // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) A3W_vehicleSpawning = 1; // If serverSpawning = 1, spawn vehicles in towns (0 = no, 1 = yes) diff --git a/server/init.sqf b/server/init.sqf index 62a9f44b6..9632b68c8 100644 --- a/server/init.sqf +++ b/server/init.sqf @@ -18,13 +18,10 @@ externalConfigFolder = "\A3Wasteland_settings"; vChecksum = compileFinal str call A3W_fnc_generateKey; // Corpse deletion on disconnect if player alive and player saving on -addMissionEventHandler ["HandleDisconnect", -{ - if (isNil "isConfigOn" || {["A3W_playerSaving"] call isConfigOn}) then - { - _unit = _this select 0; - if (alive _unit) then { deleteVehicle _unit }; - }; +addMissionEventHandler ["HandleDisconnect", { + diag_log format["HandleDisconnect %1", _this]; + _this call p_disconnectSave; + deleteVehicle (_this select 0); }]; //Execute Server Side Scripts. From 5bbe7c01d2a933e5c6d15f7ea3a97e9f514e0d16 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 31 Oct 2014 21:45:50 -0700 Subject: [PATCH 073/544] fix bug with using 0 for object lifetime --- persistence/world/oFunctions.sqf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 6eca3c058..e17fcfda1 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -224,7 +224,7 @@ o_restoreObject = {_this spawn { diag_log format["%1(%2) is being restored.", _object_key, _class]; - if (o_maxLifetime <= 0 || {_hours_alive > o_maxLifetime}) exitWith { + if (isSCALAR(_hours_alive) && {o_maxLifetime > 0 && {_hours_alive > o_maxLifetime}}) exitWith { diag_log format["object %1(%2) has been alive for %3 (max=%4), skipping it", _object_key, _class, _hours_alive, o_maxLifetime]; }; @@ -548,7 +548,9 @@ o_saveAllObjects = { ARGVX3(0,_scope,""); init(_count,0); init(_request,[_scope]); - + + if (count(locked_objects_list) == 0) exitWith {}; + [_scope] call stats_wipe; init(_bulk_size,100); init(_start_time, diag_tickTime); From 16fd9f86d11a1aa12882b207f21c62fae1cff792 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 1 Nov 2014 12:22:19 -0700 Subject: [PATCH 074/544] Fix positions that come from iniDB migration AgentRev changed the way that position is stored. Before, it used ot be a simple array with numbers. e.g. [1,2,3] He changed it to: ["1", "2", "3"] So this fix is to handle the nested strings in case they are there. --- persistence/world/oFunctions.sqf | 4 ++++ persistence/world/vFunctions.sqf | 3 +++ 2 files changed, 7 insertions(+) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index e17fcfda1..c082e12a9 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -221,6 +221,10 @@ o_restoreObject = {_this spawn { if (not(isSTRING(_class)) || {not(isARRAY(_pos))}) exitWith { diag_log format["No class or position available for object: %1", _object_key]; }; + + + //AgentRev changed how position is saved, put this fail-safe to handle position with values as strings + { if (isSTRING(_x)) then { _pos set [_forEachIndex, parseNumber _x] } } forEach _pos; diag_log format["%1(%2) is being restored.", _object_key, _class]; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 39e2e61d3..a1d8a79a0 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -200,6 +200,9 @@ v_restoreVehicle = {_this spawn { diag_log format["No class or position available for vehicle: %1", _vehicle_key]; }; + //AgentRev changed how position is saved, put this fail-safe to handle position with values as strings + { if (isSTRING(_x)) then { _pos set [_forEachIndex, parseNumber _x] } } forEach _pos; + diag_log format["%1(%2) is being restored.", _vehicle_key, _class]; From 84df232a92cf9b0d0bad60ad1cda133afe547258 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 1 Nov 2014 14:07:54 -0700 Subject: [PATCH 075/544] Fix bug with player's position not saved sometimes If the player is flying, or falling or deep underwater, his position was not being saved. --- persistence/players/sFunctions.sqf | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index ce3956ead..890a407ad 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -209,17 +209,24 @@ p_addPlayerSave = { ["Money", _player getVariable ["cmoney", 0]] // Money is always saved, but only restored if A3W_moneySaving = 1 ]; - // Only save those when on ground or underwater (you probably wouldn't want to spawn 500m in the air if you get logged off in flight) - if (isTouchingGround vehicle _player || {(getPos _player) select 2 < 0.5 || (getPosASL _player) select 2 < 0.5}) then { - _data pushBack ["Position", getPosATL _player]; - _data pushBack ["Direction", direction _player]; - - if (vehicle _player == _player) then { - _data pushBack ["CurrentWeapon", format ["%1", currentMuzzle _player]]; // currentMuzzle returns a number sometimes, hence the format - _data pushBack ["Animation", (animationState _player)]; + + def(_pos); + _pos = ASLtoATL getPosWorld _player; + //force the Z-axis if the player is high above ground, or deep underwater + if (!(isTouchingGround vehicle _player || {(getPos _player) select 2 < 0.5 || (getPosASL _player) select 2 < 0.5})) then { + _pos set [2, 0]; + if (surfaceIsWater _pos) then { + _pos = ASLToATL (_pos); }; }; + //only save animation, and current weapon if the player is not inside a vehicle + if (vehicle _player == _player) then { + _data pushBack ["CurrentWeapon", format ["%1", currentMuzzle _player]]; // currentMuzzle returns a number sometimes, hence the format + _data pushBack ["Animation", (animationState _player)]; + }; + + _gear = [ ["Uniform", uniform _player], From 809e6edf216bdd44b5fcecfbc67977147270084d Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 1 Nov 2014 14:13:17 -0700 Subject: [PATCH 076/544] Change veh saving logic a bit Make it so that purchased, and mission vehicles are saved regardless if the player has gotten into it or not. --- persistence/world/vFunctions.sqf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index a1d8a79a0..f701ce25f 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -396,8 +396,8 @@ def(_obj); } forEach [civilianVehicles, call allVehStoreVehicles]; -v_isSavingMissionVehiclesDisabled = (isSCALAR(A3W_missionVehicleSaving) && {A3W_missionVehicleSaving == 0}); -v_isSavingPurchasedVehiclesDisabled = (isSCALAR(A3W_purchasedVehicleSaving) && {A3W_purchasedVehicleSaving == 0}); +v_isSavingMissionVehiclesEnabled = (isSCALAR(A3W_missionVehicleSaving) && {A3W_missionVehicleSaving == 1}); +v_isSavingPurchasedVehiclesEnabled = (isSCALAR(A3W_purchasedVehicleSaving) && {A3W_purchasedVehicleSaving == 1}); v_isAMissionVehicle = { @@ -419,11 +419,11 @@ v_isVehicleSaveable = { //not a vehicle, don't save it if (not([_obj] call v_isVehicle)) exitWith {false}; - //it's a purchased vehicle, but saving purchased vehicles has been disabled, don't save it - if (([_obj] call v_isAPurchasedVehicle) && {v_isSavingPurchasedVehiclesDisabled}) exitWith {false}; + //it's a purchased vehicle, and saving purchased vehicles has been enabled, save it + if (([_obj] call v_isAPurchasedVehicle) && {v_isSavingPurchasedVehiclesEnabled}) exitWith {true}; - //it's a mission spawned vehicle, but saving mission vehicles has been disabled, don't save it - if (([_obj] call v_isAMissionVehicle) && {v_isSavingMissionVehiclesDisabled}) exitWith {false}; + //it's a mission spawned vehicle, and saving mission vehicles has been enabled, save it + if (([_obj] call v_isAMissionVehicle) && {v_isSavingMissionVehiclesEnabled}) exitWith {true}; //the vehicle has been used at least once if (not([_obj] call v_isVehicleVirgin)) exitWith {true}; From 40542a2c2d4ec8b6a03361653aadd5f2ed5181ff Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 1 Nov 2014 14:16:08 -0700 Subject: [PATCH 077/544] Minor fix in vehicle position saving Had wrong variable name --- persistence/world/vFunctions.sqf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index f701ce25f..ec79f6628 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -606,13 +606,14 @@ v_addSaveVehicle = { _objName = format["veh_%1_%2",ceil(time), ceil(random 10000)]; _obj setVariable ["vehicle_key", _objName, true]; }; + _pos = ASLtoATL getPosWorld _obj; _pos set [2, ((_pos select 2) + 0.3)]; - //force the Z-axis if the vehicle is high above ground + //force the Z-axis if the vehicle is high above ground, or deep underwater (bring it to the surface) if (!(isTouchingGround _obj || {(getPos _obj) select 2 < 0.5 || (getPosASL _obj) select 2 < 0.5})) then { _pos set [2, 0]; - if (surfaceIsWater _posATL) then { - _posATL = ASLToATL (_posATL); + if (surfaceIsWater _pos) then { + _pos = ASLToATL (_pos); }; }; From da01697847f754f1bc960aa0197ac5d2b14e1cff Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 1 Nov 2014 16:06:32 -0700 Subject: [PATCH 078/544] duh, forgot to actually set the position --- persistence/players/sFunctions.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 890a407ad..f8ca59d48 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -220,6 +220,8 @@ p_addPlayerSave = { }; }; + _data pushBack ["Position", _pos]; + //only save animation, and current weapon if the player is not inside a vehicle if (vehicle _player == _player) then { _data pushBack ["CurrentWeapon", format ["%1", currentMuzzle _player]]; // currentMuzzle returns a number sometimes, hence the format From 4fc6e66d85c4ba22ce59070e576888a305b363cc Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 1 Nov 2014 16:07:19 -0700 Subject: [PATCH 079/544] Improve vehicle saving logic Make the vehicle saving logic more closely match the vanilla logic Also, add an option for enabling disabling saving of town vehicles Player does not need to get into purchased vehicles at least once for them to be saved. --- persistence/world/vFunctions.sqf | 37 ++++++++++++++++++++++----- server/default_config.sqf | 1 + server/functions/spawnStoreObject.sqf | 4 ++- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index ec79f6628..4f8c79007 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -398,16 +398,27 @@ def(_obj); v_isSavingMissionVehiclesEnabled = (isSCALAR(A3W_missionVehicleSaving) && {A3W_missionVehicleSaving == 1}); v_isSavingPurchasedVehiclesEnabled = (isSCALAR(A3W_purchasedVehicleSaving) && {A3W_purchasedVehicleSaving == 1}); +v_isSavingTownVehiclesEnabled = (isSCALAR(A3W_townVehicleSaving) && {A3W_townVehicleSaving == 1}); + + +diag_log format["config: A3W_purchasedVehicleSaving = %1", v_isSavingPurchasedVehiclesEnabled]; +diag_log format["config: A3W_missionVehicleSaving = %1", v_isSavingMissionVehiclesEnabled]; +diag_log format["config: A3W_townVehicleSaving = %1", v_isSavingTownVehiclesEnabled]; + v_isAMissionVehicle = { ARGVX4(0,_obj,objNull,false); - not(isNil{_obj getVariable "A3W_missionVehicle"}) + def(_mission); + _mission = _obj getVariable "A3W_missionVehicle"; + (isBOOLEAN(_mission) && {_mission}) }; v_isAPurchasedVehicle = { ARGVX4(0,_obj,objNull,false); - not(isNil{_obj getVariable "A3W_purchasedVehicle"}) + def(_purchased); + _purchased = _obj getVariable "A3W_purchasedVehicle"; + (isBOOLEAN(_purchased) && {_purchased}) }; v_isVehicleSaveable = { @@ -419,14 +430,28 @@ v_isVehicleSaveable = { //not a vehicle, don't save it if (not([_obj] call v_isVehicle)) exitWith {false}; + def(_purchasedVehicle); + def(_missionVehicle); + def(_usedVehicle); + def(_townVehicle); + def(_usedOnce); + + + _purchasedVehicle = ([_obj] call v_isAPurchasedVehicle); + _missionVehicle = ([_obj] call v_isAMissionVehicle); + _townVehicle = (!_missionVehicle && {!_purchasedVehicle}); + _usedOnce = not([_obj] call v_isVehicleVirgin); + + //diag_log format["%1, _purchasedVehicle = %2, _missionVehicle = %3, _usedOnce = %4, _townVehicle = %5",_obj, _purchasedVehicle,_missionVehicle,_usedOnce,_townVehicle]; + //it's a purchased vehicle, and saving purchased vehicles has been enabled, save it - if (([_obj] call v_isAPurchasedVehicle) && {v_isSavingPurchasedVehiclesEnabled}) exitWith {true}; + if (_purchasedVehicle && {v_isSavingPurchasedVehiclesEnabled}) exitWith {true}; //it's a mission spawned vehicle, and saving mission vehicles has been enabled, save it - if (([_obj] call v_isAMissionVehicle) && {v_isSavingMissionVehiclesEnabled}) exitWith {true}; + if (_missionVehicle && {v_isSavingMissionVehiclesEnabled}) exitWith {true}; - //the vehicle has been used at least once - if (not([_obj] call v_isVehicleVirgin)) exitWith {true}; + //if it's a town vehicle that has been used at least once, save it + if (_townVehicle && {_usedOnce && {v_isSavingTownVehiclesEnabled}}) exitWith {true}; false }; diff --git a/server/default_config.sqf b/server/default_config.sqf index 86c560ee9..ee8af0842 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -35,6 +35,7 @@ A3W_moneySaving = 1; // If playerSaving = 1, save player money amo A3W_combatAbortDelay = 60; // If playerSaving = 1, delay in seconds for which to disable abort and respawn buttons after firing or being shot (0 = none) A3W_purchasedVehicleSaving = 1; // Save vehicles purchased at vehicle stores between server restarts (0 = no, 1 = yes) A3W_missionVehicleSaving = 1; // Save vehicles captured from missions between server restarts (0 = no, 1 = yes) +A3W_townVehicleSaving = 0; // Save vehicles captured from missions between server restarts (0 = no, 1 = yes) A3W_baseSaving = 1; // Save locked base parts between server restarts (0 = no, 1 = yes) A3W_boxSaving = 1; // Save locked weapon crates and their contents between server restarts (0 = no, 1 = yes) A3W_staticWeaponSaving = 1; // Save locked static weapons and their magazines between server restarts (0 = no, 1 = yes) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 364112dc9..f204b94e5 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -128,7 +128,9 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _objectID = netId _object; _object setVariable ["A3W_purchasedStoreObject", true]; - _object setVariable ["ownerUID", getPlayerUID _player]; + _object setVariable ["ownerUID", getPlayerUID _player, true]; + + [_object] call v_trackVehicle; if (getNumber (configFile >> "CfgVehicles" >> _class >> "isUav") > 0) then { From baabecf46b0a112e75b4274c901858014c7ce90d Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 1 Nov 2014 16:40:29 -0700 Subject: [PATCH 080/544] Make hunger, and thirst 100 if not avaiilable If player disconnects, and for some reason hunger, and thirst are not available at least give a good default, of 100. This can happen if their game crashes, before they have reported hunger and thirst. These two values are only reported at fixed intervals, or when the player presses ESC. This is in order to avoid spamming the server because these values change very often. --- persistence/players/sFunctions.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index f8ca59d48..f55510034 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -204,8 +204,8 @@ p_addPlayerSave = { [ ["Damage", damage _player], ["HitPoints", _hitPoints], - ["Hunger", _player getVariable ["hungerLevel", 0]], - ["Thirst", _player getVariable ["thirstLevel", 0]], + ["Hunger", _player getVariable ["hungerLevel", 100]], + ["Thirst", _player getVariable ["thirstLevel", 100]], ["Money", _player getVariable ["cmoney", 0]] // Money is always saved, but only restored if A3W_moneySaving = 1 ]; From 8b345ff64138ac9e36933bece0c5a58d523f70ae Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 1 Nov 2014 17:41:20 -0700 Subject: [PATCH 081/544] Fix storing of boolean variables requires v0.0.12 Needs to have sock-rpc-stats at least v0.0.12 --- persistence/world/vFunctions.sqf | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index c9d95cc15..f9deacd74 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -529,18 +529,9 @@ v_setupVehicleSavedVariables = { }; _variables pushBack ["vehicle_abandoned_by", (_obj getVariable "vehicle_abandoned_by")]; + _variables pushBack ["A3W_purchasedVehicle", (_obj getVariable ["A3W_purchasedVehicle",false])]; + _variables pushBack ["A3W_missionVehicle", (_obj getVariable ["A3W_missionVehicle",false])]; - def(_purchasedVehicle); - _purchasedVehicle = _obj getVariable "A3W_purchasedVehicle"; - if (defined(_purchasedVehicle)) then { - _variables pushBack ["A3W_purchasedVehicle", _purchasedVehicle]; - }; - - def(_missionVehicle); - _missionVehicle = _obj getVariable "A3W_missionVehicle"; - if (defined(_missionVehicle)) then { - _variables pushBack ["A3W_missionVehicle", _missionVehicle]; - }; def(_r3f_log_disabled); _r3f_log_disabled = _obj getVariable "R3F_LOG_disabled"; From 9abbb3d9cc12ee8d83dc287bc192bdc3d595badb Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 1 Nov 2014 17:56:19 -0700 Subject: [PATCH 082/544] Play nice with ownerName if encoded as array It seems that this variable was being stored as an array of unicode values due to limitation in iniDB. I guess it could not escape some characters in strings properly. This fix should make it backwards compatible. --- persistence/world/oFunctions.sqf | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index c082e12a9..3910076a7 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -253,6 +253,13 @@ o_restoreObject = {_this spawn { switch (_name) do { case "R3F_Side": { _value = _value call o_strToSide}; case "side": { _value = _value call o_strToSide}; + case "ownerName": { + switch (typeName _value) do { + case "ARRAY": { _value = toString _value }; + case "STRING": { /* do nothing, it's already a string */ }; + default { _value = "[Beacon]" }; + }; + }; }; }; From eb1cd23af4bbd838322df6e0e7265f047af08f49 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 1 Nov 2014 20:15:15 -0700 Subject: [PATCH 083/544] Fix regression with beacons, and warchest saving After the peformance fix for object saving ... beacons were not in the "locked_objects_list" anymore, and were not being saved. I have also nose refactored the code to rename the list to "tracked_objects_list" so that it makes more sense, it could also contain beacons, and warchests which are not necessarily locked/unlocked. --- .../objectLockStateMachine.sqf | 8 +-- client/items/beacon/deploy.sqf | 4 ++ client/items/beacon/pack.sqf | 4 ++ client/items/warchest/deploy.sqf | 3 ++ client/items/warchest/pack.sqf | 3 ++ persistence/world/oFunctions.sqf | 54 +++++++++---------- persistence/world/vFunctions.sqf | 2 +- 7 files changed, 46 insertions(+), 32 deletions(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf index 6578ea27d..ad25bec4e 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf @@ -59,8 +59,8 @@ switch (_lockState) do _object setVariable ["ownerN", name player, true]; //tell the server that this object was locked - objectLocked = _object; - publicVariableServer "objectLocked"; + trackObject = _object; + publicVariableServer "trackObject"; ["Object locked!", 5] call mf_notify_client; @@ -144,8 +144,8 @@ switch (_lockState) do _object setVariable ["baseSaving_spawningTime", nil, true]; //tell the server that this object was unlocked - objectUnlocked = _object; - publicVariableServer "objectUnlocked"; + untrackObject = _object; + publicVariableServer "untrackObject"; ["Object unlocked!", 5] call mf_notify_client; diff --git a/client/items/beacon/deploy.sqf b/client/items/beacon/deploy.sqf index 851df0051..c8de75543 100644 --- a/client/items/beacon/deploy.sqf +++ b/client/items/beacon/deploy.sqf @@ -50,6 +50,10 @@ if (_success) then { pvar_spawn_beacons pushBack _beacon; publicVariable "pvar_spawn_beacons"; + + trackObject = _beacon; + publicVariableServer "trackObject"; + ["You placed the Spawn Beacon successfully!", 5] call mf_notify_client; }; _success; diff --git a/client/items/beacon/pack.sqf b/client/items/beacon/pack.sqf index 618164b6c..3ad1861fb 100644 --- a/client/items/beacon/pack.sqf +++ b/client/items/beacon/pack.sqf @@ -43,6 +43,10 @@ _success = [DURATION, ANIM, _hasFailed, [_beacon]] call a3w_actions_start; if (_success) then { pvar_spawn_beacons = pvar_spawn_beacons - [_beacon]; + + untrackObject = _beacon; + publicVariableServer "untrackObject"; + publicVariable "pvar_spawn_beacons"; deleteVehicle _beacon; [MF_ITEMS_SPAWN_BEACON, 1] call mf_inventory_add; diff --git a/client/items/warchest/deploy.sqf b/client/items/warchest/deploy.sqf index feb1bd191..f96003fbf 100644 --- a/client/items/warchest/deploy.sqf +++ b/client/items/warchest/deploy.sqf @@ -38,5 +38,8 @@ if (_success) then { _warchest setVariable ["R3F_LOG_disabled", true]; _warchest setVariable ["a3w_warchest", true, true]; ["Warchest Deployed!", 5] call mf_notify_client; + + trackObject = _warchest; + publicVariableServer "trackObject"; }; _success; diff --git a/client/items/warchest/pack.sqf b/client/items/warchest/pack.sqf index 945d082c3..3fe603aa8 100644 --- a/client/items/warchest/pack.sqf +++ b/client/items/warchest/pack.sqf @@ -42,4 +42,7 @@ if (_success) then { deleteVehicle _warchest; [MF_ITEMS_WARCHEST, 1] call mf_inventory_add; ["You successfully packed the Warchest", 5] call mf_notify_client; + + untrackObject = _warchest; + publicVariableServer "untrackObject"; }; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 3910076a7..95d6ce9e4 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -103,20 +103,20 @@ o_isSaveable = { if ([_obj] call o_isInSaveList) exitWith {true}; - init(_boxSavingOn, call o_isBoxSavingOn); + init(_boxSavingOn,call o_isBoxSavingOn); if ([_obj] call o_isBeacon) exitWith { - //diag_log format["box5(%1): o_isBeaconSavingOn = %2", _obj, (call o_isBeaconSavingOn)]; + //diag_log format["sav1(%1): o_isBeaconSavingOn = %2", _obj, (call o_isBeaconSavingOn)]; (call o_isBeaconSavingOn) }; if ([_obj] call o_isWarchest) exitWith { - //diag_log format["box4(%1): o_isWarchestSavingOn = %2", _obj, (call o_isWarchestSavingOn)]; + //diag_log format["sav2(%1): o_isWarchestSavingOn = %2", _obj, (call o_isWarchestSavingOn)]; (call o_isWarchestSavingOn) }; if ([_obj] call o_isStaticWeapon) exitWith { - //diag_log format["box3(%1): o_isStaticWeaponSavingOn = %2", _obj, (call o_isStaticWeaponSavingOn)]; + //diag_log format["sav3(%1): o_isStaticWeaponSavingOn = %2", _obj, (call o_isStaticWeaponSavingOn)]; (call o_isStaticWeaponSavingOn) }; @@ -124,11 +124,11 @@ o_isSaveable = { _locked = _obj getVariable ["objectLocked", false]; if ([_obj] call o_isBox) exitWith { - //diag_log format["box2(%1): _boxSavingOn = %2, _locked = %3", _obj, _boxSavingOn, _locked]; + //diag_log format["sav4(%1): _boxSavingOn = %2, _locked = %3", _obj, _boxSavingOn, _locked]; (_boxSavingOn && {_locked}) }; - //diag_log format["box1(%1): _boxSavingOn = %2, _locked = %3",_obj, _boxSavingOn, _locked]; + //diag_log format["sav5(%1): _boxSavingOn = %2, _locked = %3",_obj, _boxSavingOn, _locked]; (_boxSavingOn && {_locked}) }; @@ -354,11 +354,11 @@ o_restoreObject = {_this spawn { _unlocked = [_obj] call o_isAlwaysUnlocked; if (_unlocked) then { _obj setVariable ["objectLocked", false, true]; - } - else { - (locked_objects_list pushBack _obj); }; + //objects, warchests, and beacons + tracked_objects_list pushBack _obj; + };}; @@ -560,7 +560,7 @@ o_saveAllObjects = { init(_count,0); init(_request,[_scope]); - if (count(locked_objects_list) == 0) exitWith {}; + if (count(tracked_objects_list) == 0) exitWith {}; [_scope] call stats_wipe; init(_bulk_size,100); @@ -582,7 +582,7 @@ o_saveAllObjects = { diag_log format["o_saveLoop: %1 objects saved in %2 ticks, save call took %3 ticks", (_bulk_size), (diag_tickTime - _start_time), (_save_end - _save_start)]; _last_save = _save_end; }; - } forEach (locked_objects_list); + } forEach (tracked_objects_list); if (count(_request) > 1) then { init(_save_start, diag_tickTime); @@ -593,56 +593,56 @@ o_saveAllObjects = { diag_log format["o_saveLoop: total of %1 objects saved in %2 ticks", (_count), (diag_tickTime - _start_time)]; - call o_lockedObjectsListCleanup; + call o_trackedObjectsListCleanup; }; -o_lockedObjectsListCleanup = { +o_trackedObjectsListCleanup = { //post cleanup the array init(_cleanup_start, diag_tickTime); init(_nulls,[]); init(_index,-1); - init(_start_size,count(locked_objects_list)); + init(_start_size,count(tracked_objects_list)); while {true} do { - _index = locked_objects_list find objNull; + _index = tracked_objects_list find objNull; if (_index < 0) exitWith {}; - locked_objects_list deleteAt _index; + tracked_objects_list deleteAt _index; }; - init(_end_size,count(locked_objects_list)); + init(_end_size,count(tracked_objects_list)); init(_cleanup_end, diag_tickTime); - diag_log format["o_saveLoop: count(locked_objects_list) = %1, %2 nulls deleted in %3 ticks", count(locked_objects_list), (_start_size - _end_size), (_cleanup_end - _cleanup_start)]; + diag_log format["o_saveLoop: count(tracked_objects_list) = %1, %2 nulls deleted in %3 ticks", count(tracked_objects_list), (_start_size - _end_size), (_cleanup_end - _cleanup_start)]; }; -locked_objects_list = []; +tracked_objects_list = []; -o_getLockedObjectIndex = { +o_getTrackedObjectIndex = { ARGVX4(0,_obj,objNull,-1); if (isNull _obj) exitWith {-1}; - (locked_objects_list find _obj) + (tracked_objects_list find _obj) }; //event handlers for object locking and unlocking -"objectLocked" addPublicVariableEventHandler { +"trackObject" addPublicVariableEventHandler { private["_index","_object"]; _object = _this select 1; - _index = [OR(_object,nil)] call o_getLockedObjectIndex; + _index = [OR(_object,nil)] call o_getTrackedObjectIndex; if (_index >= 0) exitWith {}; //diag_log format["%1 is being added to the lock list", _object]; - locked_objects_list pushBack _object; + tracked_objects_list pushBack _object; }; -"objectUnlocked" addPublicVariableEventHandler { +"untrackObject" addPublicVariableEventHandler { private["_index","_object"]; _object = _this select 1; - _index = [OR(_object,nil)] call o_getLockedObjectIndex; + _index = [OR(_object,nil)] call o_getTrackedObjectIndex; if (_index < 0) exitWith {}; //diag_log format["%1 is being removed from the lock list", _object]; - locked_objects_list deleteAt _index; + tracked_objects_list deleteAt _index; }; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index f9deacd74..45d511f4b 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -345,7 +345,7 @@ v_trackVehicle = { v_untrackVehicle = { private["_index","_object"]; _object = _this select 0; - _index = [OR(_object,nil)] call o_getLockedObjectIndex; + _index = [OR(_object,nil)] call v_getTrackedVehicleIndex; if (_index < 0) exitWith {}; //diag_log format["%1 is being removed from the tracked list", _object]; From 42219cc8307435da30f8f0337dff785dc6c4a774 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 1 Nov 2014 21:20:45 -0700 Subject: [PATCH 084/544] Fix issue with static weapon saving --- persistence/world/vFunctions.sqf | 33 +++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 45d511f4b..f034f9db6 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -8,15 +8,6 @@ diag_log "vFunctions.sqf loading ..."; VLOAD_LOCKED = OR(A3W_locked_vehicles_list,[]); -v_isStaticWeapon = { - ARGVX4(0,_class,"",false); - (_class isKindOf "StaticWeapon") -}; - -v_isStaticWeaponSavingOn = { - (["A3W_staticWeaponSaving"] call isConfigOn) -}; - v_isWarchest = { _this getVariable ["a3w_warchest", false] && {(_this getVariable ["side", sideUnknown]) in [WEST,EAST]} }; @@ -385,14 +376,22 @@ def(_obj); v_isSavingMissionVehiclesEnabled = (isSCALAR(A3W_missionVehicleSaving) && {A3W_missionVehicleSaving == 1}); v_isSavingPurchasedVehiclesEnabled = (isSCALAR(A3W_purchasedVehicleSaving) && {A3W_purchasedVehicleSaving == 1}); v_isSavingTownVehiclesEnabled = (isSCALAR(A3W_townVehicleSaving) && {A3W_townVehicleSaving == 1}); +v_isSavingStaticWeaponsEnabled = (isSCALAR(A3W_staticWeaponSaving) && {A3W_staticWeaponSaving == 1}); -diag_log format["config: A3W_purchasedVehicleSaving = %1", v_isSavingPurchasedVehiclesEnabled]; -diag_log format["config: A3W_missionVehicleSaving = %1", v_isSavingMissionVehiclesEnabled]; -diag_log format["config: A3W_townVehicleSaving = %1", v_isSavingTownVehiclesEnabled]; +diag_log format["[INFO] config: A3W_purchasedVehicleSaving = %1", v_isSavingPurchasedVehiclesEnabled]; +diag_log format["[INFO] config: A3W_missionVehicleSaving = %1", v_isSavingMissionVehiclesEnabled]; +diag_log format["[INFO] config: A3W_townVehicleSaving = %1", v_isSavingTownVehiclesEnabled]; +diag_log format["[INFO] config: A3W_staticWeaponSaving = %1", v_isSavingStaticWeaponsEnabled]; +v_isStaticWeapon = { + ARGVX4(0,_obj,objNull,false); + init(_class, typeof _obj); + (_class isKindOf "StaticWeapon") +}; + v_isAMissionVehicle = { ARGVX4(0,_obj,objNull,false); def(_mission); @@ -425,10 +424,11 @@ v_isVehicleSaveable = { _purchasedVehicle = ([_obj] call v_isAPurchasedVehicle); _missionVehicle = ([_obj] call v_isAMissionVehicle); - _townVehicle = (!_missionVehicle && {!_purchasedVehicle}); + _staticWeapon = [_obj] call v_isStaticWeapon; + _townVehicle = not(_missionVehicle || {_purchasedVehicle || {_staticWeapon}}); _usedOnce = not([_obj] call v_isVehicleVirgin); - //diag_log format["%1, _purchasedVehicle = %2, _missionVehicle = %3, _usedOnce = %4, _townVehicle = %5",_obj, _purchasedVehicle,_missionVehicle,_usedOnce,_townVehicle]; + //diag_log format["%1, _purchasedVehicle = %2, _missionVehicle = %3, _usedOnce = %4, _townVehicle = %5, _staticWeapon = %6",_obj, _purchasedVehicle,_missionVehicle,_usedOnce,_townVehicle, _staticWeapon]; //it's a purchased vehicle, and saving purchased vehicles has been enabled, save it if (_purchasedVehicle && {v_isSavingPurchasedVehiclesEnabled}) exitWith {true}; @@ -436,6 +436,9 @@ v_isVehicleSaveable = { //it's a mission spawned vehicle, and saving mission vehicles has been enabled, save it if (_missionVehicle && {v_isSavingMissionVehiclesEnabled}) exitWith {true}; + //if it's a static weapon, and saving static weapons has been enabled, save it + if (_staticWeapon && {v_isSavingStaticWeaponsEnabled}) exitWith {true}; + //if it's a town vehicle that has been used at least once, save it if (_townVehicle && {_usedOnce && {v_isSavingTownVehiclesEnabled}}) exitWith {true}; @@ -585,7 +588,7 @@ v_addSaveVehicle = { _backpacks = (getBackpackCargo _obj) call cargoToPairs; init(_turretMags,[]); - if ((call v_isStaticWeaponSavingOn) && {[_class] call v_isStaticWeapon}) then { + if (v_isSavingStaticWeaponsEnabled && {[_obj] call v_isStaticWeapon}) then { _turretMags = magazinesAmmo _obj; }; From 043ae2a4bd72e5979bd0cf894504f789f9f55285 Mon Sep 17 00:00:00 2001 From: Ivan Date: Sun, 2 Nov 2014 14:09:01 +0300 Subject: [PATCH 085/544] add isSIDE macro --- persistence/players/macro.h | 3 +++ persistence/sock/macro.h | 3 +++ persistence/world/macro.h | 3 +++ 3 files changed, 9 insertions(+) diff --git a/persistence/players/macro.h b/persistence/players/macro.h index c2268b262..86660aead 100644 --- a/persistence/players/macro.h +++ b/persistence/players/macro.h @@ -19,6 +19,9 @@ #define isCODE(x) \ (not(isNil {x}) && {typeName x == typeName {}}) +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ diff --git a/persistence/sock/macro.h b/persistence/sock/macro.h index 4b8e4febe..93d596811 100644 --- a/persistence/sock/macro.h +++ b/persistence/sock/macro.h @@ -19,6 +19,9 @@ #define isCODE(x) \ (not(isNil {x}) && {typeName (x) == typeName {}}) +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ diff --git a/persistence/world/macro.h b/persistence/world/macro.h index c2268b262..86660aead 100644 --- a/persistence/world/macro.h +++ b/persistence/world/macro.h @@ -19,6 +19,9 @@ #define isCODE(x) \ (not(isNil {x}) && {typeName x == typeName {}}) +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ From 40c50c67dcddbf682618f7dfba5aa6eec719ae1d Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 2 Nov 2014 11:25:32 -0800 Subject: [PATCH 086/544] fix UAV restoring, and R3F_side saving --- persistence/world/vFunctions.sqf | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index f034f9db6..16fb4d385 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -6,6 +6,8 @@ diag_log "vFunctions.sqf loading ..."; * List of class names of locked objects. */ VLOAD_LOCKED = OR(A3W_locked_vehicles_list,[]); +#define isUAV(o) (isOBJECT(o) && {getNumber(configFile >> "CfgVehicles" >> typeOf o >> "isUav") > 0}) + v_isWarchest = { @@ -72,6 +74,7 @@ v_restoreVehicleVariables = { if (!isNil "_value") then { switch (_name) do { case "side": { _value = _value call v_strToSide}; + case "R3F_Side": { _value = _value call v_strToSide }; }; }; _obj setVariable [_name, OR(_value,nil), true]; @@ -203,8 +206,6 @@ v_restoreVehicle = {_this spawn { _obj setVariable ["R3F_LOG_disabled",true,true]; }; - - if (isSCALAR(_damage)) then { _obj setDamage _damage; }; @@ -228,7 +229,11 @@ v_restoreVehicle = {_this spawn { _obj setObjectTextureGlobal _x; } forEach _textures; }; - + + //AddAi to vehicle + if (isUAV(_obj)) then { + createVehicleCrew _obj; + }; //restore the stuff inside the vehicle clearWeaponCargoGlobal _obj; @@ -541,7 +546,13 @@ v_setupVehicleSavedVariables = { if (defined(_r3f_log_disabled)) then { _variables pushBack ["R3F_LOG_disabled", _r3f_log_disabled]; }; - + + def(_r3fSide); + _r3fSide = _obj getVariable "R3F_Side"; + if (isSIDE(_r3fSide)) then { + _variables pushBack ["R3F_Side", str _r3fSide]; + }; + _variables pushBack ["A3W_objectTextures", (_obj getVariable ["A3W_objectTextures",[]])]; }; From a0a3c19c72a0eb195144b5e68fe7898ae6b1b4a6 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 2 Nov 2014 16:46:04 -0800 Subject: [PATCH 087/544] Refactoring of shared functions Some refactoring, to better organiza the code. Also put back static weapons to be saved as objects by default, but configurable using the A3W_saveable_vehicles_list. If you want to have static weapons saved as vehicles, simply add the class to the list. --- persistence/lib/macro.h | 142 +++++++++++++++ persistence/lib/normalize_config.sqf | 41 +++++ persistence/lib/shFunctions.sqf | 118 ++++++++++++ persistence/players/macro.h | 11 ++ persistence/players/sFunctions.sqf | 1 + persistence/sock/macro.h | 25 ++- persistence/world/macro.h | 11 ++ persistence/world/oFunctions.sqf | 212 ++++++---------------- persistence/world/vFunctions.sqf | 256 ++++++--------------------- server/default_config.sqf | 6 +- 10 files changed, 453 insertions(+), 370 deletions(-) create mode 100644 persistence/lib/macro.h create mode 100644 persistence/lib/normalize_config.sqf create mode 100644 persistence/lib/shFunctions.sqf diff --git a/persistence/lib/macro.h b/persistence/lib/macro.h new file mode 100644 index 000000000..7cdedd47a --- /dev/null +++ b/persistence/lib/macro.h @@ -0,0 +1,142 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} \ No newline at end of file diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf new file mode 100644 index 000000000..7fa0c47a6 --- /dev/null +++ b/persistence/lib/normalize_config.sqf @@ -0,0 +1,41 @@ +#include "macro.h" + +#define ON_SCALAR(v) (isSCALAR(v) && {v == 1}) + + +cfg_missionVehicleSaving_on = ON_SCALAR(A3W_missionVehicleSaving); +cfg_purchasedVehicleSaving_on = ON_SCALAR(A3W_purchasedVehicleSaving); +cfg_townVehicleSaving_on = ON_SCALAR(A3W_townVehicleSaving); +cfg_staticWeaponSaving_on = ON_SCALAR(A3W_staticWeaponSaving); +cfg_spawnBeaconSaving_on = ON_SCALAR(A3W_spawnBeaconSaving); +cfg_boxSaving_on = ON_SCALAR(A3W_boxSaving); +cfg_warchestSaving_on = ON_SCALAR(A3W_warchestSaving); +cfg_warchestMoneySaving_on = ON_SCALAR(A3W_warchestMoneySaving); + +A3W_saveable_vehicles_list = OR_ARRAY(A3W_saveable_vehicles_list,[]); +A3W_objectLifetime = OR_SCALAR(A3W_objectLifetime,0); +A3W_object_saveInterval = OR_POSITIVE(A3W_object_saveInterval,60); + +A3W_vehicleLifetime = OR_SCALAR(A3W_vehicleLifetime,0); +A3W_vehicleMaxUnusedTime = OR_SCALAR(A3W_vehicleMaxUnusedTime,0); +A3W_vehicle_saveInterval = OR_POSITIVE(A3W_vehicle_saveInterval,60); +A3W_locked_vehicles_list = OR_ARRAY(A3W_locked_vehicles_list,[]); + + +diag_log format["[INFO] config: A3W_purchasedVehicleSaving = %1", cfg_purchasedVehicleSaving_on]; +diag_log format["[INFO] config: A3W_missionVehicleSaving = %1", cfg_missionVehicleSaving_on]; +diag_log format["[INFO] config: A3W_townVehicleSaving = %1", cfg_townVehicleSaving_on]; +diag_log format["[INFO] config: A3W_staticWeaponSaving = %1", cfg_staticWeaponSaving_on]; +diag_log format["[INFO] config: A3W_spawnBeaconSaving = %1", cfg_spawnBeaconSaving_on]; +diag_log format["[INFO] config: A3W_boxSaving = %1", cfg_boxSaving_on]; +diag_log format["[INFO] config: A3W_warchestSaving = %1", cfg_warchestSaving_on]; +diag_log format["[INFO] config: A3W_warchestMoneySaving = %1", cfg_warchestMoneySaving_on]; +diag_log format["[INFO] config: A3W_objectLifetime = %1", A3W_objectLifetime]; +diag_log format["[INFO] config: A3W_object_saveInterval = %1", A3W_object_saveInterval]; + +diag_log format["[INFO] config: A3W_vehicle_saveInterval = %1", A3W_vehicle_saveInterval]; +diag_log format["[INFO] config: A3W_vehicleMaxUnusedTime = %1", A3W_vehicleMaxUnusedTime]; +diag_log format["[INFO] config: A3W_vehicleLifetime = %1", A3W_vehicleLifetime]; + +diag_log ("[INFO] config: A3W_locked_vehicles_list = " + str(A3W_locked_vehicles_list)); +diag_log ("[INFO] config: A3W_saveable_vehicles_list = " + str(A3W_saveable_vehicles_list)); \ No newline at end of file diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf new file mode 100644 index 000000000..c505ba4f3 --- /dev/null +++ b/persistence/lib/shFunctions.sqf @@ -0,0 +1,118 @@ +if (!isNil "shFunctions_loased") exitWith {}; +diag_log "shFunctions loading ..."; + +#include "macro.h" + +call compile preProcessFileLineNumbers "persistence\lib\normalize_config.sqf"; + +sh_isSaveableVehicle = { + ARGVX4(0,_obj,objNull,false); + + init(_result, false); + { + if (_obj isKindOf _x) exitWith { + _result = true; + }; + } forEach A3W_saveable_vehicles_list; + + (_result) +}; + +sh_strToSide = { + def(_result); + _result = switch (toUpper _this) do { + case "WEST": { BLUFOR }; + case "EAST": { OPFOR }; + case "GUER": { INDEPENDENT }; + case "CIV": { CIVILIAN }; + case "LOGIC": { sideLogic }; + default { sideUnknown }; + }; + (_result) +}; + + +sh_restoreVariables = { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_variables,[]); + + def(_name); + def(_value); + + { + _name = _x select 0; + _value = _x select 1; + + if (!isNil "_value") then { + switch (_name) do { + case "side": { _value = _value call sh_strToSide}; + case "R3F_Side": { _value = _value call sh_strToSide }; + case "ownerName": { + switch (typeName _value) do { + case "ARRAY": { _value = toString _value }; + case "STRING": { /* do nothing, it's already a string */ }; + default { _value = "[Unknown]" }; + }; + }; + }; + }; + + _obj setVariable [_name, OR(_value,nil), true]; + } forEach _variables; +}; + + +sh_isBaseSavingOn = { + (["A3W_baseSaving"] call isConfigOn) +}; + + +sh_isStaticWeapon = { + ARGVX4(0,_obj,objNull,false); + init(_class,typeOf _obj); + (_class isKindOf "StaticWeapon") +}; + +sh_isBeacon = { + ARGVX4(0,_obj,objNull,false); + (_obj getVariable ["a3w_spawnBeacon", false]) +}; + +sh_isBox = { + ARGVX4(0,_obj,objNull,false); + init(_class,typeOf _obj); + (_class isKindOf "ReammoBox_F") +}; + +sh_isWarchest = { + ARGVX4(0,_obj,objNull,false); + ( + _obj getVariable ["a3w_warchest", false] && { + (_obj getVariable ["side", sideUnknown]) in [WEST,EAST]} + ) +}; + +sh_isAMissionVehicle = { + ARGVX4(0,_obj,objNull,false); + def(_mission); + _mission = _obj getVariable "A3W_missionVehicle"; + (isBOOLEAN(_mission) && {_mission}) +}; + + +sh_isAPurchasedVehicle = { + ARGVX4(0,_obj,objNull,false); + def(_purchased); + _purchased = _obj getVariable "A3W_purchasedVehicle"; + (isBOOLEAN(_purchased) && {_purchased}) +}; + +sh_isUAV = { + ARGVX4(0,_obj,objNull,false); + (getNumber(configFile >> "CfgVehicles" >> typeOf _obj >> "isUav") > 0) +}; + + + +shFunctions_loased = true; +diag_log "shFunctions loading complete"; \ No newline at end of file diff --git a/persistence/players/macro.h b/persistence/players/macro.h index 86660aead..7cdedd47a 100644 --- a/persistence/players/macro.h +++ b/persistence/players/macro.h @@ -49,6 +49,17 @@ getIf(not(cond),v1,v2) #define OR(x,y) \ getIf(defined(x),x,y) +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + #define AND(x,y) \ OR(v,y) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index f55510034..59e0400f3 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -33,6 +33,7 @@ s_processRestartMessage = { //save all object scopes init(_oScope, "Objects" call PDB_objectFileName); [_oScope] call o_saveAllObjects; + [_oScope] call o_saveInfo; diag_log format["Sending restart message ack"]; diff --git a/persistence/sock/macro.h b/persistence/sock/macro.h index 93d596811..7cdedd47a 100644 --- a/persistence/sock/macro.h +++ b/persistence/sock/macro.h @@ -2,22 +2,22 @@ #define _undefined objNull #define isARRAY(x) \ -(not(isNil {x}) && {typeName (x) == typeName []}) +(not(isNil {x}) && {typeName x == typeName []}) #define isSTRING(x) \ -(not(isNil {x}) && {typeName (x) == typeName ""}) +(not(isNil {x}) && {typeName x == typeName ""}) #define isSCALAR(x) \ -(not(isNil {x}) && {typeName (x) == typeName 0}) +(not(isNil {x}) && {typeName x == typeName 0}) #define isBOOLEAN(x) \ -(not(isNil {x}) && {typeName (x) == typeName true}) +(not(isNil {x}) && {typeName x == typeName true}) #define isOBJECT(x) \ -(not(isNil {x}) && {typeName (x) == typeName objNull}) +(not(isNil {x}) && {typeName x == typeName objNull}) #define isCODE(x) \ -(not(isNil {x}) && {typeName (x) == typeName {}}) +(not(isNil {x}) && {typeName x == typeName {}}) #define isSIDE(x) \ (not(isNil {x}) && {typeName x == typeName sideUnknown}) @@ -25,7 +25,7 @@ #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ - _t = typeName (x); \ + _t = typeName x; \ _t == typeName controlNull ||{ \ _t == typeName displayNull ||{ \ _t == typeName locationNull ||{ \ @@ -49,6 +49,17 @@ getIf(not(cond),v1,v2) #define OR(x,y) \ getIf(defined(x),x,y) +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + #define AND(x,y) \ OR(v,y) diff --git a/persistence/world/macro.h b/persistence/world/macro.h index 86660aead..7cdedd47a 100644 --- a/persistence/world/macro.h +++ b/persistence/world/macro.h @@ -49,6 +49,17 @@ getIf(not(cond),v1,v2) #define OR(x,y) \ getIf(defined(x),x,y) +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + #define AND(x,y) \ OR(v,y) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 95d6ce9e4..41602c5e1 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -5,69 +5,12 @@ diag_log "oFunctions.sqf loading ..."; -#include "macro.h"; - -o_strToSide = { - def(_result); - _result = switch (toUpper _this) do { - case "WEST": { BLUFOR }; - case "EAST": { OPFOR }; - case "GUER": { INDEPENDENT }; - case "CIV": { CIVILIAN }; - case "LOGIC": { sideLogic }; - default { sideUnknown }; - }; - (_result) -}; - -o_isBaseSavingOn = { - (["A3W_baseSaving"] call isConfigOn) -}; - -o_isStaticWeapon = { - ARGVX4(0,_obj,objNull,false); - init(_class,typeOf _obj); - (_class isKindOf "StaticWeapon") -}; - -o_isStaticWeaponSavingOn = { - (["A3W_staticWeaponSaving"] call isConfigOn) -}; -o_isBeacon = { - ARGVX4(0,_obj,objNull,false); - (_obj getVariable ["a3w_spawnBeacon", false]) -}; - -o_isBeaconSavingOn = { - (["A3W_spawnBeaconSaving"] call isConfigOn) -}; +call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; -o_isBox = { - ARGVX4(0,_obj,objNull,false); - init(_class,typeOf _obj); - (_class isKindOf "ReammoBox_F") -}; - -o_isBoxSavingOn = { - (["A3W_boxSaving"] call isConfigOn) -}; - -o_isWarchest = { - ARGVX4(0,_obj,objNull,false); - ( - _obj getVariable ["a3w_warchest", false] && { - (_obj getVariable ["side", sideUnknown]) in [WEST,EAST]} - ) -}; +#include "macro.h"; -o_isWarchestSavingOn = { - (["A3W_warchestSaving"] call isConfigOn) -}; -o_isWarchestMoneySavingOn = { - (["A3W_warchestMoneySaving"] call isConfigOn) -}; o_hasInventory = { ARGVX2(0,_arg); @@ -99,66 +42,45 @@ o_isSaveable = { init(_class, typeOf _obj); if (!(alive _obj)) exitWith {false}; - if ([_obj] call o_isVehicle) exitWith {false}; - if ([_obj] call o_isInSaveList) exitWith {true}; + if ([_obj] call sh_isSaveableVehicle) exitWith {false}; //already being saved as a vehicle, don't save it + if ([_obj] call o_isInSaveList) exitWith {true}; //not sure what this "saveList" thing is ... - init(_boxSavingOn,call o_isBoxSavingOn); - if ([_obj] call o_isBeacon) exitWith { - //diag_log format["sav1(%1): o_isBeaconSavingOn = %2", _obj, (call o_isBeaconSavingOn)]; - (call o_isBeaconSavingOn) + if ([_obj] call sh_isBeacon) exitWith { + //diag_log format["sav1(%1): cfg_spawnBeaconSaving_on = %2", _obj, (cfg_spawnBeaconSaving_on)]; + (cfg_spawnBeaconSaving_on) }; - if ([_obj] call o_isWarchest) exitWith { - //diag_log format["sav2(%1): o_isWarchestSavingOn = %2", _obj, (call o_isWarchestSavingOn)]; - (call o_isWarchestSavingOn) + if ([_obj] call sh_isWarchest) exitWith { + //diag_log format["sav2(%1): cfg_warchestSaving_on = %2", _obj, (cfg_warchestSaving_on)]; + (cfg_warchestSaving_on) }; - if ([_obj] call o_isStaticWeapon) exitWith { - //diag_log format["sav3(%1): o_isStaticWeaponSavingOn = %2", _obj, (call o_isStaticWeaponSavingOn)]; - (call o_isStaticWeaponSavingOn) + if ([_obj] call sh_isStaticWeapon) exitWith { + //diag_log format["sav3(%1): cfg_staticWeaponSaving_on = %2", _obj, cfg_staticWeaponSaving_on]; + (cfg_staticWeaponSaving_on) }; def(_locked); _locked = _obj getVariable ["objectLocked", false]; - if ([_obj] call o_isBox) exitWith { - //diag_log format["sav4(%1): _boxSavingOn = %2, _locked = %3", _obj, _boxSavingOn, _locked]; - (_boxSavingOn && {_locked}) + if ([_obj] call sh_isBox) exitWith { + //diag_log format["sav4(%1): cfg_boxSaving_on = %2, _locked = %3", _obj, cfg_boxSaving_on, _locked]; + (cfg_boxSaving_on && {_locked}) }; - //diag_log format["sav5(%1): _boxSavingOn = %2, _locked = %3",_obj, _boxSavingOn, _locked]; - (_boxSavingOn && {_locked}) -}; - -o_isVehicle = { - ARGVX4(0,_obj,objNull,false); - - init(_result, false); - { - if (_obj isKindOf _x) exitWith { - _result = true; - }; - } forEach ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank", "StaticWeapon"]; - - (_result) + //diag_log format["sav5(%1): cfg_boxSaving_on = %2, _locked = %3",_obj, cfg_boxSaving_on, _locked]; + (cfg_boxSaving_on && {_locked}) }; -o_isAlwaysUnlocked = { +o_isLockableObject = { ARGVX4(0,_obj,objNull, false); - - def(_result); - _result = switch (true) do { - case ([_obj] call o_isWarchest): { true }; - case ([_obj] call o_isBeacon): {true}; - default { false }; - }; - - (_result) + + not(([_obj] call sh_isWarchest) && {[_obj] call sh_isBeacon}) }; -o_maxLifetime = ["A3W_objectLifetime", 0] call getPublicVar; + o_restoreObject = {_this spawn { //diag_log format["%1 call o_restoreObject", _this]; @@ -228,8 +150,8 @@ o_restoreObject = {_this spawn { diag_log format["%1(%2) is being restored.", _object_key, _class]; - if (isSCALAR(_hours_alive) && {o_maxLifetime > 0 && {_hours_alive > o_maxLifetime}}) exitWith { - diag_log format["object %1(%2) has been alive for %3 (max=%4), skipping it", _object_key, _class, _hours_alive, o_maxLifetime]; + if (isSCALAR(_hours_alive) && {A3W_objectLifetime > 0 && {_hours_alive > A3W_objectLifetime}}) exitWith { + diag_log format["object %1(%2) has been alive for %3 (max=%4), skipping it", _object_key, _class, _hours_alive, A3W_objectLifetime]; }; def(_obj); @@ -240,40 +162,22 @@ o_restoreObject = {_this spawn { }; _obj setVariable ["object_key", _object_key, true]; - - //restore the variables for the object - if (isARRAY(_variables)) then { - def(_name); - def(_value); - { - _name = _x select 0; - _value = _x select 1; - - if (!isNil "_value") then { - switch (_name) do { - case "R3F_Side": { _value = _value call o_strToSide}; - case "side": { _value = _value call o_strToSide}; - case "ownerName": { - switch (typeName _value) do { - case "ARRAY": { _value = toString _value }; - case "STRING": { /* do nothing, it's already a string */ }; - default { _value = "[Beacon]" }; - }; - }; - }; - }; - _obj setVariable [_name, OR(_value,nil), true]; - } forEach _variables; - }; - - _obj setVariable ["objectLocked", true, true]; // force lock + [_obj, _variables] call sh_restoreVariables; + if (not([_obj] call o_isSaveable)) exitWith { diag_log format["%1(%2) has been deleted, it is not saveable", _object_key, _class]; deleteVehicle _obj; }; + //for backwards compatibility, if the object does not have the "objectLocked" variable, then lock it + def(_objectLocked); + _objectLocked = _obj getVariable "objectLocked"; + if (!isBOOLEAN(_objectLocked) && {[_obj] call o_isLockableObject}) then { + _obj setVariable ["objectLocked", true, true]; + }; + _obj setPosWorld ATLtoASL _pos; if (isARRAY(_dir)) then { @@ -301,7 +205,7 @@ o_restoreObject = {_this spawn { }; //broadcast the spawn beacon - if ([_obj] call o_isBeacon) then { + if ([_obj] call sh_isBeacon) then { pvar_spawn_beacons pushBack _obj; publicVariable "pvar_spawn_beacons"; }; @@ -348,12 +252,10 @@ o_restoreObject = {_this spawn { if (isSCALAR(_cargo_repair)) then { _obj setRepairCargo _cargo_repair; }; - - //some objects need to be always unlocked - def(_unlocked); - _unlocked = [_obj] call o_isAlwaysUnlocked; - if (_unlocked) then { - _obj setVariable ["objectLocked", false, true]; + + //AddAi to vehicle + if ([_obj] call sh_isUAV) then { + createVehicleCrew _obj; }; //objects, warchests, and beacons @@ -367,7 +269,7 @@ o_restoreObject = {_this spawn { o_saveList = []; {if (true) then { - if (not(call o_isBaseSavingOn)) exitWith {}; + if (not(call sh_isBaseSavingOn)) exitWith {}; def(_obj); _obj = _x select 1; @@ -408,17 +310,17 @@ o_fillVariables = { _variables pushBack ["ownerN", _ownerN]; }; - if ([_obj] call o_isBox) then { + if ([_obj] call sh_isBox) then { _variables pushBack ["cmoney", _obj getVariable ["cmoney", 0]]; }; - if ([_obj] call o_isWarchest) then { + if ([_obj] call sh_isWarchest) then { _variables pushBack ["a3w_warchest", true]; _variables pushBack ["R3F_LOG_disabled", true]; _variables pushBack ["side", str (_obj getVariable ["side", sideUnknown])]; }; - if ([_obj] call o_isBeacon) then { + if ([_obj] call sh_isBeacon) then { _variables pushBack ["a3w_spawnBeacon", true]; _variables pushBack ["R3F_LOG_disabled", true]; _variables pushBack ["side", str(_obj getVariable ["side", sideUnknown])]; @@ -431,7 +333,9 @@ o_fillVariables = { _r3fSide = _obj getVariable "R3F_Side"; if (!isNil "_r3fSide" && {typeName _r3fSide == typeName sideUnknown}) then { _variables pushBack ["R3F_Side", str _r3fSide]; - }; + }; + + _variables pushBack ["objectLocked", _obj getVariable "objectLocked"]; }; o_addSaveObject = { @@ -494,7 +398,7 @@ o_addSaveObject = { }; init(_turretMags,[]); - if ((call o_isStaticWeaponSavingOn) && {[_obj] call o_isStaticWeapon}) then { + if ((cfg_staticWeaponSaving_on) && {[_obj] call sh_isStaticWeapon}) then { _turretMags = magazinesAmmo _obj; }; @@ -542,7 +446,7 @@ o_saveInfo = { init(_request,[_scope]); - if (call o_isWarchestMoneySavingOn) then { + if (cfg_warchestMoneySaving_on) then { _fundsWest = ["pvar_warchest_funds_west", 0] call getPublicVar; _fundsEast = ["pvar_warchest_funds_east", 0] call getPublicVar; }; @@ -597,7 +501,6 @@ o_saveAllObjects = { }; o_trackedObjectsListCleanup = { - //post cleanup the array init(_cleanup_start, diag_tickTime); init(_nulls,[]); @@ -623,14 +526,14 @@ o_getTrackedObjectIndex = { (tracked_objects_list find _obj) }; -//event handlers for object locking and unlocking +//event handlers for object tracking, and untracking "trackObject" addPublicVariableEventHandler { private["_index","_object"]; _object = _this select 1; _index = [OR(_object,nil)] call o_getTrackedObjectIndex; if (_index >= 0) exitWith {}; - //diag_log format["%1 is being added to the lock list", _object]; + //diag_log format["%1 is being added to the tracked list", _object]; tracked_objects_list pushBack _object; }; @@ -641,19 +544,14 @@ o_getTrackedObjectIndex = { _index = [OR(_object,nil)] call o_getTrackedObjectIndex; if (_index < 0) exitWith {}; - //diag_log format["%1 is being removed from the lock list", _object]; + //diag_log format["%1 is being removed from the tracked list", _object]; tracked_objects_list deleteAt _index; }; - - -o_saveLoop_interval = OR(A3W_object_saveInterval,60); -diag_log format["config: A3W_object_saveInterval = %1", o_saveLoop_interval]; - o_saveLoop = { ARGVX3(0,_scope,""); while {true} do { - sleep o_saveLoop_interval; + sleep A3W_object_saveInterval; if (not(isBOOLEAN(o_saveLoopActive) && {!o_saveLoopActive})) then { diag_log format["saving all objects"]; [_scope] call o_saveInfo; @@ -665,15 +563,13 @@ o_saveLoop = { o_loadInfoPair = { ARGVX3(0,_name,""); ARGV2(1,_value); - - init(_warchestSavingOn, call o_isWarchestMoneySavingOn); - - if (_warchestSavingOn && _name == "WarchestMoneyBLUFOR" && {isSCALAR(_value)}) exitWith { + + if (cfg_warchestMoneySaving_on && _name == "WarchestMoneyBLUFOR" && {isSCALAR(_value)}) exitWith { pvar_warchest_funds_west = _value; publicVariable "pvar_warchest_funds_west"; }; - if (_warchestSavingOn && _name == "WarchestMoneyOPFOR" && {isSCALAR(_value)}) exitWith { + if (cfg_warchestMoneySaving_on && _name == "WarchestMoneyOPFOR" && {isSCALAR(_value)}) exitWith { pvar_warchest_funds_east = _value; publicVariable "pvar_warchest_funds_east"; }; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 16fb4d385..5a6317659 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -1,106 +1,26 @@ diag_log "vFunctions.sqf loading ..."; -#include "macro.h"; +#include "macro.h" -/** - * List of class names of locked objects. - */ -VLOAD_LOCKED = OR(A3W_locked_vehicles_list,[]); -#define isUAV(o) (isOBJECT(o) && {getNumber(configFile >> "CfgVehicles" >> typeOf o >> "isUav") > 0}) +call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; -v_isWarchest = { - _this getVariable ["a3w_warchest", false] && {(_this getVariable ["side", sideUnknown]) in [WEST,EAST]} -}; - -v_isBeacon = { - _this getVariable ["a3w_spawnBeacon", false] -}; - -v_strToSide = { - def(_result); - _result = switch (toUpper _this) do - { - case "WEST": { BLUFOR }; - case "EAST": { OPFOR }; - case "GUER": { INDEPENDENT }; - case "CIV": { CIVILIAN }; - case "LOGIC": { sideLogic }; - default { sideUnknown }; - }; - (_result) -}; - -v_isAlwaysUnlocked = { - ARGVX4(0,_obj,objNull, false); - - def(_result); - _result = switch (true) do { - case (_obj call v_isWarchest): { true }; - case (_obj call v_isBeacon): {true}; - default { false }; - }; - - (_result) -}; - - -v_isVehicle = { - ARGVX4(0,_obj,objNull,false); - - init(_result, false); - { - if (_obj isKindOf _x) exitWith { - _result = true; - }; - } forEach ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank", "StaticWeapon"]; - - (_result) -}; - - -v_restoreVehicleVariables = { - ARGVX3(0,_obj,objNull); - ARGVX3(1,_variables,[]); - - def(_name); - def(_value); - - { - _name = _x select 0; - _value = _x select 1; - - if (!isNil "_value") then { - switch (_name) do { - case "side": { _value = _value call v_strToSide}; - case "R3F_Side": { _value = _value call v_strToSide }; - }; - }; - _obj setVariable [_name, OR(_value,nil), true]; - } forEach _variables; -}; - - -v_maxLifetime = if (isSCALAR(A3W_vehicleLifetime)) then {A3W_vehicleLifetime} else {0}; -v_maxAbandonedTime = if (isSCALAR(A3W_vehicleMaxUnusedTime)) then {A3W_vehicleMaxUnusedTime} else {0}; - - v_restoreVehicle = {_this spawn { //diag_log format["%1 call v_restoreVehicle", _this]; ARGVX3(0,_data_pair,[]); - + _this = _data_pair; ARGVX3(0,_vehicle_key,""); ARGVX2(1,_vehicle_hash); - + if (!isCODE(_vehicle_hash)) exitWith {}; - + def(_vehicle_data); _vehicle_data = call _vehicle_hash; //diag_log _vehicle_data; - - + + def(_hours_alive); def(_hours_abandoned); def(_pos); @@ -160,12 +80,12 @@ v_restoreVehicle = {_this spawn { diag_log format["%1(%2) is being restored.", _vehicle_key, _class]; - if (isSCALAR(_hours_alive) && {v_maxLifetime > 0 && {_hours_alive > v_maxLifetime}}) exitWith { - diag_log format["vehicle %1(%2) has been alive for %3 (max=%4), skipping it", _vehicle_key, _class, _hours_alive, v_maxLifetime]; + if (isSCALAR(_hours_alive) && {A3W_vehicleLifetime > 0 && {_hours_alive > A3W_vehicleLifetime}}) exitWith { + diag_log format["vehicle %1(%2) has been alive for %3 (max=%4), skipping it", _vehicle_key, _class, _hours_alive, A3W_vehicleLifetime]; }; - if (isSCALAR(_hours_abandoned) && {v_maxAbandonedTime > 0 && {_hours_abandoned > v_maxAbandonedTime}}) exitWith { - diag_log format["vehicle %1(%2) has been abandoned for %3 hours, (max=%4), skipping it", _vehicle_key, _class, _hours_abandoned, v_maxAbandonedTime]; + if (isSCALAR(_hours_abandoned) && {A3W_vehicleMaxUnusedTime > 0 && {_hours_abandoned > A3W_vehicleMaxUnusedTime}}) exitWith { + diag_log format["vehicle %1(%2) has been abandoned for %3 hours, (max=%4), skipping it", _vehicle_key, _class, _hours_abandoned, A3W_vehicleMaxUnusedTime]; }; @@ -179,12 +99,12 @@ v_restoreVehicle = {_this spawn { _obj setVariable ["vehicle_key", _vehicle_key, true]; missionNamespace setVariable [_vehicle_key, _obj]; - + _obj setPosWorld ATLtoASL _pos; if (isARRAY(_dir)) then { _obj setVectorDirAndUp _dir; }; - + _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; if (isSCALAR(_hours_alive)) then { _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; @@ -194,12 +114,12 @@ v_restoreVehicle = {_this spawn { if (isSCALAR(_hours_abandoned)) then { _obj setVariable ["vehicle_abandoned_hours", _hours_abandoned]; }; - + // disables thermal equipment on loaded vehicles, comment out if you want thermal - _obj disableTIEquipment true; - + _obj disableTIEquipment true; + //lock vehicles form this list - if ({_obj isKindOf _x} count VLOAD_LOCKED > 0) then { + if ({_obj isKindOf _x} count A3W_locked_vehicles_list > 0) then { _obj lock 2; _obj setVariable ["locked", 2, true]; _obj setVariable ["objectLocked", true, true]; @@ -217,8 +137,8 @@ v_restoreVehicle = {_this spawn { if (isARRAY(_hitPoints)) then { { _obj setHitPointDamage _x } forEach _hitPoints; }; - - [_obj,_variables] call v_restoreVehicleVariables; + + [_obj,_variables] call sh_restoreVariables; def(_textures); @@ -229,23 +149,23 @@ v_restoreVehicle = {_this spawn { _obj setObjectTextureGlobal _x; } forEach _textures; }; - + //AddAi to vehicle - if (isUAV(_obj)) then { + if ([_obj] call sh_isUAV) then { createVehicleCrew _obj; }; - //restore the stuff inside the vehicle + //restore the stuff inside the vehicle clearWeaponCargoGlobal _obj; clearMagazineCargoGlobal _obj; clearItemCargoGlobal _obj; clearBackpackCargoGlobal _obj; //_obj setVehicleAmmo 0; - + if (isARRAY(_cargo_weapons)) then { { _obj addWeaponCargoGlobal _x } forEach _cargo_weapons; }; - + if (isARRAY(_cargo_backpacks)) then { { if (not((_x select 0) isKindOf "Weapon_Bag_Base")) then { @@ -253,11 +173,11 @@ v_restoreVehicle = {_this spawn { }; } forEach _cargo_backpacks; }; - + if (isARRAY(_cargo_items)) then { { _obj addItemCargoGlobal _x } forEach _cargo_items; }; - + if (isARRAY(_cargo_magazines)) then { { _obj addMagazineCargoGlobal _x } forEach _cargo_magazines; }; @@ -277,46 +197,13 @@ v_restoreVehicle = {_this spawn { if (isSCALAR(_cargo_repair)) then { _obj setRepairCargo _cargo_repair; }; - - //some vehicles need to be always unlocked - def(_unlocked); - _unlocked = [_obj] call v_isAlwaysUnlocked; - if (_unlocked) then { - _obj setVariable ["objectLocked", false, true]; - }; + tracked_vehicles_list pushBack _obj; }};; -//event handlers for object locking and unlocking -"backInVehicle" addPublicVariableEventHandler { _this spawn { - diag_log format["%1 backInVehicle", _this]; - private["_player", "_vehicle_key"]; - _this = _this select 1; - _player = _this select 0; - _vehicle_key = _this select 1; - - if (isNil "_player" || {typeName _player != typeName objNull}) exitWith {}; - if (isNil "_vehicle_key" || {typeName _vehicle_key != typeName ""}) exitWith {}; - - waitUntil {!isNil {v_loadVehicles_complete}}; - - private["_vehicle"]; - _vehicle = missionNamespace getVariable _vehicle_key; - if (isNil "_vehicle" || {typeName _vehicle != typeName objNull}) exitWith {}; - - //diag_log format["Putting back %1 into vehicle %2", _player, _vehicle]; - private["_lock_state"]; - _lock_state = locked _vehicle; - _vehicle lock 0; - _player moveInAny _vehicle; - _vehicle lock _lock_state; - _player setVariable ["vehicle", _vehicle]; -};}; - - tracked_vehicles_list = []; v_getTrackedVehicleIndex = { @@ -326,7 +213,6 @@ v_getTrackedVehicleIndex = { (tracked_vehicles_list find _obj) }; -//event handlers for object locking and unlocking v_trackVehicle = { private["_index","_object"]; _object = _this select 0; @@ -337,7 +223,6 @@ v_trackVehicle = { tracked_vehicles_list pushBack _object; }; - v_untrackVehicle = { private["_index","_object"]; _object = _this select 0; @@ -365,7 +250,6 @@ v_trackedVehiclesListCleanup = { }; - //build list of object that should not be saved v_skipList = []; def(_obj); @@ -378,47 +262,14 @@ def(_obj); } forEach [civilianVehicles, call allVehStoreVehicles]; -v_isSavingMissionVehiclesEnabled = (isSCALAR(A3W_missionVehicleSaving) && {A3W_missionVehicleSaving == 1}); -v_isSavingPurchasedVehiclesEnabled = (isSCALAR(A3W_purchasedVehicleSaving) && {A3W_purchasedVehicleSaving == 1}); -v_isSavingTownVehiclesEnabled = (isSCALAR(A3W_townVehicleSaving) && {A3W_townVehicleSaving == 1}); -v_isSavingStaticWeaponsEnabled = (isSCALAR(A3W_staticWeaponSaving) && {A3W_staticWeaponSaving == 1}); - - -diag_log format["[INFO] config: A3W_purchasedVehicleSaving = %1", v_isSavingPurchasedVehiclesEnabled]; -diag_log format["[INFO] config: A3W_missionVehicleSaving = %1", v_isSavingMissionVehiclesEnabled]; -diag_log format["[INFO] config: A3W_townVehicleSaving = %1", v_isSavingTownVehiclesEnabled]; -diag_log format["[INFO] config: A3W_staticWeaponSaving = %1", v_isSavingStaticWeaponsEnabled]; - - - -v_isStaticWeapon = { - ARGVX4(0,_obj,objNull,false); - init(_class, typeof _obj); - (_class isKindOf "StaticWeapon") -}; - -v_isAMissionVehicle = { - ARGVX4(0,_obj,objNull,false); - def(_mission); - _mission = _obj getVariable "A3W_missionVehicle"; - (isBOOLEAN(_mission) && {_mission}) -}; - -v_isAPurchasedVehicle = { - ARGVX4(0,_obj,objNull,false); - def(_purchased); - _purchased = _obj getVariable "A3W_purchasedVehicle"; - (isBOOLEAN(_purchased) && {_purchased}) -}; - -v_isVehicleSaveable = { +v_isSaveable = { ARGVX4(0,_obj,objNull,false); //it's a wreck, don't save it if (not(alive _obj)) exitWith {false}; //not a vehicle, don't save it - if (not([_obj] call v_isVehicle)) exitWith {false}; + if (not([_obj] call sh_isSaveableVehicle)) exitWith {false}; def(_purchasedVehicle); def(_missionVehicle); @@ -427,25 +278,25 @@ v_isVehicleSaveable = { def(_usedOnce); - _purchasedVehicle = ([_obj] call v_isAPurchasedVehicle); - _missionVehicle = ([_obj] call v_isAMissionVehicle); - _staticWeapon = [_obj] call v_isStaticWeapon; + _purchasedVehicle = ([_obj] call sh_isAPurchasedVehicle); + _missionVehicle = ([_obj] call sh_isAMissionVehicle); + _staticWeapon = [_obj] call sh_isStaticWeapon; _townVehicle = not(_missionVehicle || {_purchasedVehicle || {_staticWeapon}}); _usedOnce = not([_obj] call v_isVehicleVirgin); //diag_log format["%1, _purchasedVehicle = %2, _missionVehicle = %3, _usedOnce = %4, _townVehicle = %5, _staticWeapon = %6",_obj, _purchasedVehicle,_missionVehicle,_usedOnce,_townVehicle, _staticWeapon]; //it's a purchased vehicle, and saving purchased vehicles has been enabled, save it - if (_purchasedVehicle && {v_isSavingPurchasedVehiclesEnabled}) exitWith {true}; + if (_purchasedVehicle && {cfg_purchasedVehicleSaving_on}) exitWith {true}; //it's a mission spawned vehicle, and saving mission vehicles has been enabled, save it - if (_missionVehicle && {v_isSavingMissionVehiclesEnabled}) exitWith {true}; + if (_missionVehicle && {cfg_missionVehicleSaving_on}) exitWith {true}; //if it's a static weapon, and saving static weapons has been enabled, save it - if (_staticWeapon && {v_isSavingStaticWeaponsEnabled}) exitWith {true}; + if (_staticWeapon && {cfg_staticWeaponSaving_on}) exitWith {true}; //if it's a town vehicle that has been used at least once, save it - if (_townVehicle && {_usedOnce && {v_isSavingTownVehiclesEnabled}}) exitWith {true}; + if (_townVehicle && {_usedOnce && {cfg_townVehicleSaving_on}}) exitWith {true}; false }; @@ -546,13 +397,13 @@ v_setupVehicleSavedVariables = { if (defined(_r3f_log_disabled)) then { _variables pushBack ["R3F_LOG_disabled", _r3f_log_disabled]; }; - + def(_r3fSide); _r3fSide = _obj getVariable "R3F_Side"; if (isSIDE(_r3fSide)) then { _variables pushBack ["R3F_Side", str _r3fSide]; }; - + _variables pushBack ["A3W_objectTextures", (_obj getVariable ["A3W_objectTextures",[]])]; }; @@ -561,7 +412,7 @@ v_addSaveVehicle = { ARGVX3(0,_list,[]); ARGVX3(1,_obj,objNull); - if (not([_obj] call v_isVehicleSaveable)) exitWith {}; + if (not([_obj] call v_isSaveable)) exitWith {}; def(_class); def(_netId); @@ -591,7 +442,7 @@ v_addSaveVehicle = { init(_magazines,[]); init(_items,[]); init(_backpacks,[]); - + // Save weapons & ammo _weapons = (getWeaponCargo _obj) call cargoToPairs; _magazines = (getMagazineCargo _obj) call cargoToPairs; @@ -599,7 +450,7 @@ v_addSaveVehicle = { _backpacks = (getBackpackCargo _obj) call cargoToPairs; init(_turretMags,[]); - if (v_isSavingStaticWeaponsEnabled && {[_obj] call v_isStaticWeapon}) then { + if (cfg_staticWeaponSaving_on && {[_obj] call sh_isStaticWeapon}) then { _turretMags = magazinesAmmo _obj; }; @@ -652,7 +503,7 @@ v_addSaveVehicle = { ["Hitpoints", _hitPoints] ] call sock_hash)]; - + true }; @@ -712,18 +563,18 @@ v_saveAllVechiles = { ARGVX3(0,_scope,""); init(_count,0); init(_request,[_scope]); - + [_scope] call stats_wipe; init(_bulk_size,100); init(_start_time, diag_tickTime); init(_last_save, diag_tickTime); - + { if (!isNil{[_request, _x] call v_addSaveVehicle}) then { _count = _count + 1; }; - + //save vehicles in bulks if ((_count % _bulk_size) == 0 && {count(_request) > 1}) then { init(_save_start, diag_tickTime); @@ -734,36 +585,33 @@ v_saveAllVechiles = { _last_save = _save_end; }; } forEach (tracked_vehicles_list); - + if (count(_request) > 1) then { init(_save_start, diag_tickTime); _request call stats_set; init(_save_end, diag_tickTime); diag_log format["v_saveLoop: %1 vehicles saved in %2 ticks, save call took %3 ticks", (count(_request) -1), (_save_end - _last_save), (_save_end - _save_start)]; }; - + diag_log format["v_saveLoop: total of %1 vehicles saved in %2 ticks", (_count), (diag_tickTime - _start_time)]; - + call v_trackedVehiclesListCleanup; }; -v_saveLoop_interval = OR(A3W_vehicle_saveInterval,60); -diag_log format["config: A3W_vehicle_saveInterval = %1", v_saveLoop_interval]; - v_saveLoop = { ARGVX3(0,_scope,""); while {true} do { - sleep v_saveLoop_interval; + sleep A3W_vehicle_saveInterval; if (not(isBOOLEAN(v_saveLoopActive) && {!v_saveLoopActive})) then { [_scope] call v_saveAllVechiles; }; - }; + }; }; v_loadVehicles = { ARGVX3(0,_scope,""); - + def(_vehicles); _vehicles = [_scope] call stats_get; @@ -771,7 +619,7 @@ v_loadVehicles = { if (!isARRAY(_vehicles)) exitWith {}; diag_log format["A3Wasteland - will restore %1 vehicles", count(_vehicles)]; - { + { [_x] call v_restoreVehicle; } forEach _vehicles; diff --git a/server/default_config.sqf b/server/default_config.sqf index ee8af0842..52c8baec7 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -45,7 +45,6 @@ A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts A3W_objectLifetime = 5*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) -A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked unpon restore PDB_PlayerFileID = "A3W_"; // Player savefile prefix (change this in case you run multiple servers from the same folder) PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in case you run multiple servers from the same folder) @@ -53,6 +52,11 @@ A3W_vehicle_saveInterval = 300; // Number of seconds between vehicle saves A3W_object_saveInterval = 300; // Number of seconds between object saves A3W_player_saveInterval = 300; // Number of seconds between player saves + // List of classes for vehicles that are saveable + // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved +A3W_saveable_vehicles_list = ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank"]; +A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked unpon restore + // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) A3W_vehicleSpawning = 1; // If serverSpawning = 1, spawn vehicles in towns (0 = no, 1 = yes) From 8c1417b83a0bbcc706c19c09d3238990913dbb10 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 2 Nov 2014 17:15:19 -0800 Subject: [PATCH 088/544] move baseSaving config to shared location --- persistence/lib/normalize_config.sqf | 7 ++++++- persistence/lib/shFunctions.sqf | 6 ------ persistence/world/oFunctions.sqf | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index 7fa0c47a6..a4d8feae8 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -11,6 +11,8 @@ cfg_spawnBeaconSaving_on = ON_SCALAR(A3W_spawnBeaconSaving); cfg_boxSaving_on = ON_SCALAR(A3W_boxSaving); cfg_warchestSaving_on = ON_SCALAR(A3W_warchestSaving); cfg_warchestMoneySaving_on = ON_SCALAR(A3W_warchestMoneySaving); +cfg_baseSaving_on = ON_SCALAR(A3W_baseSaving); + A3W_saveable_vehicles_list = OR_ARRAY(A3W_saveable_vehicles_list,[]); A3W_objectLifetime = OR_SCALAR(A3W_objectLifetime,0); @@ -30,6 +32,9 @@ diag_log format["[INFO] config: A3W_spawnBeaconSaving = %1", cfg_spawnBeaconSavi diag_log format["[INFO] config: A3W_boxSaving = %1", cfg_boxSaving_on]; diag_log format["[INFO] config: A3W_warchestSaving = %1", cfg_warchestSaving_on]; diag_log format["[INFO] config: A3W_warchestMoneySaving = %1", cfg_warchestMoneySaving_on]; +diag_log format["[INFO] config: A3W_baseSaving = %1", cfg_baseSaving_on]; + + diag_log format["[INFO] config: A3W_objectLifetime = %1", A3W_objectLifetime]; diag_log format["[INFO] config: A3W_object_saveInterval = %1", A3W_object_saveInterval]; @@ -38,4 +43,4 @@ diag_log format["[INFO] config: A3W_vehicleMaxUnusedTime = %1", A3W_vehicleMaxUn diag_log format["[INFO] config: A3W_vehicleLifetime = %1", A3W_vehicleLifetime]; diag_log ("[INFO] config: A3W_locked_vehicles_list = " + str(A3W_locked_vehicles_list)); -diag_log ("[INFO] config: A3W_saveable_vehicles_list = " + str(A3W_saveable_vehicles_list)); \ No newline at end of file +diag_log ("[INFO] config: A3W_saveable_vehicles_list = " + str(A3W_saveable_vehicles_list)); diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index c505ba4f3..9eb678d15 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -61,12 +61,6 @@ sh_restoreVariables = { } forEach _variables; }; - -sh_isBaseSavingOn = { - (["A3W_baseSaving"] call isConfigOn) -}; - - sh_isStaticWeapon = { ARGVX4(0,_obj,objNull,false); init(_class,typeOf _obj); diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 41602c5e1..05d0a7b12 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -269,7 +269,7 @@ o_restoreObject = {_this spawn { o_saveList = []; {if (true) then { - if (not(call sh_isBaseSavingOn)) exitWith {}; + if (not(cfg_baseSaving_on)) exitWith {}; def(_obj); _obj = _x select 1; From fe63f244714db3dd61de8ebe25aeb0b5f7134b6a Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 2 Nov 2014 17:17:10 -0800 Subject: [PATCH 089/544] fix boboo --- persistence/world/oFunctions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 05d0a7b12..bc0c047be 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -77,7 +77,7 @@ o_isSaveable = { o_isLockableObject = { ARGVX4(0,_obj,objNull, false); - not(([_obj] call sh_isWarchest) && {[_obj] call sh_isBeacon}) + not(([_obj] call sh_isWarchest) || {[_obj] call sh_isBeacon}) }; From 768811506e6ce944ebde12578c9ac8d7c4203149 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 2 Nov 2014 17:45:07 -0800 Subject: [PATCH 090/544] Auto-lock restored objects if not locked already Was being done in the wrong order --- persistence/world/oFunctions.sqf | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index bc0c047be..c06479334 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -46,19 +46,15 @@ o_isSaveable = { if ([_obj] call o_isInSaveList) exitWith {true}; //not sure what this "saveList" thing is ... - if ([_obj] call sh_isBeacon) exitWith { - //diag_log format["sav1(%1): cfg_spawnBeaconSaving_on = %2", _obj, (cfg_spawnBeaconSaving_on)]; (cfg_spawnBeaconSaving_on) }; if ([_obj] call sh_isWarchest) exitWith { - //diag_log format["sav2(%1): cfg_warchestSaving_on = %2", _obj, (cfg_warchestSaving_on)]; (cfg_warchestSaving_on) }; if ([_obj] call sh_isStaticWeapon) exitWith { - //diag_log format["sav3(%1): cfg_staticWeaponSaving_on = %2", _obj, cfg_staticWeaponSaving_on]; (cfg_staticWeaponSaving_on) }; @@ -66,11 +62,9 @@ o_isSaveable = { _locked = _obj getVariable ["objectLocked", false]; if ([_obj] call sh_isBox) exitWith { - //diag_log format["sav4(%1): cfg_boxSaving_on = %2, _locked = %3", _obj, cfg_boxSaving_on, _locked]; (cfg_boxSaving_on && {_locked}) }; - //diag_log format["sav5(%1): cfg_boxSaving_on = %2, _locked = %3",_obj, cfg_boxSaving_on, _locked]; (cfg_boxSaving_on && {_locked}) }; @@ -165,12 +159,6 @@ o_restoreObject = {_this spawn { [_obj, _variables] call sh_restoreVariables; - - if (not([_obj] call o_isSaveable)) exitWith { - diag_log format["%1(%2) has been deleted, it is not saveable", _object_key, _class]; - deleteVehicle _obj; - }; - //for backwards compatibility, if the object does not have the "objectLocked" variable, then lock it def(_objectLocked); _objectLocked = _obj getVariable "objectLocked"; @@ -178,6 +166,13 @@ o_restoreObject = {_this spawn { _obj setVariable ["objectLocked", true, true]; }; + + if (not([_obj] call o_isSaveable)) exitWith { + diag_log format["%1(%2) has been deleted, it is not saveable", _object_key, _class]; + deleteVehicle _obj; + }; + + _obj setPosWorld ATLtoASL _pos; if (isARRAY(_dir)) then { From 57f78a8152341944f0519d4548ef92faa3e1e220 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 2 Nov 2014 17:48:01 -0800 Subject: [PATCH 091/544] Flush player stats on disconnect Dont want to keep the data in memory for no reason --- persistence/players/sFunctions.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 59e0400f3..c7c33fdfb 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -349,6 +349,7 @@ p_disconnectSave = { [_request,_player,_uid,_name] call p_addPlayerSave; _request call stats_set; + [_scope] call stats_flush; }; From 83492aed240928bc2b0affeec62cb9d469d4d5d2 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 4 Nov 2014 21:46:21 -0800 Subject: [PATCH 092/544] reset abandoned hours when player enters vehicle --- persistence/world/vFunctions.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 5a6317659..d1d252a93 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -534,6 +534,7 @@ v_GetIn_handler = { //diag_log format["%1 entered vehicle by %2", _obj, _player]; _obj setVariable ["vehicle_abandoned_by", nil]; _obj setVariable ["vehicle_abandoned_time", nil]; + _obj setVariable ["vehicle_abandoned_hours", nil]; [_obj] call v_trackVehicle; }; @@ -556,6 +557,8 @@ v_GetOut_handler = { //diag_log format["%1 left abandoned by %2", _obj, _player]; _obj setVariable ["vehicle_abandoned_by", _uid]; _obj setVariable ["vehicle_abandoned_time", diag_tickTime]; + _obj setVariable ["vehicle_abandoned_hours", nil]; //start counting the hours form 0 again + }; }; From f37bee6b2e9472c35e454ef11c23a1c2b052b096 Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 5 Nov 2014 19:44:14 -0800 Subject: [PATCH 093/544] fix defect with warchest money not saving --- persistence/world/oFunctions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index c06479334..b9516df62 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -549,8 +549,8 @@ o_saveLoop = { sleep A3W_object_saveInterval; if (not(isBOOLEAN(o_saveLoopActive) && {!o_saveLoopActive})) then { diag_log format["saving all objects"]; - [_scope] call o_saveInfo; [_scope] call o_saveAllObjects; + [_scope] call o_saveInfo; }; }; }; From 30719e73e2085c95436a56f75fe8ceacfdf50c0a Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 7 Nov 2014 12:29:01 -0800 Subject: [PATCH 094/544] add extra logging during disconnect --- persistence/players/sFunctions.sqf | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index c7c33fdfb..37885a7bd 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -148,7 +148,7 @@ s_messageLoop = { p_addPlayerSave = { - //diag_log format["%1 call p_addPlayerSave", _this]; + diag_log format["%1 call p_addPlayerSave", _this]; ARGVX3(0,_request,[]); ARGVX3(1,_player,objNull); ARGVX3(2,_uid,""); @@ -156,9 +156,8 @@ p_addPlayerSave = { init(_alive, alive _player); - //diag_log format["Saving stats for %1, alive = %2", _player, _alive]; + diag_log format["Saving stats for %1, alive = %2", _player, _alive]; - //alive player && //FIXME: need to add this check back def(_initComplete); _initComplete = _player getVariable ["initComplete", false]; //diag_log format["_initComplete = %1", _initComplete]; @@ -189,7 +188,7 @@ p_addPlayerSave = { ]; if (_reset_save) exitWith { - //diag_log format["%1 disconnected while dead, or unconcious, or from resspawn dialog",_player]; + diag_log format["Resetting stats for %1(%2), unconscious = %3, respawning = %4",_name,_uid,_FAR_isUnconscious, _respawnDialogActive]; _request pushBack ["PlayerInfo", (_info call sock_hash)]; _request pushBack ["PlayerSave",nil]; true @@ -347,7 +346,10 @@ p_disconnectSave = { init(_scope,_uid call PDB_playerFileName); init(_request,[_scope]); - [_request,_player,_uid,_name] call p_addPlayerSave; + if (isNil{[_request,_player,_uid,_name] call p_addPlayerSave}) exitWith { + diag_log format["WARNING: No stats saved for %1(%2) on disconnect", _name, _uid]; + }; + _request call stats_set; [_scope] call stats_flush; }; From 08cac15e068774c3d362ee029744daa5a86e29be Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 7 Nov 2014 13:48:03 -0800 Subject: [PATCH 095/544] duh, forgot to set direction --- persistence/players/sFunctions.sqf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 37885a7bd..a82e0e277 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -148,7 +148,7 @@ s_messageLoop = { p_addPlayerSave = { - diag_log format["%1 call p_addPlayerSave", _this]; + //diag_log format["%1 call p_addPlayerSave", _this]; ARGVX3(0,_request,[]); ARGVX3(1,_player,objNull); ARGVX3(2,_uid,""); @@ -156,7 +156,7 @@ p_addPlayerSave = { init(_alive, alive _player); - diag_log format["Saving stats for %1, alive = %2", _player, _alive]; + diag_log format["p_addPlayerSave: Saving stats for %1(%2)", _name, _uid]; def(_initComplete); _initComplete = _player getVariable ["initComplete", false]; @@ -188,7 +188,7 @@ p_addPlayerSave = { ]; if (_reset_save) exitWith { - diag_log format["Resetting stats for %1(%2), unconscious = %3, respawning = %4",_name,_uid,_FAR_isUnconscious, _respawnDialogActive]; + diag_log format["Resetting stats for %1(%2), unconscious = %3, respawning = %4, alive = %5",_name,_uid,_FAR_isUnconscious, _respawnDialogActive, _alive]; _request pushBack ["PlayerInfo", (_info call sock_hash)]; _request pushBack ["PlayerSave",nil]; true @@ -221,6 +221,8 @@ p_addPlayerSave = { }; _data pushBack ["Position", _pos]; + _data pushBack ["Direction", direction _player]; + //only save animation, and current weapon if the player is not inside a vehicle if (vehicle _player == _player) then { From b2f0e080e2f31e03a83381a2b76305c9e564683c Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 7 Nov 2014 16:13:53 -0800 Subject: [PATCH 096/544] Extra gravity when jumping --- addons/JumpMF/detect_key_input.sqf | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/JumpMF/detect_key_input.sqf b/addons/JumpMF/detect_key_input.sqf index 4e33c29d7..dccebf915 100644 --- a/addons/JumpMF/detect_key_input.sqf +++ b/addons/JumpMF/detect_key_input.sqf @@ -33,14 +33,21 @@ if (_pressedKey in actionKeys "GetOver") then [player, "AovrPercMrunSrasWrflDf"] call switchMoveGlobal; + waitUntil { player setFatigue (_fatigue + 0.05 + (_load / 5000)); + private["_zComponent"]; + _zComponent = (velocity player) select 2; + if (((getPosATL player) select 2) > 0 && _zComponent > 0) then { + _zComponent = _zComponent * 0.5; + }; + player setVelocity [ (_prevVel select 0) * HORDE_JUMPMF_SLOWING_MULTIPLIER, (_prevVel select 1) * HORDE_JUMPMF_SLOWING_MULTIPLIER, - (velocity player) select 2 + _zComponent ]; !(["AovrPercMrun", animationState player] call fn_startsWith) }; From 580bbb94580d778f8f70a52a85e9737f130c1a77 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 7 Nov 2014 22:50:00 -0800 Subject: [PATCH 097/544] Allow for more granular stats configuration This should help for hosting multiple servers off the same database. Admin would set the players prefix to be shared by multiple servers, but would put different prefix for other stuff. Also fix the hacker log so that it actually appends entries instead of overwriting the previous one. --- persistence/fn_inidb_custom.sqf | 13 +++++++++++++ persistence/players/sFunctions.sqf | 1 + persistence/players/s_setupPlayerDB.sqf | 4 +++- server/antihack/adminMenuLog.sqf | 2 +- server/antihack/flagHandler.sqf | 14 +++++++++----- server/default_config.sqf | 3 +++ 6 files changed, 30 insertions(+), 7 deletions(-) diff --git a/persistence/fn_inidb_custom.sqf b/persistence/fn_inidb_custom.sqf index 546b0e213..64573f2f8 100644 --- a/persistence/fn_inidb_custom.sqf +++ b/persistence/fn_inidb_custom.sqf @@ -22,13 +22,26 @@ _savingMethod = ["A3W_savingMethod", 1] call getPublicVar; PDB_ServerID = if (isNil "PDB_ServerID") then {"A3W_"} else {PDB_ServerID}; PDB_PlayerFileID = if (isNil "PDB_PlayerFileID") then {PDB_ServerID} else {PDB_PlayerFileID}; PDB_ObjectFileID = if (isNil "PDB_ObjectFileID") then {PDB_ServerID} else {PDB_ObjectFileID}; +PDB_MessagesFileID = if (isNil "PDB_MessagesFileID") then {PDB_ServerID} else {PDB_MessagesFileID}; +PDB_AdminLogFileID = if (isNil "PDB_AdminLogFileID") then {PDB_ServerID} else {PDB_AdminLogFileID}; +PDB_HackerLogFileID = if (isNil "PDB_HackerLogFileID") then {PDB_ServerID} else {PDB_HackerLogFileID}; PDB_playerFileName = compileFinal ("format ['%1%2', '" + PDB_PlayerFileID + "', _this]"); PDB_objectFileName = compileFinal ("format ['%1%2', '" + PDB_ObjectFileID + "', _this]"); +PDB_messagesFileName = compileFinal ("format ['%1%2', '" + PDB_MessagesFileID + "', _this]"); +PDB_adminLogFileName = compileFinal ("format ['%1%2', '" + PDB_AdminLogFileID + "', _this]"); +PDB_hackerLogFileName = compileFinal ("format ['%1%2', '" + PDB_HackerLogFileID + "', _this]"); + +diag_log format["[INFO] config: PDB_PlayerFileID = %1", PDB_PlayerFileID]; +diag_log format["[INFO] config: PDB_ObjectFileID = %1", PDB_ObjectFileID]; +diag_log format["[INFO] config: PDB_MessagesFileID = %1", PDB_MessagesFileID]; +diag_log format["[INFO] config: PDB_AdminLogFileID = %1", PDB_AdminLogFileID]; +diag_log format["[INFO] config: PDB_HackerLogFileID = %1", PDB_HackerLogFileID]; PDB_databaseNameCompiler = PDB_objectFileName; + call compile preProcessFileLineNumbers "persistence\sock\inidb_adapter.sqf"; publicVariable "PDB_PlayerFileID"; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index a82e0e277..d473bb3be 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -132,6 +132,7 @@ s_processMessages = { s_messageLoop = { + diag_log format["%1 call s_messageLoop", _this]; ARGVX3(0,_scope,""); //cleanup the message queue diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index 20fd728aa..14795d787 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -22,7 +22,9 @@ fn_deletePlayerSave = { }; -[format["%1Messages", PDB_ServerID]] spawn s_messageLoop; +def(_mScope); +_mScope = "Messages" call PDB_messagesFileName; +[_mScope] spawn s_messageLoop; [] spawn p_saveLoop; diag_log "Loading s_setupPlayerDB complete"; diff --git a/server/antihack/adminMenuLog.sqf b/server/antihack/adminMenuLog.sqf index 0b9bf6a40..ee54a7724 100644 --- a/server/antihack/adminMenuLog.sqf +++ b/server/antihack/adminMenuLog.sqf @@ -23,5 +23,5 @@ if (_sentChecksum == _flagChecksum) then { ["value",_value] ]; - ["AdminLog2" call PDB_objectFileName, _uid + ".records", (_record call sock_hash)] call stats_push; + ["AdminLog2" call PDB_adminLogFileName, _uid + ".records", (_record call sock_hash)] call stats_push; }; diff --git a/server/antihack/flagHandler.sqf b/server/antihack/flagHandler.sqf index 3207b0c81..f5aea1630 100644 --- a/server/antihack/flagHandler.sqf +++ b/server/antihack/flagHandler.sqf @@ -29,10 +29,14 @@ if (typeName _this == "ARRAY" && {count _this > 4}) then [[format ["[ANTI-HACK] %1 is using cheating scripts. (%2)", _playerName, _hackType], _playerID, _flagChecksum], "A3W_fnc_chatBroadcast", true, false] call A3W_fnc_MP; diag_log format ["ANTI-HACK: %1 (%2) was detected for [%3] with the value [%4]", _playerName, _playerID, _hackType, _hackValue]; - // Save detection infos in iniDB file for easy retrieval - if (["A3W_savingMethod", 1] call getPublicVar == 2) then - { - ["Hackers" call PDB_objectFileName, "Hackers", _playerID, [_playerName, _hackType, _hackValue]] call iniDB_write; - }; + private["_record"]; + _record = [ + ["uid",_playerID], + ["name",_playerName], + ["hackType",_hackType], + ["hackValue",_hackValue] + ]; + ["Hackers2" call PDB_hackerLogFileName, _playerID + ".records", (_record call sock_hash)] call stats_push; + }; }; diff --git a/server/default_config.sqf b/server/default_config.sqf index 08ef441ab..a9a48b77d 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -48,6 +48,9 @@ A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicl A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) PDB_PlayerFileID = "A3W_"; // Player savefile prefix (change this in case you run multiple servers from the same folder) PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in case you run multiple servers from the same folder) +PDB_MessagesFileID = "A3W_"; // Messages savefile prefix (change this in case you run multiple servers from the same folder) +PDB_AdminLogFileID = "A3W_"; // Admin log savefile prefix (change this in case you run multiple servers from the same folder) +PDB_HackerLogFileID = "A3W_"; // Hacker log savefile prefix (change this in case you run multiple servers from the same folder) A3W_vehicle_saveInterval = 300; // Number of seconds between vehicle saves A3W_object_saveInterval = 300; // Number of seconds between object saves From b7931cdd7bcabaf338cf88a11fe18d4060cbe44b Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 8 Nov 2014 15:53:00 -0800 Subject: [PATCH 098/544] Make health, thirst, and hunger times configurable --- client/functions/initSurvival.sqf | 10 ++++------ persistence/lib/normalize_config.sqf | 15 +++++++++++++++ server/default_config.sqf | 4 ++++ 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/client/functions/initSurvival.sqf b/client/functions/initSurvival.sqf index d724051d0..6598bc573 100644 --- a/client/functions/initSurvival.sqf +++ b/client/functions/initSurvival.sqf @@ -8,15 +8,13 @@ // @file Args: #define TIME_DELTA 1 //seconds between each "check" -#define HEALTH_TIME (60*5) //seconds till death -#define HUNGER_TIME (60*60) //seconds till starving -#define THIRST_TIME (60*50) //seconds till dehydrated -#define HEALTH_DELTA TIME_DELTA*(100/HEALTH_TIME)/100 -#define HUNGER_DELTA TIME_DELTA*(100/HUNGER_TIME) -#define THIRST_DELTA TIME_DELTA*(100/THIRST_TIME) +#define HEALTH_DELTA TIME_DELTA*(100/A3W_healthTime)/100 +#define HUNGER_DELTA TIME_DELTA*(100/A3W_hungerTime) +#define THIRST_DELTA TIME_DELTA*(100/A3W_thirstTime) #define STARVATION " R.I.P.

You have died from:
starvation

You need to eat to survive here!
" #define DEHYDRATION " R.I.P.

You have died from:
dehydration

You need to drink to survive here!
" + private["_warnf1","_warnf2","_warnf3","_warnf4","_warnd1","_warnd2","_warnd3","_warnd4"]; _warnf1 = true; diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index a4d8feae8..4d6eeca9e 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -24,6 +24,15 @@ A3W_vehicle_saveInterval = OR_POSITIVE(A3W_vehicle_saveInterval,60); A3W_locked_vehicles_list = OR_ARRAY(A3W_locked_vehicles_list,[]); +A3W_healthTime = OR_POSITIVE(A3W_healthTime,60*5); +A3W_hungerTime = OR_POSITIVE(A3W_hungerTime,60*60); +A3W_thirstTime = OR_POSITIVE(A3W_thirstTime,60*50); +publicVariable "A3W_healthTime"; +publicVariable "A3W_hungerTime"; +publicVariable "A3W_thirstTime"; + + + diag_log format["[INFO] config: A3W_purchasedVehicleSaving = %1", cfg_purchasedVehicleSaving_on]; diag_log format["[INFO] config: A3W_missionVehicleSaving = %1", cfg_missionVehicleSaving_on]; diag_log format["[INFO] config: A3W_townVehicleSaving = %1", cfg_townVehicleSaving_on]; @@ -44,3 +53,9 @@ diag_log format["[INFO] config: A3W_vehicleLifetime = %1", A3W_vehicleLifetime]; diag_log ("[INFO] config: A3W_locked_vehicles_list = " + str(A3W_locked_vehicles_list)); diag_log ("[INFO] config: A3W_saveable_vehicles_list = " + str(A3W_saveable_vehicles_list)); + +diag_log format["[INFO] config: A3W_healthTime = %1", A3W_healthTime]; +diag_log format["[INFO] config: A3W_hungerTime = %1", A3W_hungerTime]; +diag_log format["[INFO] config: A3W_thirstTime = %1", A3W_thirstTime]; + + diff --git a/server/default_config.sqf b/server/default_config.sqf index a9a48b77d..67f9012cb 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -30,6 +30,10 @@ A3W_startingMoney = 100; // Amount of money that players start with A3W_unlimitedStamina = 1; // Allow unlimited sprinting, jumping, etc. (0 = no, 1 = yes) - this also removes energy drinks from the mission A3W_bleedingTime = 60; // Time in seconds for which to allow revive after a critical injury (minimum 10 seconds) +A3W_healthTime = 60*5; //seconds till death +A3W_hungerTime = 60*60; //seconds till starving +A3W_thirstTime = 60*50; //seconds till dehydrated + // Persistence settings A3W_playerSaving = 1; // Save player data like position, health, inventory, etc. (0 = no, 1 = yes) A3W_moneySaving = 1; // If playerSaving = 1, save player money amount (0 = no, 1 = yes) From 55ceac61325ee735837aa0de6982db6c476b7b6a Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 8 Nov 2014 22:46:40 -0800 Subject: [PATCH 099/544] Save/Restore full player scoreboard in stats --- globalCompile.sqf | 1 + persistence/players/pFunctions.sqf | 31 +++++++++++++++++++++++- persistence/players/sFunctions.sqf | 38 ++++++++++++++++++++++++++++++ server/functions/fn_getScore.sqf | 33 +++++++++++++++++++------- server/functions/fn_setScore.sqf | 20 ++++++++++++++++ 5 files changed, 113 insertions(+), 10 deletions(-) create mode 100644 server/functions/fn_setScore.sqf diff --git a/globalCompile.sqf b/globalCompile.sqf index 95df44799..1851e1114 100644 --- a/globalCompile.sqf +++ b/globalCompile.sqf @@ -88,6 +88,7 @@ fn_forceAddItem = [_clientFunc, "fn_forceAddItem.sqf"] call mf_compile; fn_getFromPairs = [_serverFunc, "fn_getFromPairs.sqf"] call mf_compile; fn_getPos3D = [_serverFunc, "fn_getPos3D.sqf"] call mf_compile; fn_getScore = [_serverFunc, "fn_getScore.sqf"] call mf_compile; +fn_setScore = [_serverFunc, "fn_setScore.sqf"] call mf_compile; fn_getTeamScore = [_serverFunc, "fn_getTeamScore.sqf"] call mf_compile; fn_numbersText = [_serverFunc, "fn_numbersText.sqf"] call mf_compile; fn_numToStr = [_serverFunc, "fn_numToStr.sqf"] call mf_compile; diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index c3f8460be..6d3483996 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -305,6 +305,30 @@ p_restoreInfo = { _data call fn_applyPlayerInfo; }; +p_restoreScore = { + ARGVX2(0,_hash); + if (!isCODE(_hash)) exitWith {}; + diag_log format["%1 call p_restoreScore;",_this]; + def(_data); + _data = call _hash; + + def(_key); + def(_value); + + {if (true) then { + if (!isARRAY(_x)) exitWith {}; + + _key = _x select 0; + _value = _x select 1; + if (!isSCALAR(_value)) exitWith {}; + + diag_log format["Restoring %1 = %2", _key, _value]; + + [player, _key, _value] call fn_setScore; + };} forEach _data; + +}; + p_preloadEnabled = { (profileNamespace getVariable ["A3W_preloadSpawn", true]) }; @@ -378,9 +402,11 @@ fn_requestPlayerData = {[] spawn { playerData_resetPos = nil; init(_dataKey, "PlayerSave"); init(_infoKey, "PlayerInfo"); + init(_scoreKey, "PlayerScore"); + def(_pData); - _pData = [_scope, [_dataKey, nil], [_infoKey, nil]] call stats_get; + _pData = [_scope, [_dataKey, nil], [_infoKey, nil],[_scoreKey, nil]] call stats_get; if (not(isARRAY(_pData))) exitWith { //player data did not load, force him back to lobby endMission "LOSER"; @@ -396,6 +422,9 @@ fn_requestPlayerData = {[] spawn { case _infoKey: { [xGet(_x,1)] call p_restoreInfo; }; + case _scoreKey: { + [xGet(_x,1)] call p_restoreScore; + }; }; } forEach _pData; };}; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index d473bb3be..ad42de379 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -148,6 +148,35 @@ s_messageLoop = { }; +p_getScoreInfo = { + diag_log format["%1 call p_getScoreInfo", _this]; + ARGVX3(0,_uid,""); + + def(_playerKills); + def(_aiKills); + def(_deathsCount); + def(_reviveCount); + def(_captureCount); + + _playerKills = [_uid, "playerKills"] call fn_getScore; + _aiKills = [_uid, "aiKills"] call fn_getScore; + _deathsCount = [_uid, "deathCount"] call fn_getScore; + _reviveCount = [_uid, "reviveCount"] call fn_getScore; + _captureCount = [_uid, "captureCount"] call fn_getScore; + + def(_scoreInfo); + + _scoreInfo = [ + ["playerKills", _playerKills], + ["aiKills", _aiKills], + ["deathCount", _deathsCount], + ["reviveCount", _reviveCount], + ["captureCount", _captureCount] + ] call sock_hash; + + (_scoreInfo) +}; + p_addPlayerSave = { //diag_log format["%1 call p_addPlayerSave", _this]; ARGVX3(0,_request,[]); @@ -188,6 +217,15 @@ p_addPlayerSave = { ["BankMoney", _player getVariable ["bmoney", 0]] ]; + def(_scoreInfo); + _scoreInfo = [_uid] call p_getScoreInfo; + + diag_log format["_scoreInfo = %1", OR(_scoreInfo,nil)]; + + if (isARRAY(_scoreInfo)) then { + _request pushBack ["PlayerScore",_scoreInfo]; + }; + if (_reset_save) exitWith { diag_log format["Resetting stats for %1(%2), unconscious = %3, respawning = %4, alive = %5",_name,_uid,_FAR_isUnconscious, _respawnDialogActive, _alive]; _request pushBack ["PlayerInfo", (_info call sock_hash)]; diff --git a/server/functions/fn_getScore.sqf b/server/functions/fn_getScore.sqf index e1da47556..74c76cbbc 100644 --- a/server/functions/fn_getScore.sqf +++ b/server/functions/fn_getScore.sqf @@ -2,18 +2,33 @@ // * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * // ****************************************************************************************** // @file Name: fn_getScore.sqf -// @file Author: AgentRev +// @file Author: AgentRev, micovery -private ["_player", "_column", "_val", "_var"]; +private ["_arg1", "_column", "_val", "_var", "_uid"]; -_player = _this select 0; +_arg1 = _this select 0; _column = _this select 1; -_val = 0; + _val = 0; + +if (isNil "_arg1") exitWith {_val}; + +private["_type"]; +_type = typeName _arg1; + +//arg1 could be either UID, or player object +if (_type == "STRING") then { + _uid = _arg1; +} +else { if (_type == "OBJECT" && {isPlayer _arg1}) then { + _uid = getPlayerUID _arg1; +};}; + +//exit if not a vlaid UID +if (isNil "_uid" || {typeName _uid != "STRING" || {_uid == ""}}) exitWith {_val}; + + +_var = format ["A3W_playerScore_%1_%2", _column, _uid]; +_val = missionNamespace getVariable [_var, 0]; -if (!isNil "_player" && {isPlayer _player}) then -{ - _var = format ["A3W_playerScore_%1_%2", _column, getPlayerUID _player]; - _val = missionNamespace getVariable [_var, 0]; -}; _val diff --git a/server/functions/fn_setScore.sqf b/server/functions/fn_setScore.sqf new file mode 100644 index 000000000..33a6e9b4a --- /dev/null +++ b/server/functions/fn_setScore.sqf @@ -0,0 +1,20 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Name: fn_setScore.sqf +// @file Author: micovery + +private ["_player", "_column", "_value", "_var"]; + +_player = _this select 0; +_column = _this select 1; +_value = _this select 2; + +if (isNil "_player" || {not(isPlayer _player)}) exitWith {}; + +_var = format ["A3W_playerScore_%1_%2", _column, getPlayerUID _player]; +missionNamespace setVariable [_var, _value]; +publicVariable _var; + + + From a2882eee5889f92890b17c0ab08b6ca67b2e789d Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 9 Nov 2014 00:18:03 -0800 Subject: [PATCH 100/544] Save active players list in database Save the current list of players in the database, and also save their basic information, as well as their score. This should make it really simple to display a pseudo-live scoreboard externally on a website. There is a new config variable: A3W_playersList_saveInterval which controls how often the player's list is saved to the database. By default it's every 2 minutes. --- persistence/fn_inidb_custom.sqf | 9 ++ persistence/lib/normalize_config.sqf | 6 ++ persistence/players/sFunctions.sqf | 136 ++++++++++++++++++++---- persistence/players/s_setupPlayerDB.sqf | 7 ++ server/default_config.sqf | 11 +- 5 files changed, 145 insertions(+), 24 deletions(-) diff --git a/persistence/fn_inidb_custom.sqf b/persistence/fn_inidb_custom.sqf index 64573f2f8..a0055065a 100644 --- a/persistence/fn_inidb_custom.sqf +++ b/persistence/fn_inidb_custom.sqf @@ -25,6 +25,8 @@ PDB_ObjectFileID = if (isNil "PDB_ObjectFileID") then {PDB_ServerID} else {PDB_O PDB_MessagesFileID = if (isNil "PDB_MessagesFileID") then {PDB_ServerID} else {PDB_MessagesFileID}; PDB_AdminLogFileID = if (isNil "PDB_AdminLogFileID") then {PDB_ServerID} else {PDB_AdminLogFileID}; PDB_HackerLogFileID = if (isNil "PDB_HackerLogFileID") then {PDB_ServerID} else {PDB_HackerLogFileID}; +PDB_PlayersListFileID = if (isNil "PDB_PlayersListFileID") then {PDB_ServerID} else {PDB_PlayersListFileID}; + PDB_playerFileName = compileFinal ("format ['%1%2', '" + PDB_PlayerFileID + "', _this]"); @@ -32,12 +34,19 @@ PDB_objectFileName = compileFinal ("format ['%1%2', '" + PDB_ObjectFileID + "', PDB_messagesFileName = compileFinal ("format ['%1%2', '" + PDB_MessagesFileID + "', _this]"); PDB_adminLogFileName = compileFinal ("format ['%1%2', '" + PDB_AdminLogFileID + "', _this]"); PDB_hackerLogFileName = compileFinal ("format ['%1%2', '" + PDB_HackerLogFileID + "', _this]"); +PDB_playersListFileName = compileFinal ("format ['%1%2', '" + PDB_PlayersListFileID + "', _this]"); + diag_log format["[INFO] config: PDB_PlayerFileID = %1", PDB_PlayerFileID]; diag_log format["[INFO] config: PDB_ObjectFileID = %1", PDB_ObjectFileID]; diag_log format["[INFO] config: PDB_MessagesFileID = %1", PDB_MessagesFileID]; diag_log format["[INFO] config: PDB_AdminLogFileID = %1", PDB_AdminLogFileID]; diag_log format["[INFO] config: PDB_HackerLogFileID = %1", PDB_HackerLogFileID]; +diag_log format["[INFO] config: PDB_PlayersListFileID = %1", PDB_PlayersListFileID]; + + + + PDB_databaseNameCompiler = PDB_objectFileName; diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index 4d6eeca9e..f1bc31a46 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -17,6 +17,9 @@ cfg_baseSaving_on = ON_SCALAR(A3W_baseSaving); A3W_saveable_vehicles_list = OR_ARRAY(A3W_saveable_vehicles_list,[]); A3W_objectLifetime = OR_SCALAR(A3W_objectLifetime,0); A3W_object_saveInterval = OR_POSITIVE(A3W_object_saveInterval,60); +A3W_player_saveInterval = OR_POSITIVE(A3W_player_saveInterval,60); +A3W_playersList_saveInterval = OR_POSITIVE(A3W_playersList_saveInterval,60); + A3W_vehicleLifetime = OR_SCALAR(A3W_vehicleLifetime,0); A3W_vehicleMaxUnusedTime = OR_SCALAR(A3W_vehicleMaxUnusedTime,0); @@ -46,6 +49,9 @@ diag_log format["[INFO] config: A3W_baseSaving = %1", cfg_baseSaving_on]; diag_log format["[INFO] config: A3W_objectLifetime = %1", A3W_objectLifetime]; diag_log format["[INFO] config: A3W_object_saveInterval = %1", A3W_object_saveInterval]; +diag_log format["[INFO] config: A3W_player_saveInterval = %1", A3W_player_saveInterval]; +diag_log format["[INFO] config: A3W_playersList_saveInterval = %1", A3W_playersList_saveInterval]; + diag_log format["[INFO] config: A3W_vehicle_saveInterval = %1", A3W_vehicle_saveInterval]; diag_log format["[INFO] config: A3W_vehicleMaxUnusedTime = %1", A3W_vehicleMaxUnusedTime]; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index ad42de379..bba15c835 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -17,6 +17,7 @@ s_processRestartMessage = { //halt all the save loops p_saveLoopActive = false; + pl_saveLoopActive = false; v_saveLoopActive = false; o_saveLoopActive = false; @@ -24,6 +25,11 @@ s_processRestartMessage = { //save all player stats call p_saveAllPlayers; + diag_log format["Saving active players list"]; + //save all player stats + init(_plScope, "PlayersList" call PDB_playersListFileName); + [_plScope] call pl_savePlayersList; + diag_log format["Saving all vehicles on the map"]; //save all vehilce stats init(_vScope, "Vehicles" call PDB_objectFileName); @@ -57,6 +63,7 @@ s_processRestartMessage = { v_saveLoopActive = true; o_saveLoopActive = true; p_saveLoopActive = true; + pl_saveLoopActive = true; }; true @@ -149,7 +156,7 @@ s_messageLoop = { p_getScoreInfo = { - diag_log format["%1 call p_getScoreInfo", _this]; + //diag_log format["%1 call p_getScoreInfo", _this]; ARGVX3(0,_uid,""); def(_playerKills); @@ -177,6 +184,23 @@ p_getScoreInfo = { (_scoreInfo) }; +p_getPlayerInfo = { + //diag_log format["%1 call p_getPlayerInfo", _this]; + ARGVX3(0,_player,objNull); + + def(_info); + _info = + [ + ["UID", _uid], + ["Name", _name], + ["LastGroupSide", str side group _player], + ["LastPlayerSide", str (side _player)], + ["BankMoney", _player getVariable ["bmoney", 0]] + ] call sock_hash; + + (_info) +}; + p_addPlayerSave = { //diag_log format["%1 call p_addPlayerSave", _this]; ARGVX3(0,_request,[]); @@ -193,7 +217,6 @@ p_addPlayerSave = { //diag_log format["_initComplete = %1", _initComplete]; if (not(_initComplete)) exitWith {}; - def(_respawnDialogActive); _respawnDialogActive = _player getVariable ["respawnDialogActive", false]; //diag_log format["_respawnDialogActive = %1", _respawnDialogActive]; @@ -207,28 +230,23 @@ p_addPlayerSave = { //diag_log format["_reset_save = %1", _reset_save]; - def(_info); - _info = - [ - ["UID", _uid], - ["Name", _name], - ["LastGroupSide", str side group player], - ["LastPlayerSide", str playerSide], - ["BankMoney", _player getVariable ["bmoney", 0]] - ]; + def(_playerInfo); + _playerInfo = [_player] call p_getPlayerInfo; + + if (isARRAY(_playerInfo)) then { + _request pushBack ["PlayerInfo", _playerInfo]; + }; + def(_scoreInfo); _scoreInfo = [_uid] call p_getScoreInfo; - diag_log format["_scoreInfo = %1", OR(_scoreInfo,nil)]; - if (isARRAY(_scoreInfo)) then { _request pushBack ["PlayerScore",_scoreInfo]; }; if (_reset_save) exitWith { diag_log format["Resetting stats for %1(%2), unconscious = %3, respawning = %4, alive = %5",_name,_uid,_FAR_isUnconscious, _respawnDialogActive, _alive]; - _request pushBack ["PlayerInfo", (_info call sock_hash)]; _request pushBack ["PlayerSave",nil]; true }; @@ -371,7 +389,6 @@ p_addPlayerSave = { */ { _data pushBack _x } forEach _gear; - _request pushBack ["PlayerInfo", (_info call sock_hash)]; _request pushBack ["PlayerSave", (_data call sock_hash)]; true @@ -516,18 +533,15 @@ p_saveAllPlayers = { };} forEach (active_players_list); diag_log format["p_saveLoop: total of %1 players saved in %2 ticks", (_count), (diag_tickTime - _start_time)]; - - call p_ActivePlayersListCleanup; }; -p_saveLoop_interval = OR(A3W_player_saveInterval,60); -diag_log format["config: A3W_player_saveInterval = %1", p_saveLoop_interval]; + p_saveLoop = { while {true} do { - sleep p_saveLoop_interval; + sleep A3W_player_saveInterval; if (not(isBOOLEAN(p_saveLoopActive) && {!p_saveLoopActive})) then { diag_log format["saving all players"]; call p_saveAllPlayers; @@ -536,4 +550,86 @@ p_saveLoop = { }; + +pl_addPlayerListSave = { + ARGVX3(0,_request,[]); + ARGVX3(1,_player,objNull); + ARGVX3(2,_uid,""); + ARGVX3(3,_name,""); + + init(_pdata,[]); + + def(_playerInfo); + _playerInfo = [_player] call p_getPlayerInfo; + if (isARRAY(_playerInfo)) then { + _pdata pushBack ["PlayerInfo", _playerInfo]; + }; + + def(_scoreInfo); + _scoreInfo = [_uid] call p_getScoreInfo; + if (isARRAY(_scoreInfo)) then { + _pdata pushBack ["PlayerScore",_scoreInfo]; + }; + + if (count _pdata == 0) exitWith {}; + + _request pushBack [_uid, (_pdata call sock_hash)]; + + true +}; + +pl_savePlayersList = { + ARGVX3(0,_scope,""); + + init(_count,0); + init(_start_time, diag_tickTime); + + def(_request); + def(_scope); + def(_player); + def(_uid); + def(_name); + def(_request); + + _request = [_scope]; + + {if (true) then { + _player = _x; + if (isNil "_player" || {typeName _player != "OBJECT" || {isNull _player || {not(isPlayer _player)}}}) exitWith { + active_players_list set [_forEachIndex, objNull]; + }; + + _uid = getPlayerUID _player; + _name = name _player; + + if (!isNil{[_request, _player, _uid, _name] call pl_addPlayerListSave}) then { + _count = _count + 1; + }; + + };} forEach (active_players_list); + + [_scope] call stats_wipe; + + init(_save_start, diag_tickTime); + _request call stats_set; + diag_log format["pl_saveLoop: total of %1 entries saved (in player-list) in %2 ticks, save call took %3 ticks", (_count), (diag_tickTime - _start_time), (diag_tickTime - _save_start)]; + + [_scope] call stats_flush; + + call p_ActivePlayersListCleanup; +}; + + +pl_saveLoop = { + ARGVX3(0,_scope,""); + while {true} do { + sleep A3W_playersList_saveInterval; + if (not(isBOOLEAN(pl_saveLoopActive) && {!pl_saveLoopActive})) then { + diag_log format["saving player list"]; + [_scope] call pl_savePlayersList; + }; + }; +}; + + diag_log "sFunctions.sqf loading complete"; diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index 14795d787..0cef60ca6 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -25,6 +25,13 @@ fn_deletePlayerSave = { def(_mScope); _mScope = "Messages" call PDB_messagesFileName; [_mScope] spawn s_messageLoop; + + +def(_plScope); +_plScope = "PlayersList" call PDB_playersListFileName; +[_plScope] spawn pl_saveLoop; + + [] spawn p_saveLoop; diag_log "Loading s_setupPlayerDB complete"; diff --git a/server/default_config.sqf b/server/default_config.sqf index 67f9012cb..351e92944 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -53,12 +53,15 @@ A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which PDB_PlayerFileID = "A3W_"; // Player savefile prefix (change this in case you run multiple servers from the same folder) PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in case you run multiple servers from the same folder) PDB_MessagesFileID = "A3W_"; // Messages savefile prefix (change this in case you run multiple servers from the same folder) -PDB_AdminLogFileID = "A3W_"; // Admin log savefile prefix (change this in case you run multiple servers from the same folder) +PDB_AdminLogFileID = "A3W_"; // Admin log savefile prefix (change this in case you run multiple servers from the same folder) PDB_HackerLogFileID = "A3W_"; // Hacker log savefile prefix (change this in case you run multiple servers from the same folder) +PDB_PlayersListFileID = "A3W_"; // PlayerList savefile prefix (change this in case you run multiple servers from the same folder) -A3W_vehicle_saveInterval = 300; // Number of seconds between vehicle saves -A3W_object_saveInterval = 300; // Number of seconds between object saves -A3W_player_saveInterval = 300; // Number of seconds between player saves + +A3W_vehicle_saveInterval = 300; // Number of seconds between vehicle saves +A3W_object_saveInterval = 300; // Number of seconds between object saves +A3W_player_saveInterval = 300; // Number of seconds between player saves +A3W_playersList_saveInterval = 120; // Number of seconds between player list saves // List of classes for vehicles that are saveable // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved From 45c0b874d3b5031bc7c39d31b237f376d6ee0e5f Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 9 Nov 2014 01:01:39 -0800 Subject: [PATCH 101/544] Fix defect with player side becoming CIV when dead If the player disconnected while dead, his player side became CIV. Now when player disconnects while dead, his player side becomes same as his group side. Also fix issue with saving empty player's list. --- persistence/players/sFunctions.sqf | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index bba15c835..519c8f3a7 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -188,13 +188,19 @@ p_getPlayerInfo = { //diag_log format["%1 call p_getPlayerInfo", _this]; ARGVX3(0,_player,objNull); + def(_groupSide); + _groupSide = str side group _player; + + def(_playerSide); + _playerSide = if (alive _player) then {str (side _player)} else {_groupSide}; + def(_info); _info = [ ["UID", _uid], ["Name", _name], - ["LastGroupSide", str side group _player], - ["LastPlayerSide", str (side _player)], + ["LastGroupSide", OR(_groupSide,sideUnknown)], + ["LastPlayerSide", OR(_playerSide,sideUnknown)], ["BankMoney", _player getVariable ["bmoney", 0]] ] call sock_hash; @@ -489,7 +495,7 @@ p_ActivePlayersListCleanup = { }; init(_end_size,count(active_players_list)); init(_cleanup_end, diag_tickTime); - diag_log format["p_saveLoop: count(active_players_list) = %1, %2 nulls deleted in %3 ticks", count(active_players_list), (_start_size - _end_size), (_cleanup_end - _cleanup_start)]; + diag_log format["pl_saveLoop: count(active_players_list) = %1, %2 nulls deleted in %3 ticks", count(active_players_list), (_start_size - _end_size), (_cleanup_end - _cleanup_start)]; }; @@ -611,7 +617,10 @@ pl_savePlayersList = { [_scope] call stats_wipe; init(_save_start, diag_tickTime); - _request call stats_set; + if (count _request > 1) then { + //only send the save request if there is at least one player + _request call stats_set; + }; diag_log format["pl_saveLoop: total of %1 entries saved (in player-list) in %2 ticks, save call took %3 ticks", (_count), (diag_tickTime - _start_time), (diag_tickTime - _save_start)]; [_scope] call stats_flush; From 6effcbff6d2c89a9747be4a54438d04d908eaf81 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 9 Nov 2014 22:38:22 -0800 Subject: [PATCH 102/544] Initial commit with Gigatek's changes on top of micovery's fork --- addons/Explosives-To-Vehicle/EtV.sqf | 108 ++++++ addons/Explosives-To-Vehicle/init.sqf | 4 + addons/JTS_PM/Functions.sqf | 214 ++++++++++ addons/JTS_PM/Icons/Message.paa | Bin 0 -> 5060 bytes addons/JTS_PM/JTS_PM.sqf | 6 + addons/JTS_PM/PM_Compact.hpp | 366 ++++++++++++++++++ addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 143 ++++++- .../R3F_LOG/heliporteur/heliporter.sqf | 2 +- .../R3F_ARTY_AND_LOG/R3F_LOG/objet_init.sqf | 11 +- .../R3F_LOG/remorqueur/detacher.sqf | 2 +- .../R3F_LOG/remorqueur/remorquer_deplace.sqf | 2 +- .../surveiller_conditions_actions_menu.sqf | 93 ++++- .../surveiller_nouveaux_objets.sqf | 12 +- addons/scripts/DynamicWeatherEffects.sqf | 17 +- addons/scripts/fn_resupplytruck.sqf | 324 ++++++++++++++++ addons/scripts/healSelf.sqf | 35 ++ addons/scripts/lock.sqf | 18 + addons/scripts/lockPick.sqf | 51 +++ addons/scripts/sellVehicle.sqf | 128 ++++++ addons/scripts/servercredits.sqf | 71 ++++ addons/scripts/unlock.sqf | 17 + addons/scripts/vehicleResave.sqf | 52 +++ addons/scripts/vehicleSave.sqf | 52 +++ addons/scripts/weaponResave.sqf | 52 +++ addons/scripts/weaponSave.sqf | 52 +++ addons/scripts/zlt_fastrope.sqf | 202 ++++++++++ client/functions/playerActions.sqf | 13 + client/functions/spawnAction.sqf | 6 +- description.ext | 19 +- globalCompile.sqf | 1 + init.sqf | 4 + mapConfig/storeOwners.sqf | 8 +- mission.sqm | 295 +++++++++++--- persistence/world/vFunctions.sqf | 5 - server/default_config.sqf | 55 +-- server/functions/serverVars.sqf | 9 +- server/functions/setMissionSkill.sqf | 6 +- server/functions/spawnStoreObject.sqf | 13 +- .../createUnits/createRandomSoldier.sqf | 4 +- .../createUnits/createRandomSoldierC.sqf | 4 +- .../createUnits/customGroup.sqf | 180 +++++++-- .../createUnits/largeDivers.sqf | 48 ++- .../createUnits/smallDivers.sqf | 24 +- .../moneyMissions/mission_MoneyShipment.sqf | 6 +- .../moneyMissions/mission_SunkenTreasure.sqf | 4 +- server/missions/setupMissionArrays.sqf | 10 +- sounds/carlock.ogg | Bin 0 -> 22198 bytes storeConfig.sqf | 68 ++-- stringtable.xml | 2 +- 49 files changed, 2581 insertions(+), 237 deletions(-) create mode 100644 addons/Explosives-To-Vehicle/EtV.sqf create mode 100644 addons/Explosives-To-Vehicle/init.sqf create mode 100644 addons/JTS_PM/Functions.sqf create mode 100644 addons/JTS_PM/Icons/Message.paa create mode 100644 addons/JTS_PM/JTS_PM.sqf create mode 100644 addons/JTS_PM/PM_Compact.hpp create mode 100644 addons/scripts/fn_resupplytruck.sqf create mode 100644 addons/scripts/healSelf.sqf create mode 100644 addons/scripts/lock.sqf create mode 100644 addons/scripts/lockPick.sqf create mode 100644 addons/scripts/sellVehicle.sqf create mode 100644 addons/scripts/servercredits.sqf create mode 100644 addons/scripts/unlock.sqf create mode 100644 addons/scripts/vehicleResave.sqf create mode 100644 addons/scripts/vehicleSave.sqf create mode 100644 addons/scripts/weaponResave.sqf create mode 100644 addons/scripts/weaponSave.sqf create mode 100644 addons/scripts/zlt_fastrope.sqf create mode 100644 sounds/carlock.ogg diff --git a/addons/Explosives-To-Vehicle/EtV.sqf b/addons/Explosives-To-Vehicle/EtV.sqf new file mode 100644 index 000000000..c67916f10 --- /dev/null +++ b/addons/Explosives-To-Vehicle/EtV.sqf @@ -0,0 +1,108 @@ +/* + Stealthstick's "Explosive-To-Vehicle" Script + -Allows players to attach their explosive charges to any vehicle. +*/ + +EtV_ChargeCheck = +{ + _charge = _this select 0; + _unit = _this select 1; + _hasIt = _charge in (magazines _unit); + _nearVehs = nearestObjects [_unit,["Air","Ship","LandVehicle"],5]; + _return = (_hasIt && count _nearVehs > 0 && alive _unit); + _return +}; + +EtV_TouchOff = +{ + _array = _this select 3; + _unit = _array select 0; + _explosives = _unit getVariable ["charges",[]]; + { + if(alive _x) then + { + "HelicopterExploSmall" createVehicle (position _x); + deleteVehicle _x; + }; + } forEach _explosives; + _unit setVariable ["charges",[]]; +}; + +EtV_UnitCheck = +{ + private "_return"; + _unit = _this select 0; + _explosives = _unit getVariable ["charges",[]]; + if(count _explosives > 0) then + { + _return = true; + } + else + { + _return = false; + }; + + _return +}; + +EtV_AttachCharge = +{ + _array = _this select 3; + _charge = _array select 0; + _unit = _array select 1; + private "_class"; + + _unit removeMagazine _charge; + _unit playMove "AinvPercMstpSnonWnonDnon_Putdown_AmovPercMstpSnonWnonDnon"; + + switch _charge do + { + case "DemoCharge_Remote_Mag": + { + _class = "DemoCharge_Remote_Ammo"; + }; + }; + + _nearVehicle = (nearestObjects [_unit,["Air","Ship","LandVehicle"],5]) select 0; + _explosive = _class createVehicle [0,0,0]; + _explosive attachTo [_unit,[0,1,0],"Lefthand"]; + _random0 = random 180; + _random1 = random 180; + [_explosive,_random0,_random1] call BIS_fnc_SetPitchBank; + [_explosive,_nearVehicle,_unit,_random0,_random1] spawn + { + _explosive = _this select 0; + _nearVehicle = _this select 1; + _unit = _this select 2; + _random0 = _this select 3; + _random1 = _this select 4; + + sleep 1.5; + _explosive attachTo [_nearVehicle]; + [_explosive,_random0,_random1] call BIS_fnc_SetPitchBank; + _unit setVariable ["charges",(_unit getVariable ["charges",[]]) + [_explosive]]; + }; +}; + +EtV_ClosestExplosive = +{ + _unit = _this select 0; + _charges = _unit getVariable ["charges",[]]; + _newArray = []; + {_newArray = _newArray + [player distance _x];} forEach _charges; + _closest = _newArray call BIS_fnc_lowestNum; + _selection = _newArray find _closest; + _charge = _charges select _selection; + _charge +}; + +//[unit] spawn EtV_Actions; +EtV_Actions = +{ + private ["_unit"]; + _unit = _this select 0; + _unit addAction ["" +"Attach Explosive Charge", EtV_AttachCharge, ["DemoCharge_Remote_Mag",_unit], 1, true, true, "","['DemoCharge_Remote_Mag',_target] call EtV_ChargeCheck"]; + _unit addAction ["" +"Touch off bomb(s)", EtV_TouchOff, [_unit], 1, true, true, "","[_target] call EtV_UnitCheck"]; +}; +//======================= +EtVInitialized = true; \ No newline at end of file diff --git a/addons/Explosives-To-Vehicle/init.sqf b/addons/Explosives-To-Vehicle/init.sqf new file mode 100644 index 000000000..8f45085f6 --- /dev/null +++ b/addons/Explosives-To-Vehicle/init.sqf @@ -0,0 +1,4 @@ +waitUntil {time > 0}; +execVM "addons\Explosives-To-Vehicle\EtV.sqf"; +waitUntil {!isNil "EtVInitialized"}; +[player] call EtV_Actions; \ No newline at end of file diff --git a/addons/JTS_PM/Functions.sqf b/addons/JTS_PM/Functions.sqf new file mode 100644 index 000000000..414359b2c --- /dev/null +++ b/addons/JTS_PM/Functions.sqf @@ -0,0 +1,214 @@ +//ALL FUNCTIONS MADE BY JTS + +waitUntil {!isNull player}; // Do not remove that + + +// EDITABLE VARIABLES (BEGIN) + +JTS_MSG_STR = "Messenger"; // Text, which will be displayed in action menu +JTS_ALLOW_PM = 0; // if 0 - receiving of personal messages on mission start is allowed. If 1 - receiving of personal messages on mission start is prohibited +JTS_SIDES = 0; // if 0 - list for player will be filled with all players, no matter on which side they are. If 1 - list for player will be filled only with players on the same side +JTS_MSG_COLOR = "#980000"; // Color of the text in action menu. The colors you can find here: http://www.w3schools.com/html/html_colors.asp + +// EDITABLE VARIABLES (END) + +player setVariable ["JTS_PM_STAT",JTS_ALLOW_PM,true]; + +JTS_DLPM = 0; +JTS_SUBJECT = 0; +JTS_PM_ARRAY = []; + +if (JTS_SIDES > 0) then {JTS_ALLOWED_SIDES = {(side _x == side player)}} else {JTS_ALLOWED_SIDES = true}; + +JTS_FNC_PM = +{ + private "_Find"; + + JTS_PM_UNP = playAbleUnits; + JTS_DLPM = 1; + + lbClear 00002; + lbClear 00003; + lbClear 00005; + + ctrlEnable [00002, false]; + ctrlEnable [00003, false]; + ctrlEnable [00005, false]; + ctrlEnable [00008, false]; + ctrlEnable [00009, false]; + ctrlEnable [00010, false]; + ctrlEnable [00011, false]; + + for "_i" from 0 to (count JTS_PM_ARRAY) do + { + lbAdd [00002, (JTS_PM_ARRAY select _i) select 0]; + lbSetData [00002, (lbSize 00002) - 1, (JTS_PM_ARRAY select _i) select 1]; + }; + + _Find = 0; + { + if (!isNull _x) then + { + if (alive _x && isPlayer _x && JTS_ALLOWED_SIDES) then + { + + lbAdd [00003, name _x]; + lbSetValue [00003, (lbSize 00003) - 1, _Find]; + }; _Find = _Find + 1; + }; + } forEach JTS_PM_UNP; + + lbsetcursel [00002, (lbSize 00002)]; + lbsetcursel [00003, 0]; + + ctrlEnable [00002, true]; + ctrlEnable [00003, true]; + ctrlEnable [00005, true]; + ctrlEnable [00009, true]; + ctrlEnable [00010, true]; + ctrlEnable [00011, true]; + + ctrlsettext [00007, Format ["Inbox: %1", lbSize 00002]]; + + JTS_DLPM = 0; +}; + +JTS_FNC_SENT = +{ + _Title = _this select 0; + _PM = _this select 1; + + JTS_PM_ARRAY set [count JTS_PM_ARRAY, [_Title, _PM]]; + hint parsetext "

You've Got a Text Message!"; + + if (alive player && dialog && JTS_DLPM < 1) then + { + {[] spawn _x} foreach [JTS_FNC_PM,JTS_FNC_PM_ENABLED,JTS_FNC_STATUS] + } + + else + { + closedialog 0 + }; +}; + +JTS_FNC_SEND = +{ + private ["_Size","_Title","_Message","_PM","_Receiver","_Validating","_Verify"]; + + _Size = count (toArray (ctrltext 00006)); + _Title = ctrltext 00006; + _Message = ctrltext 00004; + _PM = Format ["From: %1\n\n%2", name player, ctrlText 00004]; + _Receiver = JTS_PM_UNP select (lbValue [00003, lbCursel 00003]); + _Verify = 0; + + if (_Size > 15 || lbSize 00003 < 1) then + { + ctrlsettext [00007, "Error sending PM"]; + {ctrlsettext [_x, ""]} foreach [00004, 00006]; + } + + else + { + if (!(_Receiver call JTS_FNC_VALID)) then + { + ctrlsettext [00007, "Player doesn't respond"]; + {ctrlsettext [_x, ""]} foreach [00004,00006]; + } + + else + { + if (count (toArray _Title) < 2) then + { + ctrlsettext [00007, "Title is too small"]; + } + + else + { + if (_Receiver getVariable "JTS_PM_STAT" > 0) then + { + ctrlsettext [00007, "Player does not receive PM's"]; + } + + else + { + _Validating = toArray _Title; + + for "_i" from 0 to count _Validating do + { + if (_Validating select _i == 32) then + { + _Verify = _Verify + 1 + } + }; + + if (_Verify == count _Validating) then + { + _Title = Format ["No subject [%1] [%2]", name player, JTS_SUBJECT]; + JTS_SUBJECT = JTS_SUBJECT + 1; + }; + + ctrlsettext [00007, Format ["PM sent to %1", name _Receiver]]; + [[_Title, _PM],"JTS_FNC_SENT",_Receiver,false] spawn BIS_fnc_MP; + {ctrlsettext [_x, ""]} foreach [00004, 00006]; + }; + }; + }; + }; [] spawn {JTS_DLPM = 1;ctrlEnable [00009, false];ctrlEnable [00011, false];sleep 3;ctrlEnable [00009, true];ctrlEnable [00011, true];JTS_DLPM = 0;if (alive player && dialog) then {{[] spawn _x} foreach [JTS_FNC_PM,JTS_FNC_PM_ENABLED,JTS_FNC_STATUS]}} +}; + +JTS_FNC_PM_ENABLED = +{ + {lbAdd [00005, _x]} foreach ["Enabled","Disabled"]; + {lbSetValue [00005, (lbSize 00005) - 1, _x]} foreach [(lbSize 00005) - 1]; + lbsetcursel [00005, player getVariable "JTS_PM_STAT"]; +}; + +JTS_FNC_STATUS = +{ + while {alive player && dialog} do + { + _sz = count (toArray (ctrltext 00006)); + ctrlsettext [00008, Format ["%1/15", _sz]]; + sleep 0.1; + }; +}; + + +JTS_FNC_VALID = +{ + if (isNull _this ||!alive player) then + { + false + } + + else + { + if (!alive _this || _this == player || !isPlayer _this || !alive player) then + { + false + } + + else + { + true + } + } +}; + +JTS_FNC_PM_DELETE = +{ + if (lbSize 00002 < 1) then + { + ctrlsettext [00007, "Your inbox is empty"]; + } + + else + { + _Data = lbData [00002, lbCursel 00002]; + _Subject = lbText [00002, lbCursel 00002]; + JTS_PM_ARRAY = JTS_PM_ARRAY - [[_Subject,_Data]]; + {[] spawn _x} foreach [JTS_FNC_PM,JTS_FNC_PM_ENABLED,JTS_FNC_STATUS] + }; +}; \ No newline at end of file diff --git a/addons/JTS_PM/Icons/Message.paa b/addons/JTS_PM/Icons/Message.paa new file mode 100644 index 0000000000000000000000000000000000000000..3c33157a767c1ea03bcd3a2cfeda8bb0398063db GIT binary patch literal 5060 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 E0mWjbuK)l5 literal 0 HcmV?d00001 diff --git a/addons/JTS_PM/JTS_PM.sqf b/addons/JTS_PM/JTS_PM.sqf new file mode 100644 index 000000000..7f0eff5f4 --- /dev/null +++ b/addons/JTS_PM/JTS_PM.sqf @@ -0,0 +1,6 @@ +if (!alive player) exitWith {closedialog 0}; +if (JTS_DLPM > 0) exitWith {closedialog 0;hint "Please, wait..."}; + +createDialog "JTS_PM"; + +{[] spawn _x} foreach [JTS_FNC_PM,JTS_FNC_PM_ENABLED,JTS_FNC_STATUS]; \ No newline at end of file diff --git a/addons/JTS_PM/PM_Compact.hpp b/addons/JTS_PM/PM_Compact.hpp new file mode 100644 index 000000000..df72b40a2 --- /dev/null +++ b/addons/JTS_PM/PM_Compact.hpp @@ -0,0 +1,366 @@ +#define JTS_CT_STATIC_PM 0 +#define JTS_CT_EDIT_PM 2 +#define JTS_CT_COMBO_PM 4 + +#define JTS_ST_LEFT_PM 0x00 +#define JTS_ST_SINGLE_PM 0 +#define JTS_ST_MULTI_PM 16 +//#define ST_WITH_RECT 160 +#define JTS_ST_NO_RECT_PM 0x200 + +#define JTS_FontM_PM "PuristaMedium" + +class JTS_GUI +{ + type = 0; + idc = -1; + style = 128; + colorText[] = {1,1,1,1}; + font = JTS_FontM_PM; + sizeEx = 0.04; + shadow = 0; + + colorbackground[] = + { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',1])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',1])", + "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])" + }; +}; + +class JTS_RscButton +{ + idc = -1; + type = 16; + style = "0x02 + 0xC0"; + default = 0; + shadow = 0; + + animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)"; + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; + + colorBackground[] = {0,0,0,0.8}; + colorBackgroundFocused[] = {1,1,1,1}; + colorBackground2[] = {0.75,0.75,0.75,1}; + color[] = {1,1,1,1}; + colorFocused[] = {0,0,0,1}; + color2[] = {0,0,0,1}; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.25}; + period = 1.2; + periodFocus = 1.2; + periodOver = 1.2; + size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; + + soundEnter[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundPush",0.09,1}; + soundClick[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; + + w = 0.095 * SafeZoneW; + h = 0.03 * SafeZoneH; + + class TextPos + { + left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)"; + top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; + right = 0.005; + bottom = 0; + }; + + class Attributes + { + font = "PuristaLight"; + color = "#E5E5E5"; + align = "left"; + shadow = "false"; + }; + + class ShortcutPos + { + left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005"; + top = 0.005; + w = 0.0225; + h = 0.03; + }; + + class HitZone + { + left = 0; + top = 0; + right = 0; + bottom = 0; + }; +}; + +class JTS_RscEdit +{ + access = 0; + type = 2; + + colorBackground[] = {0,0,0,1}; + colorText[] = {0.95,0.95,0.95,1}; + colorDisabled[] = {0.95,0.95,0.95,1}; + + colorSelection[] = + { + "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])", + "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])", + "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", + 1 + }; + + autocomplete = ""; + text = ""; + size = 0.2; + style = "0x00 + 0x40"; + font = "PuristaMedium"; + shadow = 2; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + canModify = 1; + + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; +}; + +class JTS_PMText +{ + type = JTS_CT_STATIC_PM; + style = JTS_ST_LEFT_PM; + colorText[] = {1,1,1,1}; + colorBackground[] = {0, 0, 0, 0}; + font = JTS_FontM_PM; + sizeEx = 0.03; +}; + +class JTS_PMlite: JTS_PMText +{ + font = "PuristaLight"; + sizeEx = 0.035; +}; + +class JTS_RscCombo +{ + style = "0x10 + 0x200"; + access = ReadAndWrite; + type = JTS_CT_COMBO_PM; + shadow = 0; + maxHistoryDelay = 1; + wholeHeight = 0.44 * SafeZoneH; + font = JTS_FontM_PM; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + + colorSelect[] = {0,0,0,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,1}; + colorScrollbar[] = {1,0,0,1}; + colorSelectBackground[] = {1,1,1,0.7}; + colorActive[] = {1,0,0,1}; + colorDisabled[] = {1,1,1,0.25}; + + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; + + soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1}; + soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1}; + soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1}; + + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + + class ComboScrollBar + { + color[] = {1,1,1,1}; + autoScrollEnabled = 1; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; +}; + +class JTS_PM +{ + idd = -1; + movingEnable = false; + controlsBackground[] = {JTS_METRO,JTS_LINE}; + + class JTS_METRO: JTS_PMText + { + idc = -1; + moving = 1; + colorBackground[] = {0, 0, 0, 0.75}; + text = ""; + x = 0.2 * SafeZoneW + SafeZoneX; + y = 0.2 * SafeZoneH + SafeZoneY; + w = 0.3 * SafeZoneW; + h = 0.6 * SafeZoneH; + }; + + class JTS_LINE: JTS_GUI + { + idc = -1; + moving = 1; + text = "Messenger"; + x = 0.2 * SafeZoneW + SafeZoneX; + y = 0.168 * SafeZoneH + SafeZoneY; + w = 0.3 * SafeZoneW; + h = 0.03 * SafeZoneH; + }; + + controls[] = {JTS_DESCTEXT,JTS_INBOX,JTS_SEND,JTS_EDIT,JTS_STAT,JTS_EDIT_TITLE,JTS_INFOTEXT,JTS_TYPING,JTS_TXT1,JTS_TXT2,BUT1,BUT2,BUT3}; + + + class JTS_DESCTEXT: JTS_PMlite + { + idc = 00001; + style = JTS_ST_SINGLE_PM + JTS_ST_MULTI_PM + JTS_ST_NO_RECT_PM; + linespacing = 1; + shadow = 1; + text = ""; + x = 0.2 * SafeZoneW + SafeZoneX; + y = 0.3 * SafeZoneH + SafeZoneY; + w = 0.3 * SafeZoneW; + h = 0.3 * SafeZoneH; + }; + + class JTS_INBOX: JTS_RscCombo + { + idc = 00002; + onLBSelChanged = "ctrlsettext [00001, lbData [00002, lbCursel 00002]]"; + x = 0.21 * SafeZoneW + SafeZoneX; + y = 0.25 * SafeZoneH + SafeZoneY; + w = 0.18 * SafeZoneW; + h = 0.03 * SafeZoneH; + + }; + + class JTS_SEND: JTS_RscCombo + { + idc = 00003; + wholeHeight = 0.2 * SafeZoneH; + x = 0.395 * SafeZoneW + SafeZoneX; + y = 0.61 * SafeZoneH + SafeZoneY; + w = 0.095 * SafeZoneW; + h = 0.03 * SafeZoneH; + + }; + + class JTS_EDIT: JTS_RscEdit + { + idc = 00004; + text = ""; + toolTip = "Enter your message here"; + x = 0.21 * SafeZoneW + SafeZoneX; + y = 0.75 * SafeZoneH + SafeZoneY; + w = 0.28 * SafeZoneW; + h = 0.04 * SafeZoneH; + }; + + class JTS_STAT: JTS_RscCombo + { + idc = 00005; + onLBSelChanged = "player setVariable ['JTS_PM_STAT',lbValue [00005, lbCursel 00005], true]"; + toolTip = "Enable or disable the receiving of personal messages"; + wholeHeight = 0.2 * SafeZoneH; + x = 0.395 * SafeZoneW + SafeZoneX; + y = 0.25 * SafeZoneH + SafeZoneY; + w = 0.095 * SafeZoneW; + h = 0.03 * SafeZoneH; + + }; + + class JTS_EDIT_TITLE: JTS_RscEdit + { + idc = 00006; + text = ""; + toolTip = "Enter the title of the message here. Maximum length of the title is 15 characters"; + x = 0.21 * SafeZoneW + SafeZoneX; + y = 0.7 * SafeZoneH + SafeZoneY; + w = 0.19 * SafeZoneW; + h = 0.04 * SafeZoneH; + }; + + class JTS_INFOTEXT: JTS_PMlite + { + idc = 00007; + text = ""; + colorText[] = {0,1,0,1}; + x = 0.21 * SafeZoneW + SafeZoneX; + y = 0.65 * SafeZoneH + SafeZoneY; + w = 0.28 * SafeZoneW; + h = 0.032 * SafeZoneH; + }; + + class JTS_TYPING: JTS_RscEdit + { + idc = 00008; + text = ""; + x = 0.4 * SafeZoneW + SafeZoneX; + y = 0.7 * SafeZoneH + SafeZoneY; + w = 0.09 * SafeZoneW; + h = 0.04 * SafeZoneH; + }; + + class BUT1: JTS_RscButton + { + idc = 00009; + text = "SEND"; + action = "[] spawn JTS_FNC_SEND"; + x = 0.2 * SafeZoneW + SafeZoneX; + y = 0.805 * SafeZoneH + SafeZoneY; + }; + + class BUT2: JTS_RscButton + { + idc = 00010; + text = "CLOSE"; + action = "Closedialog 0"; + x = 0.405 * SafeZoneW + SafeZoneX; + y = 0.805 * SafeZoneH + SafeZoneY; + }; + + class BUT3: JTS_RscButton + { + idc = 00011; + text = "REMOVE"; + action = "[] spawn JTS_FNC_PM_DELETE"; + x = 0.3025 * SafeZoneW + SafeZoneX; + y = 0.805 * SafeZoneH + SafeZoneY; + }; + + class JTS_TXT1: JTS_PMText + { + idc = -1; + text = "Inbox:"; + x = 0.21 * SafeZoneW + SafeZoneX; + y = 0.21 * SafeZoneH + SafeZoneY; + w = 0.25 * SafeZoneW; + h = 0.032 * SafeZoneH; + }; + + class JTS_TXT2: JTS_PMText + { + idc = -1; + text = "Send to:"; + x = 0.21 * SafeZoneW + SafeZoneX; + y = 0.606 * SafeZoneH + SafeZoneY; + w = 0.195 * SafeZoneW; + h = 0.032 * SafeZoneH; + }; +}; \ No newline at end of file diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index e8b8e4c39..f46bdc79a 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -11,12 +11,36 @@ R3F_LOG_CFG_remorqueurs = "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", + "Boat_Armed_01_base_F" +]; +/** + * List of class names of (ground or air) vehicles which can tow heavy towables objects. + */ +R3F_LOG_CFG_remorqueursH = +[ "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", - "Tank_F", - "Boat_Armed_01_base_F" + "Tank_F" +]; +/** + * List of class names of (ground or air) vehicles which can tow all towables objects. + */ +R3F_LOG_CFG_remorqueursALL = +[ + "SUV_01_base_F", + "Offroad_01_base_F", + "Van_01_base_F", + "MRAP_01_base_F", + "MRAP_02_base_F", + "MRAP_03_base_F", + "Boat_Armed_01_base_F", + "Truck_01_base_F", + "Truck_02_base_F", + "Truck_03_base_F", + "Wheeled_APC_F", + "Tank_F" ]; /** @@ -35,10 +59,76 @@ R3F_LOG_CFG_objets_remorquables = "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", - "Helicopter_Base_F", + "O_Heli_Light_02_unarmed_F", + "I_Heli_light_03_unarmed_F", + "B_Heli_Transport_01_F", + "B_Heli_Transport_01_camo_F", + "O_Heli_Light_02_F", + "I_Heli_light_03_F", + "B_Heli_Attack_01_F", + "O_Heli_Attack_02_F", + "O_Heli_Attack_02_black_F", + "B_Heli_Light_01_F", + "B_Heli_Light_01_armed_F", + "C_Heli_Light_01_civil_F" +]; +/** + * List of class names of heavy towables objects. + */ +R3F_LOG_CFG_objets_remorquablesH = +[ + "Hatchback_01_base_F", + "SUV_01_base_F", + "Offroad_01_base_F", + "Van_01_base_F", + "MRAP_01_base_F", + "MRAP_02_base_F", + "MRAP_03_base_F", + "Truck_01_base_F", + "Truck_02_base_F", + "Truck_03_base_F", + "Wheeled_APC_F", + "Tank_F", + "UGV_01_base_F", + "SDV_01_base_F", + "Boat_Civil_01_base_F", + "Boat_Armed_01_base_F", + "O_Heli_Light_02_unarmed_F", + "I_Heli_light_03_unarmed_F", + "B_Heli_Transport_01_F", + "B_Heli_Transport_01_camo_F", + "O_Heli_Light_02_F", + "I_Heli_light_03_F", + "B_Heli_Attack_01_F", + "O_Heli_Attack_02_F", + "O_Heli_Attack_02_black_F", + "B_Heli_Light_01_F", + "B_Heli_Light_01_armed_F", + "C_Heli_Light_01_civil_F", + "I_Heli_Transport_02_F", + "Heli_Transport_04_base_F", + "B_Heli_Transport_03_base_F", "Plane" ]; +/** + * List of class names of heavy. + */ +R3F_LOG_CFG_objets_remorquablesALL = +[ + "Truck_01_base_F", + "Truck_02_base_F", + "Truck_03_base_F", + "Wheeled_APC_F", + "Tank_F", + "I_Heli_Transport_02_F", + "Heli_Transport_04_base_F", + "B_Heli_Transport_03_base_F", + "I_Plane_Fighter_03_AA_F", + "I_Plane_Fighter_03_CAS_F", + "B_Plane_CAS_01_F", + "O_Plane_CAS_02_F" +]; /****** LIFT WITH VEHICLE ******/ /** @@ -46,7 +136,24 @@ R3F_LOG_CFG_objets_remorquables = */ R3F_LOG_CFG_heliporteurs = [ - "Helicopter_Base_F" + "O_Heli_Light_02_unarmed_F", + "I_Heli_light_03_unarmed_F", + "B_Heli_Transport_01_F", + "B_Heli_Transport_01_camo_F", + "O_Heli_Light_02_F", + "I_Heli_light_03_F", + "B_Heli_Attack_01_F", + "O_Heli_Attack_02_F", + "O_Heli_Attack_02_black_F" +]; +/** + * List of class names of air vehicles which can lift heavy liftables objects. + */ +R3F_LOG_CFG_heliporteursH = +[ + "I_Heli_Transport_02_F", + "Heli_Transport_04_base_F", + "B_Heli_Transport_03_base_F" ]; /** @@ -61,7 +168,27 @@ R3F_LOG_CFG_objets_heliportables = "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", - "UGV_01_base_F", + "SDV_01_base_F", + "Boat_Civil_01_base_F", + "Boat_Armed_01_base_F" +]; +/** + * List of class names of heavy liftables objects. + */ +R3F_LOG_CFG_objets_heliportablesH = +[ + "Hatchback_01_base_F", + "SUV_01_base_F", + "Offroad_01_base_F", + "Van_01_base_F", + "MRAP_01_base_F", + "MRAP_02_base_F", + "MRAP_03_base_F", + "Truck_01_base_F", + "Truck_02_base_F", + "Truck_03_base_F", + "Wheeled_APC_F", + "Tank_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F" @@ -97,9 +224,9 @@ R3F_LOG_CFG_transporteurs = ["Heli_Light_02_base_F", 20], ["I_Heli_light_03_base_F", 20], ["Heli_Transport_01_base_F", 25], - ["Heli_Transport_02_base_F", 30], - ["B_Heli_Transport_03_base_F", 30], - ["Heli_Transport_04_base_F", 30], + ["Heli_Transport_02_base_F", 100], + ["B_Heli_Transport_03_base_F", 100], + ["Heli_Transport_04_base_F", 100], ["Heli_Attack_01_base_F", 10], ["Heli_Attack_02_base_F", 20] ]; diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/heliporteur/heliporter.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/heliporteur/heliporter.sqf index 1820f28b8..91cc15d35 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/heliporteur/heliporter.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/heliporteur/heliporter.sqf @@ -21,7 +21,7 @@ else private ["_heliporteur", "_objet"]; _heliporteur = _this select 0; - _objet = nearestObjects [_heliporteur, R3F_LOG_CFG_objets_heliportables, 20]; + _objet = nearestObjects [_heliporteur, R3F_LOG_CFG_objets_heliportablesH, 20]; // Parce que l'héliporteur peut être un objet héliportable _objet = _objet - [_heliporteur]; diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_init.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_init.sqf index 5507e3f52..9db7f2df6 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_init.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_init.sqf @@ -57,7 +57,7 @@ _objet addEventHandler ["GetIn", if ({_objet isKindOf _x} count R3F_LOG_CFG_objets_deplacables > 0) then { _objet addAction [(" " + STR_R3F_LOG_action_deplacer_objet + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\objet_deplacable\deplacer.sqf", nil, 5, false, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_deplacer_objet_valide && !(_target getVariable ['objectLocked', false])"]; - _objet addAction [(" " + STR_LOCK_OBJECT + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\objet_deplacable\objectLockStateMachine.sqf", _doLock, -5, false, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_deplacer_objet_valide && Object_canLock && (!(_target isKindOf 'AllVehicles') || {_target isKindOf 'StaticWeapon'})"]; + _objet addAction [(" " + STR_LOCK_OBJECT + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\objet_deplacable\objectLockStateMachine.sqf", _doLock, -5, false, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_deplacer_objet_valide && Object_canLock && !(_target isKindOf 'AllVehicles')"]; _objet addAction [(" " + STR_UNLOCK_OBJECT + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\objet_deplacable\objectLockStateMachine.sqf", _doUnlock, -5, false, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_deplacer_objet_valide && !Object_canLock"]; }; @@ -69,7 +69,16 @@ if ({_objet isKindOf _x} count R3F_LOG_CFG_objets_remorquables > 0) then }; _objet addAction [(" " + STR_R3F_LOG_action_selectionner_objet_remorque + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\remorqueur\selectionner_objet.sqf", nil, 5, false, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_selectionner_objet_remorque_valide && Object_canLock"]; + _objet addAction [(" " + STR_R3F_LOG_action_detacher + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\remorqueur\detacher.sqf", nil, 6, true, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_detacher_valide"]; +}; +if ({_objet isKindOf _x} count R3F_LOG_CFG_objets_remorquablesALL > 0) then +{ + if ({_objet isKindOf _x} count R3F_LOG_CFG_objets_deplacables > 0) then + { + _objet addAction [(" " + STR_R3F_LOG_action_remorquer_deplace + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\remorqueur\remorquer_deplace.sqf", nil, 6, true, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_remorquer_deplace_valide"]; + }; + _objet addAction [(" " + STR_R3F_LOG_action_selectionner_objet_remorque + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\remorqueur\selectionner_objet.sqf", nil, 5, false, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_selectionner_objet_remorque_valide && Object_canLock"]; _objet addAction [(" " + STR_R3F_LOG_action_detacher + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\remorqueur\detacher.sqf", nil, 6, true, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_detacher_valide"]; }; diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/remorqueur/detacher.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/remorqueur/detacher.sqf index f995355f4..1060ed8e6 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/remorqueur/detacher.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/remorqueur/detacher.sqf @@ -24,7 +24,7 @@ else _remorqueur = _objet getVariable "R3F_LOG_est_transporte_par"; // Ne pas permettre de décrocher un objet s'il est porté héliporté - if ({_remorqueur isKindOf _x} count R3F_LOG_CFG_remorqueurs > 0) then + if ({_remorqueur isKindOf _x} count R3F_LOG_CFG_remorqueursALL > 0) then { player switchMove "AinvPknlMstpSlayWrflDnon_medic"; diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/remorqueur/remorquer_deplace.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/remorqueur/remorquer_deplace.sqf index 102489342..3326e9ac1 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/remorqueur/remorquer_deplace.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/remorqueur/remorquer_deplace.sqf @@ -20,7 +20,7 @@ else _objet = R3F_LOG_joueur_deplace_objet; - _remorqueur = nearestObjects [_objet, R3F_LOG_CFG_remorqueurs, 22]; + _remorqueur = nearestObjects [_objet, R3F_LOG_CFG_remorqueursALL, 22]; // Parce que le remorqueur peut être un objet remorquable _remorqueur = _remorqueur - [_objet]; diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/surveiller_conditions_actions_menu.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/surveiller_conditions_actions_menu.sqf index e4abf109f..74383fae0 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/surveiller_conditions_actions_menu.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/surveiller_conditions_actions_menu.sqf @@ -52,6 +52,49 @@ while {true} do {!(_objet_pointe getVariable "R3F_LOG_disabled")}; }; + if ({_objet_pointe isKindOf _x} count R3F_LOG_CFG_objets_remorquablesH > 0) then + { + // Condition action selectionner_objet_remorque + R3F_LOG_action_selectionner_objet_remorque_valide = + alive _objet_pointe && + isNull R3F_LOG_joueur_deplace_objet && + {isNull driver _objet_pointe || + {!isPlayer driver _objet_pointe && // allow UAV towing + {getText (configFile >> "CfgVehicles" >> typeOf driver _objet_pointe >> "simulation") == "UAVPilot"}}} && + {isNull (_objet_pointe getVariable "R3F_LOG_est_transporte_par")} && + {!alive (_objet_pointe getVariable "R3F_LOG_est_deplace_par")} && + {!(_objet_pointe getVariable "R3F_LOG_disabled")}; + // Condition action detacher + R3F_LOG_action_detacher_valide = + isNull R3F_LOG_joueur_deplace_objet && + {!isNull (_objet_pointe getVariable "R3F_LOG_est_transporte_par")} && + {!(_objet_pointe getVariable "R3F_LOG_disabled")}; + // S'il est déplaçable + if ({_objet_pointe isKindOf _x} count R3F_LOG_CFG_objets_deplacables > 0) then + { + // Condition action remorquer_deplace + R3F_LOG_action_remorquer_deplace_valide = + alive R3F_LOG_joueur_deplace_objet && + {R3F_LOG_joueur_deplace_objet == _objet_pointe} && + {isNull driver _objet_pointe || + {!isPlayer driver _objet_pointe && // allow UAV towing + {getText (configFile >> "CfgVehicles" >> typeOf driver _objet_pointe >> "simulation") == "UAVPilot"}}} && + {{ + alive _x && + _x != _objet_pointe && + {isNull (_x getVariable "R3F_LOG_remorque")} && + {vectorMagnitude velocity _x < 6} && + {(getPos _x) select 2 < 2} && + {!(_x getVariable "R3F_LOG_disabled")} + } count nearestObjects [_objet_pointe, R3F_LOG_CFG_remorqueursALL, 18] > 0} && + {!(_objet_pointe getVariable "R3F_LOG_disabled")}; + if ({_objet_pointe isKindOf (_x select 0)} count R3F_LOG_CFG_objets_transportables > 0) then + { + // Disable towing on loadable objects + R3F_LOG_action_selectionner_objet_remorque_valide = false; + }; + }; + }; // Si l'objet est un objet remorquable if ({_objet_pointe isKindOf _x} count R3F_LOG_CFG_objets_remorquables > 0) then { @@ -89,7 +132,7 @@ while {true} do {vectorMagnitude velocity _x < 6} && {(getPos _x) select 2 < 2} && {!(_x getVariable "R3F_LOG_disabled")} - } count nearestObjects [_objet_pointe, R3F_LOG_CFG_remorqueurs, 18] > 0} && + } count nearestObjects [_objet_pointe, R3F_LOG_CFG_remorqueursALL, 18] > 0} && {!(_objet_pointe getVariable "R3F_LOG_disabled")}; if ({_objet_pointe isKindOf (_x select 0)} count R3F_LOG_CFG_objets_transportables > 0) then @@ -128,6 +171,32 @@ while {true} do {!alive (_objet_pointe getVariable "R3F_LOG_est_deplace_par")} && {!(_objet_pointe getVariable "R3F_LOG_disabled")}; }; + if ({_objet_pointe isKindOf _x} count R3F_LOG_CFG_remorqueursH > 0) then + { + // Condition action remorquer_deplace + R3F_LOG_action_remorquer_deplace_valide = + alive _objet_pointe && + alive R3F_LOG_joueur_deplace_objet && + {!(R3F_LOG_joueur_deplace_objet getVariable "R3F_LOG_disabled")} && + {{R3F_LOG_joueur_deplace_objet isKindOf _x} count R3F_LOG_CFG_objets_remorquablesH > 0} && + {isNull (_objet_pointe getVariable "R3F_LOG_remorque")} && + {vectorMagnitude velocity _objet_pointe < 6} && + {(getPos _objet_pointe) select 2 < 2} && + {!(_objet_pointe getVariable "R3F_LOG_disabled")} && + {{_objet_pointe isKindOf (_x select 0)} count R3F_LOG_CFG_objets_transportables == 0}; + // Condition action remorquer_selection + R3F_LOG_action_remorquer_selection_valide = + alive _objet_pointe && + isNull R3F_LOG_joueur_deplace_objet && + !isNull R3F_LOG_objet_selectionne && + {R3F_LOG_objet_selectionne != _objet_pointe} && + {!(R3F_LOG_objet_selectionne getVariable "R3F_LOG_disabled")} && + {{R3F_LOG_objet_selectionne isKindOf _x} count R3F_LOG_CFG_objets_remorquablesH > 0} && + {isNull (_objet_pointe getVariable "R3F_LOG_remorque")} && + {vectorMagnitude velocity _objet_pointe < 6} && + {(getPos _objet_pointe) select 2 < 2} && + {!(_objet_pointe getVariable "R3F_LOG_disabled")}; + }; // Si l'objet est un véhicule remorqueur if ({_objet_pointe isKindOf _x} count R3F_LOG_CFG_remorqueurs > 0) then @@ -198,6 +267,28 @@ while {true} do call _resetConditions; }; + if ({(vehicle player) isKindOf _x} count R3F_LOG_CFG_heliporteursH > 0) then + { + R3F_LOG_objet_addAction = vehicle player; + // On est dans le véhicule, on affiche pas les options de transporteur et remorqueur + call _resetConditions; + // Condition action heliporter + R3F_LOG_action_heliporter_valide = + driver R3F_LOG_objet_addAction == player && + {{_x != R3F_LOG_objet_addAction && {!(_x getVariable "R3F_LOG_disabled")}} count nearestObjects [R3F_LOG_objet_addAction, R3F_LOG_CFG_objets_heliportablesH, 15] > 0} && + {isNull (R3F_LOG_objet_addAction getVariable "R3F_LOG_heliporte")} && + {vectorMagnitude velocity R3F_LOG_objet_addAction < 6} && + {(getPos R3F_LOG_objet_addAction) select 2 > 1} && + {!(R3F_LOG_objet_addAction getVariable "R3F_LOG_disabled")}; + // Condition action heliport_larguer + R3F_LOG_action_heliport_larguer_valide = + driver R3F_LOG_objet_addAction == player && + {!isNull (R3F_LOG_objet_addAction getVariable "R3F_LOG_heliporte")} && + //{vectorMagnitude velocity R3F_LOG_objet_addAction < 15} && + //{(getPos R3F_LOG_objet_addAction) select 2 < 40} && + {!(R3F_LOG_objet_addAction getVariable "R3F_LOG_disabled")} && + {(getPosATL (R3F_LOG_objet_addAction getVariable "R3F_LOG_heliporte") select 2) >= 0}; + }; // Pour l'héliportation, l'objet n'est plus pointé, mais on est dedans // Si le joueur est dans un héliporteur if ({(vehicle player) isKindOf _x} count R3F_LOG_CFG_heliporteurs > 0) then diff --git a/addons/R3F_ARTY_AND_LOG/surveiller_nouveaux_objets.sqf b/addons/R3F_ARTY_AND_LOG/surveiller_nouveaux_objets.sqf index 1bd538bf0..99e387e94 100644 --- a/addons/R3F_ARTY_AND_LOG/surveiller_nouveaux_objets.sqf +++ b/addons/R3F_ARTY_AND_LOG/surveiller_nouveaux_objets.sqf @@ -19,7 +19,7 @@ private ["_liste_objets_depl_heli_remorq_transp", "_liste_vehicules_connus", "_l #ifdef R3F_LOG_enable // Union des tableaux de types d'objets servant dans un isKindOf -_liste_objets_depl_heli_remorq_transp = R3F_LOG_CFG_objets_deplacables + R3F_LOG_CFG_objets_heliportables + R3F_LOG_CFG_objets_remorquables + R3F_LOG_classes_objets_transportables; +_liste_objets_depl_heli_remorq_transp = R3F_LOG_CFG_objets_deplacables + R3F_LOG_CFG_objets_heliportables + R3F_LOG_CFG_objets_heliportablesH + R3F_LOG_CFG_objets_remorquables + R3F_LOG_CFG_objets_remorquablesH + R3F_LOG_classes_objets_transportables; #endif // Contiendra la liste des véhicules (et objets) déjà initialisés @@ -57,6 +57,11 @@ while {true} do [_objet] spawn R3F_LOG_FNCT_heliporteur_init; }; + // If vehicle can airlift heavy + if ({_objet isKindOf _x} count R3F_LOG_CFG_heliporteursH > 0) then + { + [_objet] spawn R3F_LOG_FNCT_heliporteur_init; + }; // If vehicle can transport contents if ({_objet isKindOf _x} count R3F_LOG_classes_transporteurs > 0) then { @@ -69,6 +74,11 @@ while {true} do [_objet] spawn R3F_LOG_FNCT_remorqueur_init; }; + // If vehicle can tow heavy + if ({_objet isKindOf _x} count R3F_LOG_CFG_remorqueursH > 0) then + { + [_objet] spawn R3F_LOG_FNCT_remorqueur_init; + }; _objet setVariable ["R3F_LOG_init_done", true]; if (!local _objet && !simulationEnabled _objet) then { _objet enableSimulation true }; #endif diff --git a/addons/scripts/DynamicWeatherEffects.sqf b/addons/scripts/DynamicWeatherEffects.sqf index 56d3386a5..cb7f826b1 100644 --- a/addons/scripts/DynamicWeatherEffects.sqf +++ b/addons/scripts/DynamicWeatherEffects.sqf @@ -26,11 +26,11 @@ if (count _this > 4) then { _debug = _this select 4; } else { _debug = false; }; // Minimum time in minutes for the weather (fog and overcast) to change. Must be greater than or equal to 1 and less than or equal to // _maxWeatherChangeTimeMin. When weather changes, it is fog OR overcast that changes, not both at the same time. (Suggested value: 10). -_minWeatherChangeTimeMin = 20; +_minWeatherChangeTimeMin = 30; // Maximum time in minutes for the weather (fog and overcast) to change. Must be greater than or equal to _minWeatherChangeTimeMin. // (Suggested value: 20). -_maxWeatherChangeTimeMin = 40; +_maxWeatherChangeTimeMin = 60; // Minimum time in minutes that weather (fog and overcast) stays constant between weather changes. Must be less than or equal to 0 and // greater than or equal to _minWeatherChangeTimeMin. (Suggested value: 5). @@ -45,8 +45,8 @@ _maxTimeBetweenWeatherChangesMin = 10; _minimumFog = 0; // Fog intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumFog -// (0 = no fog, 1 = pea soup). (Suggested value: 0.1). -_maximumFog = 0.1; +// (0 = no fog, 1 = pea soup). (Suggested value: 0.8). +_maximumFog = 0.15; // New ArmA3 facilities added by Bewilderbeest _minimumFogDecay = 0.001; @@ -89,7 +89,7 @@ _windChangeProbability = 25; // Probability in percent (0-100) for rain to start at every rain interval. Set this to 0 if you don't want rain at all. Set this to 100 // if you want it to rain constantly when overcast is greater than 0.75. In short: if you think that it generally rains to often then // lower this value and vice versa. (Suggested value: 50). -_rainIntervalRainProbability = 50; +_rainIntervalRainProbability = 20; // Minimum time in minutes for rain intervals. Must be greater or equal to 0 and less than or equal to _maxRainIntervalTimeMin. // (Suggested value: 0). @@ -239,9 +239,12 @@ drn_fnc_DynamicWeather_SetWeatherLocal = { }; if (_currentWeatherChange == "FOG") then { if (typeName _targetWeatherValue == "ARRAY") then { - _targetWeatherValue = _targetWeatherValue select 0; + _targetWeatherValue = [(_targetWeatherValue select 0) max (_currentRain / 4), 0.001, 1000]; // override decay value + } + else { + _targetWeatherValue = _targetWeatherValue max (_currentRain / 4); }; - _timeUntilCompletion setFog [_targetWeatherValue max (_currentRain / 4), 0.001, 1000];; + _timeUntilCompletion setFog _targetWeatherValue; }; }; diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf new file mode 100644 index 000000000..e23f8ab06 --- /dev/null +++ b/addons/scripts/fn_resupplytruck.sqf @@ -0,0 +1,324 @@ +// @file Version: 1.1 +// @file Name: fn_resupplyTruck.sqf +// @file Author: Wiking, AgentRev +// @file Created: 13/07/2014 21:58 + +#define RESUPPLY_TRUCK_DISTANCE 20 +#define REARM_TIME_SLICE 10 +#define REPAIR_TIME_SLICE 1 +#define REFUEL_TIME_SLICE 1 +#define PRICE_RELATIONSHIP 4 + + +// Check if mutex lock is active. +if (mutexScriptInProgress) exitWith +{ + titleText ["You are already performing another action.", "PLAIN DOWN", 0.5]; +}; +mutexScriptInProgress = true; + +_vehicle = vehicle player; + +//check if caller is in vehicle +if (_vehicle == player) exitWith {}; + +//set up prices + _vehClass = typeOf _vehicle; + _price = 3000; // price = 1000 for vehicles not found in vehicle store. (e.g. Static Weapons) + { + if (_vehClass == _x select 1) then + { + _price = _x select 2; + _price = round (_price / PRICE_RELATIONSHIP); + }; +} forEach (call allVehStoreVehicles); + +_text = format ["Stop engine in 10s to start resupply. Cost for service is $%1 for this vehicle. This will take some time.\nYou can always abort by getting out of the vehicle.", _price]; + titleText [_text, "PLAIN DOWN", 0.5]; +sleep 10; +_eng = isEngineOn _vehicle; +if (_eng) exitWith { + titleText ["Engine still running. Service CANCELED!", "PLAIN DOWN", 0.5]; + mutexScriptInProgress = false; +}; + + +/* +if ((!isnull (gunner _vehicle)) && !(_vehicle isKindOf "StaticWeapon")) then { + _vehicle vehicleChat format ["Gunner must be out of seat for service! Get gunner out in 20s."]; + sleep 10; + _vehicle vehicleChat format ["Gunner must be out of seat for service! Get gunner out in 10s."]; + sleep 10; + if (!isnull (gunner _vehicle)) exitWith + { + _vehicle vehicleChat format ["Gunner still inside. Service CANCELED!"]; + mutexScriptInProgress = false; + }; +}; +*/ + + +_resupplyThread = _vehicle spawn +{ + _vehicle = _this; + _vehClass = typeOf _vehicle; + _vehicleCfg = configFile >> "CfgVehicles" >> _vehClass; + _vehName = getText (_vehicleCfg >> "displayName"); + + scopeName "fn_resupplyTruck"; + + _price = 3000; // price = 1000 for vehicles not found in vehicle store (e.g. static weapons) + { + if (_vehClass == _x select 1) then + { + _price = _x select 2; + _price = round (_price / PRICE_RELATIONSHIP); + }; + +} forEach (call allVehStoreVehicles); + + + + _titleText = + { + if (vehicle player == _vehicle) then + { + titleText [_this, "PLAIN DOWN", ((REARM_TIME_SLICE max 1) / 10) max 1]; + } + else + { + titleText ["", "PLAIN"]; + }; + }; + + _checkAbortConditions = + { + // Abort everything if vehicle is no longer local, otherwise commands won't do anything + if (!local _vehicle) then + { + _crew = crew _vehicle; + _text = format ["Vehicle resupply aborted by %1", if (count _crew > 0) then { name (_crew select 0) } else { "another player" }]; + titleText [_text, "PLAIN DOWN", 0.5]; + mutexScriptInProgress = false; + breakOut "fn_resupplyTruck"; + }; + + // Abort everything if no Tempest Device in proximity + if ({alive _x} count (_vehicle nearEntities ["O_Truck_03_device_F", RESUPPLY_TRUCK_DISTANCE]) == 0) then + { + if (_started) then { titleText ["Vehicle resupply aborted!", "PLAIN DOWN", 0.5] }; + mutexScriptInProgress = false; + breakOut "fn_resupplyTruck"; + }; + // Abort everything if player gets out of vehicle + if (vehicle player != _vehicle) then + { + if (_started) then { titleText ["Vehicle resupply aborted!", "PLAIN DOWN", 0.5] }; + mutexScriptInProgress = false; + breakOut "fn_resupplyTruck"; + }; + + }; + + _started = false; + call _checkAbortConditions; + _started = true; + + //Add cost for resupply +_playerMoney = player getVariable "cmoney"; + +if (_playerMoney < _price) then + { + _text = format ["Not enough money! You need $%1 to resupply %2. Service cancelled!",_price,_vehName]; + [_text, 10] call mf_notify_client; + mutexScriptInProgress = false; + breakOut "fn_resupplyTruck"; + + } else + { +//start resupply here - + +player setVariable["cmoney",(player getVariable "cmoney")-_price,true]; + _text = format ["You paid $%1 to resupply %2.\nNo Refunds!\nPlease stand by...",_price,_vehName]; + [_text, 10] call mf_notify_client; + [] call fn_savePlayerData; + }; + + + + _turretsArray = [[_vehicleCfg, [-1]]]; + _turretsCfg = configFile >> "CfgVehicles" >> _vehClass >> "Turrets"; + + if (isClass _turretsCfg) then + { + _nbTurrets = count _turretsCfg; + _turretPath = 0; + + for "_i" from 0 to (_nbTurrets - 1) do + { + _turretCfg = _turretsCfg select _i; + + if (isClass _turretCfg && {getNumber (_turretCfg >> "hasGunner") > 0}) then + { + _turretsArray set [count _turretsArray, [_turretCfg, [_turretPath]]]; + + _subTurretsCfg = _turretCfg >> "Turrets"; + + if (isClass _subTurretsCfg) then + { + _nbSubTurrets = count _subTurretsCfg; + _subTurretPath = 0; + + for "_j" from 0 to (_nbSubTurrets - 1) do + { + _subTurretCfg = _subTurretsCfg select _j; + + if (isClass _subTurretCfg && {getNumber (_subTurretCfg >> "hasGunner") > 0}) then + { + _turretsArray set [count _turretsArray, [_subTurretCfg, [_turretPath, _subTurretPath]]]; + _subTurretPath = _subTurretPath + 1; + }; + }; + }; + + _turretPath = _turretPath + 1; + }; + }; + }; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + _engineOn = false; + + if !(_vehicle isKindOf "Air") then + { + _engineOn = isEngineOn _vehicle; + player action ["EngineOff", _vehicle]; + }; + + { + _turretCfg = _x select 0; + _turretPath = _x select 1; + _turretMags = getArray (_turretCfg >> "magazines"); + _turretMagPairs = []; + + { [_turretMagPairs, _x, 1] call BIS_fnc_addToPairs } forEach _turretMags; + + { + _mag = _x select 0; + _ammo = _x select 1; + + if (_ammo >= getNumber (configFile >> "CfgMagazines" >> _mag >> "count")) then + { + { + if (_x select 0 == _mag) exitWith + { + _count = if (count _x > 2) then { _x select 2 } else { 0 }; + _x set [2, _count + 1]; + }; + } forEach _turretMagPairs; + }; + } forEach magazinesAmmo _vehicle; + + { + _mag = _x select 0; + _qty = _x select 1; + _fullQty = if (count _x > 2) then { _x select 2 } else { 0 }; + + if (_fullQty < _qty) then + { + _vehicle removeMagazinesTurret [_mag, _turretPath]; + + for "_i" from 1 to _qty do + { + _magName = getText (configFile >> "CfgMagazines" >> _mag >> "displayName"); + + if (_magName == "") then + { + { + _weaponCfg = configFile >> "CfgWeapons" >> _x; + + if ({_mag == _x} count getArray (_weaponCfg >> "magazines") > 0) exitWith + { + _magName = getText (_weaponCfg >> "displayName"); + }; + } forEach getArray (_turretCfg >> "weapons"); + }; + + _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + _vehicle addMagazineTurret [_mag, _turretPath]; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + }; + }; + } forEach _turretMagPairs; + } forEach _turretsArray; + + _vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure + + if (damage _vehicle > 0.001) then + { + call _checkAbortConditions; + + while {damage _vehicle > 0.001} do + { + "Repairing..." call _titleText; + + sleep 1; + call _checkAbortConditions; + + _vehicle setDamage ((damage _vehicle) - 0.1); + }; + + sleep 3; + }; + + if (fuel _vehicle < 0.999) then + { + call _checkAbortConditions; + + while {fuel _vehicle < 0.999} do + { + "Refueling..." call _titleText; + + sleep REFUEL_TIME_SLICE; + call _checkAbortConditions; + + _vehicle setFuel ((fuel _vehicle) + 0.1); + }; + + sleep 2; + }; + + if !(_vehicle isKindOf "Air") then + { + _vehicle removeEventHandler ["Engine", _vehicle getVariable ["truckResupplyEngineEH", -1]]; + _vehicle engineOn _engineOn; + }; + + titleText ["Your vehicle is ready!", "PLAIN DOWN", 0.5]; + mutexScriptInProgress = false; +}; + +if !(_vehicle isKindOf "Air") then +{ + _vehicle setVariable ["truckResupplyThread", _resupplyThread]; + _vehicle setVariable ["truckResupplyEngineEH", _vehicle addEventHandler ["Engine", + { + _vehicle = _this select 0; + _started = _this select 1; + _resupplyThread = _vehicle getVariable "truckResupplyThread"; + + if (!isNil "_resupplyThread" && {!scriptDone _resupplyThread}) then + { + player action ["EngineOff", _vehicle]; + }; + }]]; +}; diff --git a/addons/scripts/healSelf.sqf b/addons/scripts/healSelf.sqf new file mode 100644 index 000000000..1eb80e722 --- /dev/null +++ b/addons/scripts/healSelf.sqf @@ -0,0 +1,35 @@ +//@file Version: 1.0 +//@file Name: healSelf.sqf +//@file Author: MercyfulFate edited by Gigatek +//@file Created: 22/9/2014 +//@file Description: Heal yourself with a First Aid Kit + +#define DURATION 25 +#define ANIMATION "AinvPknlMstpSlayWrflDnon_medic" +#define ERR_CANCELLED "First Aid Cancelled!" +private ["_checks", "_success"]; + +_checks = { + private ["_progress","_failed", "_text"]; + _progress = _this select 0; + _text = ""; + _failed = true; + switch (true) do { + case (!alive player): {}; // player is dead, no need for a notification + case (doCancelAction): {_text = ERR_CANCELLED; doCancelAction = false;}; + default { + _text = format["First Aid %1%2 Applied", round(100 * _progress), "%"]; + _failed = false; + }; + }; + [_failed, _text]; +}; + +_success = [DURATION, ANIMATION, _checks, []] call a3w_actions_start; + +if (_success) then { + player removeItem "FirstAidKit"; + player setDamage 0; + ["First Aid Completed!", 5] call mf_notify_client; +}; +_success; \ No newline at end of file diff --git a/addons/scripts/lock.sqf b/addons/scripts/lock.sqf new file mode 100644 index 000000000..7648a6214 --- /dev/null +++ b/addons/scripts/lock.sqf @@ -0,0 +1,18 @@ +private ["_vehicle","_nearvehicle"]; +_nearvehicle = nearestObjects [player, ["LandVehicle", "Ship", "Air"], 5]; +_vehicle = _nearvehicle select 0; + +if (isNil "_vehicle") exitWith {}; + +if (!isDedicated) then + { + [[netId _vehicle, 2], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Lock + _vehicle setVariable ["objectLocked", true, true]; + _vehicle setVariable ["R3F_LOG_disabled",true,true]; + + _vehicle say3D "carlock"; + _vehicle engineOn false; + sleep 0.5; + titleText ["Locked!","PLAIN DOWN"]; titleFadeOut 5; + +}; \ No newline at end of file diff --git a/addons/scripts/lockPick.sqf b/addons/scripts/lockPick.sqf new file mode 100644 index 000000000..cb6ba5d64 --- /dev/null +++ b/addons/scripts/lockPick.sqf @@ -0,0 +1,51 @@ +//@file Version: 1.0 +//@file Name: lockPick.sqf +//@file Author: MercyfulFate edited by Gigatek +//@file Created: 06/09/2014 +//@file Description: Lock Pick the nearest Vehicle + +#define DURATION 180 +#define ANIMATION "AinvPknlMstpSlayWrflDnon_medic" + +private ["_vehicle", "_checks", "_success", "_nearvehicle"]; +_nearvehicle = nearestObjects [player, ["LandVehicle", "Air", "Ship"], 7]; +_vehicle = _nearvehicle select 0; + +_checks = { + private ["_progress","_failed", "_text"]; + _progress = _this select 0; + _vehicle = _this select 1; + _text = ""; + _failed = true; + switch (true) do { + case (!alive player): {}; // player is dead, no need for a notification + case (vehicle player != player): {_text = "Lock Pick Failed! You can't do that in a vehicle."}; + case (((player distance _vehicle) - ((sizeOf typeOf _vehicle / 3) max 4)) > 2): {_text = "Lock Pick Failed! You are too far away from the vehicle."}; + case (!isNull (_vehicle getVariable ["R3F_LOG_est_deplace_par", objNull])): { _text = "Lock Pick Failed! Somebody moved the vehicle."}; + case (!isNull (_vehicle getVariable ["R3F_LOG_est_transporte_par", objNull])): { _text = "Lock Pick Failed! Somebody loaded or towed the vehicle."}; + case (!alive _vehicle): {_error = "The vehicle is too damaged to pick."}; + case (doCancelAction): {_text = "Lock Pick Cancelled!"; doCancelAction = false;}; + default { + _text = format["Lock Pick %1%2 Complete", round(100 * _progress), "%"]; + _failed = false; + }; + }; + [_failed, _text]; +}; + +_success = [DURATION, ANIMATION, _checks, [_vehicle]] call a3w_actions_start; + +if (isNil "_vehicle" || {typeName _vehicle != typeName objNull || {isNull _vehicle}}) exitWith { + diag_log "No vehicle near to pick."; + false +}; + +if (_success) then { + [[netId _vehicle, 1], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Unlock + _vehicle setVariable ["objectLocked", false, true]; + _vehicle setVariable ["R3F_LOG_disabled",false,true]; + _vehicle say3D "carlock"; + sleep 0.5; + titleText ["Lock Pick Complete!","PLAIN DOWN"]; titleFadeOut 5; +}; +_success; \ No newline at end of file diff --git a/addons/scripts/sellVehicle.sqf b/addons/scripts/sellVehicle.sqf new file mode 100644 index 000000000..b7aae0f6d --- /dev/null +++ b/addons/scripts/sellVehicle.sqf @@ -0,0 +1,128 @@ +// @file Version: 1.0 +// @file Name: sellVehicle.sqf +// @file Author: Wiking, AgentRev edited by Gigatek +// @file Created: 27/07/2014 13:04 + +// Selling of vehicle wrecks + +#define GET_ONE_TENTH_PRICE(PRICE) ((ceil (((PRICE) / 2) / 5)) * 5) + +// Check if mutex lock is active. +if (mutexScriptInProgress) exitWith +{ + ["You are already performing another action.", 5] call mf_notify_client; +}; + +private ["_vehicle", "_vehClass", "_checks", "_firstCheck", "_time", "_money", "_success"]; + +_vehicle = cursorTarget; +_vehClass = typeOf _vehicle; + +if (isNull _vehicle) exitWith {}; + +_checks = +{ + private ["_progress", "_object", "_failed", "_text"]; + _progress = _this select 0; + _object = _this select 1; + _failed = true; + + switch (true) do + { + case (!alive player): { _text = "" }; + case (vehicle player != player): { _text = "Sell Failed! You can't do that in a vehicle." }; + case (((player distance _object) - ((sizeOf typeOf _object / 3) max 4)) > 2): {_text = "Sell Failed! You are too far away from the vehicle."}; + case (isNull _object): { _text = "The vehicle no longer exists" }; + case (!alive _object || {alive _x} count crew _object > 0): { _text = "Sell Failed! You are not allowed to sell this vehicle." }; + case (!isNull (_object getVariable ["R3F_LOG_est_deplace_par", objNull])): { _text = "Sell Failed! Somebody moved the vehicle." }; + case (!isNull (_object getVariable ["R3F_LOG_est_transporte_par", objNull])): { _text = "Sell Failed! Somebody loaded or towed the vehicle." }; + case (doCancelAction): { doCancelAction = false; _text = "Sell Cancelled!" }; + default + { + _failed = false; + _text = format ["Vehicle Sell %1%2 Complete", floor (_progress * 100), "%"]; + }; + }; + + [_failed, _text]; +}; + +_firstCheck = [0, _vehicle] call _checks; + +if (_firstCheck select 0) exitWith +{ + [_firstCheck select 1, 5] call mf_notify_client; +}; + +mutexScriptInProgress = true; + +// Salvage time and default money reward according to vehicle type +switch (true) do +{ + case (_vehClass isKindOf "Plane_Base_F"): // Planes (UAV_02 is not in Plane_Base_F) + { + _time = 30; + _money = 10000; + }; + case (_vehClass isKindOf "Tank"): // Tanks & IFVs + { + _time = 30; + _money = 10000; + }; + case (_vehClass isKindOf "Helicopter_Base_F" && !(_vehClass isKindOf "UAV_01_base_F")): // Helicopters (except UAV_01) + { + _time = 25; + _money = 5000; + }; + case (_vehClass isKindOf "Wheeled_APC_F"): // Wheeled APCs + { + _time = 20; + _money = 5000; + }; + case (_vehClass isKindOf "Truck_F" && !(_vehClass isKindOf "Van_01_base_F")): // Trucks (except Vans) + { + _time = 20; + _money = 1000; + }; + case ({_vehClass isKindOf _x} count ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "UAV_02_base_F"] > 0): // MRAPs and UAV_02 + { + _time = 15; + _money = 2000; + }; + case (_vehClass isKindOf "Boat_Armed_01_base_F"): // Speedboats + { + _time = 10; + _money = 500; + }; + case ({_vehClass isKindOf _x} count ["Quadbike_01_base_F", "Kart_01_Base_F", "Rubber_duck_base_F", "UAV_01_base_F"] > 0): // Quadbikes, karts, rubber boats, UAV_01 + { + _time = 3; + _money = 100; + }; + default // Everything else + { + _time = 5; + _money = 500; + }; +}; + +// Final money reward is decided from vehicle store price +{ + if (_x select 1 == _vehClass) exitWith + { + _money = GET_ONE_TENTH_PRICE(_x select 2); + }; +} forEach call allVehStoreVehicles; + +mutexScriptInProgress = true; + +_success = [_time, format ["AinvPknlMstpSlayW%1Dnon_medic", [player, true] call getMoveWeapon], _checks, [_vehicle]] call a3w_actions_start; + +mutexScriptInProgress = false; + +if (_success) then +{ + deleteVehicle _vehicle; + player setVariable ["cmoney", (player getVariable ["cmoney", 0]) + _money, true]; + [format ["You have obtained $%1 from vehicle sell.", [_money] call fn_numbersText], 5] call mf_notify_client; +}; diff --git a/addons/scripts/servercredits.sqf b/addons/scripts/servercredits.sqf new file mode 100644 index 000000000..bec05b4e1 --- /dev/null +++ b/addons/scripts/servercredits.sqf @@ -0,0 +1,71 @@ +/* *********************************************************************** */ + +/* ======================================================================= +/* SCRIPT NAME: Server Intro Credits Script by IT07 +/* SCRIPT VERSION: v1.3.5 BETA +/* Credits for original script: Bohemia Interactive http://bistudio.com +/* ======================================================================= + +/* *********************************************************************** */ + +// ========== SCRIPT CONFIG ============ + +_onScreenTime = 10; //how long one role should stay on screen. Use value from 0 to 10 where 0 is almost instant transition to next role +//NOTE: Above value is not in seconds! + +// ==== HOW TO CUSTOMIZE THE CREDITS === +// If you want more or less credits on the screen, you have to add/remove roles. +// Watch out though, you need to make sure BOTH role lists match eachother in terms of amount. +// Just take a good look at the _role1 and the rest and you will see what I mean. + +// For further explanation of it all, I included some info in the code. + +// == HOW TO CUSTOMIZE THE COLOR OF CREDITS == +// Find line **** and look for: color='#f2cb0b' +// The numbers and letters between the 2 '' is the HTML color code for a certain yellow. +// If you want to change the color of the text, search on google for HTML color codes and pick the one your like. +// Then, replace the existing color code for the code you would like to use instead. Don't forget the # in front of it. +// HTML Color Codes Examples: +// #FFFFFF (white) +// #000000 (black) No idea why you would want black, but whatever +// #C80000 (red) +// #009FCF (light-blue) +// #31C300 (Razer Green) +// #FF8501 (orange) +// =========================================== + + +// SCRIPT START +//waitUntil {!isNil "dayz_animalCheck"}; +sleep 60; //Wait in seconds before the credits start after player IS ingame + +_role1 = "Welcome to"; +_role1names = ["A3Armory - A3Wasteland Altis"]; +_role2 = "Server restarts every 6 hours"; +_role2names = ["2, 8, 14, 20 EST"]; +_role3 = "Player stats, and support @"; +_role3names = ["A3Armory.com"]; + +{ + sleep 2; + _memberFunction = _x select 0; + _memberNames = _x select 1; + _finalText = format ["%1
", _memberFunction]; + _finalText = _finalText + ""; + {_finalText = _finalText + format ["%1
", _x]} forEach _memberNames; + _finalText = _finalText + "
"; + _onScreenTime + (((count _memberNames) - 1) * 0.5); + [ + _finalText, + [safezoneX + safezoneW - 0.8,0.50], //DEFAULT: 0.5,0.35 + [safezoneY + safezoneH - 0.8,0.7], //DEFAULT: 0.8,0.7 + _onScreenTime, + 0.5 + ] spawn BIS_fnc_dynamicText; + sleep (_onScreenTime); +} forEach [ + //The list below should have exactly the same amount of roles as the list above + [_role1, _role1names], + [_role2, _role2names], + [_role3, _role3names] //make SURE the last one here does NOT have a , at the end +]; \ No newline at end of file diff --git a/addons/scripts/unlock.sqf b/addons/scripts/unlock.sqf new file mode 100644 index 000000000..97bec504e --- /dev/null +++ b/addons/scripts/unlock.sqf @@ -0,0 +1,17 @@ +private ["_vehicle","_nearvehicle"]; +_nearvehicle = nearestObjects [player, ["LandVehicle", "Ship", "Air"], 5]; +_vehicle = _nearvehicle select 0; + +if (isNil "_vehicle") exitWith {}; + +if (!isDedicated) then + { + [[netId _vehicle, 1], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Unlock + _vehicle setVariable ["objectLocked", false, true]; + _vehicle setVariable ["R3F_LOG_disabled",false,true]; + + _vehicle say3D "carlock"; + sleep 0.5; + titleText ["Unlocked!","PLAIN DOWN"]; titleFadeOut 5; + +}; diff --git a/addons/scripts/vehicleResave.sqf b/addons/scripts/vehicleResave.sqf new file mode 100644 index 000000000..693fd35d9 --- /dev/null +++ b/addons/scripts/vehicleResave.sqf @@ -0,0 +1,52 @@ +//@file Version: 1.0 +//@file Name: vehicleSave.sqf +//@file Author: MercyfulFate edited by Gigatek +//@file Created: 06/09/2014 +//@file Description: Save the nearest Vehicle + +#define DURATION 10 +#define ANIMATION "AinvPknlMstpSlayWrflDnon_medic" + +private ["_vehicle", "_checks", "_success", "_nearvehicle"]; +_nearvehicle = nearestObjects [player, ["LandVehicle", "Air", "Ship"], 7]; +_vehicle = _nearvehicle select 0; + +_checks = { + private ["_progress","_failed", "_text"]; + _progress = _this select 0; + _vehicle = _this select 1; + _text = ""; + _failed = true; + switch (true) do { + case (!alive player): {}; // player is dead, no need for a notification + case (vehicle player != player): {_text = "Save Failed! You can't do that in a vehicle."}; + case (((player distance _vehicle) - ((sizeOf typeOf _vehicle / 3) max 4)) > 2): {_text = "Save Failed! You are too far away from the vehicle."}; + case (!isNull (_vehicle getVariable ["R3F_LOG_est_deplace_par", objNull])): { _text = "Save Failed! Somebody moved the vehicle."}; + case (!isNull (_vehicle getVariable ["R3F_LOG_est_transporte_par", objNull])): { _text = "Save Failed! Somebody loaded or towed the vehicle."}; + case (!alive _vehicle): {_error = "The vehicle is too damaged to save."}; + case (doCancelAction): {_text = "Save Cancelled!"; doCancelAction = false;}; + default { + _text = format["Vehicle Save %1%2 Complete", round(100 * _progress), "%"]; + _failed = false; + }; + }; + [_failed, _text]; +}; + +_success = [DURATION, ANIMATION, _checks, [_vehicle]] call a3w_actions_start; + +if (isNil "_vehicle" || {typeName _vehicle != typeName objNull || {isNull _vehicle}}) exitWith { + diag_log "No vehicle near to save."; + false +}; + +if (_success) then { + [[netId _vehicle, 1], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Unlock + _vehicle setVariable ["A3W_purchasedVehicle", true, true]; + _vehicle setVariable ["ownerUID", getPlayerUID player, true]; + _vehicle setVariable ["ownerN", name player, true]; + _vehicle setVariable ["baseSaving_spawningTime", nil, true]; + _vehicle setVariable ["baseSaving_hoursAlive", nil, true]; + titleText ["Vehicle Save Complete!","PLAIN DOWN"]; titleFadeOut 5; +}; +_success; \ No newline at end of file diff --git a/addons/scripts/vehicleSave.sqf b/addons/scripts/vehicleSave.sqf new file mode 100644 index 000000000..93f012570 --- /dev/null +++ b/addons/scripts/vehicleSave.sqf @@ -0,0 +1,52 @@ +//@file Version: 1.0 +//@file Name: vehicleSave.sqf +//@file Author: MercyfulFate edited by Gigatek +//@file Created: 06/09/2014 +//@file Description: Save the nearest Vehicle + +#define DURATION 40 +#define ANIMATION "AinvPknlMstpSlayWrflDnon_medic" + +private ["_vehicle", "_checks", "_success", "_nearvehicle"]; +_nearvehicle = nearestObjects [player, ["LandVehicle", "Air", "Ship"], 7]; +_vehicle = _nearvehicle select 0; + +_checks = { + private ["_progress","_failed", "_text"]; + _progress = _this select 0; + _vehicle = _this select 1; + _text = ""; + _failed = true; + switch (true) do { + case (!alive player): {}; // player is dead, no need for a notification + case (vehicle player != player): {_text = "Save Failed! You can't do that in a vehicle."}; + case (((player distance _vehicle) - ((sizeOf typeOf _vehicle / 3) max 4)) > 2): {_text = "Save Failed! You are too far away from the vehicle."}; + case (!isNull (_vehicle getVariable ["R3F_LOG_est_deplace_par", objNull])): { _text = "Save Failed! Somebody moved the vehicle."}; + case (!isNull (_vehicle getVariable ["R3F_LOG_est_transporte_par", objNull])): { _text = "Save Failed! Somebody loaded or towed the vehicle."}; + case (!alive _vehicle): {_error = "The vehicle is too damaged to save."}; + case (doCancelAction): {_text = "Save Cancelled!"; doCancelAction = false;}; + default { + _text = format["Vehicle Save %1%2 Complete", round(100 * _progress), "%"]; + _failed = false; + }; + }; + [_failed, _text]; +}; + +_success = [DURATION, ANIMATION, _checks, [_vehicle]] call a3w_actions_start; + +if (isNil "_vehicle" || {typeName _vehicle != typeName objNull || {isNull _vehicle}}) exitWith { + diag_log "No vehicle near to save."; + false +}; + +if (_success) then { + [[netId _vehicle, 1], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Unlock + _vehicle setVariable ["A3W_purchasedVehicle", true, true]; + _vehicle setVariable ["ownerUID", getPlayerUID player, true]; + _vehicle setVariable ["ownerN", name player, true]; + _vehicle setVariable ["baseSaving_spawningTime", nil, true]; + _vehicle setVariable ["baseSaving_hoursAlive", nil, true]; + titleText ["Vehicle Save Complete!","PLAIN DOWN"]; titleFadeOut 5; +}; +_success; \ No newline at end of file diff --git a/addons/scripts/weaponResave.sqf b/addons/scripts/weaponResave.sqf new file mode 100644 index 000000000..3f974d626 --- /dev/null +++ b/addons/scripts/weaponResave.sqf @@ -0,0 +1,52 @@ +//@file Version: 1.0 +//@file Name: vehicleSave.sqf +//@file Author: MercyfulFate edited by Gigatek +//@file Created: 06/09/2014 +//@file Description: Save the nearest Vehicle + +#define DURATION 10 +#define ANIMATION "AinvPknlMstpSlayWrflDnon_medic" + +private ["_vehicle", "_checks", "_success", "_nearvehicle"]; +_nearvehicle = nearestObjects [player, ["LandVehicle", "Air", "Ship"], 7]; +_vehicle = _nearvehicle select 0; + +_checks = { + private ["_progress","_failed", "_text"]; + _progress = _this select 0; + _vehicle = _this select 1; + _text = ""; + _failed = true; + switch (true) do { + case (!alive player): {}; // player is dead, no need for a notification + case (vehicle player != player): {_text = "Save Failed! You can't do that in a vehicle."}; + case (((player distance _vehicle) - ((sizeOf typeOf _vehicle / 3) max 4)) > 2): {_text = "Save Failed! You are too far away from the weapon."}; + case (!isNull (_vehicle getVariable ["R3F_LOG_est_deplace_par", objNull])): { _text = "Save Failed! Somebody moved the weapon."}; + case (!isNull (_vehicle getVariable ["R3F_LOG_est_transporte_par", objNull])): { _text = "Save Failed! Somebody loaded the weapon."}; + case (!alive _vehicle): {_error = "The weapon is too damaged to save."}; + case (doCancelAction): {_text = "Saving Cancelled!"; doCancelAction = false;}; + default { + _text = format["Weapon Save %1%2 Complete", round(100 * _progress), "%"]; + _failed = false; + }; + }; + [_failed, _text]; +}; + +_success = [DURATION, ANIMATION, _checks, [_vehicle]] call a3w_actions_start; + +if (isNil "_vehicle" || {typeName _vehicle != typeName objNull || {isNull _vehicle}}) exitWith { + diag_log "No weapon near to save."; + false +}; + +if (_success) then { + [[netId _vehicle, 1], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Unlock + _vehicle setVariable ["A3W_purchasedVehicle", true, true]; + _vehicle setVariable ["ownerUID", getPlayerUID player, true]; + _vehicle setVariable ["ownerN", name player, true]; + _vehicle setVariable ["baseSaving_spawningTime", nil, true]; + _vehicle setVariable ["baseSaving_hoursAlive", nil, true]; + titleText ["Weapon Save Complete!","PLAIN DOWN"]; titleFadeOut 5; +}; +_success; \ No newline at end of file diff --git a/addons/scripts/weaponSave.sqf b/addons/scripts/weaponSave.sqf new file mode 100644 index 000000000..9ab638df6 --- /dev/null +++ b/addons/scripts/weaponSave.sqf @@ -0,0 +1,52 @@ +//@file Version: 1.0 +//@file Name: vehicleSave.sqf +//@file Author: MercyfulFate edited by Gigatek +//@file Created: 06/09/2014 +//@file Description: Save the nearest Vehicle + +#define DURATION 40 +#define ANIMATION "AinvPknlMstpSlayWrflDnon_medic" + +private ["_vehicle", "_checks", "_success", "_nearvehicle"]; +_nearvehicle = nearestObjects [player, ["LandVehicle", "Air", "Ship"], 7]; +_vehicle = _nearvehicle select 0; + +_checks = { + private ["_progress","_failed", "_text"]; + _progress = _this select 0; + _vehicle = _this select 1; + _text = ""; + _failed = true; + switch (true) do { + case (!alive player): {}; // player is dead, no need for a notification + case (vehicle player != player): {_text = "Save Failed! You can't do that in a vehicle."}; + case (((player distance _vehicle) - ((sizeOf typeOf _vehicle / 3) max 4)) > 2): {_text = "Save Failed! You are too far away from the weapon."}; + case (!isNull (_vehicle getVariable ["R3F_LOG_est_deplace_par", objNull])): { _text = "Save Failed! Somebody moved the weapon."}; + case (!isNull (_vehicle getVariable ["R3F_LOG_est_transporte_par", objNull])): { _text = "Save Failed! Somebody loaded the weapon."}; + case (!alive _vehicle): {_error = "The weapon is too damaged to save."}; + case (doCancelAction): {_text = "Saving Cancelled!"; doCancelAction = false;}; + default { + _text = format["Weapon Save %1%2 Complete", round(100 * _progress), "%"]; + _failed = false; + }; + }; + [_failed, _text]; +}; + +_success = [DURATION, ANIMATION, _checks, [_vehicle]] call a3w_actions_start; + +if (isNil "_vehicle" || {typeName _vehicle != typeName objNull || {isNull _vehicle}}) exitWith { + diag_log "No weapon near to save."; + false +}; + +if (_success) then { + [[netId _vehicle, 1], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Unlock + _vehicle setVariable ["A3W_purchasedVehicle", true, true]; + _vehicle setVariable ["ownerUID", getPlayerUID player, true]; + _vehicle setVariable ["ownerN", name player, true]; + _vehicle setVariable ["baseSaving_spawningTime", nil, true]; + _vehicle setVariable ["baseSaving_hoursAlive", nil, true]; + titleText ["Weapon Save Complete!","PLAIN DOWN"]; titleFadeOut 5; +}; +_success; \ No newline at end of file diff --git a/addons/scripts/zlt_fastrope.sqf b/addons/scripts/zlt_fastrope.sqf new file mode 100644 index 000000000..b63f24231 --- /dev/null +++ b/addons/scripts/zlt_fastrope.sqf @@ -0,0 +1,202 @@ +// v1g Fast Rope by [STELS]Zealot + +#define MAX_SPEED_WHILE_FASTROPING 10 +#define MAX_SPEED_ROPES_AVAIL 30 + + +#define STR_TOSS_ROPES "Toss Ropes" +#define STR_FAST_ROPE "Fast Rope" +#define STR_CUT_ROPES "Cut Ropes" + + +if (isdedicated) exitwith {}; +waituntil {player == player}; + +zlt_rope_ropes = []; +zlt_mutexAction = false; + +zlt_rope_helis = ["O_Heli_Light_02_unarmed_F","O_Heli_Light_02_F","B_Heli_Transport_01_F","B_Heli_Transport_01_camo_F","O_Heli_Attack_02_F","O_Heli_Attack_02_black_F","I_Heli_Transport_02_F","B_Heli_Light_01_F"]; +zlt_rope_helidata = +[ + [ + ["O_Heli_Light_02_unarmed_F", "O_Heli_Light_02_F"], + [1.35,1.35,-24.95], + [-1.45,1.35,-24.95] + ], + [ + ["B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F"], + [-1.11,2.5,-24.7], + [1.11,2.5,-24.7] + ], + [ + ["O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F"], + [1.3,1.3,-25], + [-1.3,1.3,-25] + ], + [ + ["I_Heli_Transport_02_F"], + [0,-5,-26], + [] + ], + [ + ["B_Heli_Light_01_F"], + [0.6,0.5,-25.9], + [-0.8,0.5,-25.9] + ] +]; + + +zlt_fnc_tossropes = { + private ["_heli","_ropes","_oropes","_rope"]; + _heli = _this; + _ropes = []; + _oropes = _heli getvariable ["zlt_ropes",[]]; + if (count _oropes != 0 ) exitwith {}; + _i = 0; + { + if ((typeof _heli) in (_x select 0)) exitwith { + _ropes = _ropes + [_x select 1]; + if ( count (_x select 2) !=0 ) then { + _ropes = _ropes + [_x select 2]; + }; + }; + _i = _i +1; + } foreach zlt_rope_helidata; + + sleep random 0.3; + if ( count (_heli getvariable ["zlt_ropes",[]]) != 0 ) exitwith { zlt_mutexAction = false; }; + _heli animateDoor ['door_R', 1]; + _heli animateDoor ['door_L', 1]; + { + _rope = createVehicle ["land_rope_f", [0,0,0], [], 0, "CAN_COLLIDE"]; + _rope setdir (getdir _heli); + _rope attachto [_heli, _x]; + _oropes = _oropes + [_rope]; + } foreach _ropes; + _heli setvariable ["zlt_ropes",_oropes,true]; + + _heli spawn { + private ["_heli","_ropes"]; + _heli = _this; + while {alive _heli and count (_heli getvariable ["zlt_ropes", []]) != 0 and abs (speed _heli) < MAX_SPEED_ROPES_AVAIL } do { + sleep 0.3; + }; + _ropes = (_heli getvariable ["zlt_ropes", []]); + {deletevehicle _x} foreach _ropes; + _heli setvariable ["zlt_ropes", [], true]; + }; + +}; + +zlt_fnc_ropes_cond = { + _veh = vehicle player; + _flag = (_veh != player) and {(not zlt_mutexAction)} and {count (_veh getvariable ["zlt_ropes", []]) == 0} and { (typeof _veh) in zlt_rope_helis } and {alive player and alive _veh and (abs (speed _veh) < MAX_SPEED_ROPES_AVAIL ) }; + _flag; + +}; + +zlt_fnc_fastropeaiunits = { + private ["_heli","_grunits"]; + _heli = _this select 0; + _grunits = _this select 1; + + dostop (driver _heli ); + (driver _heli) setBehaviour "Careless"; + (driver _heli) setCombatMode "Blue"; + + _heli spawn zlt_fnc_tossropes; + + [_heli, _grunits] spawn { + private ["_units","_heli"]; + sleep random 0.5; + _units = _this select 1; + _heli = (_this select 0); + _units = _units - [player]; + _units = _units - [driver _heli]; + {if (!alive _x or isplayer _x or vehicle _x != _heli) then {_units = _units - [_x];}; } foreach _units; + + { sleep (0.5 + random 0.7); _x spawn zlt_fnc_fastropeUnit; } foreach _units; + waituntil {sleep 0.5; { (getpos _x select 2) < 1 } count _units == count _units; }; + sleep 10; + (driver _heli) doFollow (leader group (driver _heli )); + (driver _heli) setBehaviour "Aware"; + (driver _heli) setCombatMode "White"; + _heli call zlt_fnc_cutropes; + + }; +}; + + +zlt_fnc_fastrope = { + zlt_mutexAction = true; + sleep random 0.3; + if (player == leader group player) then { + [vehicle player, units group player] call zlt_fnc_fastropeaiunits; + }; + player call zlt_fnc_fastropeUnit; + zlt_mutexAction = false; +}; + +zlt_fnc_fastropeUnit = { + private ["_unit","_heli","_ropes","_rope","_zmax","_zdelta","_zc"]; + _unit = _this; + _heli = vehicle _unit; + if (_unit == _heli) exitWith {}; + + _ropes = (_heli getvariable ["zlt_ropes", []]); + if (count _ropes == 0) exitwith {}; + + _rope = _ropes call BIS_fnc_selectRandom; + _zmax = 22; + _zdelta = 7 / 10 ; + + _zc = _zmax; + _unit action ["eject", _heli]; + _unit switchmove "gunner_standup01"; + + _unit setpos [(getpos _unit select 0), (getpos _unit select 1), 0 max ((getpos _unit select 2) - 3)]; + while {alive _unit and (getpos _unit select 2) > 1 and (abs (speed _heli)) < MAX_SPEED_WHILE_FASTROPING and _zc > -24} do { + _unit attachTo [_rope, [0,0,_zc]]; + _zc = _zc - _zdelta; + sleep 0.1; + }; + _unit switchmove ""; + detach _unit; + +}; + + +zlt_fnc_cutropes = { + _veh = _this; + _ropes = (_veh getvariable ["zlt_ropes", []]); + {deletevehicle _x} foreach _ropes; + _veh setvariable ["zlt_ropes", [], true]; + _veh animateDoor ['door_R', 0]; + _veh animateDoor ['door_L', 0]; + +}; + +zlt_fnc_removeropes = { + (vehicle player) call zlt_fnc_cutropes; +}; + +zlt_fnc_createropes = { + zlt_mutexAction = true; + (vehicle player) call zlt_fnc_tossropes; + zlt_mutexAction = false; +}; + + + +player createDiarySubject [STR_SCRIPTS_NAME,STR_SCRIPTS_NAME]; +player createDiaryRecord [STR_SCRIPTS_NAME,[STR_SCRIPT_NAME, STR_HELP]]; + +player addAction[""+STR_TOSS_ROPES+"", zlt_fnc_createropes, [], -1, false, false, '','[] call zlt_fnc_ropes_cond']; +player addAction[""+STR_CUT_ROPES+"", zlt_fnc_removeropes, [], -1, false, false, '','not zlt_mutexAction and count ((vehicle player) getvariable ["zlt_ropes", []]) != 0']; +player addAction[""+STR_FAST_ROPE+"", zlt_fnc_fastrope, [], 15, false, false, '','not zlt_mutexAction and count ((vehicle player) getvariable ["zlt_ropes", []]) != 0 and player != driver vehicle player']; + +player addEventHandler ["Respawn", { + player addAction[""+STR_TOSS_ROPES+"", zlt_fnc_createropes, [], -1, false, false, '','[] call zlt_fnc_ropes_cond']; + player addAction[""+STR_CUT_ROPES+"", zlt_fnc_removeropes, [], -1, false, false, '','not zlt_mutexAction and count ((vehicle player) getvariable ["zlt_ropes", []]) != 0']; + player addAction[""+STR_FAST_ROPE+"", zlt_fnc_fastrope, [], 15, false, false, '','not zlt_mutexAction and count ((vehicle player) getvariable ["zlt_ropes", []]) != 0 and player != driver vehicle player']; +}]; diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index de00c8e25..88c468b46 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -11,6 +11,9 @@ ["Holster Weapon", { player action ["SwitchWeapon", player, player, 100] }, [], -11, false, false, "", "vehicle player == player && currentWeapon player != ''"], ["Unholster Primary Weapon", { player action ["SwitchWeapon", player, player, 0] }, [], -11, false, false, "", "vehicle player == player && currentWeapon player == '' && primaryWeapon player != ''"], + ["Heal Self", "addons\scripts\healSelf.sqf",0,0,false,false,"","((damage player)>0.01 && (damage player)<0.25499) && ('FirstAidKit' in (items player)) && (vehicle player == player)"], + ["Resupply", "addons\scripts\fn_resupplytruck.sqf", [], 51, false, false, "", "!(vehicle player == player) and (cursortarget iskindof 'O_Truck_03_device_F') and (player distance cursortarget) < 10"], + ["Messenger", "addons\JTS_PM\JTS_PM.sqf", [], -10, false], //, false, "", ""], [format [" [Player Menu]", "#FF8000"], "client\systems\playerMenu\init.sqf", [], -10, false], //, false, "", ""], [" Pickup Money", "client\actions\pickupMoney.sqf", [], 1, false, false, "", "{_x getVariable ['owner', ''] != 'mission'} count (player nearEntities ['Land_Money_F', 5]) > 0"], @@ -18,6 +21,16 @@ [" Cancel Action", { doCancelAction = true }, [], 1, false, false, "", "mutexScriptInProgress"], [" Salvage", "client\actions\salvage.sqf", [], 1.1, false, false, "", "!isNull cursorTarget && !alive cursorTarget && {cursorTarget isKindOf 'AllVehicles' && !(cursorTarget isKindOf 'Man') && player distance cursorTarget <= (sizeOf typeOf cursorTarget / 3) max 2}"], + [" Lock", "addons\scripts\lock.sqf", [], 1, false, false, "", "count nearestObjects [player, ['O_Truck_03_device_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'C_Heli_Light_01_civil_F'], 5] > 0 && !(vehicle player == player)"], + [" Unlock", "addons\scripts\unlock.sqf", [], 1, false, false, "", "count nearestObjects [player, ['O_Truck_03_device_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'C_Heli_Light_01_civil_F'], 5] > 0 && !(vehicle player == player)"], + [" Lock", "addons\scripts\lock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'O_Truck_03_device_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'B_Heli_Light_01_armed_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'C_Heli_Light_01_civil_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget < 2 && cursorTarget distance player < 5"], + [" Unlock", "addons\scripts\unlock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], + [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], + [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], + [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], + [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], + [" Re\Save Weapon", "addons\scripts\weaponResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && (player distance cursortarget) < 5"], + [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && (player distance cursortarget) < 5"], ["[0]"] call getPushPlaneAction, ["Push vehicle", "server\functions\pushVehicle.sqf", [2.5, true], 1, false, false, "", "[2.5] call canPushVehicleOnFoot"], diff --git a/client/functions/spawnAction.sqf b/client/functions/spawnAction.sqf index 1844dc545..d0ae22f2b 100644 --- a/client/functions/spawnAction.sqf +++ b/client/functions/spawnAction.sqf @@ -32,9 +32,9 @@ spawnActionHandle = (_this select 1) spawn _baseMoney = ["A3W_startingMoney", 100] call getPublicVar; player setVariable ["cmoney", _baseMoney, true]; - [MF_ITEMS_CANNED_FOOD, 1] call mf_inventory_add; - [MF_ITEMS_WATER, 1] call mf_inventory_add; - [MF_ITEMS_REPAIR_KIT, 1] call mf_inventory_add; + [MF_ITEMS_CANNED_FOOD, 2] call mf_inventory_add; + [MF_ITEMS_WATER, 2] call mf_inventory_add; + [MF_ITEMS_REPAIR_KIT, 2] call mf_inventory_add; }; if (cbChecked ((uiNamespace getVariable "RespawnSelectionDialog") displayCtrl respawn_Preload_Checkbox)) then diff --git a/description.ext b/description.ext index 269315e38..638bb023b 100644 --- a/description.ext +++ b/description.ext @@ -1,14 +1,14 @@ respawn="BASE"; respawnDelay=15; disabledAI=1; -disableChannels[] = {2}; // {0} to disable global, {2} for command channel +disableChannels[] = {0,2}; // {0} to disable global, {2} for command channel joinUnassigned = 0; enableItemsDropping = 0; -forceRotorLibSimulation = 0; // if you set this to 1, you deny freedom of choice to the players, which is the very principle this mission is built upon +forceRotorLibSimulation = 0; // Force RotorLib (0 = disable, 1= enable) weaponPool = 0; corpseManagerMode = 1; -corpseRemovalMinTime = 30*60; -corpseRemovalMaxTime = 30*60; +corpseRemovalMinTime = 15*60; +corpseRemovalMaxTime = 20*60; wreckManagerMode = 1; wreckRemovalMinTime = 5*60; wreckRemovalMaxTime = 10*60; @@ -53,6 +53,7 @@ loadScreen = "mapConfig\Loading.jpg"; #include "client\systems\playerMenu\dialog\respawn_dialog.hpp" #include "client\systems\playerMenu\dialog\teamkill_dialog.hpp" #include "addons\proving_ground\PG_config.hpp" +#include "addons\JTS_PM\PM_Compact.hpp" class RscTitles { @@ -74,3 +75,13 @@ class CfgNotifications { #include "client\CfgNotifications.hpp" }; +class CfgSounds { + sounds[] = { + carlock + }; + class carlock { + name = "carlock"; + sound[] = {sounds\carlock.ogg,0.2,1}; + titles[] = {}; + }; +}; \ No newline at end of file diff --git a/globalCompile.sqf b/globalCompile.sqf index 1851e1114..b7f729ece 100644 --- a/globalCompile.sqf +++ b/globalCompile.sqf @@ -70,6 +70,7 @@ mf_init = _clientFunc = "client\functions"; _serverFunc = "server\functions"; +A3W_fnc_setLockState = { (objectFromNetId (_this select 0)) lock (_this select 1) } call mf_compile; A3W_fnc_pushVehicle = [_serverFunc, "pushVehicle.sqf"] call mf_compile; A3W_fnc_setName = [_clientFunc, "fn_setName.sqf"] call mf_compile; A3W_fnc_towingHelper = [_serverFunc, "towingHelper.sqf"] call mf_compile; diff --git a/init.sqf b/init.sqf index 52f94388f..ee35d102f 100644 --- a/init.sqf +++ b/init.sqf @@ -67,3 +67,7 @@ if (isServer) then [] execVM "addons\proving_ground\init.sqf"; [] execVM "addons\scripts\DynamicWeatherEffects.sqf"; [] execVM "addons\JumpMF\init.sqf"; +[] execVM "addons\Explosives-To-Vehicle\init.sqf"; +[] execVM "addons\JTS_PM\Functions.sqf"; +[] execVM "addons\scripts\servercredits.sqf"; +[] execVM "addons\scripts\zlt_fastrope.sqf"; diff --git a/mapConfig/storeOwners.sqf b/mapConfig/storeOwners.sqf index f1ca3ec0a..7216e0fde 100644 --- a/mapConfig/storeOwners.sqf +++ b/mapConfig/storeOwners.sqf @@ -20,13 +20,15 @@ storeOwnerConfig = compileFinal str ["GunStore2", 1, 75, []], ["GunStore3", 6, 135, []], ["GunStore4", 1, 65, []], + ["GunStore5", 5, 83, []], // Buttons you can disable: "Land", "Armored", "Tanks", "Helicopters", "Boats", "Planes" ["VehStore1", 1, 75, []], ["VehStore2", 6, 45, ["Boats"]], ["VehStore3", 4, 250, ["Boats"]], ["VehStore4", 5, 155, ["Boats"]], - ["VehStore5", 0, 190, ["Planes"]] + ["VehStore5", 3, 20, ["Planes"]], + ["VehStore6", 4, 282, ["Boats", "Planes"]] ]; // Outfits for store owners @@ -42,10 +44,12 @@ storeOwnerConfigAppearance = compileFinal str ["GunStore2", [["weapon", ""], ["uniform", "U_O_SpecopsUniform_blk"]]], ["GunStore3", [["weapon", ""], ["uniform", "U_I_CombatUniform_tshirt"]]], ["GunStore4", [["weapon", ""], ["uniform", "U_IG_Guerilla1_1"]]], + ['GunStore5', [['weapon', ''], ['uniform', 'U_I_CombatUniform_tshirt']]], ["VehStore1", [["weapon", ""], ["uniform", "U_Competitor"]]], ["VehStore2", [["weapon", ""], ["uniform", "U_Competitor"]]], ["VehStore3", [["weapon", ""], ["uniform", "U_Competitor"]]], ["VehStore4", [["weapon", ""], ["uniform", "U_Competitor"]]], - ["VehStore5", [["weapon", ""], ["uniform", "U_Competitor"]]] + ['VehStore5', [['weapon', ''], ['uniform', 'U_Competitor']]], + ['VehStore6', [['weapon', ''], ['uniform', 'U_Competitor']]] ]; diff --git a/mission.sqm b/mission.sqm index ecfecfaa9..e82eee094 100644 --- a/mission.sqm +++ b/mission.sqm @@ -70,7 +70,8 @@ class Mission "A3_Modules_F_Sites", "a3_characters_f_beta", "a3_characters_f_gamma", - "a3_characters_f" + "a3_characters_f", + "A3_Structures_F_EPA_Mil_Scrapyard" }; addOnsAuto[]= { @@ -85,6 +86,7 @@ class Mission "A3_Structures_F_Households_Slum", "A3_Structures_F_Civ_Market", "A3_Structures_F_Civ_Camping", + "A3_Structures_F_EPA_Mil_Scrapyard", "a3_map_altis" }; randomSeed=14957468; @@ -109,7 +111,7 @@ class Mission }; class Groups { - items=18; + items=20; class Item0 { side="WEST"; @@ -122,7 +124,7 @@ class Mission id=0; side="WEST"; vehicle="C_man_w_worker_F"; - //player="PLAY CDG"; // If you want to enable the headless client slot, just uncomment this line + player="PLAY CDG"; forceHeadlessClient=1; leader=1; skill=0.60000002; @@ -1879,8 +1881,8 @@ class Mission items=1; class Item0 { - position[]={3971.4854,4.7541585,15072.055}; - azimut=190; + position[]={3578.4766,26.298988,10780.878}; + azimut=69; id=158; side="LOGIC"; vehicle="C_man_1_1_F"; @@ -1892,15 +1894,57 @@ class Mission }; }; }; + class Item18 + { + side="LOGIC"; + class Vehicles + { + items=1; + class Item0 + { + position[]={12399.483,24.938992,15565.728}; + azimut=83; + id=159; + side="LOGIC"; + vehicle="C_man_1_1_F"; + leader=1; + skill=0.60000002; + text="GunStore5"; + init="[this] spawn A3W_fnc_setupStoreNPC"; + description="DO NOT MODIFY IN EDITOR"; + }; + }; + }; + class Item19 + { + side="LOGIC"; + class Vehicles + { + items=1; + class Item0 + { + position[]={5861.1836,225.65332,20106.369}; + azimut=282; + id=160; + side="LOGIC"; + vehicle="C_man_1_1_F"; + leader=1; + skill=0.60000002; + text="VehStore6"; + init="[this] spawn A3W_fnc_setupStoreNPC"; + description="DO NOT MODIFY IN EDITOR"; + }; + }; + }; }; class Vehicles { - items=24; + items=31; class Item0 { position[]={5892.3325,225.05762,20124.521}; azimut=24.888161; - id=159; + id=161; side="EMPTY"; vehicle="Land_i_House_Big_01_V1_F"; skill=0.2; @@ -1911,7 +1955,7 @@ class Mission { position[]={5802.2612,223.31776,20114.979}; azimut=97.660759; - id=160; + id=162; side="EMPTY"; vehicle="Land_u_House_Small_02_V1_F"; skill=0.2; @@ -1922,7 +1966,7 @@ class Mission { position[]={5812.7163,223.88718,20112.508}; azimut=97.660759; - id=161; + id=163; side="EMPTY"; vehicle="Land_u_House_Small_02_V1_F"; skill=0.2; @@ -1932,7 +1976,7 @@ class Mission class Item3 { position[]={5904.832,225.58371,20186.275}; - id=162; + id=164; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -1943,7 +1987,7 @@ class Mission { position[]={5778.2402,221.67844,20113.643}; azimut=7.7879138; - id=163; + id=165; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -1954,7 +1998,7 @@ class Mission { position[]={5883.7109,227.44626,20088.664}; azimut=38.791935; - id=164; + id=166; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -1965,7 +2009,7 @@ class Mission { position[]={5941.0063,219.62125,20237.648}; azimut=-76.434235; - id=165; + id=167; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -1976,7 +2020,7 @@ class Mission { position[]={5853.6426,218.96228,20175.209}; azimut=85.118469; - id=166; + id=168; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -1987,7 +2031,7 @@ class Mission { position[]={5851.854,221.32671,20162.656}; azimut=124.47146; - id=167; + id=169; side="EMPTY"; vehicle="Land_Slum_House02_F"; skill=0.2; @@ -1998,7 +2042,7 @@ class Mission { position[]={5847.7378,222.46086,20154.539}; azimut=133.80367; - id=168; + id=170; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -2009,7 +2053,7 @@ class Mission { position[]={5840.5811,223.07314,20150.303}; azimut=153.61746; - id=169; + id=171; side="EMPTY"; vehicle="Land_Slum_House01_F"; skill=0.2; @@ -2020,7 +2064,7 @@ class Mission { position[]={5830.8071,222.7514,20148.615}; azimut=177.95645; - id=170; + id=172; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -2031,7 +2075,7 @@ class Mission { position[]={5838.062,217.12964,20181.893}; azimut=-37.911983; - id=171; + id=173; side="EMPTY"; vehicle="Land_Slum_House01_F"; skill=0.2; @@ -2042,7 +2086,7 @@ class Mission { position[]={5832.1758,217.55113,20175.316}; azimut=-46.636852; - id=172; + id=174; side="EMPTY"; vehicle="Land_Slum_House02_F"; skill=0.2; @@ -2053,7 +2097,7 @@ class Mission { position[]={5826.5269,218.02791,20169.475}; azimut=-46.636852; - id=173; + id=175; side="EMPTY"; vehicle="Land_Slum_House01_F"; skill=0.2; @@ -2064,7 +2108,7 @@ class Mission { position[]={5819.561,219.2971,20159.201}; azimut=-90.399368; - id=174; + id=176; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -2075,7 +2119,7 @@ class Mission { position[]={5841.7822,222.42061,20158.293}; azimut=-44.915901; - id=175; + id=177; side="EMPTY"; vehicle="Land_StallWater_F"; skill=0.2; @@ -2086,7 +2130,7 @@ class Mission { position[]={5833.0811,221.07756,20159.025}; azimut=-66.432838; - id=176; + id=178; side="EMPTY"; vehicle="Land_Cages_F"; skill=0.2; @@ -2096,7 +2140,7 @@ class Mission class Item18 { position[]={5843.8735,219.25572,20169.4}; - id=177; + id=179; side="EMPTY"; vehicle="Land_CratesShabby_F"; skill=0.2; @@ -2107,7 +2151,7 @@ class Mission { position[]={5837.647,220.00575,20164.465}; azimut=-44.915901; - id=178; + id=180; side="EMPTY"; vehicle="Land_MarketShelter_F"; skill=0.2; @@ -2118,7 +2162,7 @@ class Mission { position[]={5836.4023,222.51828,20154.047}; azimut=-174.08286; - id=179; + id=181; side="EMPTY"; vehicle="Land_Sacks_heap_F"; skill=0.2; @@ -2129,7 +2173,7 @@ class Mission { position[]={5841.7148,217.69827,20176.627}; azimut=-123.43818; - id=180; + id=182; side="EMPTY"; vehicle="Land_WoodenCart_F"; skill=0.2; @@ -2140,7 +2184,7 @@ class Mission { position[]={5838.0376,219.93082,20164.814}; azimut=163.54198; - id=181; + id=183; side="EMPTY"; vehicle="Campfire_burning_F"; skill=0.2; @@ -2151,17 +2195,73 @@ class Mission { position[]={5846.2808,218.43889,20175.215}; azimut=-44.915901; - id=182; + id=184; side="EMPTY"; vehicle="Campfire_burning_F"; skill=0.2; init="[this, true] call A3W_fnc_setupMissionObject"; description="DO NOT MODIFY IN EDITOR"; }; + class Item24 + { + position[]={24644.693,3.4499269,19007.213}; + id=185; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item25 + { + position[]={17485.336,45.80666,16465.215}; + id=186; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item26 + { + position[]={11725.263,54.045509,18281.066}; + id=187; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item27 + { + position[]={5627.6826,204.05179,19542.357}; + id=188; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item28 + { + position[]={14860.074,8.8743916,11055.829}; + id=189; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item29 + { + position[]={5954.2397,101.3764,12454.279}; + id=190; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item30 + { + position[]={18410.936,2.2717078,8174.0376}; + id=191; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; }; class Markers { - items=178; + items=188; class Item0 { position[]={3612.1487,12.11851,13020.892}; @@ -2402,7 +2502,7 @@ class Mission }; class Item34 { - position[]={5062.5967,70.270027,13039.418}; + position[]={7042.917,13.922895,11416.329}; name="Mission_1"; type="Empty"; colorName="ColorOrange"; @@ -2416,14 +2516,14 @@ class Mission }; class Item36 { - position[]={12863.644,85.280762,16739.199}; + position[]={12571.198,33.202263,16321.856}; name="Mission_3"; type="Empty"; colorName="ColorOrange"; }; class Item37 { - position[]={14719.545,17.91,16588.41}; + position[]={15903.801,45.815987,18170.334}; name="Mission_4"; type="Empty"; colorName="ColorOrange"; @@ -2437,42 +2537,42 @@ class Mission }; class Item39 { - position[]={22902.482,6.8000588,18832.326}; + position[]={19892.092,64.21077,17829.006}; name="Mission_7"; type="Empty"; colorName="ColorOrange"; }; class Item40 { - position[]={26832.408,27.07863,24353.201}; + position[]={26838.061,26.449696,24341.111}; name="Mission_8"; type="Empty"; colorName="ColorOrange"; }; class Item41 { - position[]={20944.896,25.394508,7337.4028}; + position[]={21197.471,18.571796,7365.332}; name="Mission_9"; type="Empty"; colorName="ColorOrange"; }; class Item42 { - position[]={10481.982,92.54425,8165.8809}; + position[]={12129.411,8.1706009,10499.287}; name="Mission_10"; type="Empty"; colorName="ColorOrange"; }; class Item43 { - position[]={2727.3538,15.386948,10029.145}; + position[]={3607.2749,15.698098,10276.05}; name="Mission_11"; type="Empty"; colorName="ColorOrange"; }; class Item44 { - position[]={9214.7344,16.21249,21595.523}; + position[]={9794.957,5.1698751,22320.566}; name="Mission_12"; type="Empty"; colorName="ColorOrange"; @@ -2493,7 +2593,7 @@ class Mission }; class Item47 { - position[]={14610.646,20.695858,23086.605}; + position[]={14311.896,97.153267,21831.371}; name="Mission_15"; type="Empty"; colorName="ColorOrange"; @@ -2507,21 +2607,21 @@ class Mission }; class Item49 { - position[]={20723.074,29.782133,10239.525}; + position[]={21215.496,1.9212902,10656.045}; name="Mission_17"; type="Empty"; colorName="ColorOrange"; }; class Item50 { - position[]={14253.941,4.9646177,13012.583}; + position[]={16720.473,10.761951,13549.766}; name="Mission_18"; type="Empty"; colorName="ColorOrange"; }; class Item51 { - position[]={8368.5674,13.81883,10719.636}; + position[]={9187.7529,109.82971,11440.142}; name="Mission_19"; type="Empty"; colorName="ColorOrange"; @@ -2933,7 +3033,7 @@ class Mission }; class Item109 { - position[]={15210.702,16.640888,11096.551}; + position[]={15209.023,16.645193,11099.742}; name="Mission_6"; type="Empty"; colorName="ColorOrange"; @@ -3300,63 +3400,63 @@ class Mission }; class Item146 { - position[]={18295.152,-6.7252245,8136.5732}; + position[]={15944.533,0.047720939,9703.75}; name="SunkenMission_0"; type="Empty"; colorName="ColorWhite"; }; class Item147 { - position[]={16985.289,-0.27175087,13616.465}; + position[]={15407.22,-0.029039871,14285.884}; name="SunkenMission_1"; type="Empty"; colorName="ColorWhite"; }; class Item148 { - position[]={9866.0479,0.014741103,11111.971}; + position[]={13667.835,-0.077187881,11895.832}; name="SunkenMission_2"; type="Empty"; colorName="ColorWhite"; }; class Item149 { - position[]={4992.7637,-0.020654676,9908.2881}; + position[]={13123.337,-0.04598859,9493.8418}; name="SunkenMission_3"; type="Empty"; colorName="ColorWhite"; }; class Item150 { - position[]={3505.4102,-0.023277842,11439.938}; + position[]={1934.9109,-0.01771117,10098.36}; name="SunkenMission_4"; type="Empty"; colorName="ColorWhite"; }; class Item151 { - position[]={3849.9155,0.00057628582,15028.444}; + position[]={3004.498,-0.049456656,13514.811}; name="SunkenMission_5"; type="Empty"; colorName="ColorWhite"; }; class Item152 { - position[]={5281.2344,0.23328479,22658.328}; + position[]={6277.4102,0.081939317,22660.176}; name="SunkenMission_6"; type="Empty"; colorName="ColorWhite"; }; class Item153 { - position[]={21207.197,0.20755874,20124.484}; + position[]={17599.158,-0.0033857706,18805.861}; name="SunkenMission_7"; type="Empty"; colorName="ColorWhite"; }; class Item154 { - position[]={24573.881,-0.0090859979,16154.248}; + position[]={23159.037,-0.01813677,24038.314}; name="SunkenMission_8"; type="Empty"; colorName="ColorWhite"; @@ -3509,25 +3609,102 @@ class Mission }; class Item175 { - position[]={3968.136,3.2309315,15051.626}; - name="VehStore5_landSpawn"; + position[]={3630.0696,0,10890.354}; + name="VehStore5_seaSpawn"; type="Empty"; colorName="ColorBlack"; }; class Item176 { - position[]={4001.2522,6.2997766,15050.635}; + position[]={3567.9629,39.942753,10713.431}; name="VehStore5_heliSpawn"; type="Empty"; colorName="ColorBlack"; }; class Item177 { - position[]={3922.1943,0,15060.141}; - name="VehStore5_seaSpawn"; + position[]={3620.4138,26.348558,10751.134}; + name="VehStore5_landSpawn"; + type="Empty"; + colorName="ColorBlack"; + }; + class Item178 + { + position[]={12412.901,24.3627,15579.696}; + name="GunStore5_objSpawn"; + type="Empty"; + colorName="ColorBlack"; + }; + class Item179 + { + position[]={5921.0864,224.48341,20138.652}; + name="VehStore6_heliSpawn"; type="Empty"; colorName="ColorBlack"; }; + class Item180 + { + position[]={5860.6528,223.75804,20135.232}; + name="VehStore6_landSpawn"; + type="Empty"; + colorName="ColorBlack"; + }; + class Item181 + { + position[]={24639.465,3.3892019,19003.693}; + name="Sell_Vehicle_Pad_Icon"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item182 + { + position[]={17480.107,45.464893,16461.695}; + name="Sell_Vehicle_Pad_Icon_1"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item183 + { + position[]={11720.034,54.899464,18277.547}; + name="Sell_Vehicle_Pad_Icon_2"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item184 + { + position[]={5630.0825,204.1638,19539.268}; + name="Sell_Vehicle_Pad_Icon_3"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item185 + { + position[]={14854.846,8.6200485,11052.31}; + name="Sell_Vehicle_Pad_Icon_4"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item186 + { + position[]={5949.0112,101.30753,12450.76}; + name="Sell_Vehicle_Pad_Icon_5"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item187 + { + position[]={18405.707,1.9096949,8170.5181}; + name="Sell_Vehicle_Pad_Icon_6"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; }; }; class Intro diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index d1d252a93..d96858b50 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -392,11 +392,6 @@ v_setupVehicleSavedVariables = { _variables pushBack ["A3W_missionVehicle", (_obj getVariable ["A3W_missionVehicle",false])]; - def(_r3f_log_disabled); - _r3f_log_disabled = _obj getVariable "R3F_LOG_disabled"; - if (defined(_r3f_log_disabled)) then { - _variables pushBack ["R3F_LOG_disabled", _r3f_log_disabled]; - }; def(_r3fSide); _r3fSide = _obj getVariable "R3F_Side"; diff --git a/server/default_config.sqf b/server/default_config.sqf index 351e92944..60cbaa843 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -8,9 +8,9 @@ // This file is overriden by the external file "A3Wasteland_settings\main_config.sqf" if present // General settings -A3W_startHour = 15; // In-game hour at mission start (0 to 23) -A3W_timeMultiplierDay = 1.0; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) -A3W_timeMultiplierNight = 1.0; // Sets the speed of time between 8 PM and 5 AM +A3W_startHour = 11; // In-game hour at mission start (0 to 23) +A3W_timeMultiplierDay = 2.5; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) +A3W_timeMultiplierNight = 2.0; // Sets the speed of time between 8 PM and 5 AM A3W_moonLight = 1; // Moon light during night (0 = no, 1 = yes) A3W_teamPlayersMap = 1; // Show all friendly players on the map at all times, regardless of difficulty level (0 = no, 1 = yes) A3W_globalVoiceWarnTimer = 5; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) @@ -23,33 +23,33 @@ A3W_spawnBeaconSpawnHeight = 1500; // Altitude in meters at which players will s A3W_showGunStoreStatus = 1; // Show enemy and friendly presence at gunstores on map (0 = no, 1 = yes) A3W_gunStoreIntruderWarning = 1; // Warn players in gunstore areas of enemy intruders (0 = no, 1 = yes) A3W_remoteBombStoreRadius = 75; // Prevent players from placing remote explosives within this distance from any store (0 = disabled) -A3W_vehiclePurchaseCooldown = 60; // Number of seconds to wait before allowing someone to purchase another vehicle, don't bother setting it too high because it can be bypassed by rejoining +A3W_vehiclePurchaseCooldown = 45; // Number of seconds to wait before allowing someone to purchase another vehicle, don't bother setting it too high because it can be bypassed by rejoining // Player settings -A3W_startingMoney = 100; // Amount of money that players start with +A3W_startingMoney = 1500; // Amount of money that players start with A3W_unlimitedStamina = 1; // Allow unlimited sprinting, jumping, etc. (0 = no, 1 = yes) - this also removes energy drinks from the mission A3W_bleedingTime = 60; // Time in seconds for which to allow revive after a critical injury (minimum 10 seconds) A3W_healthTime = 60*5; //seconds till death -A3W_hungerTime = 60*60; //seconds till starving -A3W_thirstTime = 60*50; //seconds till dehydrated +A3W_hungerTime = 60*80; //seconds till starving +A3W_thirstTime = 60*70; //seconds till dehydrated // Persistence settings A3W_playerSaving = 1; // Save player data like position, health, inventory, etc. (0 = no, 1 = yes) A3W_moneySaving = 1; // If playerSaving = 1, save player money amount (0 = no, 1 = yes) A3W_combatAbortDelay = 60; // If playerSaving = 1, delay in seconds for which to disable abort and respawn buttons after firing or being shot (0 = none) A3W_purchasedVehicleSaving = 1; // Save vehicles purchased at vehicle stores between server restarts (0 = no, 1 = yes) -A3W_missionVehicleSaving = 1; // Save vehicles captured from missions between server restarts (0 = no, 1 = yes) +A3W_missionVehicleSaving = 0; // Save vehicles captured from missions between server restarts (0 = no, 1 = yes) A3W_townVehicleSaving = 0; // Save vehicles captured from missions between server restarts (0 = no, 1 = yes) A3W_baseSaving = 1; // Save locked base parts between server restarts (0 = no, 1 = yes) A3W_boxSaving = 1; // Save locked weapon crates and their contents between server restarts (0 = no, 1 = yes) A3W_staticWeaponSaving = 1; // Save locked static weapons and their magazines between server restarts (0 = no, 1 = yes) -A3W_warchestSaving = 1; // Save warchest objects deployed by players between server restarts (0 = no, 1 = yes) -A3W_warchestMoneySaving = 1; // Save warchest team money between server restarts (0 = no, 1 = yes) +A3W_warchestSaving = 0; // Save warchest objects deployed by players between server restarts (0 = no, 1 = yes) +A3W_warchestMoneySaving = 0; // Save warchest team money between server restarts (0 = no, 1 = yes) A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts (0 = no, 1 = yes) A3W_objectLifetime = 5*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) -A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) -A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) +A3W_vehicleLifetime = 2*24; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) +A3W_vehicleMaxUnusedTime = 24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) PDB_PlayerFileID = "A3W_"; // Player savefile prefix (change this in case you run multiple servers from the same folder) PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in case you run multiple servers from the same folder) PDB_MessagesFileID = "A3W_"; // Messages savefile prefix (change this in case you run multiple servers from the same folder) @@ -58,15 +58,16 @@ PDB_HackerLogFileID = "A3W_"; // Hacker log savefile prefix (change this in PDB_PlayersListFileID = "A3W_"; // PlayerList savefile prefix (change this in case you run multiple servers from the same folder) -A3W_vehicle_saveInterval = 300; // Number of seconds between vehicle saves -A3W_object_saveInterval = 300; // Number of seconds between object saves -A3W_player_saveInterval = 300; // Number of seconds between player saves +A3W_vehicle_saveInterval = 1200; // Number of seconds between vehicle saves +A3W_object_saveInterval = 600; // Number of seconds between object saves +A3W_player_saveInterval = 600; // Number of seconds between player saves A3W_playersList_saveInterval = 120; // Number of seconds between player list saves // List of classes for vehicles that are saveable // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved -A3W_saveable_vehicles_list = ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank"]; -A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked unpon restore +A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; +A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore +A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) @@ -76,29 +77,29 @@ A3W_boatSpawning = 1; // If serverSpawning = 1, spawn boats at mark A3W_heliSpawning = 1; // If serverSpawning = 1, spawn helicopters in some towns and airfields (0 = no, 1 = yes) A3W_planeSpawning = 1; // If serverSpawning = 1, spawn planes at some airfields (0 = no, 1 = yes) A3W_boxSpawning = 0; // If serverSpawning = 1, spawn weapon crates in 50% towns (0 = no, 1 = yes) -A3W_baseBuilding = 1; // If serverSpawning = 1, spawn base parts in towns (0 = no, 1 = yes) +A3W_baseBuilding = 0; // If serverSpawning = 1, spawn base parts in towns (0 = no, 1 = yes) // Loot settings A3W_buildingLootWeapons = 0; // Spawn weapon loot in all buildings (0 = no, 1 = yes) -A3W_buildingLootSupplies = 1; // Spawn supply loot (backpacks & player items) in all buildings (0 = no, 1 = yes) -A3W_buildingLootChances = 25; // Chance percentage that loot will spawn at each spot in a building (0 to 100) +A3W_buildingLootSupplies = 0; // Spawn supply loot (backpacks & player items) in all buildings (0 = no, 1 = yes) +A3W_buildingLootChances = 0; // Chance percentage that loot will spawn at each spot in a building (0 to 100) A3W_vehicleLoot = 2; // Level of loot added to vehicles (0 = none, 1 = weapon OR items, 2 = weapon AND items, 3 = two weapons AND items) - 2 or 3 recommended if buildingLoot = 0 // Territory settings -A3W_territoryCaptureTime = 3*60; // Time in seconds needed to capture a territory +A3W_territoryCaptureTime = 2*60; // Time in seconds needed to capture a territory A3W_territoryPayroll = 1; // Periodically reward sides and indie groups based on how many territories they own (0 = no, 1 = yes) A3W_payrollInterval = 30*60; // Delay in seconds between each payroll -A3W_payrollAmount = 100; // Amount of money rewarded per territory on each payroll +A3W_payrollAmount = 400; // Amount of money rewarded per territory on each payroll // Mission settings A3W_serverMissions = 1; // Enable server missions (0 = no, 1 = yes) -A3W_missionsDifficulty = 0; // Missions difficulty (0 = normal, 1 = hard) -A3W_missionsQuantity = 6; // Number of missions running at the same time (0 to 6) +A3W_missionsDifficulty = 1; // Missions difficulty (0 = normal, 1 = hard) +A3W_missionsQuantity = 4; // Number of missions running at the same time (0 to 6) A3W_heliPatrolMissions = 1; // Enable missions involving flying helicopters piloted by AI (0 = no, 1 = yes) A3W_underWaterMissions = 1; // Enable underwater missions which require diving gear (0 = no, 1 = yes) -A3W_mainMissionDelay = 10*60; // Time in seconds between Main Missions +A3W_mainMissionDelay = 5*60; // Time in seconds between Main Missions A3W_mainMissionTimeout = 60*60; // Time in seconds that a Main Mission will run for, unless completed A3W_sideMissionDelay = 5*60; // Time in seconds between Side Missions -A3W_sideMissionTimeout = 45*60; // Time in seconds that a Side Mission will run for, unless completed -A3W_moneyMissionDelay = 15*60; // Time in seconds between Money Missions +A3W_sideMissionTimeout = 60*60; // Time in seconds that a Side Mission will run for, unless completed +A3W_moneyMissionDelay = 5*60; // Time in seconds between Money Missions A3W_moneyMissionTimeout = 60*60; // Time in seconds that a Money Mission will run for, unless completed diff --git a/server/functions/serverVars.sqf b/server/functions/serverVars.sqf index d645bd918..8fd9712ba 100644 --- a/server/functions/serverVars.sqf +++ b/server/functions/serverVars.sqf @@ -144,9 +144,7 @@ staticHeliList = //Object List - Random Planes. staticPlaneList = [ - "B_Plane_CAS_01_F", - "O_Plane_CAS_02_F", - "I_Plane_Fighter_03_CAS_F" + "I_Plane_Fighter_03_AA_F" ]; //Random Weapon List - Change this to what you want to spawn in cars. @@ -196,10 +194,7 @@ vehicleAddition = "optic_Holosight_smg", "acc_flashlight", "acc_pointer_IR", - "Medikit", - "Medikit", - "FirstAidKit", - "ToolKit" + "FirstAidKit" ]; vehicleAddition2 = diff --git a/server/functions/setMissionSkill.sqf b/server/functions/setMissionSkill.sqf index 7478beaf1..a41eabf16 100644 --- a/server/functions/setMissionSkill.sqf +++ b/server/functions/setMissionSkill.sqf @@ -14,13 +14,13 @@ _unit = _this; if (["A3W_missionsDifficulty"] call isConfigOn) then { - _skill = 0.5; // Default skill for ARMA3 is 0.5 + _skill = 1; // Default skill for ARMA3 is 0.5 _accuracy = 1; // Relative multiplier; absolute default accuracy for ARMA3 is 0.25 } else { - _skill = 0.33; - _accuracy = 0.75; + _skill = 0.75; + _accuracy = 1; }; _unit allowFleeing 0; diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 618950699..9713e0d2a 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -128,7 +128,6 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _objectID = netId _object; _object setVariable ["A3W_purchasedStoreObject", true]; - _object setVariable ["ownerUID", getPlayerUID _player, true]; [_object] call v_trackVehicle; @@ -160,11 +159,12 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore }; // Spawn remaining calls to speed up delivery confirmation - [_object, _safePos, _marker] spawn + [_object, _safePos, _marker, _player] spawn { _object = _this select 0; _safePos = _this select 1; _marker = _this select 2; + _player = _this select 3; _isDamageable = !(_object isKindOf "ReammoBox_F"); // ({_object isKindOf _x} count ["AllVehicles", "Lamps_base_F", "Cargo_Patrol_base_F", "Cargo_Tower_base_F"] > 0); @@ -177,7 +177,14 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object setPosATL [_safePos select 0, _safePos select 1, 0.05]; _object setVelocity [0,0,0.01]; // _object spawn cleanVehicleWreck; - _object setVariable ["A3W_purchasedVehicle", true]; + if ({_object isKindOf _x} count A3W_autosave_vehicles_list > 0) then { + [[netId _object, 2], "A3W_fnc_setLockState", _object] call A3W_fnc_MP; // Lock + _object setVariable ["objectLocked", true, true]; + _object setVariable ["R3F_LOG_disabled",true,true]; + _object setVariable ["A3W_purchasedVehicle", true]; + _object setVariable ["ownerUID", getPlayerUID _player, true]; + _object setVariable ["ownerN", name _player, true]; + }; }; if (_object isKindOf "Plane") then diff --git a/server/missions/factoryMethods/createUnits/createRandomSoldier.sqf b/server/missions/factoryMethods/createUnits/createRandomSoldier.sqf index 9f6b27688..7ebe913da 100644 --- a/server/missions/factoryMethods/createUnits/createRandomSoldier.sqf +++ b/server/missions/factoryMethods/createUnits/createRandomSoldier.sqf @@ -18,9 +18,9 @@ if (!isServer) exitWith {}; private ["_soldierTypes", "_uniformTypes", "_vestTypes", "_weaponTypes", "_group", "_position", "_rank", "_soldier"]; _soldierTypes = ["C_man_polo_1_F", "C_man_polo_2_F", "C_man_polo_3_F", "C_man_polo_4_F", "C_man_polo_5_F", "C_man_polo_6_F"]; -_uniformTypes = ["U_B_CombatUniform_mcam_vest", "U_B_CombatUniform_mcam_tshirt" ,"U_B_CombatUniform_mcam"]; +_uniformTypes = ["U_IG_Guerilla1_1","U_IG_Guerilla2_3","U_IG_Guerilla2_1"]; _vestTypes = ["V_PlateCarrier1_rgr","V_PlateCarrier2_rgr"]; -_weaponTypes = ["arifle_TRG20_F","LMG_Mk200_F","arifle_MXM_F","arifle_MX_GL_F"]; +_weaponTypes = ["LMG_Mk200_MRCO_F","srifle_EBR_ARCO_pointer_snds_F","arifle_MXM_Hamr_pointer_F","arifle_Katiba_ARCO_pointer_F"]; _group = _this select 0; _position = _this select 1; diff --git a/server/missions/factoryMethods/createUnits/createRandomSoldierC.sqf b/server/missions/factoryMethods/createUnits/createRandomSoldierC.sqf index 9bbe41b77..2284e9254 100644 --- a/server/missions/factoryMethods/createUnits/createRandomSoldierC.sqf +++ b/server/missions/factoryMethods/createUnits/createRandomSoldierC.sqf @@ -8,11 +8,11 @@ if (!isServer) exitWith {}; private ["_soldierTypes", "_weaponTypes", "_group", "_position", "_soldier"]; _soldierTypes = ["C_man_1_3_F","C_man_polo_1_F","C_man_polo_2_F","C_man_polo_3_F","C_man_polo_4_F","C_man_polo_5_F"]; -_weaponTypes = ["arifle_TRG20_F","LMG_Mk200_F","arifle_MXM_F","arifle_MX_GL_F"]; +_weaponTypes = ["srifle_EBR_ARCO_pointer_F","arifle_MXM_Hamr_pointer_F","srifle_EBR_ARCO_pointer_snds_F","LMG_Mk200_MRCO_F"]; _group = _this select 0; _position = _this select 1; _soldier = _group createUnit [_soldierTypes call BIS_fnc_selectRandom, _position, [], 0, "NONE"]; -_soldier addUniform "U_B_Ghilliesuit"; +_soldier addUniform "U_I_GhillieSuit"; [_soldier, _weaponTypes call BIS_fnc_selectRandom, 3] call BIS_fnc_addWeapon; _soldier spawn refillPrimaryAmmo; diff --git a/server/missions/factoryMethods/createUnits/customGroup.sqf b/server/missions/factoryMethods/createUnits/customGroup.sqf index 49832e0bb..17e1b9e75 100644 --- a/server/missions/factoryMethods/createUnits/customGroup.sqf +++ b/server/missions/factoryMethods/createUnits/customGroup.sqf @@ -23,6 +23,140 @@ _unitTypes = "C_man_polo_6_F", "C_man_polo_6_F_euro", "C_man_polo_6_F_afro", "C_man_polo_6_F_asia" ]; +grenadier_loadout = { + private["_unit"]; + _unit = _this; + _unit addUniform "U_IG_Guerilla1_1"; + _unit addMagazine "1Rnd_HE_Grenade_shell"; + _unit addMagazine "30Rnd_65x39_caseless_mag"; + _unit addWeapon "arifle_MX_GL_F"; + _unit addMagazine "30Rnd_65x39_caseless_mag"; + _unit addMagazine "30Rnd_65x39_caseless_mag"; + _unit addMagazine "1Rnd_HE_Grenade_shell"; + _unit addMagazine "1Rnd_HE_Grenade_shell"; +}; +support_loadout = { + private["_unit"]; + _unit = _this; + _unit addUniform "U_IG_Guerilla1_1"; + _unit addBackpack "B_Carryall_oli"; + _unit addMagazine "200Rnd_65x39_cased_Box"; + _unit addMagazine "200Rnd_65x39_cased_Box"; + _unit addWeapon "LMG_Mk200_MRCO_F"; + _unit addUniform "U_IG_Guerilla1_1"; + _unit addMagazine "200Rnd_65x39_cased_Box"; + _unit addItem "FirstAidKit"; +}; +sniper_loadout = { + private["_unit"]; + _unit = _this; + _unit addUniform "U_I_GhillieSuit"; + _unit addBackpack "B_AssaultPack_rgr"; + _unit addMagazine "30Rnd_65x39_caseless_mag"; + _unit addMagazine "30Rnd_65x39_caseless_mag"; + _unit addMagazine "30Rnd_65x39_caseless_mag"; + _unit addMagazine "30Rnd_65x39_caseless_mag"; + _unit addWeapon "arifle_MXM_Hamr_pointer_F"; + _unit addPrimaryWeaponItem "muzzle_snds_H"; + _unit addMagazine "30Rnd_65x39_caseless_mag"; + _unit addItem "Rangefinder"; + _unit assignItem "Rangefinder"; + _unit addItem "ItemGps"; + _unit assignItem "ItemGps"; + _unit addItem "ItemCompass"; + _unit assignItem "ItemCompass"; +}; +aa_loadout = { + private["_unit"]; + _unit = _this; + _unit addUniform "U_IG_Guerilla1_1"; + _unit addMagazine "30Rnd_9x21_Mag"; + _unit addMagazine "30Rnd_9x21_Mag"; + _unit addMagazine "30Rnd_9x21_Mag"; + _unit addMagazine "30Rnd_9x21_Mag"; + _unit addWeapon "SMG_02_ARCO_pointg_F"; + _unit addBackpack "B_Carryall_oli"; + _unit addMagazine "Titan_AA"; + _unit addWeapon "launch_Titan_F"; + _unit addMagazine "Titan_AA"; +}; +at_loadout = { + private["_unit"]; + _unit = _this; + _unit addUniform "U_IG_Guerilla2_1"; + _unit addMagazine "30Rnd_45ACP_Mag_SMG_01"; + _unit addMagazine "30Rnd_45ACP_Mag_SMG_01"; + _unit addMagazine "30Rnd_45ACP_Mag_SMG_01"; + _unit addMagazine "30Rnd_45ACP_Mag_SMG_01"; + _unit addWeapon "SMG_01_Holo_pointer_snds_F"; + _unit addBackpack "B_Carryall_oli"; + _unit addMagazine "Titan_AT"; + _unit addWeapon "launch_Titan_short_F"; + _unit addMagazine "Titan_AT"; + _unit addMagazine "Titan_AT"; +}; +leader_loadout = { + private["_unit"]; + _unit = _this; + _unit addUniform "U_IG_leader"; + _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; + _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; + _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; + _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; + _unit addWeapon "arifle_Katiba_ARCO_pointer_F"; + _unit addBackpack "B_Carryall_oli"; + _unit addMagazine "Titan_AT"; + _unit addWeapon "launch_Titan_short_F"; + _unit addMagazine "Titan_AT"; + _unit addItem "ItemGps"; + _unit assignItem "ItemGps"; + _unit addItem "ItemCompass"; + _unit assignItem "ItemCompass"; +}; +rifleman_loadout = { + private["_unit"]; + _unit = _this; + _unit addUniform "U_IG_Guerilla2_3"; + _unit addMagazine "20Rnd_762x51_Mag"; + _unit addMagazine "20Rnd_762x51_Mag"; + _unit addBackpack "B_AssaultPack_rgr"; + _unit addMagazine "20Rnd_762x51_Mag"; + _unit addMagazine "20Rnd_762x51_Mag"; + _unit addWeapon "srifle_EBR_ARCO_pointer_snds_F"; + _unit addMagazine "20Rnd_762x51_Mag"; +}; +weighted_list = +[ + [1, sniper_loadout], + [1, aa_loadout], + [0.9, at_loadout], + [1.1, support_loadout], + [0.5, rifleman_loadout], + [0.5, grenadier_loadout] +]; +get_weighted_loadout = { + private["_items"]; + _items = weighted_list; + //calculate the total weight + private["_totalSum", "_weight"]; + _totalSum = 0; + { + _weight = _x select 0; + _totalSum = _weight + _totalSum; + } forEach _items; + //pick at random from the distribution + private["_index", "_i", "_item", "_sum"]; + _index = random _totalSum; + _sum = 0; + _i = 0; + while {_sum < _index} do { + _item = _items select _i; + _weight = _item select 0; + _sum = _sum + _weight; + _i = _i + 1; + }; + ((_items select (_i - 1)) select 1) +}; for "_i" from 1 to _nbUnits do { _uPos = _pos vectorAdd ([[random _radius, 0, 0], random 360] call BIS_fnc_rotateVector2D); @@ -38,47 +172,19 @@ for "_i" from 1 to _nbUnits do removeGoggles _unit; _unit addVest "V_PlateCarrier1_rgr"; - _unit addMagazine "30Rnd_556x45_Stanag"; - _unit addMagazine "30Rnd_556x45_Stanag"; - _unit addMagazine "30Rnd_556x45_Stanag"; - switch (true) do - { - // Grenadier every 3 units - case (_i % 3 == 0): - { - _unit addUniform "U_B_CombatUniform_mcam_vest"; - _unit addMagazine "1Rnd_HE_Grenade_shell"; - _unit addWeapon "arifle_TRG21_GL_F"; - _unit addMagazine "1Rnd_HE_Grenade_shell"; - _unit addMagazine "1Rnd_HE_Grenade_shell"; - }; - // RPG every 7 units, starting from second one - case ((_i + 5) % 7 == 0): - { - _unit addUniform "U_B_CombatUniform_mcam_tshirt"; - _unit addBackpack "B_Kitbag_mcamo"; - _unit addWeapon "arifle_TRG20_F"; - _unit addMagazine "Titan_AT"; - _unit addWeapon "launch_Titan_short_F"; - _unit addMagazine "Titan_AT"; - _unit addMagazine "Titan_AT"; - }; - // Rifleman - default - { - _unit addUniform "U_B_CombatUniform_mcam"; + _unit addItem "NVGoggles"; + _unit assignItem "NVGoggles"; + _unit addItem "FirstAidKit"; - if (_unit == leader _group) then - { - _unit addWeapon "arifle_TRG21_F"; + if (_unit == leader _group) then { + _unit call leader_loadout; _unit setRank "SERGEANT"; } - else - { - _unit addWeapon "arifle_TRG20_F"; - }; - }; + else { + private["_loadout"]; + _loadout = call get_weighted_loadout; + _unit call _loadout; }; _unit addRating 1e11; diff --git a/server/missions/factoryMethods/createUnits/largeDivers.sqf b/server/missions/factoryMethods/createUnits/largeDivers.sqf index 5e8005b9f..bc7d90746 100644 --- a/server/missions/factoryMethods/createUnits/largeDivers.sqf +++ b/server/missions/factoryMethods/createUnits/largeDivers.sqf @@ -15,68 +15,92 @@ _pos = _this select 1; // Rifleman _leader = _group createUnit ["C_man_polo_1_F", [(_pos select 0) + 10, _pos select 1, 0], [], 1, "Form"]; removeAllAssignedItems _leader; -_leader addVest "V_RebreatherB"; -_leader addUniform "U_B_Wetsuit"; +removeUniform _leader; +_leader addVest "V_RebreatherIA"; +_leader addUniform "U_I_Wetsuit"; _leader addGoggles "G_Diving"; _leader addMagazine "20Rnd_556x45_UW_Mag"; _leader addWeapon "arifle_SDAR_F"; _leader addMagazine "20Rnd_556x45_UW_Mag"; _leader addMagazine "20Rnd_556x45_UW_Mag"; +_leader addItem "NVGoggles"; +_leader assignItem "NVGoggles"; +_leader addItem "FirstAidKit"; // Rifleman _man2 = _group createUnit ["C_man_polo_2_F", [(_pos select 0) + 10, _pos select 1, 0], [], 1, "Form"]; removeAllAssignedItems _man2; -_man2 addUniform "U_B_Wetsuit"; -_man2 addVest "V_RebreatherB"; +removeUniform _man2; +_man2 addVest "V_RebreatherIA"; +_man2 addUniform "U_I_Wetsuit"; _man2 addGoggles "G_Diving"; _man2 addMagazine "20Rnd_556x45_UW_Mag"; _man2 addWeapon "arifle_SDAR_F"; _man2 addMagazine "20Rnd_556x45_UW_Mag"; _man2 addMagazine "20Rnd_556x45_UW_Mag"; +_man2 addItem "NVGoggles"; +_man2 assignItem "NVGoggles"; +_man2 addItem "FirstAidKit"; // Rifleman _man3 = _group createUnit ["C_man_polo_3_F", [(_pos select 0) + 10, _pos select 1, 0], [], 1, "Form"]; removeAllAssignedItems _man3; -_man3 addUniform "U_B_Wetsuit"; -_man3 addVest "V_RebreatherB"; +removeUniform _man3; +_man3 addVest "V_RebreatherIA"; +_man3 addUniform "U_I_Wetsuit"; _man3 addGoggles "G_Diving"; _man3 addMagazine "20Rnd_556x45_UW_Mag"; _man3 addWeapon "arifle_SDAR_F"; _man3 addMagazine "20Rnd_556x45_UW_Mag"; _man3 addMagazine "20Rnd_556x45_UW_Mag"; +_man3 addItem "NVGoggles"; +_man3 assignItem "NVGoggles"; +_man3 addItem "FirstAidKit"; // Rifleman _man4 = _group createUnit ["C_man_polo_4_F", [(_pos select 0) + 10, _pos select 1, 0], [], 1, "Form"]; removeAllAssignedItems _man4; -_man4 addUniform "U_B_Wetsuit"; -_man4 addVest "V_RebreatherB"; +removeUniform _man4; +_man4 addVest "V_RebreatherIA"; +_man4 addUniform "U_I_Wetsuit"; _man4 addGoggles "G_Diving"; _man4 addMagazine "20Rnd_556x45_UW_Mag"; _man4 addWeapon "arifle_SDAR_F"; _man4 addMagazine "20Rnd_556x45_UW_Mag"; _man4 addMagazine "20Rnd_556x45_UW_Mag"; +_man4 addItem "NVGoggles"; +_man4 assignItem "NVGoggles"; +_man4 addItem "FirstAidKit"; // Rifleman _man5 = _group createUnit ["C_man_polo_5_F", [(_pos select 0) + 10, _pos select 1, 0], [], 1, "Form"]; removeAllAssignedItems _man5; -_man5 addUniform "U_B_Wetsuit"; -_man5 addVest "V_RebreatherB"; +removeUniform _man5; +_man5 addVest "V_RebreatherIA"; +_man5 addUniform "U_I_Wetsuit"; _man5 addGoggles "G_Diving"; _man5 addMagazine "20Rnd_556x45_UW_Mag"; _man5 addWeapon "arifle_SDAR_F"; _man5 addMagazine "20Rnd_556x45_UW_Mag"; _man5 addMagazine "20Rnd_556x45_UW_Mag"; +_man5 addItem "NVGoggles"; +_man5 assignItem "NVGoggles"; +_man5 addItem "FirstAidKit"; // Rifleman _man6 = _group createUnit ["C_man_polo_4_F", [(_pos select 0) + 10, _pos select 1, 0], [], 1, "Form"]; removeAllAssignedItems _man6; -_man6 addUniform "U_B_Wetsuit"; -_man6 addVest "V_RebreatherB"; +removeUniform _man6; +_man6 addVest "V_RebreatherIA"; +_man6 addUniform "U_I_Wetsuit"; _man6 addGoggles "G_Diving"; _man6 addMagazine "20Rnd_556x45_UW_Mag"; _man6 addWeapon "arifle_SDAR_F"; _man6 addMagazine "20Rnd_556x45_UW_Mag"; _man6 addMagazine "20Rnd_556x45_UW_Mag"; +_man6 addItem "NVGoggles"; +_man6 assignItem "NVGoggles"; +_man6 addItem "FirstAidKit"; _leader = leader _group; diff --git a/server/missions/factoryMethods/createUnits/smallDivers.sqf b/server/missions/factoryMethods/createUnits/smallDivers.sqf index 4f5b95b02..6c79d83d6 100644 --- a/server/missions/factoryMethods/createUnits/smallDivers.sqf +++ b/server/missions/factoryMethods/createUnits/smallDivers.sqf @@ -15,35 +15,47 @@ _pos = _this select 1; // Leader _leader = _group createUnit ["C_man_polo_1_F", [(_pos select 0) + 10, _pos select 1, 0], [], 1, "Form"]; removeAllAssignedItems _leader; -_leader addVest "V_RebreatherB"; -_leader addUniform "U_B_Wetsuit"; +removeUniform _leader; +_leader addVest "V_RebreatherIA"; +_leader addUniform "U_I_Wetsuit"; _leader addGoggles "G_Diving"; _leader addMagazine "20Rnd_556x45_UW_Mag"; _leader addWeapon "arifle_SDAR_F"; _leader addMagazine "20Rnd_556x45_UW_Mag"; _leader addMagazine "20Rnd_556x45_UW_Mag"; +_leader addItem "NVGoggles"; +_leader assignItem "NVGoggles"; +_leader addItem "FirstAidKit"; // Rifleman _man2 = _group createUnit ["C_man_polo_2_F", [(_pos select 0) + 10, _pos select 1, 0], [], 1, "Form"]; removeAllAssignedItems _man2; -_man2 addUniform "U_B_Wetsuit"; -_man2 addVest "V_RebreatherB"; +removeUniform _man2; +_man2 addVest "V_RebreatherIA"; +_man2 addUniform "U_I_Wetsuit"; _man2 addGoggles "G_Diving"; _man2 addMagazine "20Rnd_556x45_UW_Mag"; _man2 addWeapon "arifle_SDAR_F"; _man2 addMagazine "20Rnd_556x45_UW_Mag"; _man2 addMagazine "20Rnd_556x45_UW_Mag"; +_man2 addItem "NVGoggles"; +_man2 assignItem "NVGoggles"; +_man2 addItem "FirstAidKit"; // Rifleman _man3 = _group createUnit ["C_man_polo_3_F", [(_pos select 0) + 10, _pos select 1, 0], [], 1, "Form"]; removeAllAssignedItems _man3; -_man3 addUniform "U_B_Wetsuit"; -_man3 addVest "V_RebreatherB"; +removeUniform _man3; +_man3 addVest "V_RebreatherIA"; +_man3 addUniform "U_I_Wetsuit"; _man3 addGoggles "G_Diving"; _man3 addMagazine "20Rnd_556x45_UW_Mag"; _man3 addWeapon "arifle_SDAR_F"; _man3 addMagazine "20Rnd_556x45_UW_Mag"; _man3 addMagazine "20Rnd_556x45_UW_Mag"; +_man3 addItem "NVGoggles"; +_man3 assignItem "NVGoggles"; +_man3 addItem "FirstAidKit"; _leader = leader _group; diff --git a/server/missions/moneyMissions/mission_MoneyShipment.sqf b/server/missions/moneyMissions/mission_MoneyShipment.sqf index de7f9e7d6..f421a00fc 100644 --- a/server/missions/moneyMissions/mission_MoneyShipment.sqf +++ b/server/missions/moneyMissions/mission_MoneyShipment.sqf @@ -44,7 +44,7 @@ _setupVars = // Medium [ "Medium Money Shipment", // Marker text - 50000, // Money + 35000, // Money [ [ // NATO convoy ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F"], // Veh 1 @@ -66,7 +66,7 @@ _setupVars = // Hard [ "Large Money Shipment", // Marker text - 75000, // Money + 50000, // Money [ [ // NATO convoy ["B_APC_Wheeled_01_cannon_F", "B_APC_Tracked_01_rcws_F", "B_APC_Tracked_01_AA_F"], // Veh 1 @@ -88,7 +88,7 @@ _setupVars = // Extreme [ "Heavy Money Shipment", // Marker text - 100000, // Money + 75000, // Money [ [ // NATO convoy ["B_APC_Wheeled_01_cannon_F", "B_APC_Tracked_01_rcws_F", "B_APC_Tracked_01_AA_F", "B_MBT_01_cannon_F", "B_MBT_01_TUSK_F"], // Veh 1 diff --git a/server/missions/moneyMissions/mission_SunkenTreasure.sqf b/server/missions/moneyMissions/mission_SunkenTreasure.sqf index 25e71d199..3062ccf76 100644 --- a/server/missions/moneyMissions/mission_SunkenTreasure.sqf +++ b/server/missions/moneyMissions/mission_SunkenTreasure.sqf @@ -54,7 +54,7 @@ _setupObjects = [_vehicle, _aiGroup] spawn checkMissionVehicleLock; _missionPicture = getText (configFile >> "CfgVehicles" >> _vehicleClass >> "picture"); - _missionHintText = format ["A treasure containing $25,000 and weapons is being recovered.
If you want to capture it, you will need diving gear and an underwater weapon.", moneyMissionColor]; + _missionHintText = format ["A treasure containing $40,000 and weapons is being recovered.
If you want to capture it, you will need diving gear and an underwater weapon.", moneyMissionColor]; }; _waitUntilMarkerPos = nil; @@ -78,7 +78,7 @@ _successExec = // Give the rewards { - _x setVariable ["cmoney", 2500, true]; + _x setVariable ["cmoney", 4000, true]; _x setVariable ["owner", "world", true]; } forEach _cashObjects; diff --git a/server/missions/setupMissionArrays.sqf b/server/missions/setupMissionArrays.sqf index 3b40e6782..9d7dd87fa 100644 --- a/server/missions/setupMissionArrays.sqf +++ b/server/missions/setupMissionArrays.sqf @@ -9,10 +9,10 @@ if (!isServer) exitWith {}; MainMissions = [ // Mission filename, weight - ["mission_ArmedDiversquad", 1], - ["mission_Coastal_Convoy", 1], + ["mission_ArmedDiversquad", 0.1], + ["mission_Coastal_Convoy", 0.1], ["mission_Convoy", 1], - ["mission_HostileHeliFormation", 0.5], + ["mission_HostileHeliFormation", 0.1], ["mission_APC", 1], ["mission_MBT", 1], ["mission_LightArmVeh", 1], @@ -22,9 +22,9 @@ MainMissions = SideMissions = [ - ["mission_HostileHelicopter", 0.5], + ["mission_HostileHelicopter", 0.1], ["mission_MiniConvoy", 1], - ["mission_SunkenSupplies", 1], + ["mission_SunkenSupplies", 0.1], //["mission_AirWreck", 1.5], //["mission_WepCache", 1.5], ["mission_Outpost", 3], diff --git a/sounds/carlock.ogg b/sounds/carlock.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7c98880840fbea7da37c9f8ad37479c8750ea1ef GIT binary patch literal 22198 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 X?|$>#Km7c|KFnbn8UU^-0MIo6H6_3( literal 0 HcmV?d00001 diff --git a/storeConfig.sqf b/storeConfig.sqf index 0c59bb826..475ff7ace 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -65,10 +65,10 @@ rifleArray = compileFinal str ["Mk18 ABR Rifle", "srifle_EBR_F", 450], // Sniper Rifles - ["M320 LRR Sniper", "srifle_LRR_SOS_F", 1000], - ["M320 LRR Sniper (Camo)", "srifle_LRR_camo_SOS_F", 1150], - ["GM6 Lynx Sniper", "srifle_GM6_SOS_F", 1100], - ["GM6 Lynx Sniper (camo)", "srifle_GM6_camo_SOS_F", 1250] + ["M320 LRR Sniper", "srifle_LRR_SOS_F", 1500], + ["M320 LRR Sniper (Camo)", "srifle_LRR_camo_SOS_F", 1650], + ["GM6 Lynx Sniper", "srifle_GM6_SOS_F", 2000], + ["GM6 Lynx Sniper (camo)", "srifle_GM6_camo_SOS_F", 2150] ]; lmgArray = compileFinal str @@ -87,10 +87,10 @@ shotgunArray = compileFinal str launcherArray = compileFinal str [ ["RPG-42 Alamut", "launch_RPG32_F", 400], - ["PCML", "launch_NLAW_F", 600], - ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 500], - ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 500], - ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 500], + ["PCML", "launch_NLAW_F", 500], + ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 750], + ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 750], + ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 750], ["Titan MPRL AA (Desert)", "launch_Titan_F", 600], ["Titan MPRL AA (Hex)", "launch_O_Titan_F", 600], ["Titan MPRL AA (Digi)", "launch_I_Titan_F", 600] @@ -101,9 +101,9 @@ allGunStoreFirearms = compileFinal str (call pistolArray + call smgArray + call staticGunsArray = compileFinal str [ // ["Vehicle Ammo Crate", "Box_NATO_AmmoVeh_F", 2500], - ["Static Titan AT 4Rnd (NATO)", "B_static_AT_F", 2500], // Static launchers only have 4 ammo, hence the low price - ["Static Titan AT 4Rnd (CSAT)", "O_static_AT_F", 2500], - ["Static Titan AT 4Rnd (AAF)", "I_static_AT_F", 2500], + ["Static Titan AT 4Rnd (NATO)", "B_static_AT_F", 3000], // Static launchers only have 4 ammo, hence the low price + ["Static Titan AT 4Rnd (CSAT)", "O_static_AT_F", 3000], + ["Static Titan AT 4Rnd (AAF)", "I_static_AT_F", 3000], ["Static Titan AA 4Rnd (NATO)", "B_static_AA_F", 3000], ["Static Titan AA 4Rnd (CSAT)", "O_static_AA_F", 3000], ["Static Titan AA 4Rnd (AAF)", "I_static_AA_F", 3000], @@ -179,13 +179,13 @@ ammoArray = compileFinal str ["7.62mm 20Rnd Mag", "20Rnd_762x51_Mag", 25], ["7.62mm 150Rnd Box", "150Rnd_762x51_Box", 150], ["7.62mm 150Rnd Tracer (Green) Box", "150Rnd_762x51_Box_Tracer", 125], - [".408 7Rnd Cheetah Mag", "7Rnd_408_Mag", 50], - ["12.7mm 5Rnd Mag", "5Rnd_127x108_Mag", 50], - ["12.7mm 5Rnd Armor-Piercing Mag", "5Rnd_127x108_APDS_Mag", 60], + [".408 7Rnd Cheetah Mag", "7Rnd_408_Mag", 100], + ["12.7mm 5Rnd Mag", "5Rnd_127x108_Mag", 100], + ["12.7mm 5Rnd Armor-Piercing Mag", "5Rnd_127x108_APDS_Mag", 150], ["RPG-42 Anti-Tank Rocket", "RPG32_F", 250], // Direct damage: high | Splash damage: low | Guidance: none ["RPG-42 High-Explosive Rocket", "RPG32_HE_F", 250], // Direct damage: medium | Splash damage: medium | Guidance: none - ["PCML Anti-Tank Missile", "NLAW_F", 400], // Direct damage: very high | Splash damage: low | Guidance: laser, ground vehicles - ["Titan Anti-Tank Missile", "Titan_AT", 350], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles + ["PCML Anti-Tank Missile", "NLAW_F", 350], // Direct damage: very high | Splash damage: low | Guidance: laser, ground vehicles + ["Titan Anti-Tank Missile", "Titan_AT", 450], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles ["Titan Anti-Personnel Missile", "Titan_AP", 350], // Direct damage: low | Splash damage: high | Guidance: mouse, laser ["Titan Anti-Air Missile", "Titan_AA", 350], // Direct damage: low | Splash damage: medium | Guidance: aircraft ["40mm HE Grenade Round", "1Rnd_HE_Grenade_shell", 125], @@ -586,6 +586,7 @@ landArray = compileFinal str ["Offroad", "C_Offroad_01_F", 1100, "vehicle"], ["Offroad Camo", "B_G_Offroad_01_F", 1250, "vehicle"], ["Offroad Repair", "C_Offroad_01_repair_F", 1500, "vehicle"], + ["Offroad Repair Camo", "B_G_Offroad_01_repair_F", 1750, "vehicle"], ["Offroad HMG", "B_G_Offroad_01_armed_F", 2500, "vehicle"], ["Truck", "C_Van_01_transport_F", 700, "vehicle"], @@ -593,6 +594,7 @@ landArray = compileFinal str ["Truck Box", "C_Van_01_box_F", 900, "vehicle"], ["Fuel Truck", "C_Van_01_fuel_F", 2000, "vehicle"], ["Fuel Truck (Camo)", "B_G_Van_01_fuel_F", 2100, "vehicle"], + ["Resupply Truck", "O_Truck_03_device_F", 4000, "vehicle"], ["HEMTT Tractor", "B_Truck_01_mover_F", 4000, "vehicle"], ["HEMTT Box", "B_Truck_01_box_F", 5000, "vehicle"], @@ -601,22 +603,22 @@ landArray = compileFinal str ["HEMTT Fuel", "B_Truck_01_fuel_F", 9000, "vehicle"], ["HEMTT Medical", "B_Truck_01_medical_F", 10000, "vehicle"], ["HEMTT Repair", "B_Truck_01_Repair_F", 12500, "vehicle"], - ["HEMTT Ammo", "B_Truck_01_ammo_F", 27500, "vehicle"], + //["HEMTT Ammo", "B_Truck_01_ammo_F", 27500, "vehicle"], - ["Tempest Device", "O_Truck_03_device_F", 4000, "vehicle"], + //["Tempest Device", "O_Truck_03_device_F", 4000, "vehicle"], ["Tempest Transport", "O_Truck_03_transport_F", 6000, "vehicle"], ["Tempest Covered", "O_Truck_03_covered_F", 7500, "vehicle"], ["Tempest Fuel", "O_Truck_03_fuel_F", 9000, "vehicle"], ["Tempest Medical", "O_Truck_03_medical_F", 10000, "vehicle"], ["Tempest Repair", "O_Truck_03_repair_F", 12500, "vehicle"], - ["Tempest Ammo", "O_Truck_03_ammo_F", 27500, "vehicle"], + //["Tempest Ammo", "O_Truck_03_ammo_F", 27500, "vehicle"], ["Zamak Transport", "I_Truck_02_transport_F", 4000, "vehicle"], ["Zamak Covered", "I_Truck_02_covered_F", 5000, "vehicle"], ["Zamak Fuel", "I_Truck_02_fuel_F", 7500, "vehicle"], ["Zamak Medical", "I_Truck_02_medical_F", 9000, "vehicle"], ["Zamak Repair", "I_Truck_02_box_F", 10000, "vehicle"], - ["Zamak Ammo", "I_Truck_02_ammo_F", 25000, "vehicle"], + //["Zamak Ammo", "I_Truck_02_ammo_F", 25000, "vehicle"], ["UGV Stomper (NATO)", "B_UGV_01_F", 2500, "vehicle"], ["UGV Stomper RCWS (NATO)", "B_UGV_01_rcws_F", 15000, "vehicle"], @@ -674,7 +676,7 @@ helicoptersArray = compileFinal str ["Mi-290 Taru (Medical) [DLC]", "O_Heli_Transport_04_medevac_F",12500, "vehicle"], ["Mi-290 Taru (Repair) [DLC]", "O_Heli_Transport_04_repair_F", 15000, "vehicle"], - ["Mi-290 Taru (Ammo) [DLC]", "O_Heli_Transport_04_ammo_F", 25000, "vehicle"], + //["Mi-290 Taru (Ammo) [DLC]", "O_Heli_Transport_04_ammo_F", 25000, "vehicle"], ["UH-80 Ghost Hawk (Black)", "B_Heli_Transport_01_F", 25000, "vehicle"], // UH-60 Stealth with 2 side miniguns ["UH-80 Ghost Hawk (Green)", "B_Heli_Transport_01_camo_F", 25000, "vehicle"], // UH-60 Stealth with 2 side miniguns (green camo) @@ -691,14 +693,14 @@ helicoptersArray = compileFinal str planesArray = compileFinal str [ ["A-143 Buzzard AA", "I_Plane_Fighter_03_AA_F", 40000, "vehicle"], - ["A-143 Buzzard CAS", "I_Plane_Fighter_03_CAS_F", 45000, "vehicle"], - ["A-164 Wipeout CAS", "B_Plane_CAS_01_F", 60000, "vehicle"], - ["To-199 Neophron CAS", "O_Plane_CAS_02_F", 60000, "vehicle"], - ["MQ4A Greyhawk ATGM UAV", "B_UAV_02_F", 20000, "vehicle"], + //["A-143 Buzzard CAS", "I_Plane_Fighter_03_CAS_F", 45000, "vehicle"], + //["A-164 Wipeout CAS", "B_Plane_CAS_01_F", 75000, "vehicle"], + //["To-199 Neophron CAS", "O_Plane_CAS_02_F", 75000, "vehicle"], + ["MQ4A Greyhawk ATGM UAV", "B_UAV_02_F", 22500, "vehicle"], ["MQ4A Greyhawk Bomber UAV", "B_UAV_02_CAS_F", 10000, "vehicle"], // Bomber UAVs are a lot harder to use, hence why they are cheaper than ATGMs - ["K40 Ababil-3 ATGM UAV (CSAT)", "O_UAV_02_F", 20000, "vehicle"], + ["K40 Ababil-3 ATGM UAV (CSAT)", "O_UAV_02_F", 22500, "vehicle"], ["K40 Ababil-3 Bomber UAV (CSAT)", "O_UAV_02_CAS_F", 10000, "vehicle"], - ["K40 Ababil-3 ATGM UAV (AAF)", "I_UAV_02_F", 20000, "vehicle"], + ["K40 Ababil-3 ATGM UAV (AAF)", "I_UAV_02_F", 22500, "vehicle"], ["K40 Ababil-3 Bomber UAV (AAF)", "I_UAV_02_CAS_F", 10000, "vehicle"] ]; @@ -712,8 +714,8 @@ boatsArray = compileFinal str ["Assault Boat (AAF)", "I_Boat_Transport_01_F", 600, "boat"], ["Assault Boat (FIA)", "B_G_Boat_Transport_01_F", 600, "boat"], ["Motorboat", "C_Boat_Civil_01_F", 1000, "boat"], - ["Motorboat Rescue", "C_Boat_Civil_rescue_01_F", 900, "boat"], - ["Motorboat Police", "C_Boat_Civil_police_01_F", 1250, "boat"], + //["Motorboat Rescue", "C_Boat_Civil_rescue_01_F", 900, "boat"], + //["Motorboat Police", "C_Boat_Civil_police_01_F", 1250, "boat"], ["Speedboat HMG (CSAT)", "O_Boat_Armed_01_hmg_F", 4000, "boat"], ["Speedboat Minigun (NATO)", "B_Boat_Armed_01_minigun_F", 4000, "boat"], ["Speedboat Minigun (AAF)", "I_Boat_Armed_01_minigun_F", 4000, "boat"], @@ -799,10 +801,10 @@ customPlayerItems = compileFinal str ["Jerry Can (Full)", "jerrycanfull", localize "STR_WL_ShopDescriptions_fuelFull", "client\icons\jerrycan.paa", 150, 75], ["Jerry Can (Empty)", "jerrycanempty", localize "STR_WL_ShopDescriptions_fuelEmpty", "client\icons\jerrycan.paa", 50, 25], ["Spawn Beacon", "spawnbeacon", localize "STR_WL_ShopDescriptions_spawnBeacon", "client\icons\briefcase.paa", 1500, 750], - ["Camo Net", "camonet", localize "STR_WL_ShopDescriptions_Camo", "client\icons\briefcase.paa", 200, 100], - ["Syphon Hose", "syphonhose", localize "STR_WL_ShopDescriptions_SyphonHose", "client\icons\jerrycan.paa", 200, 100], - ["Energy Drink", "energydrink", localize "STR_WL_ShopDescriptions_Energy_Drink", "client\icons\water.paa", 100, 50], - ["Warchest", "warchest", localize "STR_WL_ShopDescriptions_Warchest", "client\icons\briefcase.paa", 1000, 500] + //["Camo Net", "camonet", localize "STR_WL_ShopDescriptions_Camo", "client\icons\briefcase.paa", 200, 100], + ["Syphon Hose", "syphonhose", localize "STR_WL_ShopDescriptions_SyphonHose", "client\icons\jerrycan.paa", 200, 100] + //["Energy Drink", "energydrink", localize "STR_WL_ShopDescriptions_Energy_Drink", "client\icons\water.paa", 100, 50], + //["Warchest", "warchest", localize "STR_WL_ShopDescriptions_Warchest", "client\icons\briefcase.paa", 1000, 500] ]; call compile preprocessFileLineNumbers "mapConfig\storeOwners.sqf"; diff --git a/stringtable.xml b/stringtable.xml index 6d339ac90..eb228803e 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -39,7 +39,7 @@ <t color='#FFFFFF' size='1.5' >* You are in <img size="1.5" image="%1"/> <t color="%2">%3</t> team.<br/>* Attacking or stealing from other %4 players is <t color="#FF1111">FORBIDDEN</t><br/>* <t color="#FF1111">NO VOICE IN GLOBAL</t><br/>* You can find the Server Rules in the map menu.<br/>* Server restarts are done at the admin's discretion.<br/>* You will be locked to your team after 3 minutes.</t> - <t color='#FFFFFF' size='1.5' >* You are in <img size="1.5" image="%1"/> <t color="%2">%3</t> team.<br/>* You are <t color="#00aa00">FREE TO ATTACK ANYONE</t><br/>* <t color="#FF1111">NO VOICE IN GLOBAL</t><br/>* You can find the Server Rules in the map menu.<br/>* Server restarts are done at the admin's discretion.</t> + <t color='#FFFFFF' size='1.5' >* You are in <img size="1.5" image="%1"/> <t color="%2">%3</t> team.<br/>* You are <t color="#00aa00">FREE TO ATTACK ANYONE</t><br/>* <t color="#FF1111">KEEP VOICE IN SIDE TO A MINIMUM</t><br/>* You can find the Server Rules in the map menu.<br/>* Server restarts are done at the admin's discretion.</t> <t color='#FFFFFF' size='1.5' >Report bugs and suggestions at http://forums.a3wasteland.com/ <br/>Server restarts are done at the admin's discretion.<br/>Press the Windows or Home key to toggle player names<br/>For more info please see the map<br/> From a00851f309744b870eb0628c47c665b129a90e27 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 11 Nov 2014 01:04:20 -0800 Subject: [PATCH 103/544] bank money fix from @WinstonSmith-UKGZ Make sure that value is broadcast, and default to 0 if null/nil --- persistence/players/pFunctions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 6d3483996..3315f3fd1 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -289,7 +289,7 @@ fn_applyPlayerInfo = { switch (_name) do { case "Donator": { player setVariable ["isDonator", _value > 0] }; - case "BankMoney": { player setVariable ["bmoney", _value max 0] }; + case "BankMoney": { player setVariable ["bmoney", OR(_value,0), true] }; }; } forEach _data; }; From 9263df595a00fe3153d956393a6e5c788fbc40a1 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 15 Nov 2014 15:43:08 -0800 Subject: [PATCH 104/544] Adding gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..605d53f2f --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ + +.idea +ArmA3_Wasteland.Altis.iml \ No newline at end of file From 2f7d90c54e744085ca275c5384e86ee76b63da0b Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 15 Nov 2014 15:43:48 -0800 Subject: [PATCH 105/544] Dummy change to test --- briefing.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/briefing.sqf b/briefing.sqf index 33505fe0e..da1dff72e 100644 --- a/briefing.sqf +++ b/briefing.sqf @@ -2,7 +2,7 @@ // * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * // ****************************************************************************************** // @file Name: briefing.sqf - +// if (!hasInterface) exitWith {}; waitUntil {!isNull player}; From 616f057715a98d2f58593ff0e4d3ce3545399123 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 15 Nov 2014 16:54:37 -0800 Subject: [PATCH 106/544] Merge with latest PBO including mag repack, and other tweaks --- addons/Explosives-To-Vehicle/EtV.sqf | 4 +- addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 7 +- .../R3F_LOG/heliporteur/heliporter.sqf | 2 +- .../R3F_ARTY_AND_LOG/R3F_LOG/objet_init.sqf | 3 + addons/scripts/DynamicWeatherEffects.sqf | 848 +++++++-------- addons/scripts/lockIn.sqf | 17 + addons/scripts/servercredits.sqf | 4 +- client/functions/playerActions.sqf | 17 +- description.ext | 26 +- init.sqf | 1 + .../Configs/MagRepack_Dialog_About.hpp | 129 +++ .../Configs/MagRepack_Dialog_Keybindings.hpp | 289 ++++++ .../Configs/MagRepack_Dialog_Main.hpp | 689 +++++++++++++ outlw_magRepack/Configs/defines.hpp | 419 ++++++++ outlw_magRepack/Images/MR_SourceGradient.paa | Bin 0 -> 27460 bytes outlw_magRepack/Images/MR_TargetGradient.paa | Bin 0 -> 27518 bytes outlw_magRepack/Images/MR_logo.paa | Bin 0 -> 22016 bytes outlw_magRepack/Images/bulletCount/0.paa | Bin 0 -> 308 bytes outlw_magRepack/Images/bulletCount/1.paa | Bin 0 -> 310 bytes outlw_magRepack/Images/bulletCount/10.paa | Bin 0 -> 310 bytes outlw_magRepack/Images/bulletCount/11.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/12.paa | Bin 0 -> 310 bytes outlw_magRepack/Images/bulletCount/13.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/14.paa | Bin 0 -> 312 bytes outlw_magRepack/Images/bulletCount/15.paa | Bin 0 -> 312 bytes outlw_magRepack/Images/bulletCount/16.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/17.paa | Bin 0 -> 310 bytes outlw_magRepack/Images/bulletCount/18.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/19.paa | Bin 0 -> 310 bytes outlw_magRepack/Images/bulletCount/2.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/20.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/21.paa | Bin 0 -> 310 bytes outlw_magRepack/Images/bulletCount/22.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/23.paa | Bin 0 -> 312 bytes outlw_magRepack/Images/bulletCount/24.paa | Bin 0 -> 312 bytes outlw_magRepack/Images/bulletCount/25.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/26.paa | Bin 0 -> 310 bytes outlw_magRepack/Images/bulletCount/27.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/28.paa | Bin 0 -> 310 bytes outlw_magRepack/Images/bulletCount/29.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/3.paa | Bin 0 -> 310 bytes outlw_magRepack/Images/bulletCount/30.paa | Bin 0 -> 309 bytes outlw_magRepack/Images/bulletCount/4.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/5.paa | Bin 0 -> 312 bytes outlw_magRepack/Images/bulletCount/6.paa | Bin 0 -> 312 bytes outlw_magRepack/Images/bulletCount/7.paa | Bin 0 -> 313 bytes outlw_magRepack/Images/bulletCount/8.paa | Bin 0 -> 310 bytes outlw_magRepack/Images/bulletCount/9.paa | Bin 0 -> 313 bytes outlw_magRepack/MagRepack_Config.hpp | 5 + outlw_magRepack/MagRepack_init_sv.sqf | 69 ++ .../Scripts/MagRepack_Keybindings.sqf | 139 +++ outlw_magRepack/Scripts/MagRepack_Main.sqf | 969 ++++++++++++++++++ outlw_magRepack/Scripts/MagRepack_Misc.sqf | 439 ++++++++ outlw_magRepack/readme.txt | 106 ++ server/default_config.sqf | 26 +- server/functions/spawnStoreObject.sqf | 4 +- .../createUnits/customGroup.sqf | 62 +- 57 files changed, 3790 insertions(+), 484 deletions(-) create mode 100644 addons/scripts/lockIn.sqf create mode 100644 outlw_magRepack/Configs/MagRepack_Dialog_About.hpp create mode 100644 outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp create mode 100644 outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp create mode 100644 outlw_magRepack/Configs/defines.hpp create mode 100644 outlw_magRepack/Images/MR_SourceGradient.paa create mode 100644 outlw_magRepack/Images/MR_TargetGradient.paa create mode 100644 outlw_magRepack/Images/MR_logo.paa create mode 100644 outlw_magRepack/Images/bulletCount/0.paa create mode 100644 outlw_magRepack/Images/bulletCount/1.paa create mode 100644 outlw_magRepack/Images/bulletCount/10.paa create mode 100644 outlw_magRepack/Images/bulletCount/11.paa create mode 100644 outlw_magRepack/Images/bulletCount/12.paa create mode 100644 outlw_magRepack/Images/bulletCount/13.paa create mode 100644 outlw_magRepack/Images/bulletCount/14.paa create mode 100644 outlw_magRepack/Images/bulletCount/15.paa create mode 100644 outlw_magRepack/Images/bulletCount/16.paa create mode 100644 outlw_magRepack/Images/bulletCount/17.paa create mode 100644 outlw_magRepack/Images/bulletCount/18.paa create mode 100644 outlw_magRepack/Images/bulletCount/19.paa create mode 100644 outlw_magRepack/Images/bulletCount/2.paa create mode 100644 outlw_magRepack/Images/bulletCount/20.paa create mode 100644 outlw_magRepack/Images/bulletCount/21.paa create mode 100644 outlw_magRepack/Images/bulletCount/22.paa create mode 100644 outlw_magRepack/Images/bulletCount/23.paa create mode 100644 outlw_magRepack/Images/bulletCount/24.paa create mode 100644 outlw_magRepack/Images/bulletCount/25.paa create mode 100644 outlw_magRepack/Images/bulletCount/26.paa create mode 100644 outlw_magRepack/Images/bulletCount/27.paa create mode 100644 outlw_magRepack/Images/bulletCount/28.paa create mode 100644 outlw_magRepack/Images/bulletCount/29.paa create mode 100644 outlw_magRepack/Images/bulletCount/3.paa create mode 100644 outlw_magRepack/Images/bulletCount/30.paa create mode 100644 outlw_magRepack/Images/bulletCount/4.paa create mode 100644 outlw_magRepack/Images/bulletCount/5.paa create mode 100644 outlw_magRepack/Images/bulletCount/6.paa create mode 100644 outlw_magRepack/Images/bulletCount/7.paa create mode 100644 outlw_magRepack/Images/bulletCount/8.paa create mode 100644 outlw_magRepack/Images/bulletCount/9.paa create mode 100644 outlw_magRepack/MagRepack_Config.hpp create mode 100644 outlw_magRepack/MagRepack_init_sv.sqf create mode 100644 outlw_magRepack/Scripts/MagRepack_Keybindings.sqf create mode 100644 outlw_magRepack/Scripts/MagRepack_Main.sqf create mode 100644 outlw_magRepack/Scripts/MagRepack_Misc.sqf create mode 100644 outlw_magRepack/readme.txt diff --git a/addons/Explosives-To-Vehicle/EtV.sqf b/addons/Explosives-To-Vehicle/EtV.sqf index c67916f10..ec7d31e3d 100644 --- a/addons/Explosives-To-Vehicle/EtV.sqf +++ b/addons/Explosives-To-Vehicle/EtV.sqf @@ -8,7 +8,7 @@ EtV_ChargeCheck = _charge = _this select 0; _unit = _this select 1; _hasIt = _charge in (magazines _unit); - _nearVehs = nearestObjects [_unit,["Air","Ship","LandVehicle"],5]; + _nearVehs = nearestObjects [_unit,["Plane","Ship","LandVehicle","Helicopter_Base_F"],5]; _return = (_hasIt && count _nearVehs > 0 && alive _unit); _return }; @@ -63,7 +63,7 @@ EtV_AttachCharge = }; }; - _nearVehicle = (nearestObjects [_unit,["Air","Ship","LandVehicle"],5]) select 0; + _nearVehicle = (nearestObjects [_unit,["Plane","Ship","LandVehicle","Helicopter_Base_F"],5]) select 0; _explosive = _class createVehicle [0,0,0]; _explosive attachTo [_unit,[0,1,0],"Lefthand"]; _random0 = random 180; diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index f46bdc79a..d1fcda4fd 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -13,6 +13,7 @@ R3F_LOG_CFG_remorqueurs = "MRAP_03_base_F", "Boat_Armed_01_base_F" ]; + /** * List of class names of (ground or air) vehicles which can tow heavy towables objects. */ @@ -24,6 +25,7 @@ R3F_LOG_CFG_remorqueursH = "Wheeled_APC_F", "Tank_F" ]; + /** * List of class names of (ground or air) vehicles which can tow all towables objects. */ @@ -72,6 +74,7 @@ R3F_LOG_CFG_objets_remorquables = "B_Heli_Light_01_armed_F", "C_Heli_Light_01_civil_F" ]; + /** * List of class names of heavy towables objects. */ @@ -129,6 +132,7 @@ R3F_LOG_CFG_objets_remorquablesALL = "B_Plane_CAS_01_F", "O_Plane_CAS_02_F" ]; + /****** LIFT WITH VEHICLE ******/ /** @@ -146,6 +150,7 @@ R3F_LOG_CFG_heliporteurs = "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F" ]; + /** * List of class names of air vehicles which can lift heavy liftables objects. */ @@ -172,6 +177,7 @@ R3F_LOG_CFG_objets_heliportables = "Boat_Civil_01_base_F", "Boat_Armed_01_base_F" ]; + /** * List of class names of heavy liftables objects. */ @@ -194,7 +200,6 @@ R3F_LOG_CFG_objets_heliportablesH = "Boat_Armed_01_base_F" ]; - /****** LOAD IN VEHICLE / CHARGER DANS LE VEHICULE ******/ diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/heliporteur/heliporter.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/heliporteur/heliporter.sqf index 91cc15d35..5ad026f59 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/heliporteur/heliporter.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/heliporteur/heliporter.sqf @@ -107,4 +107,4 @@ else }; R3F_LOG_mutex_local_verrou = false; -}; +}; \ No newline at end of file diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_init.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_init.sqf index 9db7f2df6..84cf69d17 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_init.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_init.sqf @@ -69,6 +69,7 @@ if ({_objet isKindOf _x} count R3F_LOG_CFG_objets_remorquables > 0) then }; _objet addAction [(" " + STR_R3F_LOG_action_selectionner_objet_remorque + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\remorqueur\selectionner_objet.sqf", nil, 5, false, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_selectionner_objet_remorque_valide && Object_canLock"]; + _objet addAction [(" " + STR_R3F_LOG_action_detacher + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\remorqueur\detacher.sqf", nil, 6, true, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_detacher_valide"]; }; @@ -78,7 +79,9 @@ if ({_objet isKindOf _x} count R3F_LOG_CFG_objets_remorquablesALL > 0) then { _objet addAction [(" " + STR_R3F_LOG_action_remorquer_deplace + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\remorqueur\remorquer_deplace.sqf", nil, 6, true, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_remorquer_deplace_valide"]; }; + _objet addAction [(" " + STR_R3F_LOG_action_selectionner_objet_remorque + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\remorqueur\selectionner_objet.sqf", nil, 5, false, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_selectionner_objet_remorque_valide && Object_canLock"]; + _objet addAction [(" " + STR_R3F_LOG_action_detacher + ""), "addons\R3F_ARTY_AND_LOG\R3F_LOG\remorqueur\detacher.sqf", nil, 6, true, true, "", "R3F_LOG_objet_addAction == _target && R3F_LOG_action_detacher_valide"]; }; diff --git a/addons/scripts/DynamicWeatherEffects.sqf b/addons/scripts/DynamicWeatherEffects.sqf index cb7f826b1..4a9202f63 100644 --- a/addons/scripts/DynamicWeatherEffects.sqf +++ b/addons/scripts/DynamicWeatherEffects.sqf @@ -26,19 +26,19 @@ if (count _this > 4) then { _debug = _this select 4; } else { _debug = false; }; // Minimum time in minutes for the weather (fog and overcast) to change. Must be greater than or equal to 1 and less than or equal to // _maxWeatherChangeTimeMin. When weather changes, it is fog OR overcast that changes, not both at the same time. (Suggested value: 10). -_minWeatherChangeTimeMin = 30; +_minWeatherChangeTimeMin = 20; // Maximum time in minutes for the weather (fog and overcast) to change. Must be greater than or equal to _minWeatherChangeTimeMin. // (Suggested value: 20). -_maxWeatherChangeTimeMin = 60; +_maxWeatherChangeTimeMin = 40; // Minimum time in minutes that weather (fog and overcast) stays constant between weather changes. Must be less than or equal to 0 and // greater than or equal to _minWeatherChangeTimeMin. (Suggested value: 5). -_minTimeBetweenWeatherChangesMin = 5; +_minTimeBetweenWeatherChangesMin = 10; // Maximum time in minutes that weather (fog and overcast) stays unchanged between weather changes. Must be greater than or equal to // _minWeatherChangeTimeMin. (Suggested value: 10). -_maxTimeBetweenWeatherChangesMin = 10; +_maxTimeBetweenWeatherChangesMin = 20; // Fog intensity never falls below this value. Must be between 0 and 1 and less than or equal to _maximumFog // (0 = no fog, 1 = pea soup). (Suggested value: 0). @@ -46,7 +46,7 @@ _minimumFog = 0; // Fog intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumFog // (0 = no fog, 1 = pea soup). (Suggested value: 0.8). -_maximumFog = 0.15; +_maximumFog = 0; // New ArmA3 facilities added by Bewilderbeest _minimumFogDecay = 0.001; @@ -60,11 +60,11 @@ _minimumOvercast = 0; // Overcast intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumOvercast // (0 = no overcast, 1 = maximum overcast). (Suggested value: 1). -_maximumOvercast = 1; +_maximumOvercast = 0.75; // When raining, rain intensity never falls below this value. Must be between 0 and 1 and less than or equal to _maximumRain // (0 = no rain, 1 = maximum rain intensity). (Suggested value: 0); -_minimumRain = 0.01; +_minimumRain = 0; // When raining, rain intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumRain // (0 = no rain, 1 = maximum rain intensity). (Suggested value: 0.8); @@ -93,16 +93,16 @@ _rainIntervalRainProbability = 20; // Minimum time in minutes for rain intervals. Must be greater or equal to 0 and less than or equal to _maxRainIntervalTimeMin. // (Suggested value: 0). -_minRainIntervalTimeMin = 1; +_minRainIntervalTimeMin = 0; // Maximum time in minutes for rain intervals. Must be greater than or equal to _minRainIntervalTimeMin. (Suggested value: // (_maxWeatherChangeTimeMin + _maxTimeBetweenWeatherChangesMin) / 2). -_maxRainIntervalTimeMin = (_maxWeatherChangeTimeMin + _maxTimeBetweenWeatherChangesMin) / 2; +_maxRainIntervalTimeMin = 10; // If set to true, then the rain is forced to stop after one rain interval during which it has rained (use this for example if you only want // small occational cloudbursts ). If set to false, then the rain may stop, but it may also just change intensity for an // immedeate new rain interval. (Suggested value: false). -_forceRainToStopAfterOneRainInterval = false; +_forceRainToStopAfterOneRainInterval = true; /////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -111,7 +111,7 @@ _forceRainToStopAfterOneRainInterval = false; drn_DynamicWeather_DebugTextEventArgs = []; // Empty "drn_DynamicWeather_DebugTextEventArgs" addPublicVariableEventHandler { - drn_DynamicWeather_DebugTextEventArgs call drn_fnc_DynamicWeather_ShowDebugTextLocal; + drn_DynamicWeather_DebugTextEventArgs call drn_fnc_DynamicWeather_ShowDebugTextLocal; }; /* @@ -120,15 +120,15 @@ drn_DynamicWeather_DebugTextEventArgs = []; // Empty * _text: Debug text. */ drn_fnc_DynamicWeather_ShowDebugTextLocal = { - private ["_minutes", "_seconds"]; + private ["_minutes", "_seconds"]; - if (!isNull player) then { - player sideChat (_this select 0); - }; + if (!isNull player) then { + player sideChat (_this select 0); + }; - _minutes = floor (time / 60); - _seconds = floor (time - (_minutes * 60)); - diag_log ((str _minutes + ":" + str _seconds) + " Debug: " + (_this select 0)); + _minutes = floor (time / 60); + _seconds = floor (time - (_minutes * 60)); + diag_log format["%1:%2 Debug: %3", _minutes, _seconds, (_this select 0)]; }; /* @@ -137,13 +137,13 @@ drn_fnc_DynamicWeather_ShowDebugTextLocal = { * _text: Debug text. */ drn_fnc_DynamicWeather_ShowDebugTextAllClients = { - drn_DynamicWeather_DebugTextEventArgs = _this; - publicVariable "drn_DynamicWeather_DebugTextEventArgs"; - drn_DynamicWeather_DebugTextEventArgs call drn_fnc_DynamicWeather_ShowDebugTextLocal; + drn_DynamicWeather_DebugTextEventArgs = _this; + publicVariable "drn_DynamicWeather_DebugTextEventArgs"; + drn_DynamicWeather_DebugTextEventArgs call drn_fnc_DynamicWeather_ShowDebugTextLocal; }; if (_debug) then { - ["Starting script WeatherEffects.sqf..."] call drn_fnc_DynamicWeather_ShowDebugTextLocal; + ["Starting script WeatherEffects.sqf..."] call drn_fnc_DynamicWeather_ShowDebugTextLocal; }; drn_DynamicWeatherEventArgs = []; // [current overcast, current fog, current rain, current weather change ("OVERCAST", "FOG" or ""), target weather value, time until weather completion (in seconds), current wind x, current wind z] @@ -187,16 +187,16 @@ drn_fnc_fogOdds = }; drn_fnc_DynamicWeather_SetWeatherLocal = { - private ["_currentOvercast", "_currentFog", "_currentRain", "_currentWeatherChange", "_targetWeatherValue", "_timeUntilCompletion", "_currentWindX", "_currentWindZ"]; + private ["_currentOvercast", "_currentFog", "_currentRain", "_currentWeatherChange", "_targetWeatherValue", "_timeUntilCompletion", "_currentWindX", "_currentWindZ"]; - _currentOvercast = _this select 0; - _currentFog = _this select 1; - _currentRain = _this select 2; - _currentWeatherChange = _this select 3; - _targetWeatherValue = _this select 4; - _timeUntilCompletion = _this select 5; - _currentWindX = _this select 6; - _currentWindZ = _this select 7; + _currentOvercast = _this select 0; + _currentFog = _this select 1; + _currentRain = _this select 2; + _currentWeatherChange = _this select 3; + _targetWeatherValue = _this select 4; + _timeUntilCompletion = _this select 5; + _currentWindX = _this select 6; + _currentWindZ = _this select 7; if (typeName _currentFog == "ARRAY") then { _currentFog set [0, (_currentFog select 0) max (_currentRain / 4)]; @@ -215,8 +215,8 @@ drn_fnc_DynamicWeather_SetWeatherLocal = { 0 setOvercast (0.1 max _currentOvercast); }; 0 setFog [_currentFog max (_currentRain / 4), 0.001, 1000]; - drn_var_DynamicWeather_Rain = _currentRain; - setWind [_currentWindX, _currentWindZ, true]; + drn_var_DynamicWeather_Rain = _currentRain; + setWind [_currentWindX, _currentWindZ, true]; if (!isNil "drn_JIPWeatherSync") then { @@ -224,8 +224,8 @@ drn_fnc_DynamicWeather_SetWeatherLocal = { drn_JIPWeatherSync = nil; }; - // Set forecast - if (_currentWeatherChange == "OVERCAST") then { + // Set forecast + if (_currentWeatherChange == "OVERCAST") then { if (date select 2 > 4 && date select 2 < 18) then { _timeUntilCompletion setOvercast (_targetWeatherValue call drn_fnc_overcastOdds); @@ -236,16 +236,16 @@ drn_fnc_DynamicWeather_SetWeatherLocal = { }; 5 setFog [_currentRain / 4, 0.001, 1000]; // Quick hack to ensure fog goes away regularly _currentFog - }; - if (_currentWeatherChange == "FOG") then { + }; + if (_currentWeatherChange == "FOG") then { if (typeName _targetWeatherValue == "ARRAY") then { - _targetWeatherValue = [(_targetWeatherValue select 0) max (_currentRain / 4), 0.001, 1000]; // override decay value + _targetWeatherValue set [0, (_targetWeatherValue select 0) max (_currentRain / 4)]; } else { _targetWeatherValue = _targetWeatherValue max (_currentRain / 4); }; _timeUntilCompletion setFog _targetWeatherValue; - }; + }; }; if (!isDedicated) then @@ -254,115 +254,115 @@ if (!isDedicated) then }; if (!isServer) then { - "drn_DynamicWeatherEventArgs" addPublicVariableEventHandler { - drn_DynamicWeatherEventArgs spawn drn_fnc_DynamicWeather_SetWeatherLocal; - }; + "drn_DynamicWeatherEventArgs" addPublicVariableEventHandler { + drn_DynamicWeatherEventArgs spawn drn_fnc_DynamicWeather_SetWeatherLocal; + }; - waitUntil {!isNil "drn_var_DynamicWeather_ServerInitialized"}; + waitUntil {!isNil "drn_var_DynamicWeather_ServerInitialized"}; - drn_AskServerDynamicWeatherEventArgs = [true]; - publicVariable "drn_AskServerDynamicWeatherEventArgs"; + drn_AskServerDynamicWeatherEventArgs = [true]; + publicVariable "drn_AskServerDynamicWeatherEventArgs"; }; if (isServer) then { - drn_fnc_DynamicWeather_SetWeatherAllClients = { - private ["_timeUntilCompletion", "_currentWeatherChange"]; - - _timeUntilCompletion = drn_DynamicWeather_WeatherChangeCompletedTime - drn_DynamicWeather_WeatherChangeStartedTime; - if (_timeUntilCompletion > 0) then { - _currentWeatherChange = drn_DynamicWeather_CurrentWeatherChange; - } - else { - _currentWeatherChange = ""; - }; - - drn_DynamicWeatherEventArgs = [overcast, fog, drn_var_DynamicWeather_Rain, _currentWeatherChange, drn_DynamicWeather_WeatherTargetValue, _timeUntilCompletion, drn_DynamicWeather_WindX, drn_DynamicWeather_WindZ]; - publicVariable "drn_DynamicWeatherEventArgs"; - drn_DynamicWeatherEventArgs spawn drn_fnc_DynamicWeather_SetWeatherLocal; - }; - - "drn_AskServerDynamicWeatherEventArgs" addPublicVariableEventHandler { - [] spawn drn_fnc_DynamicWeather_SetWeatherAllClients; - }; - - drn_DynamicWeather_CurrentWeatherChange = ""; - drn_DynamicWeather_WeatherTargetValue = 0; - drn_DynamicWeather_WeatherChangeStartedTime = time; - drn_DynamicWeather_WeatherChangeCompletedTime = time; - drn_DynamicWeather_WindX = _initialWind select 0; - drn_DynamicWeather_WindZ = _initialWind select 1; - - if (_initialFog == -1) then { - _initialFog = (_minimumFog + random (_maximumFog - _minimumFog)); - } - else { - if (_initialFog < _minimumFog) then { - _initialFog = _minimumFog; - }; - if (_initialFog > _maximumFog) then { - _initialFog = _maximumFog; - }; - }; + drn_fnc_DynamicWeather_SetWeatherAllClients = { + private ["_timeUntilCompletion", "_currentWeatherChange"]; + + _timeUntilCompletion = drn_DynamicWeather_WeatherChangeCompletedTime - drn_DynamicWeather_WeatherChangeStartedTime; + if (_timeUntilCompletion > 0) then { + _currentWeatherChange = drn_DynamicWeather_CurrentWeatherChange; + } + else { + _currentWeatherChange = ""; + }; + + drn_DynamicWeatherEventArgs = [overcast, fog, drn_var_DynamicWeather_Rain, _currentWeatherChange, drn_DynamicWeather_WeatherTargetValue, _timeUntilCompletion, drn_DynamicWeather_WindX, drn_DynamicWeather_WindZ]; + publicVariable "drn_DynamicWeatherEventArgs"; + drn_DynamicWeatherEventArgs spawn drn_fnc_DynamicWeather_SetWeatherLocal; + }; + + "drn_AskServerDynamicWeatherEventArgs" addPublicVariableEventHandler { + [] spawn drn_fnc_DynamicWeather_SetWeatherAllClients; + }; + + drn_DynamicWeather_CurrentWeatherChange = ""; + drn_DynamicWeather_WeatherTargetValue = 0; + drn_DynamicWeather_WeatherChangeStartedTime = time; + drn_DynamicWeather_WeatherChangeCompletedTime = time; + drn_DynamicWeather_WindX = _initialWind select 0; + drn_DynamicWeather_WindZ = _initialWind select 1; + + if (_initialFog == -1) then { + _initialFog = (_minimumFog + random (_maximumFog - _minimumFog)); + } + else { + if (_initialFog < _minimumFog) then { + _initialFog = _minimumFog; + }; + if (_initialFog > _maximumFog) then { + _initialFog = _maximumFog; + }; + }; 0 setFog [(([_initialFog, _maximumFog] call drn_fnc_fogOdds) * _maximumFog) max (rain / 4), 0.001, 1000]; - if (_initialOvercast == -1) then { - _initialOvercast = (_minimumOvercast + random (_maximumOvercast - _minimumOvercast)); - } - else { - if (_initialOvercast < _minimumOvercast) then { - _initialOvercast = _minimumOvercast; - }; - if (_initialOvercast > _maximumOvercast) then { - _initialOvercast = _maximumOvercast; - }; - }; - - 0 setOvercast (_initialOvercast call drn_fnc_overcastOdds); - - if (_initialOvercast >= 0.75) then { - if (_initialRain == -1) then { - _initialRain = (_minimumRain + random (_minimumRain - _minimumRain)); - } - else { - if (_initialRain < _minimumRain) then { - _initialRain = _minimumRain; - }; - if (_initialRain > _maximumRain) then { - _initialRain = _maximumRain; - }; - }; - } - else { - _initialRain = 0; - }; - - drn_var_DynamicWeather_Rain = _initialRain; - 0 setRain drn_var_DynamicWeather_Rain; - 0 setFog [fog max (drn_var_DynamicWeather_Rain / 4), 0.001, 1000]; - - - _maxWind = _minimumWind + random (_maximumWind - _minimumWind); - - if (drn_DynamicWeather_WindX == -1) then { - if (random 100 < 50) then { - drn_DynamicWeather_WindX = -_minimumWind - random (_maxWind - _minimumWind); - } - else { - drn_DynamicWeather_WindX = _minimumWind + random (_maxWind - _minimumWind); - }; - }; - - if (drn_DynamicWeather_WindZ == -1) then { - if (random 100 < 50) then { - drn_DynamicWeather_WindZ = -_minimumWind - random (_maxWind - _minimumWind); - } - else { - drn_DynamicWeather_WindZ = _minimumWind + random (_maxWind - _minimumWind); - }; - }; - - setWind [drn_DynamicWeather_WindX, drn_DynamicWeather_WindZ, true]; + if (_initialOvercast == -1) then { + _initialOvercast = (_minimumOvercast + random (_maximumOvercast - _minimumOvercast)); + } + else { + if (_initialOvercast < _minimumOvercast) then { + _initialOvercast = _minimumOvercast; + }; + if (_initialOvercast > _maximumOvercast) then { + _initialOvercast = _maximumOvercast; + }; + }; + + 0 setOvercast (_initialOvercast call drn_fnc_overcastOdds); + + if (_initialOvercast >= 0.75) then { + if (_initialRain == -1) then { + _initialRain = (_minimumRain + random (_minimumRain - _minimumRain)); + } + else { + if (_initialRain < _minimumRain) then { + _initialRain = _minimumRain; + }; + if (_initialRain > _maximumRain) then { + _initialRain = _maximumRain; + }; + }; + } + else { + _initialRain = 0; + }; + + drn_var_DynamicWeather_Rain = _initialRain; + 0 setRain drn_var_DynamicWeather_Rain; + 0 setFog [drn_var_DynamicWeather_Rain / 4, 0.001, 1000]; + + + _maxWind = _minimumWind + random (_maximumWind - _minimumWind); + + if (drn_DynamicWeather_WindX == -1) then { + if (random 100 < 50) then { + drn_DynamicWeather_WindX = -_minimumWind - random (_maxWind - _minimumWind); + } + else { + drn_DynamicWeather_WindX = _minimumWind + random (_maxWind - _minimumWind); + }; + }; + + if (drn_DynamicWeather_WindZ == -1) then { + if (random 100 < 50) then { + drn_DynamicWeather_WindZ = -_minimumWind - random (_maxWind - _minimumWind); + } + else { + drn_DynamicWeather_WindZ = _minimumWind + random (_maxWind - _minimumWind); + }; + }; + + setWind [drn_DynamicWeather_WindX, drn_DynamicWeather_WindZ, true]; if (!isNil "drn_JIPWeatherSync") then { @@ -370,298 +370,298 @@ if (isServer) then { drn_JIPWeatherSync = nil; }; - sleep 0.05; - - publicVariable "drn_var_DynamicWeather_Rain"; - drn_var_DynamicWeather_ServerInitialized = true; - publicVariable "drn_var_DynamicWeather_ServerInitialized"; - - // Start weather thread - [_minWeatherChangeTimeMin, _maxWeatherChangeTimeMin, _minTimeBetweenWeatherChangesMin, _maxTimeBetweenWeatherChangesMin, _minimumFog, _maximumFog, _minimumFogDecay, _maximumFogDecay, _minimumFogBase, _maximumFogBase, _minimumOvercast, _maximumOvercast, _minimumWind, _maximumWind, _windChangeProbability, _debug] spawn { - private ["_minWeatherChangeTimeMin", "_maxWeatherChangeTimeMin", "_minTimeBetweenWeatherChangesMin", "_maxTimeBetweenWeatherChangesMin", "_minimumFog", "_maximumFog", "_minimumOvercast", "_maximumOvercast", "_minimumWind", "_maximumWind", "_windChangeProbability", "_debug"]; - private ["_weatherType", "_fogLevel", "_overcastLevel", "_oldFogLevel", "_oldOvercastLevel", "_weatherChangeTimeSek"]; - private ["_fogValue", "_fogBase", "_fogDecay"]; - _minWeatherChangeTimeMin = _this select 0; - _maxWeatherChangeTimeMin = _this select 1; - _minTimeBetweenWeatherChangesMin = _this select 2; - _maxTimeBetweenWeatherChangesMin = _this select 3; - _minimumFog = _this select 4; - _maximumFog = _this select 5; - _minimumFogDecay = _this select 6; - _maximumFogDecay = _this select 7; - _minimumFogBase = _this select 8; - _maximumFogBase = _this select 9; - _minimumOvercast = _this select 10; - _maximumOvercast = _this select 11; - _minimumWind = _this select 12; - _maximumWind = _this select 13; - _windChangeProbability = _this select 14; - _debug = _this select 15; - - // Set initial fog level - _fogLevel = 2; - _overcastLevel = 2; - - while {true} do { - // Sleep a while until next weather change - sleep floor (_minTimeBetweenWeatherChangesMin * 60 + random ((_maxTimeBetweenWeatherChangesMin - _minTimeBetweenWeatherChangesMin) * 60)); - - if (_minimumFog == _maximumFog && _minimumOvercast != _maximumOvercast) then { - _weatherType = "OVERCAST"; - }; - if (_minimumFog != _maximumFog && _minimumOvercast == _maximumOvercast) then { - _weatherType = "FOG"; - }; - if (_minimumFog != _maximumFog && _minimumOvercast != _maximumOvercast) then { - - // Select type of weather to change - if ((random 100) < 50) then { - _weatherType = "OVERCAST"; - } - else { - _weatherType = "FOG"; - }; - }; - - // DEBUG - //_weatherType = "OVERCAST"; - - if (_weatherType == "FOG") then { - - drn_DynamicWeather_CurrentWeatherChange = "FOG"; - - // Select a new fog level - _oldFogLevel = _fogLevel; - _fogLevel = floor ((random 100) / 25); - - while {_fogLevel == _oldFogLevel} do { - _fogLevel = floor ((random 100) / 25); - }; - - _fogDecay = _minimumFogDecay + (_maximumFogDecay - _minimumFogDecay) * random 1; - _fogBase = _minimumFogBase + (_maximumFogBase - _minimumFogBase) * random 1; - _fogValue = 0; - - if (_fogLevel == 0) then { - _fogValue = _minimumFog + (_maximumFog - _minimumFog) * random 0.05; - }; - if (_fogLevel == 1) then { - _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.05 + random 0.2); - }; - if (_fogLevel == 2) then { - _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.25 + random 0.3); - }; - if (_fogLevel == 3) then { - _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.55 + random 0.45); - }; + sleep 0.05; + + publicVariable "drn_var_DynamicWeather_Rain"; + drn_var_DynamicWeather_ServerInitialized = true; + publicVariable "drn_var_DynamicWeather_ServerInitialized"; + + // Start weather thread + [_minWeatherChangeTimeMin, _maxWeatherChangeTimeMin, _minTimeBetweenWeatherChangesMin, _maxTimeBetweenWeatherChangesMin, _minimumFog, _maximumFog, _minimumFogDecay, _maximumFogDecay, _minimumFogBase, _maximumFogBase, _minimumOvercast, _maximumOvercast, _minimumWind, _maximumWind, _windChangeProbability, _debug] spawn { + private ["_minWeatherChangeTimeMin", "_maxWeatherChangeTimeMin", "_minTimeBetweenWeatherChangesMin", "_maxTimeBetweenWeatherChangesMin", "_minimumFog", "_maximumFog", "_minimumOvercast", "_maximumOvercast", "_minimumWind", "_maximumWind", "_windChangeProbability", "_debug"]; + private ["_weatherType", "_fogLevel", "_overcastLevel", "_oldFogLevel", "_oldOvercastLevel", "_weatherChangeTimeSek"]; + private ["_fogValue", "_fogBase", "_fogDecay"]; + _minWeatherChangeTimeMin = _this select 0; + _maxWeatherChangeTimeMin = _this select 1; + _minTimeBetweenWeatherChangesMin = _this select 2; + _maxTimeBetweenWeatherChangesMin = _this select 3; + _minimumFog = _this select 4; + _maximumFog = _this select 5; + _minimumFogDecay = _this select 6; + _maximumFogDecay = _this select 7; + _minimumFogBase = _this select 8; + _maximumFogBase = _this select 9; + _minimumOvercast = _this select 10; + _maximumOvercast = _this select 11; + _minimumWind = _this select 12; + _maximumWind = _this select 13; + _windChangeProbability = _this select 14; + _debug = _this select 15; + + // Set initial fog level + _fogLevel = 2; + _overcastLevel = 2; + + while {true} do { + // Sleep a while until next weather change + sleep floor (_minTimeBetweenWeatherChangesMin * 60 + random ((_maxTimeBetweenWeatherChangesMin - _minTimeBetweenWeatherChangesMin) * 60)); + + if (_minimumFog == _maximumFog && _minimumOvercast != _maximumOvercast) then { + _weatherType = "OVERCAST"; + }; + if (_minimumFog != _maximumFog && _minimumOvercast == _maximumOvercast) then { + _weatherType = "FOG"; + }; + if (_minimumFog != _maximumFog && _minimumOvercast != _maximumOvercast) then { + + // Select type of weather to change + if ((random 100) < 50) then { + _weatherType = "OVERCAST"; + } + else { + _weatherType = "FOG"; + }; + }; + + // DEBUG + //_weatherType = "OVERCAST"; + + if (_weatherType == "FOG") then { + + drn_DynamicWeather_CurrentWeatherChange = "FOG"; + + // Select a new fog level + _oldFogLevel = _fogLevel; + _fogLevel = floor ((random 100) / 25); + + while {_fogLevel == _oldFogLevel} do { + _fogLevel = floor ((random 100) / 25); + }; + + _fogDecay = _minimumFogDecay + (_maximumFogDecay - _minimumFogDecay) * random 1; + _fogBase = _minimumFogBase + (_maximumFogBase - _minimumFogBase) * random 1; + _fogValue = 0; + + if (_fogLevel == 0) then { + _fogValue = _minimumFog + (_maximumFog - _minimumFog) * random 0.05; + }; + if (_fogLevel == 1) then { + _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.05 + random 0.2); + }; + if (_fogLevel == 2) then { + _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.25 + random 0.3); + }; + if (_fogLevel == 3) then { + _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.55 + random 0.45); + }; drn_DynamicWeather_WeatherTargetValue = [([_fogValue, _maximumFog] call drn_fnc_fogOdds) * _maximumFog, _fogDecay, _fogBase]; - drn_DynamicWeather_WeatherChangeStartedTime = time; - _weatherChangeTimeSek = _minWeatherChangeTimeMin * 60 + random ((_maxWeatherChangeTimeMin - _minWeatherChangeTimeMin) * 60); - drn_DynamicWeather_WeatherChangeCompletedTime = time + _weatherChangeTimeSek; - - if (_debug) then { - ["Weather forecast: Fog " + str drn_DynamicWeather_WeatherTargetValue + " in " + str round (_weatherChangeTimeSek / 60) + " minutes."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; - }; - }; - - if (_weatherType == "OVERCAST") then { - - drn_DynamicWeather_CurrentWeatherChange = "OVERCAST"; - - // Select a new overcast level - _oldOvercastLevel = _overcastLevel; - //_overcastLevel = floor ((random 100) / 25); - _overcastLevel = 3; - - while {_overcastLevel == _oldOvercastLevel} do { - _overcastLevel = floor ((random 100) / 25); - }; - - if (_overcastLevel == 0) then { - drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * random 0.05; - }; - if (_overcastLevel == 1) then { - drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.05 + random 0.3); - }; - if (_overcastLevel == 2) then { - drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.35 + random 0.35); - }; - if (_overcastLevel == 3) then { - drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.7 + random 0.3); - }; - - // DEBUG - /* - if (overcast > 0.8) then { - drn_DynamicWeather_WeatherTargetValue = 0.5; - } - else { - drn_DynamicWeather_WeatherTargetValue = 0.85; - }; - */ - - drn_DynamicWeather_WeatherChangeStartedTime = time; - _weatherChangeTimeSek = _minWeatherChangeTimeMin * 60 + random ((_maxWeatherChangeTimeMin - _minWeatherChangeTimeMin) * 60); - drn_DynamicWeather_WeatherChangeCompletedTime = time + _weatherChangeTimeSek; - - if (_debug) then { - ["Weather forecast: Overcast " + str drn_DynamicWeather_WeatherTargetValue + " in " + str round (_weatherChangeTimeSek / 60) + " minutes."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; - }; - }; - - // On average every one fourth of weather changes, change wind too - if (random 100 < _windChangeProbability) then { - private ["_maxWind"]; - - _maxWind = _minimumWind + random (_maximumWind - _minimumWind); - - if (random 100 < 50) then { - drn_DynamicWeather_WindX = -_minimumWind - random (_maxWind - _minimumWind); - } - else { - drn_DynamicWeather_WindX = _minimumWind + random (_maxWind - _minimumWind); - }; - if (random 100 < 50) then { - drn_DynamicWeather_WindZ = -_minimumWind - random (_maxWind - _minimumWind); - } - else { - drn_DynamicWeather_WindZ = _minimumWind + random (_maxWind - _minimumWind); - }; - - if (_debug) then { - ["Wind changes: [" + str drn_DynamicWeather_WindX + ", " + str drn_DynamicWeather_WindZ + "]."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; - }; - }; - - call drn_fnc_DynamicWeather_SetWeatherAllClients; - - sleep _weatherChangeTimeSek; - }; - }; - - // Start rain thread - if (_rainIntervalRainProbability > 0) then { - [_minimumRain, _maximumRain, _forceRainToStopAfterOneRainInterval, _minRainIntervalTimeMin, _maxRainIntervalTimeMin, _rainIntervalRainProbability, _debug] spawn { - private ["_minimumRain", "_maximumRain", "_forceRainToStopAfterOneRainInterval", "_minRainIntervalTimeMin", "_maxRainIntervalTimeMin", "_rainIntervalRainProbability", "_debug"]; - private ["_nextRainEventTime", "_forceStop"]; - - _minimumRain = _this select 0; - _maximumRain = _this select 1; - _forceRainToStopAfterOneRainInterval = _this select 2; - _minRainIntervalTimeMin = _this select 3; - _maxRainIntervalTimeMin = _this select 4; - _rainIntervalRainProbability = _this select 5; - _debug = _this select 6; - - if (rain > 0) then { - drn_var_DynamicWeather_Rain = rain; - publicVariable "drn_var_DynamicWeather_Rain"; - }; - - _nextRainEventTime = time; - _forceStop = false; - - while {true} do { - - if (overcast > 0.75) then { - - if (time >= _nextRainEventTime) then { - private ["_rainTimeSec"]; - - // At every rain event time, start or stop rain with 50% probability - if (random 100 < _rainIntervalRainProbability && !_forceStop) then { - drn_var_DynamicWeather_rain = _minimumRain + random (_maximumRain - _minimumRain); - publicVariable "drn_var_DynamicWeather_rain"; - - _forceStop = _forceRainToStopAfterOneRainInterval; - } - else { - drn_var_DynamicWeather_rain = 0; - publicVariable "drn_var_DynamicWeather_rain"; - - _forceStop = false; - }; - - // Pick a time for next rain change - _rainTimeSec = _minRainIntervalTimeMin * 60 + random ((_maxRainIntervalTimeMin - _minRainIntervalTimeMin) * 60); - _nextRainEventTime = time + _rainTimeSec; - - if (_debug) then { - ["Rain set to " + str drn_var_DynamicWeather_rain + " for " + str (_rainTimeSec / 60) + " minutes"] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; - }; - }; - } - else { - if (drn_var_DynamicWeather_rain != 0) then { - drn_var_DynamicWeather_rain = 0; - publicVariable "drn_var_DynamicWeather_rain"; - - if (_debug) then { - ["Rain stops due to low overcast."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; - }; - }; - - _nextRainEventTime = time; - _forceStop = false; - }; - - if (_debug) then { - sleep 1; - } - else { - sleep 20; - }; - }; - }; - }; + drn_DynamicWeather_WeatherChangeStartedTime = time; + _weatherChangeTimeSek = _minWeatherChangeTimeMin * 60 + random ((_maxWeatherChangeTimeMin - _minWeatherChangeTimeMin) * 60); + drn_DynamicWeather_WeatherChangeCompletedTime = time + _weatherChangeTimeSek; + + if (_debug) then { + ["Weather forecast: Fog " + str drn_DynamicWeather_WeatherTargetValue + " in " + str round (_weatherChangeTimeSek / 60) + " minutes."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; + }; + }; + + if (_weatherType == "OVERCAST") then { + + drn_DynamicWeather_CurrentWeatherChange = "OVERCAST"; + + // Select a new overcast level + _oldOvercastLevel = _overcastLevel; + //_overcastLevel = floor ((random 100) / 25); + _overcastLevel = 3; + + while {_overcastLevel == _oldOvercastLevel} do { + _overcastLevel = floor ((random 100) / 25); + }; + + if (_overcastLevel == 0) then { + drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * random 0.05; + }; + if (_overcastLevel == 1) then { + drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.05 + random 0.3); + }; + if (_overcastLevel == 2) then { + drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.35 + random 0.35); + }; + if (_overcastLevel == 3) then { + drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.7 + random 0.3); + }; + + // DEBUG + /* + if (overcast > 0.8) then { + drn_DynamicWeather_WeatherTargetValue = 0.5; + } + else { + drn_DynamicWeather_WeatherTargetValue = 0.85; + }; + */ + + drn_DynamicWeather_WeatherChangeStartedTime = time; + _weatherChangeTimeSek = _minWeatherChangeTimeMin * 60 + random ((_maxWeatherChangeTimeMin - _minWeatherChangeTimeMin) * 60); + drn_DynamicWeather_WeatherChangeCompletedTime = time + _weatherChangeTimeSek; + + if (_debug) then { + ["Weather forecast: Overcast " + str drn_DynamicWeather_WeatherTargetValue + " in " + str round (_weatherChangeTimeSek / 60) + " minutes."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; + }; + }; + + // On average every one fourth of weather changes, change wind too + if (random 100 < _windChangeProbability) then { + private ["_maxWind"]; + + _maxWind = _minimumWind + random (_maximumWind - _minimumWind); + + if (random 100 < 50) then { + drn_DynamicWeather_WindX = -_minimumWind - random (_maxWind - _minimumWind); + } + else { + drn_DynamicWeather_WindX = _minimumWind + random (_maxWind - _minimumWind); + }; + if (random 100 < 50) then { + drn_DynamicWeather_WindZ = -_minimumWind - random (_maxWind - _minimumWind); + } + else { + drn_DynamicWeather_WindZ = _minimumWind + random (_maxWind - _minimumWind); + }; + + if (_debug) then { + ["Wind changes: [" + str drn_DynamicWeather_WindX + ", " + str drn_DynamicWeather_WindZ + "]."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; + }; + }; + + call drn_fnc_DynamicWeather_SetWeatherAllClients; + + sleep _weatherChangeTimeSek; + }; + }; + + // Start rain thread + if (_rainIntervalRainProbability > 0) then { + [_minimumRain, _maximumRain, _forceRainToStopAfterOneRainInterval, _minRainIntervalTimeMin, _maxRainIntervalTimeMin, _rainIntervalRainProbability, _debug] spawn { + private ["_minimumRain", "_maximumRain", "_forceRainToStopAfterOneRainInterval", "_minRainIntervalTimeMin", "_maxRainIntervalTimeMin", "_rainIntervalRainProbability", "_debug"]; + private ["_nextRainEventTime", "_forceStop"]; + + _minimumRain = _this select 0; + _maximumRain = _this select 1; + _forceRainToStopAfterOneRainInterval = _this select 2; + _minRainIntervalTimeMin = _this select 3; + _maxRainIntervalTimeMin = _this select 4; + _rainIntervalRainProbability = _this select 5; + _debug = _this select 6; + + if (rain > 0) then { + drn_var_DynamicWeather_Rain = rain; + publicVariable "drn_var_DynamicWeather_Rain"; + }; + + _nextRainEventTime = time; + _forceStop = false; + + while {true} do { + + if (overcast > 0.75) then { + + if (time >= _nextRainEventTime) then { + private ["_rainTimeSec"]; + + // At every rain event time, start or stop rain with 50% probability + if (random 100 < _rainIntervalRainProbability && !_forceStop) then { + drn_var_DynamicWeather_rain = _minimumRain + random (_maximumRain - _minimumRain); + publicVariable "drn_var_DynamicWeather_rain"; + + _forceStop = _forceRainToStopAfterOneRainInterval; + } + else { + drn_var_DynamicWeather_rain = 0; + publicVariable "drn_var_DynamicWeather_rain"; + + _forceStop = false; + }; + + // Pick a time for next rain change + _rainTimeSec = _minRainIntervalTimeMin * 60 + random ((_maxRainIntervalTimeMin - _minRainIntervalTimeMin) * 60); + _nextRainEventTime = time + _rainTimeSec; + + if (_debug) then { + ["Rain set to " + str drn_var_DynamicWeather_rain + " for " + str (_rainTimeSec / 60) + " minutes"] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; + }; + }; + } + else { + if (drn_var_DynamicWeather_rain != 0) then { + drn_var_DynamicWeather_rain = 0; + publicVariable "drn_var_DynamicWeather_rain"; + + if (_debug) then { + ["Rain stops due to low overcast."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; + }; + }; + + _nextRainEventTime = time; + _forceStop = false; + }; + + if (_debug) then { + sleep 1; + } + else { + sleep 20; + }; + }; + }; + }; }; [_rainIntervalRainProbability, _debug] spawn { - private ["_rainIntervalRainProbability", "_debug"]; - private ["_rain", "_rainPerSecond"]; - - _rainIntervalRainProbability = _this select 0; - _debug = _this select 1; - - if (_debug) then { - _rainPerSecond = 0.2; - } - else { - _rainPerSecond = 0.03; - }; - - if (_rainIntervalRainProbability > 0) then { - _rain = drn_var_DynamicWeather_Rain; - } - else { - _rain = 0; - }; - - 0 setRain _rain; + private ["_rainIntervalRainProbability", "_debug"]; + private ["_rain", "_rainPerSecond"]; + + _rainIntervalRainProbability = _this select 0; + _debug = _this select 1; + + if (_debug) then { + _rainPerSecond = 0.2; + } + else { + _rainPerSecond = 0.03; + }; + + if (_rainIntervalRainProbability > 0) then { + _rain = drn_var_DynamicWeather_Rain; + } + else { + _rain = 0; + }; + + 0 setRain _rain; 0 setFog [fog max (_rain / 4), 0.001, 1000]; - sleep 0.1; - - while {true} do { - if (_rainIntervalRainProbability > 0) then { - if (_rain < drn_var_DynamicWeather_Rain) then { - _rain = _rain + _rainPerSecond; - if (_rain > 1) then { _rain = 1; }; - }; - if (_rain > drn_var_DynamicWeather_Rain) then { - _rain = _rain - _rainPerSecond; - if (_rain < 0) then { _rain = 0; }; - }; - } - else { - _rain = 0; - }; - - 3 setRain _rain; + sleep 0.1; + + while {true} do { + if (_rainIntervalRainProbability > 0) then { + if (_rain < drn_var_DynamicWeather_Rain) then { + _rain = _rain + _rainPerSecond; + if (_rain > 1) then { _rain = 1; }; + }; + if (_rain > drn_var_DynamicWeather_Rain) then { + _rain = _rain - _rainPerSecond; + if (_rain < 0) then { _rain = 0; }; + }; + } + else { + _rain = 0; + }; + + 3 setRain _rain; 3 setFog [fog max (_rain / 4), 0.001, 1000]; - sleep 10; - }; + sleep 10; + }; }; diff --git a/addons/scripts/lockIn.sqf b/addons/scripts/lockIn.sqf new file mode 100644 index 000000000..a362232e7 --- /dev/null +++ b/addons/scripts/lockIn.sqf @@ -0,0 +1,17 @@ +private ["_vehicle","_nearvehicle"]; +_nearvehicle = nearestObjects [player, ["LandVehicle", "Ship", "Air"], 5]; +_vehicle = _nearvehicle select 0; + +if (isNil "_vehicle") exitWith {}; + +if (!isDedicated) then + { + [[netId _vehicle, 2], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Lock + _vehicle setVariable ["objectLocked", true, true]; + _vehicle setVariable ["R3F_LOG_disabled",true,true]; + + _vehicle say3D "carlock"; + sleep 0.5; + titleText ["Locked!","PLAIN DOWN"]; titleFadeOut 5; + +}; \ No newline at end of file diff --git a/addons/scripts/servercredits.sqf b/addons/scripts/servercredits.sqf index bec05b4e1..0639a4b0b 100644 --- a/addons/scripts/servercredits.sqf +++ b/addons/scripts/servercredits.sqf @@ -41,8 +41,8 @@ sleep 60; //Wait in seconds before the credits start after player IS ingame _role1 = "Welcome to"; _role1names = ["A3Armory - A3Wasteland Altis"]; -_role2 = "Server restarts every 6 hours"; -_role2names = ["2, 8, 14, 20 EST"]; +_role2 = "Server restarts @"; +_role2names = ["4, 9, 13, 18, 23 EST"]; _role3 = "Player stats, and support @"; _role3names = ["A3Armory.com"]; diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 88c468b46..500629ae3 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -13,7 +13,8 @@ ["Heal Self", "addons\scripts\healSelf.sqf",0,0,false,false,"","((damage player)>0.01 && (damage player)<0.25499) && ('FirstAidKit' in (items player)) && (vehicle player == player)"], ["Resupply", "addons\scripts\fn_resupplytruck.sqf", [], 51, false, false, "", "!(vehicle player == player) and (cursortarget iskindof 'O_Truck_03_device_F') and (player distance cursortarget) < 10"], - ["Messenger", "addons\JTS_PM\JTS_PM.sqf", [], -10, false], //, false, "", ""], + ["Messenger", "addons\JTS_PM\JTS_PM.sqf", [], -11, false], //, false, "", ""], + [format [" [Player Menu]", "#FF8000"], "client\systems\playerMenu\init.sqf", [], -10, false], //, false, "", ""], [" Pickup Money", "client\actions\pickupMoney.sqf", [], 1, false, false, "", "{_x getVariable ['owner', ''] != 'mission'} count (player nearEntities ['Land_Money_F', 5]) > 0"], @@ -21,16 +22,18 @@ [" Cancel Action", { doCancelAction = true }, [], 1, false, false, "", "mutexScriptInProgress"], [" Salvage", "client\actions\salvage.sqf", [], 1.1, false, false, "", "!isNull cursorTarget && !alive cursorTarget && {cursorTarget isKindOf 'AllVehicles' && !(cursorTarget isKindOf 'Man') && player distance cursorTarget <= (sizeOf typeOf cursorTarget / 3) max 2}"], - [" Lock", "addons\scripts\lock.sqf", [], 1, false, false, "", "count nearestObjects [player, ['O_Truck_03_device_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'C_Heli_Light_01_civil_F'], 5] > 0 && !(vehicle player == player)"], - [" Unlock", "addons\scripts\unlock.sqf", [], 1, false, false, "", "count nearestObjects [player, ['O_Truck_03_device_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'C_Heli_Light_01_civil_F'], 5] > 0 && !(vehicle player == player)"], - [" Lock", "addons\scripts\lock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'O_Truck_03_device_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'B_Heli_Light_01_armed_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'C_Heli_Light_01_civil_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget < 2 && cursorTarget distance player < 5"], + + [" Lock", "addons\scripts\lockIn.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'C_Heli_Light_01_civil_F'], 5] > 0 && !(vehicle player == player)"], + [" Unlock", "addons\scripts\unlock.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'C_Heli_Light_01_civil_F'], 5] > 0 && !(vehicle player == player)"], + [" Lock", "addons\scripts\lock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'O_Truck_03_device_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'B_Heli_Light_01_armed_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'C_Heli_Light_01_civil_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget < 2 && cursorTarget distance player < 5"], [" Unlock", "addons\scripts\unlock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], - [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], - [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], + + [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], + [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], [" Re\Save Weapon", "addons\scripts\weaponResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && (player distance cursortarget) < 5"], - [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && (player distance cursortarget) < 5"], + [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'UGV_01_base_F', 'UAV_02_base_F'] > 0 ;} && (player distance cursortarget) < 5"], ["[0]"] call getPushPlaneAction, ["Push vehicle", "server\functions\pushVehicle.sqf", [2.5, true], 1, false, false, "", "[2.5] call canPushVehicleOnFoot"], diff --git a/description.ext b/description.ext index 638bb023b..dca0908b8 100644 --- a/description.ext +++ b/description.ext @@ -54,11 +54,12 @@ loadScreen = "mapConfig\Loading.jpg"; #include "client\systems\playerMenu\dialog\teamkill_dialog.hpp" #include "addons\proving_ground\PG_config.hpp" #include "addons\JTS_PM\PM_Compact.hpp" +#include "outlw_magRepack\MagRepack_Config.hpp" class RscTitles { #include "addons\proving_ground\PG_rsctitles.hpp" - #include "client\systems\hud\dialog\hud.hpp" + #include "client\systems\hud\dialog\hud.hpp" #include "client\systems\playerMenu\dialog\welcome.hpp" #include "client\systems\scoreboard\score_gui.hpp" }; @@ -75,13 +76,18 @@ class CfgNotifications { #include "client\CfgNotifications.hpp" }; -class CfgSounds { - sounds[] = { - carlock - }; - class carlock { - name = "carlock"; - sound[] = {sounds\carlock.ogg,0.2,1}; - titles[] = {}; - }; + +class CfgSounds +{ + sounds[] = + { + carlock + }; + +class carlock +{ +name = "carlock"; +sound[] = {sounds\carlock.ogg,0.2,1}; +titles[] = {}; +}; }; \ No newline at end of file diff --git a/init.sqf b/init.sqf index ee35d102f..0540db3a6 100644 --- a/init.sqf +++ b/init.sqf @@ -71,3 +71,4 @@ if (isServer) then [] execVM "addons\JTS_PM\Functions.sqf"; [] execVM "addons\scripts\servercredits.sqf"; [] execVM "addons\scripts\zlt_fastrope.sqf"; +[] execVM "outlw_magRepack\MagRepack_init_sv.sqf"; \ No newline at end of file diff --git a/outlw_magRepack/Configs/MagRepack_Dialog_About.hpp b/outlw_magRepack/Configs/MagRepack_Dialog_About.hpp new file mode 100644 index 000000000..bbf9be7d0 --- /dev/null +++ b/outlw_magRepack/Configs/MagRepack_Dialog_About.hpp @@ -0,0 +1,129 @@ + +class MagRepack_Dialog_About +{ + idd = -1; + onLoad = "uiNamespace setVariable ['outlw_MR_Dialog_About', (_this select 0)]"; + + class Controls + { + class A_BG_Main: outlw_MR_IGUIBack + { + idc = 2200; + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 10.5 * GUI_GRID_H + GUI_GRID_Y; + w = 20 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class A_MainTitle: outlw_MR_RscText + { + idc = 1000; + text = "Mag Repack: About"; + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 9.375 * GUI_GRID_H + GUI_GRID_Y; + w = 20 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + }; + class A_ButtonCancel: outlw_MR_RscButtonMenu + { + idc = 2400; + text = "Mmkay"; + action = "closeDialog 0"; + x = 22.5 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 7.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + default = false; + + class Attributes + { + align = "right"; + }; + }; + class A_BG_MiddleBottom: outlw_MR_IGUIBack + { + idc = 2405; + x = 17.625 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 4.7225 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class A_BG_LeftBottom: outlw_MR_IGUIBack + { + idc = 2401; + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 7.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {0,0,0,0.75}; + }; + class A_Author: outlw_MR_RscText + { + idc = 1002; + text = "Author: Outlawled"; + x = 10.5 * GUI_GRID_W + GUI_GRID_X; + y = 10.75 * GUI_GRID_H + GUI_GRID_Y; + w = 19 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + + sizeEx = 0.8 * GUI_GRID_H; + }; + class A_Version: outlw_MR_RscText + { + idc = 1001; + text = "Version:"; + x = 10.5 * GUI_GRID_W + GUI_GRID_X; + y = 11.55 * GUI_GRID_H + GUI_GRID_Y; + w = 19 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + + sizeEx = 0.8 * GUI_GRID_H; + }; + class A_Date: outlw_MR_RscText + { + idc = 1003; + text = "Updated:"; + x = 10.5 * GUI_GRID_W + GUI_GRID_X; + y = 12.35 * GUI_GRID_H + GUI_GRID_Y; + w = 19 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + + sizeEx = 0.8 * GUI_GRID_H; + }; + class A_ForumLink: outlw_MR_RscText + { + idc = 1004; + text = "BI Forum URL:"; + x = 10.5 * GUI_GRID_W + GUI_GRID_X; + y = 13.15 * GUI_GRID_H + GUI_GRID_Y; + w = 10 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + sizeEx = 0.8 * GUI_GRID_H; + }; + class A_ButtonCopy: outlw_MR_RscButtonMenu + { + idc = 1005; + text = "Copy"; + action = "copyToClipboard 'http://forums.bistudio.com/showthread.php?151402-Mag-Repack';"; + x = 16.25 * GUI_GRID_W + GUI_GRID_X; + y = 13.25 * GUI_GRID_H + GUI_GRID_Y; + w = 4 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + + tooltip = "http://forums.bistudio.com/showthread.php?151402-Mag-Repack"; + + default = true; + + class Attributes + { + align = "center"; + size = "0.75"; + valign = "middle"; + }; + }; + }; +}; diff --git a/outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp b/outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp new file mode 100644 index 000000000..d90cb059d --- /dev/null +++ b/outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp @@ -0,0 +1,289 @@ + +class MagRepack_Dialog_Keybindings +{ + idd = -1; + onLoad = "uiNamespace setVariable ['outlw_MR_Dialog_Keybindings', (_this select 0)]"; + onUnload = "outlw_MR_keybindingMenuActive = false;"; + onKeyDown = "_this call outlw_KB_keyDown;"; + onKeyUp = "_this call outlw_KB_keyUp;"; + + class Controls + { + class KB_BG_Main: outlw_MR_IGUIBack + { + idc = 2200; + + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 10.5 * GUI_GRID_H + GUI_GRID_Y; + w = 20 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class KB_MainTitle: outlw_MR_RscText + { + idc = 1000; + text = "Mag Repack: Keybindings"; + + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 9.375 * GUI_GRID_H + GUI_GRID_Y; + w = 20 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + }; + class KB_ButtonCancel: outlw_MR_RscButtonMenu + { + idc = 2400; + text = "Cancel"; + action = "closeDialog 0"; + + x = 22.5 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 7.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + default = false; + + class Attributes + { + align = "right"; + }; + }; + class KB_BG_MiddleBottom: outlw_MR_IGUIBack + { + idc = 2405; + + x = 17.625 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 4.7225 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class KB_ButtonApply: outlw_MR_RscButtonMenu + { + idc = 2401; + text = "Apply"; + action = "[[outlw_KB_cShift, outlw_KB_cCtrl, outlw_KB_cAlt, outlw_KB_cKey]] call outlw_MR_applyKeybinding;"; + + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 7.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + default = false; + }; + class KB_BG_Keybinding: outlw_MR_IGUIBack + { + idc = 2498; + + x = 20.125 * GUI_GRID_W + GUI_GRID_X; + y = 11.375 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {1,1,1,0.25}; + }; + class KB_Keybinding: outlw_MR_RscStructuredText + { + idc = 2499; + text = ""; + + x = 20.125 * GUI_GRID_W + GUI_GRID_X; + y = 11.375 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {0,0,0,0}; + + class Attributes + { + align = "center"; + valign = "middle"; + size = 0.8; + }; + }; + class KB_BG_Shift: outlw_MR_IGUIBack + { + idc = 2500; + + x = 20.125 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.875 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {0,0,0,0.8}; + }; + class KB_BG_Ctrl: outlw_MR_IGUIBack + { + idc = 2501; + + x = 23.1875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.75 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {0,0,0,0.8}; + }; + class KB_BG_Alt: outlw_MR_IGUIBack + { + idc = 2502; + + x = 26.1875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.875 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {0,0,0,0.8}; + }; + class KB_ButtonShift: outlw_MR_RscButtonMenu + { + idc = 2550; + text = "Shift"; + + action = "[0] call outlw_KB_modifierSwitch;"; + + x = 20.125 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.875 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorFocused[] = {1,1,1,0.5}; + colorBackgroundFocused[] = {0,0,0,0}; + colorBackground[] = {0,0,0,0}; + colorBackground2[] = {1,1,1,0.5}; + + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; + + class Attributes + { + align = "center"; + size = "0.875"; + }; + }; + class KB_ButtonCtrl: outlw_MR_RscButtonMenu + { + idc = 2551; + text = "Ctrl"; + + action = "[1] call outlw_KB_modifierSwitch;"; + + x = 23.1875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.75 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorFocused[] = {1,1,1,0.5}; + colorBackgroundFocused[] = {0,0,0,0}; + colorBackground[] = {0,0,0,0}; + colorBackground2[] = {1,1,1,0.5}; + + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; + + class Attributes + { + align = "center"; + size = "0.875"; + }; + }; + class KB_ButtonAlt: outlw_MR_RscButtonMenu + { + idc = 2552; + text = "Alt"; + + action = "[2] call outlw_KB_modifierSwitch;"; + + x = 26.1875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.875 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorFocused[] = {1,1,1,0.5}; + colorBackgroundFocused[] = {0,0,0,0}; + colorBackground[] = {0,0,0,0}; + colorBackground2[] = {1,1,1,0.5}; + + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; + + class Attributes + { + align = "center"; + size = "0.875"; + }; + }; + class KB_BG_KeyDescription: outlw_MR_RscPicture + { + idc = 2570; + text = "outlw_magRepack\Images\MR_TargetGradient.paa"; + + x = 10.875 * GUI_GRID_W + GUI_GRID_X; + y = 11.375 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + }; + class KB_BG_ModDescription: outlw_MR_RscPicture + { + idc = 2571; + text = "outlw_magRepack\Images\MR_TargetGradient.paa"; + + x = 10.875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + }; + class KB_KeyDescription: outlw_MR_RscStructuredText + { + idc = 2572; + text = "Keybinding:"; + + x = 10.875 * GUI_GRID_W + GUI_GRID_X; + y = 11.375 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + class Attributes + { + align = "right"; + }; + }; + class KB_ModDescription: outlw_MR_RscStructuredText + { + idc = 2573; + text = "Modifiers:"; + + x = 10.875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + class Attributes + { + align = "right"; + }; + }; + }; +}; + + + + + + + + diff --git a/outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp b/outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp new file mode 100644 index 000000000..8152cdecd --- /dev/null +++ b/outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp @@ -0,0 +1,689 @@ + +class MagRepack_Dialog_Main +{ + idd = -1; + movingenable = false; + onLoad = "uiNamespace setVariable ['outlw_MR_Dialog_Main', (_this select 0)]"; + onUnload = "call outlw_MR_onDialogDestroy;"; + onMouseButtonUp = "call outlw_MR_onMouseButtonUp;"; + + class Controls + { + class MR_BG_ListBox: outlw_MR_IGUIBack + { + idc = 2200; + + x = 4.25 * GUI_GRID_W + GUI_GRID_X; + y = 2.5 * GUI_GRID_H + GUI_GRID_Y; + w = 14 * GUI_GRID_W; + h = 15.75 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_BG_Main: outlw_MR_IGUIBack + { + idc = 2201; + + x = 18.5 * GUI_GRID_W + GUI_GRID_X; + y = 2 * GUI_GRID_H + GUI_GRID_Y; + w = 18 * GUI_GRID_W; + h = 14.5 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_BG_LeftBorder: outlw_MR_IGUIBack + { + idc = 2955; + + x = 3.7 * GUI_GRID_W + GUI_GRID_X; + y = 2.75 * GUI_GRID_H + GUI_GRID_Y; + w = 0.25 * GUI_GRID_W; + h = 15.25 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_BG_BottomBorder: outlw_MR_IGUIBack + { + idc = 2956; + + x = 8.5 * GUI_GRID_W + GUI_GRID_X; + y = 18.5 * GUI_GRID_H + GUI_GRID_Y; + w = 8.5 * GUI_GRID_W; + h = 0.25 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + /* + class MR_BG_Logo: outlw_MR_IGUIBack + { + idc = 2956; + + x = 4.25 * GUI_GRID_W + GUI_GRID_X; + y = 18.5 * GUI_GRID_H + GUI_GRID_Y; + w = 6.0404 * GUI_GRID_W; + h = 1.1633 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_Logo: outlw_MR_RscPicture + { + idc = 1200; + + text = "outlw_magRepack\Images\MR_logo.paa"; + x = 4.5 * GUI_GRID_W + GUI_GRID_X; + y = 17 * GUI_GRID_H + GUI_GRID_Y; + w = 5.5 * GUI_GRID_W; + h = 4.5 * GUI_GRID_H; + }; + */ + class MR_MainTitle: outlw_MR_RscStructuredText + { + idc = 1001; + + text = "Mag Repack"; + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 0.75 * GUI_GRID_H + GUI_GRID_Y; + w = 12.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {0,0,0,1}; + }; + class MR_MagListTitle: outlw_MR_RscStructuredText + { + idc = 1000; + + text = "All Magazines"; + x = 7.75 * GUI_GRID_W + GUI_GRID_X; + y = 1.25 * GUI_GRID_H + GUI_GRID_Y; + w = 10 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {0,0,0,1}; + + class Attributes + { + align = "right"; + }; + }; + class MR_SourceBox: outlw_MR_IGUIBack + { + idc = 2208; + + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 3.5 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {1,1,1,0.1}; + }; + class MR_FG_Source: outlw_MR_RscPicture + { + idc = 2210; + text = "outlw_magRepack\Images\MR_SourceGradient.paa"; + + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 4 * GUI_GRID_H + GUI_GRID_Y; + w = 16 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + }; + class MR_TargetBox: outlw_MR_IGUIBack + { + idc = 2214; + + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 8 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {1,1,1,0.1}; + }; + class MR_FG_Target: outlw_MR_RscPicture + { + idc = 2211; + text = "outlw_magRepack\Images\MR_TargetGradient.paa"; + + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 8.5 * GUI_GRID_H + GUI_GRID_Y; + w = 16 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + }; + class MR_BG_SourceText: outlw_MR_RscText + { + idc = 1005; + style = 1; + + text = ""; + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 3 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 0.5 * GUI_GRID_H; + colorBackground[] = {0,0,0,1}; + sizeEx = 0.8 * GUI_GRID_H; + }; + class MR_SourceText: outlw_MR_RscText + { + idc = 1002; + style = 0; + + text = " Source"; + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 2.8125 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 0.75 * GUI_GRID_H; + colorBackground[] = {0,0,0,0}; + sizeEx = 0.75 * GUI_GRID_H; + }; + class MR_BG_TargetText: outlw_MR_RscText + { + idc = 1003; + style = 1; + + text = ""; + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 12 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 0.5 * GUI_GRID_H; + colorBackground[] = {0,0,0,1}; + sizeEx = 0.8 * GUI_GRID_H; + }; + class MR_TargetText: outlw_MR_RscText + { + idc = 1004; + style = 1; + + text = "Target "; + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 11.8125 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 0.75 * GUI_GRID_H; + colorBackground[] = {0,0,0,0}; + sizeEx = 0.75 * GUI_GRID_H; + }; + class MR_SourcePic: outlw_MR_RscPicture + { + idc = 1201; + + text = ""; + x = 20 * GUI_GRID_W + GUI_GRID_X; + y = 4 * GUI_GRID_H + GUI_GRID_Y; + w = 3.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + }; + class MR_SourceInfo: outlw_MR_RscStructuredText + { + idc = 1100; + + x = 23 * GUI_GRID_W + GUI_GRID_X; + y = 4.25 * GUI_GRID_H + GUI_GRID_Y; + w = 12.5 * GUI_GRID_W; + h = 2.5 * GUI_GRID_H; + sizeEx = 0.65 * GUI_GRID_H; + }; + class MR_TargetPic: outlw_MR_RscPicture + { + idc = 1203; + + text = ""; + x = 31.5 * GUI_GRID_W + GUI_GRID_X; + y = 8.5 * GUI_GRID_H + GUI_GRID_Y; + w = 3.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + }; + class MR_TargetInfo: outlw_MR_RscStructuredText + { + idc = 1101; + + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 8.75 * GUI_GRID_H + GUI_GRID_Y; + w = 12.5 * GUI_GRID_W; + h = 2.5 * GUI_GRID_H; + sizeEx = 0.65 * GUI_GRID_H; + }; + class MR_SourceListBox: outlw_MR_RscListBox + { + idc = 1501; + canDrag = 1; + rowHeight = 3 * GUI_GRID_H; + onLBDrag = "[(((_this select 1) select 0) select 1), (((_this select 1) select 0) select 2), 'source'] call outlw_MR_onDrag;"; + onMouseButtonClick = "if ((_this select 1) == 1) then {call outlw_MR_clearSource;};"; + + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 4 * GUI_GRID_H + GUI_GRID_Y; + w = 16 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + sizeEx = 0.65 * GUI_GRID_H; + + colorText[] = {0,0,0,0}; + colorDisabled[] = {0,0,0,0}; + colorScrollbar[] = {0,0,0,0}; + colorSelect[] = {0,0,0,0}; + colorSelect2[] = {0,0,0,0}; + colorSelectBackground[] = {0,0,0,0}; + colorSelectBackground2[] = {0,0,0,0}; + colorBackground[] = {0,0,0,0}; + }; + class MR_TargetListBox: outlw_MR_RscListBox + { + idc = 1502; + canDrag = 1; + rowHeight = 3 * GUI_GRID_H; + onLBDrag = "[(((_this select 1) select 0) select 1), (((_this select 1) select 0) select 2), 'target'] call outlw_MR_onDrag;"; + onMouseButtonClick = "if ((_this select 1) == 1) then {call outlw_MR_clearTarget;};"; + + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 8.5 * GUI_GRID_H + GUI_GRID_Y; + w = 16 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + sizeEx = 0.65 * GUI_GRID_H; + + colorText[] = {0,0,0,0}; + colorDisabled[] = {0,0,0,0}; + colorScrollbar[] = {0,0,0,0}; + colorSelect[] = {0,0,0,0}; + colorSelect2[] = {0,0,0,0}; + colorSelectBackground[] = {0,0,0,0}; + colorSelectBackground2[] = {0,0,0,0}; + colorBackground[] = {0,0,0,0}; + }; + class MR_SourceArea: outlw_MR_IGUIBack + { + idc = 2215; + onLBDrop = "((_this select 4) select 0) call outlw_MR_addSource; true;"; + + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 3.5 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {0,0,0,0}; + tooltipColorBox[] = {0,0,0,0}; + }; + class MR_TargetArea: outlw_MR_IGUIBack + { + idc = 2216; + onLBDrop = "((_this select 4) select 0) call outlw_MR_addTarget; true;"; + + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 8 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {0,0,0,0}; + tooltipColorBox[] = {0,0,0,0}; + }; + class MR_SourceConvertButton: outlw_MR_RscButtonMenu + { + idc = 1600; + text = ""; + action = "['Source'] call outlw_MR_convert;"; + + x = 33 * GUI_GRID_W + GUI_GRID_X; + y = 3.5 * GUI_GRID_H + GUI_GRID_Y; + w = 3 * GUI_GRID_W; + h = 0.5 * GUI_GRID_H; + + size = 0.5 * GUI_GRID_H; + + class Attributes + { + font = "PuristaMedium"; + align = "center"; + }; + + animTextureNormal = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; + animTexturePressed = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; + }; + class MR_TargetConvertButton: outlw_MR_RscButtonMenu + { + idc = 1601; + text = ""; + action = "['target'] call outlw_MR_convert;"; + + x = 33 * GUI_GRID_W + GUI_GRID_X; + y = 8 * GUI_GRID_H + GUI_GRID_Y; + w = 3 * GUI_GRID_W; + h = 0.5 * GUI_GRID_H; + + size = 0.5 * GUI_GRID_H; + + class Attributes + { + font = "PuristaMedium"; + align = "center"; + }; + + animTextureNormal = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; + animTexturePressed = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; + }; + class MR_BG_ComboBox: outlw_MR_IGUIBack + { + idc = 15000; + + x = 4.75 * GUI_GRID_W + GUI_GRID_X; + y = 3.8 * GUI_GRID_H + GUI_GRID_Y; + w = 13.5 * GUI_GRID_W; + h = 13.95 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.35}; + }; + class MR_MagListBox: outlw_MR_RscListBox + { + idc = 1500; + type = 102; + canDrag = 1; + columns[] = {0.12,-0.01,0.006,0.83}; + rowHeight = 1.45 * GUI_GRID_H; + drawSideArrows = 0; + idcLeft = -1; + idcRight = -1; + onLBDrag = "[(((_this select 1) select 0) select 1), (((_this select 1) select 0) select 2), 'list'] call outlw_MR_onDrag;"; + + x = 4.75 * GUI_GRID_W + GUI_GRID_X; + y = 4 * GUI_GRID_H + GUI_GRID_Y; + w = 13 * GUI_GRID_W; + h = 13.6 * GUI_GRID_H; + sizeEx = 0.7 * GUI_GRID_H; + }; + class MR_MagListBoxArea: outlw_MR_IGUIBack + { + idc = 2217; + onLBDrop = "call outlw_MR_moveToList; true;"; + + x = 4.75 * GUI_GRID_W + GUI_GRID_X; + y = 3.8 * GUI_GRID_H + GUI_GRID_Y; + w = 13.5 * GUI_GRID_W; + h = 13.95 * GUI_GRID_H; + colorBackground[] = {0,0,0,0}; + }; + class MR_MagListCombo: outlw_MR_RscCombo + { + idc = 22170; + onLBSelChanged = "outlw_MR_currentFilter = (_this select 0) lbData ((_this select 1) - 1); call outlw_MR_populateMagListBox;"; + + x = 4.75 * GUI_GRID_W + GUI_GRID_X; + y = 3 * GUI_GRID_H + GUI_GRID_Y; + w = 13.5 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + + sizeEx = 0.75 * GUI_GRID_H; + }; + class MR_PB_SourceAmmo: outlw_MR_RscControlsGroup + { + idc = 2218; + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 4 * GUI_GRID_H + GUI_GRID_Y; + w = 0.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + + class Controls + { + class MR_SourceAmmo: outlw_MR_IGUIBack + { + idc = 22180; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 3 * GUI_GRID_H + GUI_GRID_Y; + w = 0.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + colorBackground[] = {1,1,1,1}; + }; + }; + }; + class MR_PB_TargetAmmo: outlw_MR_RscControlsGroup + { + idc = 2219; + x = 35 * GUI_GRID_W + GUI_GRID_X; + y = 8.5 * GUI_GRID_H + GUI_GRID_Y; + w = 0.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + + class Controls + { + class MR_TargetAmmo: outlw_MR_IGUIBack + { + idc = 22190; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 3 * GUI_GRID_H + GUI_GRID_Y; + w = 0.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + colorBackground[] = {1,1,1,1}; + }; + }; + }; + class MR_BG_RepackProgress: outlw_MR_IGUIBack + { + idc = 10005; + + x = 20.875 * GUI_GRID_W + GUI_GRID_X; + y = 13.875 * GUI_GRID_H + GUI_GRID_Y; + w = 13.3125 * GUI_GRID_W; + h = 1.25 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.9}; + }; + class MR_PB_Repack: outlw_MR_RscControlsGroup + { + idc = 10000; + + x = 21 * GUI_GRID_W + GUI_GRID_X; + y = 14 * GUI_GRID_H + GUI_GRID_Y; + w = 13 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + class Controls + { + class MR_BG_RepackProgress: outlw_MR_IGUIBack + { + idc = 10001; + + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 0 * GUI_GRID_H + GUI_GRID_Y; + w = 13 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {1,1,1,0.2}; + }; + class MR_RepackProgress: outlw_MR_IGUIBack + { + idc = 10002; + + x = -13 * GUI_GRID_W + GUI_GRID_X; + y = 0 * GUI_GRID_H + GUI_GRID_Y; + w = 13 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {1,1,1,0.275}; + }; + }; + }; + class MR_RepackingText: outlw_MR_RscText + { + idc = 1008; + text = ""; + x = 25 * GUI_GRID_W + GUI_GRID_X; + y = 14 * GUI_GRID_H + GUI_GRID_Y; + w = 5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + }; + class MR_ButtonClose: outlw_MR_RscActiveText + { + idc = 2499; + style = 48; + text = "\A3\Ui_f\data\GUI\Rsc\RscDisplayArcadeMap\icon_exit_cross_ca.paa"; + tooltip = "Close"; + action = "closeDialog 0;"; + + x = 35.625 * GUI_GRID_W + GUI_GRID_X; + y = 2.125 * GUI_GRID_H + GUI_GRID_Y; + w = 0.76 * GUI_GRID_W; + h = 0.75 * GUI_GRID_H; + + default = false; + }; + class MR_ButtonOptions: outlw_MR_RscButtonMenu + { + idc = 2400; + + text = "Options"; + action = "call outlw_MR_optionsMenu;"; + x = 18.5 * GUI_GRID_W + GUI_GRID_X; + y = 16.75 * GUI_GRID_H + GUI_GRID_Y; + w = 6.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + }; + class MR_Options_Border_Top: outlw_MR_IGUIBack + { + idc = 8997; + + x = 36.75 * GUI_GRID_W + GUI_GRID_X; + y = 5.75 * GUI_GRID_H + GUI_GRID_Y; + w = 0.25 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_Options_Border_Bottom: outlw_MR_IGUIBack + { + idc = 8998; + + x = 36.75 * GUI_GRID_W + GUI_GRID_X; + y = 13.25 * GUI_GRID_H + GUI_GRID_Y; + w = 0.25 * GUI_GRID_W; + h = 1.5 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_Options_Border: outlw_MR_IGUIBack + { + idc = 8999; + + x = 36.75 * GUI_GRID_W + GUI_GRID_X; + y = 8.75 * GUI_GRID_H + GUI_GRID_Y; + w = 0.25 * GUI_GRID_W; + h = 4.5 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_Options_Group: outlw_MR_RscControlsGroup + { + idc = 9000; + + x = 36.5 * GUI_GRID_W + GUI_GRID_X; + y = 7.375 * GUI_GRID_H + GUI_GRID_Y; + w = 0 * GUI_GRID_W; + h = 6.125 * GUI_GRID_H; + + class Controls + { + class MR_BG_Options: outlw_MR_IGUIBack + { + idc = 9007; + + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 1.125 * GUI_GRID_H + GUI_GRID_Y; + w = 8 * GUI_GRID_W; + h = 3.875 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.675}; + }; + class MR_OptionsTitle: outlw_MR_RscStructuredText + { + idc = 9001; + + text = "OPTIONS"; + x = 1.75 * GUI_GRID_W + GUI_GRID_X; + y = 0 * GUI_GRID_H + GUI_GRID_Y; + w = 6 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + colorBackground[] = {0,0,0,1}; + + class Attributes + { + align = "right"; + size = "0.875"; + }; + }; + class MR_ButtonOption_Debug: outlw_MR_RscButtonMenu + { + idc = 9002; + text = "Debug Mode"; + action = "call outlw_MR_debugSwitch;"; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 1.125 * GUI_GRID_H + GUI_GRID_Y; + w = 8 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + + class Attributes + { + size = "0.875"; + }; + + default = false; + }; + class MR_ButtonOption_ShowFull: outlw_MR_RscButtonMenu + { + idc = 9004; + text = "Show Full"; + action = "call outlw_MR_showFullSwitch;"; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 2.125 * GUI_GRID_H + GUI_GRID_Y; + w = 8 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + + class Attributes + { + size = "0.875"; + }; + + default = false; + }; + class MR_ButtonOption_Keybindings: outlw_MR_RscButtonMenu + { + idc = 9003; + text = "Keybindings"; + action = "call outlw_MR_openKeybindings"; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 3.125 * GUI_GRID_H + GUI_GRID_Y; + w = 8 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + + class Attributes + { + size = "0.875"; + }; + + default = false; + }; + class MR_ButtonOption_About: outlw_MR_RscButtonMenu + { + idc = 9005; + text = "About"; + action = "call outlw_MR_openAbout"; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 4.125 * GUI_GRID_H + GUI_GRID_Y; + w = 8 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + + class Attributes + { + size = "0.875"; + }; + + default = false; + }; + class MR_ButtonOption_Hide: outlw_MR_RscButtonMenu + { + idc = 9006; + text = "Hide"; + action = "call outlw_MR_optionsMenu;"; + x = 4.5 * GUI_GRID_W + GUI_GRID_X; + y = 5.25 * GUI_GRID_H + GUI_GRID_Y; + w = 3.5 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + + class Attributes + { + align = "right"; + size = "0.875"; + }; + + default = false; + }; + }; + }; + }; +}; + + + + + + + + diff --git a/outlw_magRepack/Configs/defines.hpp b/outlw_magRepack/Configs/defines.hpp new file mode 100644 index 000000000..9a9f08316 --- /dev/null +++ b/outlw_magRepack/Configs/defines.hpp @@ -0,0 +1,419 @@ + +#define GUI_GRID_X (0) +#define GUI_GRID_Y (0) +#define GUI_GRID_W (0.025) +#define GUI_GRID_H (0.04) +#define GUI_GRID_WAbs (1) +#define GUI_GRID_HAbs (1) + +// Control types +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_SLIDER 3 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_SHORTCUTBUTTON 16 +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define CT_LISTNBOX 102 + +// Static styles +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0C + +#define ST_TYPE 0xF0 +#define ST_SINGLE 0x00 +#define ST_MULTI 0x10 +#define ST_TITLE_BAR 0x20 +#define ST_PICTURE 0x30 +#define ST_FRAME 0x40 +#define ST_BACKGROUND 0x50 +#define ST_GROUP_BOX 0x60 +#define ST_GROUP_BOX2 0x70 +#define ST_HUD_BACKGROUND 0x80 +#define ST_TILE_PICTURE 0x90 +#define ST_WITH_RECT 0xA0 +#define ST_LINE 0xB0 + +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 +#define ST_KEEP_ASPECT_RATIO 0x800 + +#define ST_TITLE ST_TITLE_BAR + ST_CENTER + +// Slider styles +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 + +#define SL_TEXTURES 0x10 + +// progress bar +#define ST_VERTICAL 0x01 +#define ST_HORIZONTAL 0 + +// Listbox styles +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 + +// Tree styles +#define TR_SHOWROOT 1 +#define TR_AUTOCOLLAPSE 2 + +// MessageBox styles +#define MB_BUTTON_OK 1 +#define MB_BUTTON_CANCEL 2 +#define MB_BUTTON_USER 4 + +class outlw_MR_RscText +{ + access = 0; + type = 0; + idc = -1; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + text = ""; + fixedWidth = 0; + x = 0; + y = 0; + h = 0.037; + w = 0.3; + style = 0; + shadow = 1; + colorShadow[] = {0,0,0,0.5}; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + linespacing = 1; +}; +class outlw_MR_RscStructuredText +{ + access = 0; + type = 13; + idc = -1; + style = 0; + colorText[] = {1,1,1,1}; + class Attributes + { + font = "PuristaMedium"; + color = "#ffffff"; + align = "left"; + shadow = 1; + }; + x = 0; + y = 0; + h = 0.035; + w = 0.1; + text = ""; + size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + shadow = 1; +}; +class outlw_MR_RscPicture +{ + access = 0; + type = 0; + idc = -1; + style = 48; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = "TahomaB"; + sizeEx = 0; + lineSpacing = 0; + text = ""; + fixedWidth = 0; + shadow = 0; + x = 0; + y = 0; + w = 0.2; + h = 0.15; +}; +class outlw_MR_RscListBox +{ + access = 0; + type = 5; + w = 0.4; + h = 0.4; + rowHeight = 0; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.25}; + colorScrollbar[] = {1,0,0,0}; + colorSelect[] = {0,0,0,1}; + colorSelect2[] = {0,0,0,1}; + colorSelectBackground[] = {0.95,0.95,0.95,1}; + colorSelectBackground2[] = {1,1,1,0.5}; + colorBackground[] = {0,0,0,0}; + soundSelect[] = + { + "\A3\ui_f\data\sound\RscListbox\soundSelect", + 0.09, + 1 + }; + arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; + arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; + class ListScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + style = 16; + font = "PuristaMedium"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + shadow = 0; + colorShadow[] = {0,0,0,0.5}; + color[] = {1,1,1,1}; + period = 1.2; + maxHistoryDelay = 1; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; +}; +class outlw_MR_RscActiveText +{ + access = 0; + type = 11; + color[] = {1,1,1,0.7}; + colorActive[] = {1,1,1,1}; + colorText[] = {1,1,1,0.7}; + soundClick[] = {"",0.1,1}; + soundEnter[] = {"",0.1,1}; + soundEscape[] = {"",0.1,1}; + soundPush[] = {"",0.1,1}; + font = "PuristaMedium"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; +}; +class outlw_MR_IGUIBack +{ + type = 0; + idc = 124; + style = 128; + text = ""; + colorText[] = {0,0,0,0}; + font = "PuristaMedium"; + sizeEx = 0; + shadow = 0; + x = 0.1; + y = 0.1; + w = 0.1; + h = 0.1; + colorbackground[] = + { + "(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", + "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", + "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", + "(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])" + }; +}; +class outlw_MR_RscButtonMenu +{ + idc = -1; + type = 16; + style = "0x02 + 0xC0"; + default = 0; + shadow = 0; + x = 0; + y = 0; + w = 0.095589; + h = 0.039216; + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0.5)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0.8)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0.8)"; + class HitZone + { + left = 0; + top = 0; + right = 0; + bottom = 0; + }; + colorFocused[] = {1,1,1,0.5}; + colorBackgroundFocused[] = {0,0,0,0.8}; + colorBackground[] = {0,0,0,0.8}; + colorBackground2[] = {1,1,1,0.5}; + color[] = {1,1,1,1}; + color2[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.25}; + period = 1.2; + periodFocus = 1.2; + periodOver = 1.2; + size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + class TextPos + { + left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)"; + top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; + right = 0.005; + bottom = 0; + }; + class Attributes + { + font = "PuristaLight"; + color = "#E5E5E5"; + align = "left"; + shadow = "false"; + }; + class ShortcutPos + { + left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005"; + top = 0.005; + w = 0.0225; + h = 0.03; + }; + soundEnter[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundEnter", + 0.09, + 1 + }; + soundPush[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundPush", + 0.09, + 1 + }; + soundClick[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundClick", + 0.09, + 1 + }; + soundEscape[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundEscape", + 0.09, + 1 + }; +}; +class outlw_MR_RscControlsGroup +{ + class VScrollbar + { + color[] = {1,1,1,0}; + width = 0; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + shadow = 0; + }; + class HScrollbar + { + color[] = {1,1,1,0}; + height = 0; + shadow = 0; + }; + class ScrollBar + { + color[] = {1,1,1,0}; + colorActive[] = {1,1,1,0}; + colorDisabled[] = {1,1,1,0}; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + type = 15; + idc = -1; + x = 0; + y = 0; + w = 1; + h = 1; + shadow = 0; + style = 16; +}; +class outlw_MR_RscCombo +{ + access = 0; + type = 4; + colorSelect[] = {0,0,0,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,1}; + colorScrollbar[] = {1,0,0,1}; + soundSelect[] = + { + "\A3\ui_f\data\sound\RscCombo\soundSelect", + 0.1, + 1 + }; + soundExpand[] = + { + "\A3\ui_f\data\sound\RscCombo\soundExpand", + 0.1, + 1 + }; + soundCollapse[] = + { + "\A3\ui_f\data\sound\RscCombo\soundCollapse", + 0.1, + 1 + }; + maxHistoryDelay = 1; + class ComboScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + style = "0x10 + 0x200"; + x = 0; + y = 0; + w = 0.12; + h = 0.035; + shadow = 0; + colorSelectBackground[] = {1,1,1,0.7}; + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + wholeHeight = 0.45; + color[] = {1,1,1,1}; + colorActive[] = {1,0,0,1}; + colorDisabled[] = {1,1,1,0.25}; + font = "PuristaMedium"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; +}; + + + + diff --git a/outlw_magRepack/Images/MR_SourceGradient.paa b/outlw_magRepack/Images/MR_SourceGradient.paa new file mode 100644 index 0000000000000000000000000000000000000000..b88c73d80b73b8b5fac31f00cfedb0835de0b109 GIT binary patch literal 27460 zcmeHPe{37qeSddHN~A>TPQNJX=RH!SD3W(1CCx_TQk1f8i3P8%=Olwr%duKub!I1M zhqj0d(6lQL!G0jHVhll0WT|6kz}h&7YcBzY(TdisXwY?-o6M~;XOoi-DfUOv1y}+E zK2rOD~Lj@Av)ue&6@UyQ948ci(;Iy`Q=J5AO63LJk}_&~L(X zcYc<^>$n(v_np6Y7lQ@-G5DUl?)v-;^2hM^Mmr(@)I-QW-$%$Re@Mt{e?-XDgM`En z0lD?HNW?F+lkUk$@-4DHLkfgm$`N5==VEjxsR$DjT7hIxFiu3u3dYA-!4%1A%Osnv zA~Q3hNu9}{Ae|@a^wbp5wY;F~S`itoC~8QEmO_$BSwzWXE>98(Bx7Ux6p3pUAsz=l zK8j@2Ok!F^ip2oNqFSXn8bxko1hf%tS%^dcMZ(C1!^njxa+D&cs-PGKG&~GwcnHH7 z8bWSx5ak1a1_l5P^dr~bk6d3L%0t?+6bb&CC8yWb=*VmeOn%!?wVZ&mUzAmo`1@sbXU0%dC6y7f>t}|l=N71$C*&=| zLDaH8sa9q*Yh|=pt6d{%topkZm006rwOA*Fj$=3&)nj;+1d4KYZQjH|%qAyN@<>@l zYF=4$7$r1~wl6E8SaBea#{7%vqas70YMm zH?8(cMeR_+7t6DO0h8`^LoHnkeT}T741sPl)KITLPmYz<2v`VE`7&7v9TsSmrWqj2 zEZ%`J8_l$-tVZcnSv^VbXURGP2|0@f{+C=$m!{{}Qzaqv9+}Zfl0wKeaup4lJ-!SY z!md>;|9={4#yCp<$1b}lMOLgz$1%&l0q}WN`YCetx=pd=0uiNqD(Z|a1mul+pl;aT1oe4xN;4eF5UU>& zR%SzAuTAuUtvF~d#XMuY29^=)s_SRd><=Mg9STIOD%SsIs83!CeO+83By=yC*)4^7 z$;{4`xW)KMtik~>9&4E>Ni@npabc&;dk^3}WZ|jx*^_i%MMYXR)P%|2XD}s80PbHG z>8Anxk}NnPpm@mxY{aK4*#F@Rle3FadW|gtyIunyuVNb-M@#Eg3Hc?KrCu7UOuCLV z%&!ZqEy@yH*w!~B5Xu}mwPzYU{3|w^Z8qQk%VZ@h`-xpt-}hfL;z_4B6J+AB8|8P^ z#PIR5Iz!Fj)K?~lLG`yA<>7H#6glF0rf%5tY)1;4^iW^PQJX(phXR? z4ez`lE=6ZgMn9D&J5MHaWZ$)8sVO?HmB_r1LUIksK4D2OkQD4~CeZxp9Py-AUX1NM zAB$g9)6imR*jpX;L6f_pyUs&{XxdStr%1}Qw*?|-Npdck7gI@?l~e*r(oDvXOPEPK z(44FYW6b!DjiSZ*GAx7;kCDfdc`_OevV zSnmjh?#8f}NmylOS%tx(%n++XFf}G(co1bsD&i2c#Do1dVxSKolA_qpOmSbYjR*yS zFq2+pi-X-ZqNfX>nRGK_+|^+tIu#(0R6HHb8Y5X2ly-(Kr}C1_3~@U%#7LHfwpQej zEDM1aAk3uIk6eo%h!!7meluxC4jUf{Gtn#&nwwyGo4qK5u}0$2id|lh#SxDLj);M- zWKon%JDn%ODpp2hhB})gS|POW+R{{xfWMU71G{U)rgPJo!n9V3Q-M85zA&B7PiN9v zE|o7%>n4x2f|xln%{(YPlF;mUBrIsmdc+};S=5JM6sEJeY1j;w=EQVL(h=*>CVfKht_A|QTbbEU) zhgq{xIAdvTvBvAS9zHx6&Pok2Gd10mGxG3tJQyODf(i^PnvW8()@si+*y=wmFvsLw zC_-5A^@`dTLZ>MCg>A`CnZ|yy-a7myQ?cpBeHHbq+8aA}QxdcEzM4Zq-Z1;5BbGyT zlJl#AmdmrWt`0jYtiIXBiW&(+W1qt$%&Y2?94V`v`c@9sH!5nd2ad@RdZMDj35C%c zwY)&q)W0$t_Y_OuRbZ{D+5Yt=buZSnrsGyos|Nk%rLda)k+X0Ypaqo@)pE^{ZK@eQ z^8pbr(kxUm-Z3J@Vy7h=V5=^`DCX@-=!NTZPPbcwQZ zCe18W{3}=Sa7saK3Aja83j!dYR#DCWcZzbXnFS`o)y5?>W6F26fNd0vNJKHbe28ud zQxwz7^g8}MMEfH3V&K-CJra{v0Tr2S;{koZmdG^fg#37e2hS|H;$3<8_V?hs47CG- z@GT;|-oyo%yZHdKNXEwz0|;3&iZlc+@gu}C0+ z0Ym&4M}n{s#tIRmfM79?I8j>`5gryLM22|+MOPHmVdNkNMPYCdi4_9&X%zyMQ86Pw z66`^a#d-uPEiZI+B4>tpiUQk&{gfBL={#wJ1tEb}v;sYbP!86D8484Q%}8JwiUN#6 zo*;r-7Cj!!K*CU93MvF~n`s9SwUH;i@dCL@Xgr6l_|EWuD1*``)*k_xAK*;9I@TpZ&qYzmnk!CFUyow*;SUA=BC*)VpMb>RQmy{ zze@5tiVU+c6wVp4a1!oGviuc7?>CO-%WH(DD*HQNT_w3a&`aCO`w1Op$ybcElp#^_ z14G`upFUVVQ8(V_S?BDkj(04 z+1iqp<*;TPsA1OV*VrN|_lcK~jn)5>tsfqJ&5*;!T8Fp-_nQ3Ox;#Oa6lw8C z6XS~a*gwt-iif-`jAzNQWX|Iq&#YQroFRMC}XNM+C*daJcx!3gT zWG3&)s=QYmdCyC5#$FPmk(Jam{4ls^5*)E*3GUZABp!aF4-QvRfWrm3XQv*fuLY4` z7Hz+(D8jF*dQ%YjqGim&Zt~*=(Np`R$54IT6mjnw%oz;mOOZk32M%Q(&f^ zJc^PGN>-X495dGTHh!UW1WAk!i zii}3GKZl3ljYS@Mb^DTM77Z5q#-MxY{7?egSDkN7K>wO?z~HXuI}M!Z>2{bTVHa!ic>N4_;s%JYmi|bJ>>#UKsrlMkrx8 z)a)=BH=Vn8HBAi=P$Ty_j1a=4~D>z0m zuL@Z*83LfH$o|-nVd9RlbJ!VzBUJNZhqf$p)3AByx)`#5a69k-27C3rXy=izvahhrmii?O*{{YaSaj}G(n!-FP$%fc{|UZ z_Iz)e-;MHe%lXf*pUZ!j|MmLD-T&6ExA(iP18msc|Ga*7^*=8!Tgr#4|C#^c_!F-E z=lzin-~YSK?SFu`$FBd!%g6io|3BvZ_woL`>;LoobmKo>f4K1FAr|~&--&*$NxP2ZODJ_{qiRK z=j7kzKhIB>|GYozp8xRj;hz8S{*)X4@%zP%|J?Ym-oLsP-+#IB--r4AA8!wCJOA$n z-v2&?k6i8Zf!p5yn=ti>^F8O}I0k>^yz~9Tcn06)t~}y=&zVi*@B<%>+w)6n4F95o z*ORM%{@mWb-)`emV?3M~U26I6o@X6=JPP>WtD`o3EWG6Vv&d(6*l!)9lS{R^)&7O&XW$l@w~4QzUlWr6TE$$80TU9 zLV$~BGHD*KYrMarC3*Vf7!Qw)@^FlO+=ts<5Bzw5i?6~ePp=N~=Y50yJbizNr|<3I z@jYEUzN>?8Pig1r+XFm(poNE9d_3%H;^8JQ|2=?5;^!-gJYEp4Z{HjF-3Yt<=hxrm zKQB)k{yrG~*W~HO z?0=2kwg0?5{m}it51Ri$UY@q(zs%ErLik_%{n$AEsmtC)Cw{f`zqnxg=h-yFi_ZJ+ zw1(ddU#a2s}O4;_EbrcaIWaANe}ne7Lq@7nly^r2Tq9}*oHzu;u>3pPHYvig$K zA00Y$e)Q0y)BbS(GoRV5a)4v?x>DyZP z_FH`nuFcoq#LutUyX$;(S8ct#62E>Pk>P9WEeiNYJhQdmTMER4o%pCx-#5ZHt^YUJ z13n)4=)eC$JO-6x^Y6Ah|8al+$;Im*{O^Bxd*kw-w?~cpy%GNS?|+y7@8|o^8T=0b zqHO)M|8f4$ocz+Y$pI73=LL~e#-A!+U_dS11-ktv^oBwt4>&m~o|6Tp}Nz(tW{d4W# z$JqbL&i%y;b+5Ivx(Pe}ot{wIeyZq>f0l?Ut>0Ht4jiMq+b-|^7YC*TjQ%+X9tbk} zXB{}$ajE6GOW$+a?`)fU^zz(A2jAxB`}2Ew*el{Qfu$CwzUBYb{!PP{{@(=untCG3 z`;!@+_kXnn?~jf}d4F$&^8Tqh!27fPL7u*+gSU@L8{dAw&%-`1592cd?lt^Yp9O9R z1Ks&^|HkZ-$bYs+?09Q3d+5S8YW3EVVLfqrWCymOjZZ{RkNgZ<+Jt=xXsV^=l7l-`S-f^yy8LW1*ia< zUL<=Lb%cO6yygCHJm&m=9{*AH-%~vsj{(vP(stbTvgz?Bj^BaXhGRot;_w6AJieoq zhy5O2?TLg}qZ`!Fmi@EwjX2}GHT~Dt=a%#j7TEl_CH>dQ#|PfO9(w-0Z=Z4GO^=22 zcfVBQ_sF1fVq2X&_IE0ezEd}zj+VL14rmH{ef-iBnH_JA{w8$Z zY-=&z%#IB5^4;Ib})Bwqdn!oNLf?0-`K_VKqvC*HQltH2QNKu0;vFf{6vg8&5pj`)qNuHiqh@IhJIgxEvAxur>&?j= zbW4y`lAUZ=7Yth&HFkan9_AzquwwR_Wh){p3a~ZEHUvStY%$c;?mrHKEwM9TXn`H6 zecqk!$VbUlg0yww+~M^2zVG{eKfmAi{qgQdxz={60z}Rl9?hjKS%OaA_#Q0;k=2J2&|+=9D=$`91a6;I@Frr zbQ*xmRjrX8ms+DeJ?a8+BN5zg1LyGoCyGeCUL-yr62D)qk$_)q34s9Ug8{YW2nLZ0 z=}AbPBZ3s764AStfavW-jW7}+90u4IMqhn>$o2OFF@S^)3;-M)K%;|$$PEnv5kW#D z5rEMMa?vPq!^1$tkkD8R;7Ckec8rW5H#!PL90`rb0m^aYWEnX{0V08fCK3RX3Dig? zksC{@%XDlExl{@y=@h_p8sN4xa@)2cm)V9~CWG9#o{S@x&0-BECXnQENYtF#qN)l+ zUQhDK74le;Lcv(VVi8oOBKj|tjFNH*D_kxcz+@SGnVd9$%B0$IS1JIM*Q-Q%K$CNG zZiSGyo3extLSApm6q(DKtj-C_B~7NOvDw9mDl62l*MK=YJ?8H-3%=Kq$A}4B)Z{B< z|EDQiR2Q1ET1EH7xHhkJb4!No85Aq%wCYeEVjol~HRW-?V;w~{tNk^-vp>b`tbu2Y zy5s?4f_l4~RlQ%61;1~0F_p#q%c!Ke&3=us{6kA_IDb;-*l8`<=O4D_)%3D-4cr*exXOFL-2q3koEFj;wu zN(B&4X>w#2QPipsIYdsX8b$Aa$tL5G2>Cy90m~TqF|8-nC0eZ3BSgPmCl_{#5#l8K zLCvmzM=Qilj^*+BV{%f_3(1?T)I(O*!A%)pOvs>T1oLae=p>>y4t^S7l3ch_GYaG3 z(=7P~#yYZ2_abI}5S}wlPD(bybvTU=ir@(1Yl4znpjzPkC?8SkN?HfjILoIekt>y?<$Em5Q5^DS9yD6N*fm{M-n z(<&yOB>VTQf&Ufc4+tw%l5P_AgYI^W>VQxO+)q{(D3$W8$_*&JRj3mZ`F-IeQbJxO zE0T-+3X=ih!g{?wru)0ZfL?$U^yq9)Xw!-2!Nth`nsa@H&EHK=bi90h3vJlH1B~F1AO)L|a1L9biCOys=D#3cVo&F4cVfKj^V7y&` zJuY=k@br)yrii$Q(iaas@ggv8b)I{q z=n1pixp7P=mqkw1lL<7JpI}Rp&mmjL#d0lLP+@zq$OmRm9LSuN^9E~5g_z00!>^q< zoSB!4>ax3xgus?hlgW}k!36=v{AE%pGwuUdnanQ{g;q&UODLoS+ndmoo!4cTGBvGU zs?Ml$Szu?>B{E%|sWt0PRa2*@W_sW+zzLfZ7zqqOv+lt#@F5x>UVP}a^;8pzQ!_!B z>ylPitEFOdzXY=aeEw`b4DO*`A3j(G0M(g7vp(1bM-3PiV(O9u6-KOrIIGmGGrQi| z0@FwgHdC})MECk&GsY;#F$&bo8qkFCk%OsYiK+isSc6?D6s(3tXxniYlpA} znwp^sIks-j|GOo_2?Uy8AFxH`1Om9sxYm8~?u?QQ?) z4QAtsvS^q+7%z-p(R(A`X~}V-Jk^rZn<RK@H#5oxvZ0wDBp~pt7?P`# zrC9E4JdF>dn5As<#W#5UOpiU{afRJY)O1*p-o5yhblA>1-G zLb%UEOO%=+!;#vhg;b5eKM8e)Y;QJ09oscz^8KQwXaB7k()Gyqo1r8VEJB`Zh9o7> z!V!WprKjM?Eoiw)r<u01u|0hFR>S%`+x@qskoD-gMNRhQ^C8+I# zgU~CH3QfVoRkF=5kZEn7a(nYUDQZV2G(D30Z1Z<#l_SmbDb^ypE^2?H=oyyn9ybur zYUdgLyn%bhfPSD|VukGbRqg!m?N#p52T@e~+W8zCL?8KUC5QYRy$+aPXF1{fM-}qV zYv&15@q4v>Pg3Q}+EKX3q-iPAD~#qXEFUAp^{?~|Dy7I9Xb%o*2yy2+f{e9W*@aQQ zr-hQ*`Chujg1moeUZRq7<<&3VpTjwd^Q6##`M+~~PJ&9o6;TWINR< z(&O+n?mRbsl)7DTCy1v95+S<%4#T0Cl9-VDn2`Iu@EZa?2O0@7zl??g;F1eIS;KJs zq>%qJhObwXBzR1uKMcVd=u=;&gZ(6Tltu3tD^Bb$bL-a# z!m!%l2if%@46zs9C_6XWu0PD!>xDQkai+zkKJu@9jD2>B0IP+Kp>=9S#X z;P2qrj2&p`N&*5anp@w%qnduDS|Lgjm%p2xatKH1>gm9El_XAoZ(=?~_c|P<@u?6y z=5q>((wiuA>~UnFZJijc+nKoh766Yc@vU>Q(=;<5>e)-f3Y4>#g%ZBt+T*8yNAv)_ zi@+ia&FkCaMiC+g=-vQ|mIPNgh(KUb5m7&c5*8xtiDn^~;k^Mt8J`dJVa0?<|ASAV zHyXvM9v#Mk9t#AZj-#wyAnKH@Cs~85{ z`kFJlZI3T&xbr>ClV?smUTgSqoA~}P zUw?3br;iTt_*j&0KR&{@r^I>sWP)!mJ*LxJ3ueRsUq4cqY_FMoFY z$Dc=h`p$oB`~Q*b|0n+Z&*s0)e>?s&&x?Ns`u{Y=LmjhyJO1PC?I-^H-;V#d=U<<` z=Rd35{5Qn^zSzh7`QJJ2`J;XQ$H$}g^B>+nw4eX-@$)DD`9IHJd;i<}zw><-`~44o zzh8Ur|JeKgXB_|A@gKI38UJ2`&wow_@Uo{lzYYGs{rvCa_xx|Rkuv!u5J!ouHV&Au zlfAin=OZteuuBLl^qUXAXu@tM4s$y2q6=@_ZX0;Q#QWS2*TwBo3l4~=-vNhw3~tkh z15cb5?;3i^tlux8{+Y+#GU356Uq9Lp{9RFtJ~q@}r{y+%JbJ3`y{C;=M)>xUalXB@ z!ncw1(XrEZ zH@pwr&(lYT`1gHdQ64`!!ne2KePD&BPmS^PnKa-2hxZ5h_DV(GzwWjNlZ^kk%=Orc z-`#klcDw#ou+4v)|NQp>czLz=zrFuE=0CswTl1f%xA|{)c&5L&wZDgNQqL}0{-r?ht0Av#w_qp5ue;2?WclMR0l(>T zC}%ytcRO{w1&gjT(I?K#ie~>lHxCCy9k%F0J_ctkI2^b;_V;(cWYzDN@b%0GZ?WLP zFi#)tXY@B)_}I{ck3IU}tkqsTdM5VLnVY@lc$5*oy=0tkFRke9S@fAPo<5t_+qe45 zW%T)2a6Ze!h1{V>?m6@sYduSOe!a>?{Cvx7d%Y_qw!ZE4#`^%^k6_jB_V2fXx8^^; zzwPgT!oNcZV9JaA{D+TEH~4$k-1mR^_|N9Q&Hv8xs1JYM!=IP^yubflXTJep{#ro$ z7)T(z+vIZaVlVbQ-|*r#)nLH;P9uohgu}sdZy#;OmzPeArzncfnhHO}^Ub+yT!sJH5|HkC^zd|Kk4O#fJ4*e^7dI zMSQaH6%!vD(BZF|urmDg1@Y-NeOlJrx9Vrd`1<*AzQ2-+$M~nD-DZ20Vi&AGCT;(0 zRrj$-xBo{8AJ#b7Z&Kkl+jl#8{p0iSaLCWY{SxobMF+6IJM8=DFi)S9c{nr1)91!{ zd_m>?^Ky|NZ)K7{#`^INj&I-6A@9wbSc+Ukc$imoe7Q!|BoN z@o@H`u!+xSczmS*WCy-m4gD1QXYKF0%KcyE`5(W^{eLw6JMqB7b)kzn??#qY5gkI$t>k9a%ewUU2Z+I{^amK$QcJ=b;%y3M{@;N?Fg z^70(%<;`$1#^ZA-9xms3H=r`fpZ+nm+xhF3qHy2a!S^m$YP8q);1Iw6y5N+Q+kVH` zc5}V*86IEBUw?1#?ITuu-TO~sM}d?OkK`!hHk%pt^V3k}_i@_SRs)q{uY~_1VR=Ve z*JsOi<@(e!_@(l9?)WRS|ETxU<=~~Zcc(J%=>3Kz29?6#emW=#CcTG1X09Kw)Kt_9 znR(~3HEnf-!ENhQDI_EzvELfM2mf@Yj(=l9dG1$|{2>JJ5AD8hpwH~KB0nd2pFd(5 RAty8{)^pOyubyFR{vRsz3N8Qu literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/MR_logo.paa b/outlw_magRepack/Images/MR_logo.paa new file mode 100644 index 0000000000000000000000000000000000000000..12e004a3da61c72e12b7f75cdee0c5f2d91ab874 GIT binary patch literal 22016 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 N1<3$jCJt4YPXV8X8@~Vm literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/12.paa b/outlw_magRepack/Images/bulletCount/12.paa new file mode 100644 index 0000000000000000000000000000000000000000..d9d63adcaffb6a255175a301eeb952192c7f5911 GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YWZGMFFX=nLil2l3q3xOQ6UimOuUz56j~Su#Kiv} N*+>R<4i0&kM*+uV9RvUX literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/15.paa b/outlw_magRepack/Images/bulletCount/15.paa new file mode 100644 index 0000000000000000000000000000000000000000..46d9f1ed175b1fe7ebfd97943971d962ebd0dc2a GIT binary patch literal 312 zcmWF)b$53Radr=LWMN=n`2YWZHJBga=nLil2l3q&_r N%?JigHV$c+PXVyL8(aVY literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/17.paa b/outlw_magRepack/Images/bulletCount/17.paa new file mode 100644 index 0000000000000000000000000000000000000000..d32399923c87a6269307b444112ca8244d71c5de GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YWZ511d}=nLil2l3qpF literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/18.paa b/outlw_magRepack/Images/bulletCount/18.paa new file mode 100644 index 0000000000000000000000000000000000000000..7ebdf61b51e98aa559e7d26b26b2758d140e822c GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^6fi%+(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9GjurLJ#7#R7HAsUyFpD2MK9fcGI1{MZ+26Z$?@G)T; Lz|F!T4)ZAh%*-2= literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/19.paa b/outlw_magRepack/Images/bulletCount/19.paa new file mode 100644 index 0000000000000000000000000000000000000000..901b9879d76206ac09811344629c43f8009c33a3 GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YX^956q^(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9GjuuueeSQz;k82M2lIRY%)MLG&G3=Av`@(d~{j$q-z Mu!5O~Llovs0ES5$oB#j- literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/2.paa b/outlw_magRepack/Images/bulletCount/2.paa new file mode 100644 index 0000000000000000000000000000000000000000..aa4a8a861dd70a82183408dd5fc639fcc2f2305a GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YXE0GJ=)=nLil2l3qt096PZvj6}9 literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/20.paa b/outlw_magRepack/Images/bulletCount/20.paa new file mode 100644 index 0000000000000000000000000000000000000000..8e34da025c337d44075456a8a935ffefc3161c29 GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^QZPTl(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9Gju;2n59E|)R$N-@bBsl^c?2~j9LKqlW7~~n$Q5?a; Ng3StECJtekPXXxa8_WOz literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/21.paa b/outlw_magRepack/Images/bulletCount/21.paa new file mode 100644 index 0000000000000000000000000000000000000000..2f174e27de6fa396ad95f6059c0a1cb0cb4bd48b GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YX^S};Gt(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9Gju)qQ=JdFG>$N*!&XmSL2m^bMt_%JZAFvv5gAUlE& PWGb48tXv#|FmD0?q1_wQ literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/22.paa b/outlw_magRepack/Images/bulletCount/22.paa new file mode 100644 index 0000000000000000000000000000000000000000..bfeabfdbef2eb1a9530de2231ab33dfb3091c319 GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^Rxm%p(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9GjvY7b)Gx8%K1A+-*ks-ju$p8P6u7V2#0}F#ZgF2EU RxY$63Vj9WMz`+mmDFDf39ryqM literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/23.paa b/outlw_magRepack/Images/bulletCount/23.paa new file mode 100644 index 0000000000000000000000000000000000000000..f1cf4bf9fba5c4bf3feddc3988e6a58fcab84afa GIT binary patch literal 312 zcmWF)b$53Radr=LWMN=n`2YX^UNAqx(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9F2vG|x682M2lRRoxLKj|pgFfgz%$TO%hFet+u@gHOt NrVZ>I9K0}(0stJ#9WDR> literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/24.paa b/outlw_magRepack/Images/bulletCount/24.paa new file mode 100644 index 0000000000000000000000000000000000000000..0f208799086cf8ed9e034b7487a002c50ef82557 GIT binary patch literal 312 zcmWF)b$53Radr=LWMN=n`2YX^Q7}Kk(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9HuVq@fI40N4Q>I{*Lx literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/25.paa b/outlw_magRepack/Images/bulletCount/25.paa new file mode 100644 index 0000000000000000000000000000000000000000..1d71842e025445b82e0da4aa3c44c25fe73c9818 GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^IWRxM(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9JE<6`88Kn55CMpH$Ai`B?RL5G2Xg+ZP{9qtGLsM(lS LaI$f5!h8w<_qH2o literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/26.paa b/outlw_magRepack/Images/bulletCount/26.paa new file mode 100644 index 0000000000000000000000000000000000000000..c2565c3cc8bef85e5dada7fa74deec03941dad07 GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YX^H84NI(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9c#W8_Cb1_TqrqKW_?V~~x43IhWRgFFL}0y~0@3uYC% L6?`1*FmD0?v5gyW literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/27.paa b/outlw_magRepack/Images/bulletCount/27.paa new file mode 100644 index 0000000000000000000000000000000000000000..81808a2fdd5b7e782de839034b7c2651d63c6d89 GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^JupAQ(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkU@ZfksleNaT)okBv53dAj81G!XVF}4s`?{6U<&rE4W!W ISYbW|025^!p#T5? literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/28.paa b/outlw_magRepack/Images/bulletCount/28.paa new file mode 100644 index 0000000000000000000000000000000000000000..8a43ee95f7c54a23311fc1f23ce590a013ab9c7c GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YX^GcZ5G(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zVi=kcWklpMjAd71Bn4g?o~Xf(Qcx3xhm^3d9jS2z$}&Wai;u HhItbJ%ikNO literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/29.paa b/outlw_magRepack/Images/bulletCount/29.paa new file mode 100644 index 0000000000000000000000000000000000000000..407ca6b1b248936dbb00c21a5afd3843bac4377a GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^doVx3(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zVkO_&GQj`9Y8YLLo@n2yn1(vQgk+U|?a8XHbVYf(4(Qyi6Q$ G&jJ7~PaDnv literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/3.paa b/outlw_magRepack/Images/bulletCount/3.paa new file mode 100644 index 0000000000000000000000000000000000000000..a6b938d853a9ad41b35b1a00c9aa3cac51787064 GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YXEB$yxJ=nLil2l3qzQ~M`C*U&#(>eZ5#V9IV50!^7Yl40rhnq-~a#s literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/5.paa b/outlw_magRepack/Images/bulletCount/5.paa new file mode 100644 index 0000000000000000000000000000000000000000..1a5ba5fc003e9746e2e9c5d09ddc9c3c1aecc2dd GIT binary patch literal 312 zcmWF)b$53Radr=LWMN=n`2YXECYT@L=nLil2l3qx0DS=+6951J literal 0 HcmV?d00001 diff --git a/outlw_magRepack/Images/bulletCount/7.paa b/outlw_magRepack/Images/bulletCount/7.paa new file mode 100644 index 0000000000000000000000000000000000000000..43f9e6035ff5e528801b2e25a89d831439891c8a GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YXE6__94=nLil2l3q> "CfgPatches" >> "outlw_magRepack")) exitWith {}; + +disableSerialization; + +outlw_MR_version = "3.1.0"; +outlw_MR_date = "5 February 2014"; + +outlw_MR_defaultKeybinding = [false, true, false, 19]; + +outlw_MR_canCreateDialog = true; +outlw_MR_keybindingMenuActive = false; +outlw_MR_debugMode = profileNamespace getVariable ["outlw_MR_debugMode_profile", false]; +outlw_MR_doHideFull = profileNamespace getVariable ["outlw_MR_doHideFull_profile", false]; +outlw_MR_keyList = profileNamespace getVariable ["outlw_MR_keyList_profile", outlw_MR_defaultKeybinding]; + +if (typeName(outlw_MR_keyList select 0) != "BOOL") then +{ + profileNamespace setVariable ["outlw_MR_keyList_profile", outlw_MR_defaultKeybinding]; + outlw_MR_keyList =+ outlw_MR_defaultKeybinding; +}; + +outlw_MR_shift = outlw_MR_keyList select 0; +outlw_MR_ctrl = outlw_MR_keyList select 1; +outlw_MR_alt = outlw_MR_keyList select 2; +outlw_MR_keybinding = outlw_MR_keyList select 3; + +[] execVM "outlw_magRepack\Scripts\MagRepack_Main.sqf"; +[] execVM "outlw_magRepack\Scripts\MagRepack_Keybindings.sqf"; +[] execVM "outlw_magRepack\Scripts\MagRepack_Misc.sqf"; + +waitUntil {!(isNil "outlw_MR_getIDCs")}; + +outlw_MR_listIDCs = [(missionConfigFile >> "MR_Dialog" >> "Controls")] call outlw_MR_getIDCs; + +waitUntil {!(isNull (findDisplay 46))}; + +(findDisplay 46) displayAddEventHandler ["KeyDown", "_this call outlw_MR_keyDown;"]; + +systemChat "Mag Repack Initialized"; +systemChat ("Keybinding: " + (call outlw_MR_keyListToString)); + + + + + + + + diff --git a/outlw_magRepack/Scripts/MagRepack_Keybindings.sqf b/outlw_magRepack/Scripts/MagRepack_Keybindings.sqf new file mode 100644 index 000000000..d7e4fd2d9 --- /dev/null +++ b/outlw_magRepack/Scripts/MagRepack_Keybindings.sqf @@ -0,0 +1,139 @@ + +outlw_MR_openKeybindings = +{ + createDialog "MagRepack_Dialog_Keybindings"; + outlw_MR_keybindingMenuActive = true; + + outlw_KB_cShift = outlw_MR_shift; + outlw_KB_cCtrl = outlw_MR_ctrl; + outlw_KB_cAlt = outlw_MR_alt; + outlw_KB_cKey = outlw_MR_keybinding; + + call outlw_KB_updateKeyText; + + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2401) ctrlEnable false; + + if (outlw_KB_cShift) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2500) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + }; + + if (outlw_KB_cCtrl) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2501) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + }; + + if (outlw_KB_cAlt) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2502) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + }; +}; + +outlw_MR_applyKeybinding = +{ + private ["_systemString"]; + + outlw_MR_keyList =+ (_this select 0); + profileNamespace setVariable ["outlw_MR_keyList_profile", outlw_MR_keyList]; + + outlw_MR_shift = outlw_MR_keyList select 0; + outlw_MR_ctrl = outlw_MR_keyList select 1; + outlw_MR_alt = outlw_MR_keyList select 2; + outlw_MR_keybinding = outlw_MR_keyList select 3; + + if (count _this > 1 && {_this select 1}) then + { + _systemString = "Mag Repack keybinding has been reset to "; + } + else + { + _systemString = "Mag Repack keybinding has been updated to "; + closeDialog 0; + }; + + systemChat (_systemString + (call outlw_MR_keyListToString)); +}; + +outlw_KB_keyDown = +{ + if ((_this select 1) != 1) then + { + outlw_KB_cKey = _this select 1; + call outlw_KB_updateKeyText; + call outlw_KB_enableApply; + + true; + }; +}; + +outlw_KB_enableApply = +{ + if !([outlw_MR_keyList, [outlw_KB_cShift, outlw_KB_cCtrl, outlw_KB_cAlt, outlw_KB_cKey]] call BIS_fnc_areEqual) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2401) ctrlEnable true; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2401) ctrlEnable false; + }; +}; + +outlw_KB_updateKeyText = +{ + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2499) ctrlSetText (keyName outlw_KB_cKey); +}; + +outlw_KB_modifierSwitch = +{ + _mod = _this select 0; + + if (_mod == 0) then + { + if (!outlw_KB_cShift) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2500) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + outlw_KB_cShift = true; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2500) ctrlSetBackgroundColor [0, 0, 0, 0.8]; + outlw_KB_cShift = false; + }; + } + else + { + if (_mod == 1) then + { + if (!outlw_KB_cCtrl) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2501) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + outlw_KB_cCtrl = true; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2501) ctrlSetBackgroundColor [0, 0, 0, 0.8]; + outlw_KB_cCtrl = false; + }; + } + else + { + if (_mod == 2) then + { + if (!outlw_KB_cAlt) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2502) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + outlw_KB_cAlt = true; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2502) ctrlSetBackgroundColor [0, 0, 0, 0.8]; + outlw_KB_cAlt = false; + }; + }; + }; + }; + + call outlw_KB_updateKeyText; + call outlw_KB_enableApply; +}; + diff --git a/outlw_magRepack/Scripts/MagRepack_Main.sqf b/outlw_magRepack/Scripts/MagRepack_Main.sqf new file mode 100644 index 000000000..941191ce4 --- /dev/null +++ b/outlw_magRepack/Scripts/MagRepack_Main.sqf @@ -0,0 +1,969 @@ + +outlw_MR_createDialog = +{ + private ["_stance", "_raised", "_weapon"]; + + outlw_MR_sourceType = ""; + outlw_MR_sourceCount = 0; + outlw_MR_sourceCap = 0; + + outlw_MR_targetType = ""; + outlw_MR_targetCount = 0; + outlw_MR_targetCap = 0; + + outlw_MR_listDragging = false; + outlw_MR_sourceDragging = false; + outlw_MR_targetDragging = false; + + outlw_MR_doAddToMagazines = true; + outlw_MR_canCreateDialog = false; + + outlw_MR_dragType = ""; + outlw_MR_dragCount = 0; + outlw_MR_dragCap = 0; + + outlw_MR_currentFilter = ""; + outlw_MR_isRepacking = false; + outlw_MR_optionsOpen = false; + + createDialog "MagRepack_Dialog_Main"; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1001) ctrlSetText ("Mag Repack [" + outlw_MR_version + "]"); + + outlw_MR_blur = ppEffectCreate ["DynamicBlur", 401]; + outlw_MR_blur ppEffectEnable true; + outlw_MR_blur ppEffectAdjust [1.5]; + outlw_MR_blur ppEffectCommit 0; + + if (vehicle player == player) then + { + _stance = "Pknl"; + _raised = "Sras"; + _weapon = "Wpst"; + + if (stance player == "PRONE") then + { + _stance = "Ppne"; + }; + + switch (currentWeapon player) do + { + case (""): {_raised = "Snon"; _weapon = "Wnon";}; + case (primaryWeapon player): {_weapon = "Wrfl";}; + case (secondaryWeapon player): {_weapon = "Wlnr";}; + }; + + player playMove ("Ainv" + _stance + "Mstp" + _raised + _weapon + "Dnon"); + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbAdd "All Ammo Types"; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbSetData [0, ""]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbSetCurSel 0; + + call outlw_MR_populateMagListBox; + call outlw_MR_populateMagComboBox; + + [true] call outlw_MR_sourceEnabled; + [true] call outlw_MR_targetEnabled; + + if (outlw_MR_debugMode) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: On"; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: Off"; + }; + + if (outlw_MR_doHideFull) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: Off"; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: On"; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9003) ctrlSetStructuredText parseText "Keybindings"; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9005) ctrlSetStructuredText parseText "About"; + + outlw_MR_startingInfo = call outlw_MR_debugInfo; + + [] spawn + { + private ["_a", "_b"]; + + _a = magazinesAmmo player; + + while {!(IsNull (uiNamespace getVariable "outlw_MR_Dialog_Main"))} do + { + sleep 0.05; + + _b = magazinesAmmo player; + + if !([_a, _b] call BIS_fnc_areEqual) then + { + call outlw_MR_populateMagListBox; + _a =+ _b; + }; + + if !(alive player) then + { + closeDialog 0; + }; + }; + }; +}; + +outlw_MR_populateMagComboBox = +{ + private ["_this", "_magTypes", "_ammoTypes", "_n", "_a"]; + + _magTypes = (call outlw_MR_magInfo) select 0; + _ammoTypes = []; + _a = 0; + + for "_n" from 0 to ((count _magTypes) - 1) do + { + if !((getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo")) in _ammoTypes) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbAdd ([([(getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo"))] call outlw_MR_ammoDisplayName), 25] call outlw_MR_shortString); + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbSetData [_a, (getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo"))]; + _ammoTypes set [count _ammoTypes, (getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo"))]; + + _a = _a + 1; + }; + }; +}; + +outlw_MR_populateMagListBox = +{ + private ["_this", "_args", "_magListTitle", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_magCounts", "_bgrndPos", "_n", "_a"]; + + _args = call outlw_MR_magInfo; + _magListTitle = "All Magazines"; + + if (outlw_MR_sourceType != "" || {outlw_MR_targetType != ""} || {outlw_MR_currentFilter != ""}) then + { + _args = (_args) call outlw_MR_filter; + _magListTitle = "Compatible Mags"; + }; + + lnbClear ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500); + + _args = (_args) call outlw_MR_uniqueMags; + + if (outlw_MR_doHideFull) then + { + _args = (_args) call outlw_MR_hideFull; + _magListTitle = "Non-Full Magazines"; + + if (outlw_MR_sourceType != "" || {outlw_MR_targetType != ""} || {outlw_MR_currentFilter != ""}) then + { + _magListTitle = "Compatible, Non-Full"; + }; + }; + + _magTypes = _args select 0; + _magAmmoCounts = _args select 1; + _magAmmoCaps = _args select 2; + _magCounts = _args select 3; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1000) ctrlSetStructuredText parseText _magListTitle; + + _bgrndPos = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500); + + if (count _magTypes > 9) then + { + ["outlw_MR_Dialog_Main", 1500, [(_bgrndPos select 0), (_bgrndPos select 1), 0.3375, (_bgrndPos select 3)], 0] call outlw_MR_ctrlSetPos; + ["outlw_MR_Dialog_Main", 2217, [(_bgrndPos select 0), (_bgrndPos select 1), 0.321, (_bgrndPos select 3) + 0.003], 0] call outlw_MR_ctrlSetPos; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbDeleteColumn 3; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbAddColumn 0.83; + } + else + { + ["outlw_MR_Dialog_Main", 1500, [(_bgrndPos select 0), (_bgrndPos select 1), 0.325, (_bgrndPos select 3)], 0] call outlw_MR_ctrlSetPos; + ["outlw_MR_Dialog_Main", 2217, [(_bgrndPos select 0), (_bgrndPos select 1), 0.325, (_bgrndPos select 3) + 0.003], 0] call outlw_MR_ctrlSetPos; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbDeleteColumn 3; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbAddColumn 0.89; + + }; + + _a = 0; + + for "_n" from 0 to ((count _magTypes) - 1) do + { + _magCountStr = str(_magCounts select _n); + + if (_magCounts select _n < 10) then + { + _magCountStr = " " + _magCountStr; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbAddRow [([(getText(configFile >> "cfgMagazines" >> _magTypes select _n >> "DisplayName")), 25] call outlw_MR_shortString), "", "", _magCountStr]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbSetPicture [[_n, 1], format ["outlw_magRepack\Images\bulletCount\%1.paa", round((_magAmmoCounts select _n)/(_magAmmoCaps select _n)*30)]]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbSetPicture [[_n, 2], (getText(configFile >> "cfgMagazines" >> _magTypes select _n >> "picture"))]; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lbSetValue [_n*4, _magAmmoCounts select _n]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lbSetData [_n*4, _magTypes select _n]; + }; +}; + +outlw_MR_filter = +{ + private ["_this", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_ammoType", "_returnTypes", "_returnCounts", "_returnCaps"]; + + _magTypes = _this select 0; + _magAmmoCounts = _this select 1; + _magAmmoCaps = _this select 2; + + _ammoType = (getText(configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "ammo")); + + if (_ammoType == "") then + { + _ammoType = (getText(configFile >> "cfgMagazines" >> outlw_MR_targetType >> "ammo")); + }; + + if (_ammoType == "") then + { + _ammoType = outlw_MR_currentFilter; + }; + + _returnTypes = []; + _returnCounts = []; + _returnCaps = []; + + for "_n" from 0 to ((count _magTypes) - 1) do + { + if ((getText (configFile >> "cfgMagazines" >> _magTypes select _n >> "ammo")) == _ammoType) then + { + _returnTypes set [count _returnTypes, _magTypes select _n]; + _returnCounts set [count _returnCounts, _magAmmoCounts select _n]; + _returnCaps set [count _returnCaps, _magAmmoCaps select _n]; + }; + }; + + [_returnTypes, _returnCounts, _returnCaps]; +}; + +outlw_MR_hideFull = +{ + private ["_this", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_magCounts", "_returnMagTypes", "_returnAmmoCaps", "_returnAmmoCaps", "_returnMagCounts", "_n", "_a"]; + + _magTypes = _this select 0; + _magAmmoCounts = _this select 1; + _magAmmoCaps = _this select 2; + _magCounts = _this select 3; + + _returnMagTypes = []; + _returnMagAmmoCounts = []; + _returnMagAmmoCaps = []; + _returnMagCounts = []; + + _a = 0; + + for "_n" from 0 to ((count _magTypes) - 1) do + { + if ((_magAmmoCounts select _n) != (_magAmmoCaps select _n)) then + { + _returnMagTypes set [_a, _magTypes select _n]; + _returnMagAmmoCounts set [_a, _magAmmoCounts select _n]; + _returnMagAmmoCaps set [_a, _magAmmoCaps select _n]; + _returnMagCounts set [_a, _magCounts select _n]; + + _a = _a + 1; + }; + }; + + [_returnMagTypes, _returnMagAmmoCounts, _returnMagAmmoCaps, _returnMagCounts]; +}; + +outlw_MR_repack = +{ + private ["_sourceCap", "_targetCap", "_refreshRate", "_refreshCount", "_magCode", "_keepRepacking", "_sleepTime", "_n"]; + + outlw_MR_isRepacking = true; + + _refreshRate = outlw_MR_bulletTime; + _refreshCount = 1; + + _magCode = + { + outlw_MR_sourceCount = outlw_MR_sourceCount - 1; + outlw_MR_targetCount = outlw_MR_targetCount + 1; + }; + + if ([outlw_MR_sourceType] call outlw_MR_isBeltMagazine && {[outlw_MR_targetType] call outlw_MR_isBeltMagazine}) then + { + _refreshRate = outlw_MR_beltTime; + _magCode = + { + outlw_MR_sourceCount = outlw_MR_sourceCount - (outlw_MR_targetCap - outlw_MR_targetCount); + outlw_MR_targetCount = outlw_MR_targetCount + (outlw_MR_targetCap - outlw_MR_targetCount) + outlw_MR_sourceCount; + if (outlw_MR_targetCount > outlw_MR_targetCap) then {outlw_MR_targetCount = outlw_MR_targetCap}; + if (outlw_MR_sourceCount < 0) then {outlw_MR_sourceCount = 0}; + }; + } + else + { + if (outlw_MR_sourceCount >= (outlw_MR_targetCap - outlw_MR_targetCount)) then + { + _refreshCount = (outlw_MR_targetCap - outlw_MR_targetCount); + } + else + { + _refreshCount = outlw_MR_sourceCount; + }; + }; + + [] spawn outlw_MR_repackingText; + + ["outlw_MR_Dialog_Main", 10002, [0,0], (_refreshCount * _refreshRate)] call outlw_MR_ctrlSetPos; + + _keepRepacking = {outlw_MR_sourceType != "" && outlw_MR_targetType != "" && outlw_MR_sourceCount > 0 && outlw_MR_targetCount < outlw_MR_targetCap}; + _sleepTime = (time + (_refreshRate)); + + while {time < _sleepTime && call _keepRepacking} do + { + sleep 0.05; + }; + + while _keepRepacking do + { + call _magCode; + + ["outlw_MR_Dialog_Main", 22180, [0,((0.12/outlw_MR_sourceCap) * (outlw_MR_sourceCap - outlw_MR_sourceCount))], 0] call outlw_MR_ctrlSetPos; + ["outlw_MR_Dialog_Main", 22190, [0,((0.12/outlw_MR_targetCap) * (outlw_MR_targetCap - outlw_MR_targetCount))], 0] call outlw_MR_ctrlSetPos; + + _sleepTime = (time + (_refreshRate)); + + while {time < _sleepTime && call _keepRepacking} do + { + sleep 0.05; + }; + }; + + if (outlw_MR_sourceCount <= 0) then + { + call outlw_MR_clearSource; + }; + + if (outlw_MR_targetCount == outlw_MR_targetCap) then + { + call outlw_MR_clearTarget; + }; + + outlw_MR_isRepacking = false; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1008) ctrlSetText ""; + + ["outlw_MR_Dialog_Main", 10002, [-0.325,0], 0] call outlw_MR_ctrlSetPos; +}; + +outlw_MR_repackingText = +{ + private ["_repacking"]; + + _repacking = "Repacking..."; + + while {outlw_MR_isRepacking} do + { + _repacking = _repacking + "."; + + if (_repacking == "Repacking....") then + { + _repacking = "Repacking"; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1008) ctrlSetText _repacking; + + sleep 1; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1008) ctrlSetText ""; +}; + +outlw_MR_debugInfo = +{ + private ["_magsAmmo", "_totalMagCount", "_totalAmmo", "_typeCountAmmo", "_magType", "_magAmmo", "_index", "_inArray", "_n", "_a"]; + + _magsAmmo = magazinesAmmo player; + _totalMagCount = 0; + _totalAmmo = 0; + _typeCountAmmo = []; + + for "_n" from 0 to ((count _magsAmmo) - 1) do + { + _magType = ((_magsAmmo select _n) select 0); + _magAmmo = ((_magsAmmo select _n) select 1); + + if (getNumber(configFile >> "CfgMagazines" >> _magType >> "count") > 1 || {[_magType] call outlw_MR_isConvertable}) then + { + _index = 0; + _inArray = false; + + for [{_a = 0}, {_a < count _typeCountAmmo && !_inArray}, {_a = _a + 1}] do + { + if (_magType == ((_typeCountAmmo select _a) select 0)) then + { + _inArray = true; + _index = _a; + }; + }; + + if (_inArray) then + { + (_typeCountAmmo select _index) set [1, ((_typeCountAmmo select _index) select 1) + 1]; + (_typeCountAmmo select _index) set [2, ((_typeCountAmmo select _index) select 2) + _magAmmo]; + } + else + { + _typeCountAmmo set [(count _typeCountAmmo), [_magType, 1, _magAmmo]]; + }; + + _totalMagCount = _totalMagCount + 1; + _totalAmmo = _totalAmmo + _magAmmo; + }; + }; + + [[_totalMagCount, _totalAmmo], _typeCountAmmo]; +}; + +outlw_MR_block = +{ + private ["_doBlockSource", "_doBlockTarget"]; + + _doBlockSource = true; + _doBlockTarget = true; + + switch (true) do + { + case (outlw_MR_sourceType != ""): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip "Source is already defined!";}; + case (outlw_MR_dragCount == 0): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip "Source cannot be empty!";}; + case (outlw_MR_dragCap < 100 && (outlw_MR_targetType != "" && outlw_MR_targetCap >= 100)): + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip "The Target requires a belt, not individual bullets!"; + }; + default {_doBlockSource = false;}; + }; + + if (_doBlockSource) then + { + if (outlw_MR_sourceDragging) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,1,1,0.3]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip ""; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,0,0,0.3]; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable false; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,1,1,0.3]; + }; + + switch (true) do + { + case (outlw_MR_targetType != ""): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip "Target is already defined!";}; + case (outlw_MR_dragCount == outlw_MR_dragCap && outlw_MR_dragCap != 1): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip "Target magazine cannot be full!";}; + case (outlw_MR_dragCap >= 100 && (outlw_MR_sourceType != "" && outlw_MR_sourceCap < 100)): + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip "This magazine requires belts, not individual bullets!"; + }; + default {_doBlockTarget = false;}; + }; + + if (_doBlockTarget) then + { + if (outlw_MR_targetDragging) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,1,1,0.3]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip ""; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,0,0,0.3]; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable false; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,1,1,0.3]; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlSetBackgroundColor [1,1,1,0.3]; +}; + +outlw_MR_onDrag = +{ + private ["_this", "_magInfo"]; + + outlw_MR_listDragging = false; + outlw_MR_sourceDragging = false; + outlw_MR_targetDragging = false; + + outlw_MR_dragType = _this select 1; + outlw_MR_dragCount = _this select 0; + outlw_MR_dragCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_dragType >> "count"); + + switch (_this select 2) do + { + case "source": {outlw_MR_dragCount = outlw_MR_sourceCount; outlw_MR_dragCap = outlw_MR_sourceCap; outlw_MR_sourceDragging = true; ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlEnable true;}; + case "target": {outlw_MR_dragCount = outlw_MR_targetCount; outlw_MR_dragCap = outlw_MR_targetCap; outlw_MR_targetDragging = true; ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlEnable true;}; + default {outlw_MR_listDragging = true;}; + }; + + call outlw_MR_block; +}; + +outlw_MR_onMouseButtonUp = +{ + outlw_MR_dragType = ""; + outlw_MR_dragCount = 0; + outlw_MR_dragCap = 0; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,0,0,0]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip ""; + + if (outlw_MR_sourceType == "") then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable true; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,0,0,0]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip ""; + + if (outlw_MR_targetType == "") then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable true; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlSetBackgroundColor [0,0,0,0]; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlEnable false; +}; + +outlw_MR_sourceEnabled = +{ + private ["_this"]; + + if (_this select 0) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable true; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlEnable false; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetTooltip ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1201) ctrlSetText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1100) ctrlSetStructuredText parseText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip ""; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable false; + + if ([outlw_MR_sourceType] call outlw_MR_isConvertable) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetText "Convert"; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetTooltip (getText(configFile >> "CfgMagazines" >> ([outlw_MR_sourceType] call outlw_MR_getConversion) >> "DisplayName")); + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlEnable true; + }; + }; + + if (outlw_MR_dragType != "") then + { + call outlw_MR_block; + }; +}; + +outlw_MR_targetEnabled = +{ + private ["_this"]; + + if (_this select 0) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable true; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlEnable false; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetTooltip ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1203) ctrlSetText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1101) ctrlSetStructuredText parseText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip ""; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable false; + + if ([outlw_MR_targetType] call outlw_MR_isConvertable) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetText "Convert"; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetTooltip (getText(configFile >> "CfgMagazines" >> ([outlw_MR_targetType] call outlw_MR_getConversion) >> "DisplayName")); + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlEnable true; + }; + }; + + if (outlw_MR_dragType != "") then + { + call outlw_MR_block; + }; +}; + +outlw_MR_addSource = +{ + private ["_this", "_doExit", "_magInfo"]; + + _doExit = false; + + if (outlw_MR_listDragging) then + { + if ([_this select 2, _this select 1] call outlw_MR_magVerified) then + { + outlw_MR_sourceType = _this select 2; + outlw_MR_sourceCount = _this select 1; + outlw_MR_sourceCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_sourceType >> "count"); + + [outlw_MR_sourceType, outlw_MR_sourceCount] call outlw_MR_removeMag; + call outlw_MR_populateMagListBox; + } + else + { + _doExit = true; + }; + } + else + { + outlw_MR_sourceType = outlw_MR_targetType; + outlw_MR_sourceCount = outlw_MR_targetCount; + outlw_MR_sourceCap = outlw_MR_targetCap; + + outlw_MR_doAddToMagazines = false; + + call outlw_MR_clearTarget; + }; + + if (_doExit) exitWith {}; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1501) lbAdd (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "DisplayName")); + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1201) ctrlSetText (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "picture")); + + ["outlw_MR_Dialog_Main", 22180, [0,((0.12/outlw_MR_sourceCap) * (outlw_MR_sourceCap - outlw_MR_sourceCount))], 0] call outlw_MR_ctrlSetPos; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1100) ctrlSetStructuredText parseText format + [ + "%1
%2
", + (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "DisplayName")), + (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "descriptionshort")) + ]; + + [false] call outlw_MR_sourceEnabled; + + if (outlw_MR_targetType != "") then + { + [] spawn outlw_MR_repack; + }; +}; + +outlw_MR_clearSource = +{ + private ["_doPopulate"]; + + _doPopulate = false; + + if (outlw_MR_doAddToMagazines) then + { + if (outlw_MR_sourceCount > 0) then + { + player addMagazine [outlw_MR_sourceType, outlw_MR_sourceCount]; + _doPopulate = true; + }; + }; + + lnbClear ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1501); + + outlw_MR_sourceType = ""; + outlw_MR_sourceCount = 0; + + if (_doPopulate) then + { + call outlw_MR_populateMagListBox; + }; + + [true] call outlw_MR_sourceEnabled; + outlw_MR_doAddToMagazines = true; + + ["outlw_MR_Dialog_Main", 22180, [0,0.12], 0] call outlw_MR_ctrlSetPos; +}; + +outlw_MR_addTarget = +{ + private ["_this", "_doExit", "_magInfo"]; + + _doExit = false; + + if (outlw_MR_listDragging) then + { + if ([_this select 2, _this select 1] call outlw_MR_magVerified) then + { + outlw_MR_targetType = _this select 2; + outlw_MR_targetCount = _this select 1; + outlw_MR_targetCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_targetType >> "count"); + + [outlw_MR_targetType, outlw_MR_targetCount] call outlw_MR_removeMag; + call outlw_MR_populateMagListBox; + } + else + { + _doExit = true; + }; + } + else + { + outlw_MR_targetType = outlw_MR_sourceType; + outlw_MR_targetCount = outlw_MR_sourceCount; + outlw_MR_targetCap = outlw_MR_sourceCap; + + outlw_MR_doAddToMagazines = false; + + call outlw_MR_clearSource; + }; + + if (_doExit) exitWith {}; + + if (outlw_MR_targetCap == 1) then + { + if ([outlw_MR_targetType] call outlw_MR_isConvertable) then + { + outlw_MR_targetType = [outlw_MR_targetType] call outlw_MR_getConversion; + outlw_MR_targetCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_targetType >> "count"); + }; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1502) lbAdd (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "DisplayName")); + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1203) ctrlSetText (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "picture")); + + ["outlw_MR_Dialog_Main", 22190, [0,((0.12/outlw_MR_targetCap) * (outlw_MR_targetCap - outlw_MR_targetCount))], 0] call outlw_MR_ctrlSetPos; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1101) ctrlSetStructuredText parseText format + [ + "%1
%2
", + (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "DisplayName")), + (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "descriptionshort")) + ]; + + [false] call outlw_MR_targetEnabled; + + if (outlw_MR_sourceType != "") then + { + [] spawn outlw_MR_repack; + }; +}; + +outlw_MR_clearTarget = +{ + if (outlw_MR_doAddToMagazines) then + { + player addMagazine [outlw_MR_targetType, outlw_MR_targetCount]; + }; + + lnbClear ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1502); + + outlw_MR_targetType = ""; + outlw_MR_targetCount = 0; + + call outlw_MR_populateMagListBox; + + [true] call outlw_MR_targetEnabled; + outlw_MR_doAddToMagazines = true; + + ["outlw_MR_Dialog_Main", 22190, [0,0.12], 0] call outlw_MR_ctrlSetPos; +}; + +outlw_MR_moveToList = +{ + switch (true) do + { + case (outlw_MR_sourceDragging): {call outlw_MR_clearSource;}; + case (outlw_MR_targetDragging): {call outlw_MR_clearTarget;}; + }; +}; + +outlw_MR_optionsMenu = +{ + _posGroup = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9000); + _posBottom = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8998); + _posTop = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8997); + + if ([9006,9001,9000,8999,8998,8997] call outlw_MR_isAnimating) exitWith {}; + + if (outlw_MR_optionsOpen) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9006) ctrlSetPosition [0,0.21]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9001) ctrlSetPosition [0,0]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9000) ctrlSetPosition [(_posGroup select 0) - 0.00625, (_posGroup select 1), 0, (_posGroup select 3)]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8999) ctrlSetPosition [(_posGroup select 0), (_posGroup select 1) + 0.055]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8998) ctrlSetPosition [(_posBottom select 0), (_posBottom select 1) - 0.01]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8997) ctrlSetPosition [(_posTop select 0), (_posTop select 1) + 0.055]; + + outlw_MR_optionsOpen = false; + + [] spawn + { + {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.15;} forEach [9006,9001,9000,8999]; + sleep 0.15; + {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.1;} forEach [8998,8997]; + }; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9006) ctrlSetPosition [0.1125,0.21]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9001) ctrlSetPosition [0.04375,0]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9000) ctrlSetPosition [(_posGroup select 0) + 0.00625, (_posGroup select 1), 0.2, (_posGroup select 3)]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8999) ctrlSetPosition [(_posGroup select 0) + 0.2125, (_posGroup select 1) + 0.055]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8998) ctrlSetPosition [(_posBottom select 0), (_posBottom select 1) + 0.01]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8997) ctrlSetPosition [(_posTop select 0), (_posTop select 1) - 0.055]; + + outlw_MR_optionsOpen = true; + + [] spawn + { + {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.1;} forEach [8998,8997]; + sleep 0.1; + {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.15;} forEach [9006,9001,9000,8999]; + }; + }; +}; + +outlw_MR_debugSwitch = +{ + if (outlw_MR_debugMode) then + { + outlw_MR_debugMode = false; + profileNamespace setVariable ["outlw_MR_debugMode_profile", false]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: Off"; + } + else + { + outlw_MR_debugMode = true; + profileNamespace setVariable ["outlw_MR_debugMode_profile", true]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: On"; + }; +}; + +outlw_MR_showFullSwitch = +{ + if (outlw_MR_doHideFull) then + { + outlw_MR_doHideFull = false; + profileNamespace setVariable ["outlw_MR_doHideFull_profile", false]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: On"; + } + else + { + outlw_MR_doHideFull = true; + profileNamespace setVariable ["outlw_MR_doHideFull_profile", true]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: Off"; + }: + + call outlw_MR_populateMagListBox; +}; + +outlw_MR_onDialogDestroy = +{ + private ["_endingInfo", "_sTCA", "_eTCA", "_snTCA", "_enTCA", "_output", "_toAdd", "_dif", "_difStr", "_n", "_a"]; + + ppEffectDestroy outlw_MR_blur; + + if (outlw_MR_sourceType != "") then + { + call outlw_MR_clearSource; + }; + + if (outlw_MR_targetType != "") then + { + call outlw_MR_clearTarget; + }; + + if (outlw_MR_debugMode) then + { + _endingInfo = call outlw_MR_debugInfo; + + _sTCA = outlw_MR_startingInfo select 1; + _eTCA = _endingInfo select 1; + _output = ""; + + for "_n" from 0 to ((count _sTCA) - 1) do + { + _snTCA = _sTCA select _n; + _toAdd = ((getText (configFile >> "cfgMagazines" >> _snTCA select 0 >> "DisplayName")) + "
[" + str(_snTCA select 1) + "] >> [0]
Ammo: -" + str(_snTCA select 2) + ""); + + for "_a" from 0 to ((count _eTCA) - 1) do + { + _enTCA = _eTCA select _a; + + if ((_snTCA select 0) == (_enTCA select 0)) then + { + _toAdd = ((getText (configFile >> "cfgMagazines" >> _snTCA select 0 >> "DisplayName")) + "
[" + str(_snTCA select 1) + "] >> [" + str(_enTCA select 1) + "]
"); + + _dif = (_enTCA select 2) - (_snTCA select 2); + + switch (true) do + { + case (_dif > 0): {_toAdd = (_toAdd + "Ammo: +" + str(_dif) + "")}; + case (_dif < 0): {_toAdd = (_toAdd + "Ammo: " + str(_dif) + "")}; + default {_toAdd = (_toAdd + "Ammo: No Change")}; + }; + }; + }; + + _output = (_output + _toAdd + "

"); + }; + + for "_n" from 0 to ((count _eTCA) - 1) do + { + _enTCA = _eTCA select _n; + _toAdd = ((getText (configFile >> "cfgMagazines" >> _enTCA select 0 >> "DisplayName")) + "
[0] >> [" + str(_enTCA select 1) + "]
Ammo: +" + str(_enTCA select 2) + "

"); + + for "_a" from 0 to ((count _sTCA) - 1) do + { + _snTCA = _sTCA select _a; + + if ((_snTCA select 0) == (_enTCA select 0)) then + { + _toAdd = ""; + _a = count _sTCA; + }; + }; + + _output = (_output + _toAdd); + }; + + _dif = ((_endingInfo select 0) select 1) - ((outlw_MR_startingInfo select 0) select 1); + _difStr = ""; + + switch (true) do + { + case (_dif > 0): {_difStr = ("+" + str(_dif) + "")}; + case (_dif < 0): {_difStr = ("" + str(_dif) + "")}; + default {_difStr = "No Change"}; + }; + + hint parseText ("
Mag Repack Debug

All Mags
[" + str((outlw_MR_startingInfo select 0) select 0) + "] >> [" + str((_endingInfo select 0) select 0) + "]
Ammo: " + _difStr + "

" + _output + "
"); + }; + + [] spawn + { + sleep 0.5; + outlw_MR_canCreateDialog = true; + }; +}; + + + + diff --git a/outlw_magRepack/Scripts/MagRepack_Misc.sqf b/outlw_magRepack/Scripts/MagRepack_Misc.sqf new file mode 100644 index 000000000..197b662b7 --- /dev/null +++ b/outlw_magRepack/Scripts/MagRepack_Misc.sqf @@ -0,0 +1,439 @@ + +outlw_MR_modifierCheck = +{ + _shift = _this select 2; + _ctrl = _this select 3; + _alt = _this select 4; + + if (outlw_MR_shift && {!_shift}) then + { + false; + } + else + { + if (outlw_MR_ctrl && {!_ctrl}) then + { + false; + } + else + { + if (outlw_MR_alt && {!_alt}) then + { + false; + } + else + { + true; + }; + }; + }; +}; + +outlw_MR_keyDown = +{ + _key = _this select 1; + + if (_key == outlw_MR_keybinding && {_this call outlw_MR_modifierCheck}) then + { + if (outlw_MR_canCreateDialog) then + { + call outlw_MR_createDialog; + true; + } + else + { + if (!outlw_MR_keybindingMenuActive) then + { + closeDialog 0; + true; + }; + }; + } + else + { + if (_key == 14 && {_this select 2} && {_this select 3} && {_this select 4} && {outlw_MR_canCreateDialog}) then + { + [outlw_MR_defaultKeybinding, true] call outlw_MR_applyKeybinding; + true; + }; + }; +}; + +outlw_MR_getIDCs = +{ + private ["_this", "_config", "_ctrlCount", "_returnList", "_ctrl", "_n"]; + + _config = _this select 0; + _filter = {true}; + + if (count _this > 1) then + { + _filter = _this select 1; + }; + + _ctrlCount = count(_config); + _returnList = []; + + for "_n" from 0 to (_ctrlCount - 1) do + { + _ctrl = configName((_config) select _n); + + if (call _filter) then + { + _returnList = _returnList + [getNumber(_config >> _ctrl >> "idc")]; + }; + + if (isClass(_config >> _ctrl >> "Controls")) then + { + _returnList = _returnList + ([(_config >> _ctrl >> "Controls"), _filter] call outlw_MR_getIDCs); + }; + }; + + _returnList; +}; + +outlw_MR_isAnimating = +{ + private ["_listIDCs", "_ctrlCount", "_returnBool", "_idc", "_n"]; + + _listIDCs = outlw_MR_listIDCs; + + if ((count _this) > 0) then + { + _listIDCs = _this; + }; + + _ctrlCount = count _listIDCs; + _returnBool = false; + + for "_n" from 0 to (_ctrlCount - 1) do + { + _idc = _listIDCs select _n; + + if !(ctrlCommitted ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _idc)) then + { + _n = _ctrlCount; + _returnBool = true; + }; + }; + + _returnBool; +}; + +outlw_MR_ctrlSetPos = +{ + ((uiNamespace getVariable (_this select 0)) displayCtrl (_this select 1)) ctrlSetPosition (_this select 2); + ((uiNamespace getVariable (_this select 0)) displayCtrl (_this select 1)) ctrlCommit (_this select 3); +}; + +outlw_MR_shortString = +{ + private ["_this", "_inputString", "_limit", "_uniray", "_n"]; + + _inputString = _this select 0; + _limit = _this select 1; + _uniray = toArray(_inputString); + + if (count(_uniray) > _limit) then + { + for [{_n = (count(_uniray) - 1);}, {_n >= _limit}, {_n = _n - 1}] do + { + _uniray set [_n, -42]; + }; + + _uniray = _uniray - [-42]; + + (toString(_uniray) + "..."); + } + else + { + _inputString; + }; +}; + +outlw_MR_ammoDisplayName = +{ + private ["_this", "_uniray", "_n"]; + + _uniray = toArray(_this select 0); + + for "_n" from 0 to ((count _uniray) - 1) do + { + if (_n < 2) then + { + _uniray set [_n, -42]; + }; + + if ((_uniray select _n) == 95) then + { + _uniray set [_n, 32]; + }; + }; + + _uniray = _uniray - [-42]; + + toString(_uniray); +}; + +outlw_MR_magInfo = +{ + private ["_this", "_magsAmmo", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_magType", "_n", "_a"]; + + _magsAmmo = magazinesAmmo player; + _magTypes = []; + _magAmmoCounts = []; + _magAmmoCaps = []; + _a = 0; + + for "_n" from 0 to ((count _magsAmmo) - 1) do + { + _magType = ((_magsAmmo select _n) select 0); + + if (getNumber(configFile >> "CfgMagazines" >> _magType >> "count") > 1 || {[_magType] call outlw_MR_isConvertable}) then + { + _magTypes set [_a, _magType]; + _magAmmoCounts set [_a, ((_magsAmmo select _n) select 1)]; + _magAmmoCaps set [_a, getNumber(configFile >> "CfgMagazines" >> _magType >> "count")]; + _a = _a + 1; + }; + }; + + [_magTypes, _magAmmoCounts, _magAmmoCaps]; +}; + +outlw_MR_removeMag = +{ + private ["_this", "_toRemove", "_ammoCount", "_magInfo", "_n"]; + + _toRemove = _this select 0; + _ammoCount = _this select 1; + _magInfo = call outlw_MR_magInfo; + + {player removeMagazine _x} forEach (_magInfo select 0); + + for "_n" from 0 to ((count (_magInfo select 0)) - 1) do + { + if (((_magInfo select 0) select _n) != _toRemove || {((_magInfo select 1) select _n) != _ammoCount}) then + { + player addMagazine [((_magInfo select 0) select _n), ((_magInfo select 1) select _n)]; + } + else + { + _toRemove = ""; + }; + }; +}; + +outlw_MR_magVerified = +{ + private ["_this", "_toVerify", "_ammoCount", "_magInfo", "_returnBool", "_n"]; + + _toVerify = _this select 0; + _ammoCount = _this select 1; + _magInfo = call outlw_MR_magInfo; + _returnBool = false; + + for "_n" from 0 to ((count (_magInfo select 0)) - 1) do + { + if (((_magInfo select 0) select _n) == _toVerify && {((_magInfo select 1) select _n) == _ammoCount}) then + { + _n = count (_magInfo select 0); + _returnBool = true; + }; + }; + + _returnBool; +}; + +outlw_MR_uniqueMags = +{ + private ["_this", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_returnMagTypes", "_returnAmmoCaps", "_returnAmmoCaps", "_returnMagCounts", "_n", "_a", "_p"]; + + _magTypes = _this select 0; + _magAmmoCounts = _this select 1; + _magAmmoCaps = _this select 2; + + _returnMagTypes = []; + _returnAmmoCounts = []; + _returnAmmoCaps = []; + _returnMagCounts = []; + + _isUnique = true; + _a = 0; + _p = 0; + + for "_n" from 0 to ((count _magTypes) - 1) do + { + _isUnique = true; + + for [{_a = 0}, {(_a < count _returnMagTypes) && _isUnique}, {_a = _a + 1}] do + { + if ((_magTypes select _n) == (_returnMagTypes select _a) && {(_magAmmoCounts select _n) == (_returnAmmoCounts select _a)}) then + { + _isUnique = false; + } + }; + + if (_isUnique) then + { + _returnMagTypes set [_p, _magTypes select _n]; + _returnAmmoCounts set [_p, _magAmmoCounts select _n]; + _returnAmmoCaps set [_p, _magAmmoCaps select _n]; + _returnMagCounts set [_p, 1]; + + _p = _p + 1; + } + else + { + _returnMagCounts set [(_a - 1), ((_returnMagCounts select (_a - 1)) + 1)]; + }; + }; + + [_returnMagTypes, _returnAmmoCounts, _returnAmmoCaps, _returnMagCounts]; +}; + +outlw_MR_isBeltMagazine = +{ + private ["_magType", "_cap", "_nameSound", "_returnBool"]; + + _magType = _this select 0; + _cap = getNumber(configFile >> "CfgMagazines" >> _magType >> "count"); + _nameSound = getText(configFile >> "CfgMagazines" >> _magType >> "nameSound"); + + _returnBool = false; + + if (_nameSound == "mGun" || {(_nameSound != "magazine" && _cap >= 100)}) then + { + _returnBool = true; + }; + + _returnBool; +}; + +outlw_MR_isConvertable = +{ + (([_this select 0] call outlw_MR_getConversion) != ""); +}; + +outlw_MR_getConversion = +{ + private ["_magType", "_returnType", "_magTypeArray"]; + + _magType = _this select 0; + _returnType = ""; + + if (getNumber(configFile >> "CfgMagazines" >> _magType >> "count") == 3) then + { + _returnType = configName(inheritsFrom(configFile >> "CfgMagazines" >> _magType)); + } + else + { + _magTypeArray = toArray(_magType); + + if ((_magTypeArray select 0) == 49) then + { + _magTypeArray set [0, 51]; + _returnType = toString(_magTypeArray); + } + else + { + _returnType = ("3Rnd_" + _magType); + }; + }; + + if !(isClass(configFile >> "CfgMagazines" >> _returnType)) then + { + _returnType = ""; + }; + + _returnType; +}; + +outlw_MR_convert = +{ + private ["_this", "_magType", "_ammoCount", "_toAdd", "_n"]; + + _magType = outlw_MR_sourceType; + _ammoCount = outlw_MR_sourceCount; + + if ((_this select 0) == "Target") then + { + _magType = outlw_MR_targetType; + _ammoCount = outlw_MR_targetCount; + }; + + _toAdd = [_magType] call outlw_MR_getConversion; + outlw_MR_doAddToMagazines = false; + + for "_n" from 0 to (_ammoCount - 1) do + { + player addMagazine [_toAdd, 1]; + }; + + call outlw_MR_populateMagListBox; + + if ((_this select 0) == "Source") then + { + call outlw_MR_clearSource; + } + else + { + call outlw_MR_clearTarget; + }; +}; + +outlw_MR_keyListToString = +{ + private ["_shift", "_ctrl", "_alt", "_key", "_returnString", "_q"]; + + if (count _this == 4) then + { + _shift = (_this select 0); + _ctrl = (_this select 1); + _alt = (_this select 2); + _key = (_this select 3); + } + else + { + _shift = outlw_MR_shift; + _ctrl = outlw_MR_ctrl; + _alt = outlw_MR_alt; + _key = outlw_MR_keybinding; + }; + + _returnString = ""; + _q = '"'; + + if (_shift) then + { + _returnString = _returnString + "Shift+"; + }; + + if (_ctrl) then + { + _returnString = _returnString + "Ctrl+"; + }; + + if (_alt) then + { + _returnString = _returnString + "Alt+"; + }; + + _returnString = (_returnString + (keyName _key)); + + (_q + toString(toArray(_returnString) - [34]) + _q); +}; + +outlw_MR_openAbout = +{ + createDialog "MagRepack_Dialog_About"; + + ((uiNamespace getVariable "outlw_MR_Dialog_About") displayCtrl 1001) ctrlSetText ("Version: " + outlw_MR_version); + ((uiNamespace getVariable "outlw_MR_Dialog_About") displayCtrl 1003) ctrlSetText ("Updated: " + outlw_MR_date); + ((uiNamespace getVariable "outlw_MR_Dialog_About") displayCtrl 2400) ctrlSetStructuredText parseText "MMKAY"; +}; + + + + + diff --git a/outlw_magRepack/readme.txt b/outlw_magRepack/readme.txt new file mode 100644 index 000000000..f819a2469 --- /dev/null +++ b/outlw_magRepack/readme.txt @@ -0,0 +1,106 @@ + +-------------- +| Mag Repack | +-------------- + + - Version: 3.1.0 + - Created: 7 March 2013 + - Updated: 5 February 2014 + +---------- +| Author | +---------- + + - Outlawled (outlawled@gmail.com) + +--------------- +| Description | +--------------- + + - Allows the player to repack the ammo in his magazines. + - Default keybinding to open the Mag Repack dialog is "Ctrl+R", this can be customized via the options menu in the Mag Repack dialog. + - Pressing "Alt+Shift+Ctrl+Backspace" will reset the keybinding to the default setting (in case the player forgets what he changed his keybinding to). + - The player may choose a magazine from a list of all of his magazines to be the "Source" magazine and then he may choose a magazine from a list of all of his magazines of the same ammo type as the Source magazine to be the "Target" magazine (or vice versa). As soon as the Source and Target are both defined, bullets from the Source magazine will automatically start repacking into the Target magazine. + +--------- +| Notes | +--------- + + - You can change the repack times for individual bullets and belt magazines via the outlw_MR_bulletTime and outlw_MR_beltTime variables located in the MagRepack_init_sv.sqf. + +---------------- +| Installation | +---------------- + + - Place the "outlw_magRepack" folder into your mission folder. + + - Add the following to your init.sqf + - [] execVM "outlw_magRepack\MagRepack_init_sv.sqf"; + + - Add the following to your description.ext + - #include "outlw_magRepack\MagRepack_config.hpp" + +------------- +| Changelog | +------------- + - 3.1.0 + - Fixed: Error dialogs popping up about the scrollbars. + - Removed: Mag Repack logo from the bottom left of the main dialog. + - Overhauled keybinding system. It now allows just one key and any combination of Shift, Ctrl, and Alt modifiers. For example: "Ctrl+R", "Alt+J", "Shift+Ctrl+N", "Shift+Alt+Ctrl+Space", etc. + - Redesigned Keybinding dialog based on the new keybinding system. + - Magazine type (i.e. whether the magazine is a belt magazine or a regular magazine) is determined by the magazine's "nameSound" config entry instead of just being based on the magazine's capacity. + - Rewrote 40mm grenade conversion system so it no longer uses a predefined list. + + - 3.0.2 + - Fixed: Updated UI classnames to be unique so as to avoid possible conflicts. + - Fixed: An issue with the keybinding not being recognized if another key wasn't pressed between keybinding presses. + - Changed "MagRepack_config.cpp" file extension to ".hpp". + + - 3.0.1 + - New: Pressing the keybinding while the dialog is open will now close the dialog. + - Back-end optimizations. + - Adjusted size of the Mag Repack logo to be slightly smaller. + - Fixed: Now uses the keyName command to get the Strings associated with each keyboard key instead of having them hardcoded like an idiot. + - New: Can now change the bullet and belt repack times via outlw_MR_bulletTime and outlw_MR_beltTime variables (script version). + - All default repack times slightly increased. + - Fixed: Changed script version init file name to "MagRepack_init_sv.sqf" to avoid conflict when user has the addon version installed while playing on a server running the script version. + + - 3.0.0 + - Removed: Everything. + - New: Added a GUI. + - New: Players may now repack bullets from different types of magazines as long as both magazines use the same ammo. + - New: Players may now convert 1rnd 40mm magazines into 3rnd 40mm magazines and vice versa. + - New: Players may now change their keybinding. + - New: Optional debug info. + - Fixed: Added animations for prone, launchers, and no weapon. + + - 2.1.4 + - Reverted back to 2.1.2. + + - 2.1.3 + - Fixed: Now uses CBA's Extended Pre-Init EventHandlers instead of the Post-Init ones which were broken with the ArmA 3 Beta update. + + - 2.1.2 + - Fixed: Uses "hintSilent" instead of "hint" for most cases. + - Fixed: The sorting function is now a proper function available in the player's function library. + + - 2.1.1 + - Fixed: Now works with latest ArmA 3 Alpha Development Build + + - 2.1 + - Fixed: Changed a global variable to be less likely to cause mod incompatibility. + + - 2.0 + - New: Animation changed to 'Gear' animation. + - New: Magazine types are now repacked one by one. + - New: How long it takes to repack each magazine type depends on how many bullets of that magazine type need to be repacked. + - New: A magazine type can be skipped by pressing the 'Space' key. + - New: Repack can be exited by moving (if player is inside a vehicle, getting out will exit, pressing movement keys will do nothing). + - Fixed: Player can no longer repack magazines while in the driver, gunner, or commander seat of a vehicle. + - New: Informational hint after repacking now displays each individual magazine ammo count from before and after the repack. E.G. [15,16,12,5,3] >> [20,20,11] + - New: While repacking, a hint displays which magazine type is being repacked and the current ammo counts of each individual magazine of the current magazine type. + - Fixed: Vaulting and reloading are now disabled during repack. + + - 1.3 + - Initial release. + diff --git a/server/default_config.sqf b/server/default_config.sqf index 60cbaa843..cf52bc7f3 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -8,9 +8,9 @@ // This file is overriden by the external file "A3Wasteland_settings\main_config.sqf" if present // General settings -A3W_startHour = 11; // In-game hour at mission start (0 to 23) +A3W_startHour = 1; // In-game hour at mission start (0 to 23) A3W_timeMultiplierDay = 2.5; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) -A3W_timeMultiplierNight = 2.0; // Sets the speed of time between 8 PM and 5 AM +A3W_timeMultiplierNight = 2.25; // Sets the speed of time between 8 PM and 5 AM A3W_moonLight = 1; // Moon light during night (0 = no, 1 = yes) A3W_teamPlayersMap = 1; // Show all friendly players on the map at all times, regardless of difficulty level (0 = no, 1 = yes) A3W_globalVoiceWarnTimer = 5; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) @@ -31,8 +31,8 @@ A3W_unlimitedStamina = 1; // Allow unlimited sprinting, jumping, etc. ( A3W_bleedingTime = 60; // Time in seconds for which to allow revive after a critical injury (minimum 10 seconds) A3W_healthTime = 60*5; //seconds till death -A3W_hungerTime = 60*80; //seconds till starving -A3W_thirstTime = 60*70; //seconds till dehydrated +A3W_hungerTime = 120*60; //seconds till starving +A3W_thirstTime = 100*60; //seconds till dehydrated // Persistence settings A3W_playerSaving = 1; // Save player data like position, health, inventory, etc. (0 = no, 1 = yes) @@ -47,27 +47,24 @@ A3W_staticWeaponSaving = 1; // Save locked static weapons and their magaz A3W_warchestSaving = 0; // Save warchest objects deployed by players between server restarts (0 = no, 1 = yes) A3W_warchestMoneySaving = 0; // Save warchest team money between server restarts (0 = no, 1 = yes) A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts (0 = no, 1 = yes) -A3W_objectLifetime = 5*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) -A3W_vehicleLifetime = 2*24; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) -A3W_vehicleMaxUnusedTime = 24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) +A3W_objectLifetime = 7*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) +A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) +A3W_vehicleMaxUnusedTime = 36; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) PDB_PlayerFileID = "A3W_"; // Player savefile prefix (change this in case you run multiple servers from the same folder) PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in case you run multiple servers from the same folder) PDB_MessagesFileID = "A3W_"; // Messages savefile prefix (change this in case you run multiple servers from the same folder) -PDB_AdminLogFileID = "A3W_"; // Admin log savefile prefix (change this in case you run multiple servers from the same folder) +PDB_AdminLogFileID = "A3W_"; // Admin log savefile prefix (change this in case you run multiple servers from the same folder) PDB_HackerLogFileID = "A3W_"; // Hacker log savefile prefix (change this in case you run multiple servers from the same folder) -PDB_PlayersListFileID = "A3W_"; // PlayerList savefile prefix (change this in case you run multiple servers from the same folder) - A3W_vehicle_saveInterval = 1200; // Number of seconds between vehicle saves -A3W_object_saveInterval = 600; // Number of seconds between object saves +A3W_object_saveInterval = 1200; // Number of seconds between object saves A3W_player_saveInterval = 600; // Number of seconds between player saves -A3W_playersList_saveInterval = 120; // Number of seconds between player list saves // List of classes for vehicles that are saveable // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; -A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore -A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought +A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore +A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) @@ -78,6 +75,7 @@ A3W_heliSpawning = 1; // If serverSpawning = 1, spawn helicopters i A3W_planeSpawning = 1; // If serverSpawning = 1, spawn planes at some airfields (0 = no, 1 = yes) A3W_boxSpawning = 0; // If serverSpawning = 1, spawn weapon crates in 50% towns (0 = no, 1 = yes) A3W_baseBuilding = 0; // If serverSpawning = 1, spawn base parts in towns (0 = no, 1 = yes) +A3W_essentialsSpawning = 1; // If serverSpawning = 1, spawn essential items (food, water and ammo crates) in towns (0 = no, 1 = yes. If A3W_baseBuilding = 1, then essentialsSpawning = 1;) // Loot settings A3W_buildingLootWeapons = 0; // Spawn weapon loot in all buildings (0 = no, 1 = yes) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 9713e0d2a..71e6fd41f 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -177,14 +177,16 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object setPosATL [_safePos select 0, _safePos select 1, 0.05]; _object setVelocity [0,0,0.01]; // _object spawn cleanVehicleWreck; + if ({_object isKindOf _x} count A3W_autosave_vehicles_list > 0) then { [[netId _object, 2], "A3W_fnc_setLockState", _object] call A3W_fnc_MP; // Lock _object setVariable ["objectLocked", true, true]; _object setVariable ["R3F_LOG_disabled",true,true]; _object setVariable ["A3W_purchasedVehicle", true]; - _object setVariable ["ownerUID", getPlayerUID _player, true]; + _object setVariable ["ownerUID", getPlayerUID _player, true]; _object setVariable ["ownerN", name _player, true]; }; + }; if (_object isKindOf "Plane") then diff --git a/server/missions/factoryMethods/createUnits/customGroup.sqf b/server/missions/factoryMethods/createUnits/customGroup.sqf index 17e1b9e75..16778a669 100644 --- a/server/missions/factoryMethods/createUnits/customGroup.sqf +++ b/server/missions/factoryMethods/createUnits/customGroup.sqf @@ -2,7 +2,7 @@ // * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * // ****************************************************************************************** // @file Name: customGroup.sqf -// @file Author: AgentRev +// @file Author: AgentRev, micovery if (!isServer) exitWith {}; @@ -35,9 +35,11 @@ grenadier_loadout = { _unit addMagazine "1Rnd_HE_Grenade_shell"; _unit addMagazine "1Rnd_HE_Grenade_shell"; }; + support_loadout = { private["_unit"]; _unit = _this; + _unit addUniform "U_IG_Guerilla1_1"; _unit addBackpack "B_Carryall_oli"; _unit addMagazine "200Rnd_65x39_cased_Box"; @@ -47,9 +49,11 @@ support_loadout = { _unit addMagazine "200Rnd_65x39_cased_Box"; _unit addItem "FirstAidKit"; }; + sniper_loadout = { private["_unit"]; _unit = _this; + _unit addUniform "U_I_GhillieSuit"; _unit addBackpack "B_AssaultPack_rgr"; _unit addMagazine "30Rnd_65x39_caseless_mag"; @@ -66,9 +70,11 @@ sniper_loadout = { _unit addItem "ItemCompass"; _unit assignItem "ItemCompass"; }; + aa_loadout = { private["_unit"]; _unit = _this; + _unit addUniform "U_IG_Guerilla1_1"; _unit addMagazine "30Rnd_9x21_Mag"; _unit addMagazine "30Rnd_9x21_Mag"; @@ -80,9 +86,11 @@ aa_loadout = { _unit addWeapon "launch_Titan_F"; _unit addMagazine "Titan_AA"; }; + at_loadout = { private["_unit"]; _unit = _this; + _unit addUniform "U_IG_Guerilla2_1"; _unit addMagazine "30Rnd_45ACP_Mag_SMG_01"; _unit addMagazine "30Rnd_45ACP_Mag_SMG_01"; @@ -95,9 +103,11 @@ at_loadout = { _unit addMagazine "Titan_AT"; _unit addMagazine "Titan_AT"; }; + leader_loadout = { private["_unit"]; _unit = _this; + _unit addUniform "U_IG_leader"; _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; @@ -113,9 +123,11 @@ leader_loadout = { _unit addItem "ItemCompass"; _unit assignItem "ItemCompass"; }; + rifleman_loadout = { private["_unit"]; _unit = _this; + _unit addUniform "U_IG_Guerilla2_3"; _unit addMagazine "20Rnd_762x51_Mag"; _unit addMagazine "20Rnd_762x51_Mag"; @@ -125,6 +137,7 @@ rifleman_loadout = { _unit addWeapon "srifle_EBR_ARCO_pointer_snds_F"; _unit addMagazine "20Rnd_762x51_Mag"; }; + weighted_list = [ [1, sniper_loadout], @@ -134,9 +147,11 @@ weighted_list = [0.5, rifleman_loadout], [0.5, grenadier_loadout] ]; + get_weighted_loadout = { private["_items"]; _items = weighted_list; + //calculate the total weight private["_totalSum", "_weight"]; _totalSum = 0; @@ -144,54 +159,57 @@ get_weighted_loadout = { _weight = _x select 0; _totalSum = _weight + _totalSum; } forEach _items; + //pick at random from the distribution private["_index", "_i", "_item", "_sum"]; _index = random _totalSum; _sum = 0; _i = 0; + while {_sum < _index} do { _item = _items select _i; _weight = _item select 0; _sum = _sum + _weight; _i = _i + 1; }; + ((_items select (_i - 1)) select 1) }; + for "_i" from 1 to _nbUnits do { - _uPos = _pos vectorAdd ([[random _radius, 0, 0], random 360] call BIS_fnc_rotateVector2D); - _unit = _group createUnit [_unitTypes call BIS_fnc_selectRandom, _uPos, [], 0, "Form"]; - _unit setPosATL _uPos; + _uPos = _pos vectorAdd ([[random _radius, 0, 0], random 360] call BIS_fnc_rotateVector2D); + _unit = _group createUnit [_unitTypes call BIS_fnc_selectRandom, _uPos, [], 0, "Form"]; + _unit setPosATL _uPos; - removeAllWeapons _unit; - removeAllAssignedItems _unit; - removeUniform _unit; - removeVest _unit; - removeBackpack _unit; - removeHeadgear _unit; - removeGoggles _unit; - - _unit addVest "V_PlateCarrier1_rgr"; + removeAllWeapons _unit; + removeAllAssignedItems _unit; + removeUniform _unit; + removeVest _unit; + removeBackpack _unit; + removeHeadgear _unit; + removeGoggles _unit; + _unit addVest "V_PlateCarrier1_rgr"; _unit addItem "NVGoggles"; _unit assignItem "NVGoggles"; _unit addItem "FirstAidKit"; - + if (_unit == leader _group) then { _unit call leader_loadout; - _unit setRank "SERGEANT"; - } + _unit setRank "SERGEANT"; + } else { private["_loadout"]; _loadout = call get_weighted_loadout; _unit call _loadout; - }; + }; - _unit addRating 1e11; - _unit spawn addMilCap; - _unit spawn refillPrimaryAmmo; - _unit call setMissionSkill; - _unit addEventHandler ["Killed", server_playerDied]; + _unit addRating 1e11; + _unit spawn addMilCap; + _unit spawn refillPrimaryAmmo; + _unit call setMissionSkill; + _unit addEventHandler ["Killed", server_playerDied]; }; [_group, _pos] call defendArea; From 2d3f5c3e5a3de1a01b58b7d2b16b791f321f3b28 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 15 Nov 2014 18:12:37 -0800 Subject: [PATCH 107/544] Fix issue with team-kill kick According to the message, you are supposed to be restricted to the independents team. However, it's not even letting the player join that team. This fix makes it so that player is only kicked back into the lobby if he tries to join bluefor or opfor. --- client/functions/playerSpawn.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/functions/playerSpawn.sqf b/client/functions/playerSpawn.sqf index 134da41c6..bb799c538 100644 --- a/client/functions/playerSpawn.sqf +++ b/client/functions/playerSpawn.sqf @@ -10,7 +10,7 @@ playerSpawning = true; //Teamkiller Kick -if (!isNil "pvar_teamKillList") then +if (!isNil "pvar_teamKillList" && {playerSide in [BLUFOR,OPFOR]}) then { if ([pvar_teamKillList, getPlayerUID player, 0] call fn_getFromPairs >= 2) exitWith { From 91cdde5948b83424a2849a3970e60f05e6eca459 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 16 Nov 2014 17:56:42 -0800 Subject: [PATCH 108/544] Merge with latest PBO --- .gitignore | 2 +- server/default_config.sqf | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 605d53f2f..25956163b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ - +.gitignore .idea ArmA3_Wasteland.Altis.iml \ No newline at end of file diff --git a/server/default_config.sqf b/server/default_config.sqf index cf52bc7f3..9cbf0be7e 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -26,13 +26,13 @@ A3W_remoteBombStoreRadius = 75; // Prevent players from placing remote explos A3W_vehiclePurchaseCooldown = 45; // Number of seconds to wait before allowing someone to purchase another vehicle, don't bother setting it too high because it can be bypassed by rejoining // Player settings -A3W_startingMoney = 1500; // Amount of money that players start with +A3W_startingMoney = 1500; // Amount of money that players start with A3W_unlimitedStamina = 1; // Allow unlimited sprinting, jumping, etc. (0 = no, 1 = yes) - this also removes energy drinks from the mission A3W_bleedingTime = 60; // Time in seconds for which to allow revive after a critical injury (minimum 10 seconds) A3W_healthTime = 60*5; //seconds till death -A3W_hungerTime = 120*60; //seconds till starving -A3W_thirstTime = 100*60; //seconds till dehydrated +A3W_hungerTime = 120*60; //seconds till starving +A3W_thirstTime = 100*60; //seconds till dehydrated // Persistence settings A3W_playerSaving = 1; // Save player data like position, health, inventory, etc. (0 = no, 1 = yes) @@ -48,17 +48,20 @@ A3W_warchestSaving = 0; // Save warchest objects deployed by players A3W_warchestMoneySaving = 0; // Save warchest team money between server restarts (0 = no, 1 = yes) A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts (0 = no, 1 = yes) A3W_objectLifetime = 7*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) -A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) -A3W_vehicleMaxUnusedTime = 36; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) +A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) +A3W_vehicleMaxUnusedTime = 36; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) PDB_PlayerFileID = "A3W_"; // Player savefile prefix (change this in case you run multiple servers from the same folder) PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in case you run multiple servers from the same folder) PDB_MessagesFileID = "A3W_"; // Messages savefile prefix (change this in case you run multiple servers from the same folder) -PDB_AdminLogFileID = "A3W_"; // Admin log savefile prefix (change this in case you run multiple servers from the same folder) +PDB_AdminLogFileID = "A3W_"; // Admin log savefile prefix (change this in case you run multiple servers from the same folder) PDB_HackerLogFileID = "A3W_"; // Hacker log savefile prefix (change this in case you run multiple servers from the same folder) +PDB_PlayersListFileID = "A3W_"; // PlayerList savefile prefix (change this in case you run multiple servers from the same folder) + A3W_vehicle_saveInterval = 1200; // Number of seconds between vehicle saves A3W_object_saveInterval = 1200; // Number of seconds between object saves -A3W_player_saveInterval = 600; // Number of seconds between player saves +A3W_player_saveInterval = 1200; // Number of seconds between player saves +A3W_playersList_saveInterval = 120; // Number of seconds between player list saves // List of classes for vehicles that are saveable // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved @@ -75,12 +78,11 @@ A3W_heliSpawning = 1; // If serverSpawning = 1, spawn helicopters i A3W_planeSpawning = 1; // If serverSpawning = 1, spawn planes at some airfields (0 = no, 1 = yes) A3W_boxSpawning = 0; // If serverSpawning = 1, spawn weapon crates in 50% towns (0 = no, 1 = yes) A3W_baseBuilding = 0; // If serverSpawning = 1, spawn base parts in towns (0 = no, 1 = yes) -A3W_essentialsSpawning = 1; // If serverSpawning = 1, spawn essential items (food, water and ammo crates) in towns (0 = no, 1 = yes. If A3W_baseBuilding = 1, then essentialsSpawning = 1;) // Loot settings A3W_buildingLootWeapons = 0; // Spawn weapon loot in all buildings (0 = no, 1 = yes) A3W_buildingLootSupplies = 0; // Spawn supply loot (backpacks & player items) in all buildings (0 = no, 1 = yes) -A3W_buildingLootChances = 0; // Chance percentage that loot will spawn at each spot in a building (0 to 100) +A3W_buildingLootChances = 0; // Chance percentage that loot will spawn at each spot in a building (0 to 100) A3W_vehicleLoot = 2; // Level of loot added to vehicles (0 = none, 1 = weapon OR items, 2 = weapon AND items, 3 = two weapons AND items) - 2 or 3 recommended if buildingLoot = 0 // Territory settings @@ -95,9 +97,9 @@ A3W_missionsDifficulty = 1; // Missions difficulty (0 = normal, 1 = hard) A3W_missionsQuantity = 4; // Number of missions running at the same time (0 to 6) A3W_heliPatrolMissions = 1; // Enable missions involving flying helicopters piloted by AI (0 = no, 1 = yes) A3W_underWaterMissions = 1; // Enable underwater missions which require diving gear (0 = no, 1 = yes) -A3W_mainMissionDelay = 5*60; // Time in seconds between Main Missions +A3W_mainMissionDelay = 5*60; // Time in seconds between Main Missions A3W_mainMissionTimeout = 60*60; // Time in seconds that a Main Mission will run for, unless completed A3W_sideMissionDelay = 5*60; // Time in seconds between Side Missions A3W_sideMissionTimeout = 60*60; // Time in seconds that a Side Mission will run for, unless completed -A3W_moneyMissionDelay = 5*60; // Time in seconds between Money Missions +A3W_moneyMissionDelay = 5*60; // Time in seconds between Money Missions A3W_moneyMissionTimeout = 60*60; // Time in seconds that a Money Mission will run for, unless completed From 1fc55cd5d19fbfe1a02a56c8f5beb40683126319 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 22 Nov 2014 15:44:03 -0800 Subject: [PATCH 109/544] Spawn beacon detect, and tweaks --- addons/scripts/servercredits.sqf | 4 +- client/functions/playerActions.sqf | 5 +- client/init.sqf | 3 + description.ext | 62 ++++++++++++++++--- server/antihack/payload.sqf | 3 +- server/default_config.sqf | 6 +- server/functions/setMissionSkill.sqf | 6 +- .../createUnits/customGroup.sqf | 10 +-- 8 files changed, 75 insertions(+), 24 deletions(-) diff --git a/addons/scripts/servercredits.sqf b/addons/scripts/servercredits.sqf index 0639a4b0b..8a034e516 100644 --- a/addons/scripts/servercredits.sqf +++ b/addons/scripts/servercredits.sqf @@ -41,8 +41,8 @@ sleep 60; //Wait in seconds before the credits start after player IS ingame _role1 = "Welcome to"; _role1names = ["A3Armory - A3Wasteland Altis"]; -_role2 = "Server restarts @"; -_role2names = ["4, 9, 13, 18, 23 EST"]; +_role2 = "Server restarts every 6 hours"; +_role2names = ["3, 9, 15, 21 EST"]; _role3 = "Player stats, and support @"; _role3names = ["A3Armory.com"]; diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 500629ae3..36bb06fb6 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -15,7 +15,10 @@ ["Resupply", "addons\scripts\fn_resupplytruck.sqf", [], 51, false, false, "", "!(vehicle player == player) and (cursortarget iskindof 'O_Truck_03_device_F') and (player distance cursortarget) < 10"], ["Messenger", "addons\JTS_PM\JTS_PM.sqf", [], -11, false], //, false, "", ""], - [format [" [Player Menu]", "#FF8000"], "client\systems\playerMenu\init.sqf", [], -10, false], //, false, "", ""], + [format [" [Player Menu]", "#FF8000"], "client\systems\playerMenu\init.sqf", [], -10, false], + + ["Track Beacons", "addons\beacondetector\beacondetector.sqf",0,-10,false,false,"","('ToolKit' in (items player)) && !BeaconScanInProgress"], + [" Cancel tracking.", "Beaconscanstop = true",0,-10,false,false,"","BeaconScanInProgress"], [" Pickup Money", "client\actions\pickupMoney.sqf", [], 1, false, false, "", "{_x getVariable ['owner', ''] != 'mission'} count (player nearEntities ['Land_Money_F', 5]) > 0"], diff --git a/client/init.sqf b/client/init.sqf index 74f8c3911..906bd4062 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -26,6 +26,9 @@ groupManagmentActive = false; pvar_PlayerTeamKiller = objNull; doCancelAction = false; +//AJ Beacondetector +BeaconScanInProgress = false; + //Initialization Variables playerCompiledScripts = false; playerSetupComplete = false; diff --git a/description.ext b/description.ext index dca0908b8..794d60673 100644 --- a/description.ext +++ b/description.ext @@ -79,15 +79,59 @@ class CfgNotifications class CfgSounds { - sounds[] = + sounds[] = { - carlock + beep, beep2, beep3, beep4, beep5, beep6, beep7, beep8, beep9, carlock }; - -class carlock -{ -name = "carlock"; -sound[] = {sounds\carlock.ogg,0.2,1}; -titles[] = {}; -}; + class beep + { + sound[] = {"addons\beacondetector\sound\beep.wav", db-10, 0.5}; + titles[] = {}; + }; + class beep2 + { + sound[] = {"addons\beacondetector\sound\beep.wav", db-10, 0.6}; + titles[] = {}; + }; + class beep3 + { + sound[] = {"addons\beacondetector\sound\beep.wav", db-10, 0.7}; + titles[] = {}; + }; + class beep4 + { + sound[] = {"addons\beacondetector\sound\beep.wav", db-10, 0.8}; + titles[] = {}; + }; + class beep5 + { + sound[] = {"addons\beacondetector\sound\beep.wav", db-10, 0.9}; + titles[] = {}; + }; + class beep6 + { + sound[] = {"addons\beacondetector\sound\beep.wav", db-10, 1.0}; + titles[] = {}; + }; + class beep7 + { + sound[] = {"addons\beacondetector\sound\beep.wav", db-10, 1.2}; + titles[] = {}; + }; + class beep8 + { + sound[] = {"addons\beacondetector\sound\beep.wav", db-10, 1.4}; + titles[] = {}; + }; + class beep9 + { + sound[] = {"addons\beacondetector\sound\beep.wav", db-10, 0.1}; + titles[] = {}; + }; + class carlock + { + name = "carlock"; + sound[] = {sounds\carlock.ogg,0.2,1}; + titles[] = {}; + }; }; \ No newline at end of file diff --git a/server/antihack/payload.sqf b/server/antihack/payload.sqf index decac4425..cf0e46a76 100644 --- a/server/antihack/payload.sqf +++ b/server/antihack/payload.sqf @@ -79,6 +79,7 @@ if (isNil "_cheatFlag") then [132, "RscDisplayHostSettings"], [157, "RscDisplayPhysX3Debug (Itsyuka)"], [165, "RscDisplayPublishMission"], + [166, "RscDisplayPublishMissionSelectTags (Gladtwoown)"], [167, "RscDisplayFileSelect (Lystic)"], [2727, "RscDisplayLocWeaponInfo"], [3030, "RscConfigEditor_Main (Wookie)"] @@ -205,7 +206,7 @@ while { true } do _cheatFlag = ["hack variable", _x]; }; sleep 0.01; - } forEach ["fzhgdhhbzfhzfghz", "dgbfzhg5ey456w6s", "asdsgxfvzv5345", "dadsasdsada", "aw235resfzdfcs", "d3245resfrsd", "iBeFlying", "feastge4rt636te5", "sfsdfsdf4333", "dayz_godmode", "Hack_Pos_Orig", "sdgff4535hfgvcxghn", "REdasfsfwef", "JJMMEE_INIT_MENU", "dfhfgkjjhkhjkdgfg", "activeITEMlistanzahl", "Detected_Remote_Execution", "g0dmode", "adadadad23444", "poiuytfczsvtg", "Pro_RE", "xyzaa", "HaxSmokeOn", "Lysto_Lyst", "pathtoscrdir", "ewrfdfcsf", "Ug8YtyGyvguGF", "sr3453sdfsfe33", "rgyehgdrfhg", "d121435rdsczcawddawdsf", "qofjqpofq", "fsfw34r534fsedsf", "adawredzfdsf", "c0lorthem", "srgte54y6rdgtrg", "shnmenu", "letmeknow", "DAYZ_CA1_Lollipops", "oighijkfcjloypysh", "fazelist", "faze_fill", "PL4YER_CANN0N_T0GGLE", "dfgrgdrfgretg345t345", "aKTitans", "LY_Exec", "inf_ammo_loop_infiSTAR", "Wookie_Pro_RE", "awrdw4355345sfs", "Wookie_Init_Menu", "asdr432r5edfsad", "fsfgdggdzgfd", "fdsgdr42424ZombieColor", "TTT5OptionNR", "adasdawer4w3r", "hthxhzhgcbcxvb", "sdfwesrfwesf233", "dsagfgbdfhgsd", "htrukilojhkukvh", "d4t365tearfsafgrg", "ddsfsdfv", "faze_funcs_inited", "godlol", "fetg5e4ytdrg", "Lystic_Init", "Lystic_Exec", "faze_getControl", "vehicleg0dv3_BushWookie", "dsfsgfsfsdfsdf", "yer652374rfd", "t0ggl3", "d45y6w45ytrdfragsrega", "morphm3", "sgdfgzgdzfrgfdg", "q25t3qttsdfaf", "fsdddInfectLOL", "lkjhgfuyhgfd", "cargod", "abcdefGEH", "Wep_Spawn_Shitt", "faze_hax_dbclick", "fzgrfg4536tq3tds", "dawerdsczcdsf", "gdzhzthtdhxthh6757", "W00kie_Pro_RE", "fdsgdr42424", "battleHIGH_vehpub", "sdsf45t3rsgfd", "hdtrhyztyh", "MenuInitLol", "few3t5364etsfg", "adadgvdthw54y64", "sfsefse", "eeeeeeewwwwwwwww", "wierdo", "efr4243234", "faze_initMenu", "adawedr3q4r3w2qr4", "xZombieBait", "eyghrdfyh", "W00kie_Init_Menu", "awdet3465taddd", "rainbow_var", "iluio9pilkgvuk", "POOP_Main", "awer234rrsdfcsd", "W_O_O_K_I_E_Pro_RE", "toggle_keyEH", "JME_M_E_N_U_initMenu", "dawr5wdfsf23", "sgstgr4stwe4t", "gffffffffffffffh", "LOKI_GUI_Key_Color", "rdgfdzgzrfgr", "gzgdghragfzdgvdz", "MPGHALLDAYEVRYDAY47LETSDOTHISBBYYAAAAAAA", "sdfxdcfs3", "infi_STAR_exec", "xtags_star_xx", "ChangingBullets_xx", "ljkluilufgdsgzgzdrf324", "hgjghjfrdfeewrferrt43", "byebyezombies", "Root_Main4", "adr4w5trsdef", "wadgrfgzrd", "igodokxtt", "unlimammo", "tw4etinitMenu", "plrshldblckls", "dasd324r245rdsfs", "Jme_Is_God", "Monky_funcs_inited", "fuckmegrandma", "qopfkqpofqk", "da124q3easds", "awdadr3q42", "awde3q4erasd", "ShadowyFaz3VehZ", "Veh_Spawn_Shitt", "wuat_fpsMonitor", "sfg4w3t5esfsdf", "asdw435r325efdsd", "Monky_hax_toggled", "asd34r253453453", "mehatingjews", "da342szvcxzcvx", "W_0_0_K_I_E_Pro_RE", "InfiniteAmmo", "debug_star_colorful", "fryt5tytfshyfkj", "sfewsrw", "W00kieMenu_hax_toggled", "AntiAntiAntiAntiHax", "thuytshujsr65uy", "adawdawe21", "ad44234efdzsf", "ffafsafafsfsgol", "shth654436tj", "gyjjgcjcj", "aim", "GodLolPenis", "vehiclegooov3ood_BushWookie", "htjhytu6waqe3q45", "y6sretysrt", "ANTI_ANTI_HAX", "antiantiantiantih4x", "riasgremory_G0d_Mode", "monkytp", "hax_toggled", "JJJJ_MMMM___EEEEEEE_INIT_MENU", "yiukfligzsgargfrae", "B0X_CANN0N_T0GGLE", "omgwtfbbq", "asdddddddddddad", "bowonky", "dontAddToTheArray", "adddaaaaaaaaa", "fesf4535teaf", "rainbowbitch", "ads2542345esfds", "n0clip", "saddaaaaaaaadd23", "fefq34tqtrafg", "f313131FukDaPolice1324e", "BigFuckinBullets", "lmzsjgnas"]; + } forEach ["fzhgdhhbzfhzfghz", "dgbfzhg5ey456w6s", "asdsgxfvzv5345", "dadsasdsada", "aw235resfzdfcs", "d3245resfrsd", "DurkSintax_Pro_RE", "iBeFlying", "feastge4rt636te5", "sfsdfsdf4333", "dayz_godmode", "Hack_Pos_Orig", "sdgff4535hfgvcxghn", "REdasfsfwef", "FUNMENUON", "JJMMEE_INIT_MENU", "dfhfgkjjhkhjkdgfg", "activeITEMlistanzahl", "Detected_Remote_Execution", "g0dmode", "adadadad23444", "poiuytfczsvtg", "Pro_RE", "xyzaa", "HaxSmokeOn", "Lysto_Lyst", "pathtoscrdir", "ewrfdfcsf", "Ug8YtyGyvguGF", "sr3453sdfsfe33", "rgyehgdrfhg", "d121435rdsczcawddawdsf", "qofjqpofq", "fsfw34r534fsedsf", "adawredzfdsf", "c0lorthem", "srgte54y6rdgtrg", "shnmenu", "letmeknow", "DAYZ_CA1_Lollipops", "TONIC_HAS_A_GAPER_NUKE_2", "oighijkfcjloypysh", "fazelist", "faze_fill", "PL4YER_CANN0N_T0GGLE", "dfgrgdrfgretg345t345", "aKTitans", "LY_Exec", "inf_ammo_loop_infiSTAR", "Wookie_Pro_RE", "awrdw4355345sfs", "Wookie_Init_Menu", "asdr432r5edfsad", "fsfgdggdzgfd", "fdsgdr42424ZombieColor", "TTT5OptionNR", "adasdawer4w3r", "hthxhzhgcbcxvb", "sdfwesrfwesf233", "dsagfgbdfhgsd", "htrukilojhkukvh", "d4t365tearfsafgrg", "ddsfsdfv", "faze_funcs_inited", "godlol", "fetg5e4ytdrg", "Lystic_Init", "FAG_NEON", "Lystic_Exec", "faze_getControl", "vehicleg0dv3_BushWookie", "dsfsgfsfsdfsdf", "yer652374rfd", "t0ggl3", "d45y6w45ytrdfragsrega", "morphm3", "sgdfgzgdzfrgfdg", "q25t3qttsdfaf", "fsdddInfectLOL", "lkjhgfuyhgfd", "cargod", "abcdefGEH", "Wep_Spawn_Shitt", "faze_hax_dbclick", "LY_Init", "fzgrfg4536tq3tds", "dawerdsczcdsf", "gdzhzthtdhxthh6757", "W00kie_Pro_RE", "fdsgdr42424", "battleHIGH_vehpub", "WHY_ARE_THERE_SO_MANY_FISH_IN_THE_BIG_BLUE_OCEAN", "sdsf45t3rsgfd", "hdtrhyztyh", "MenuInitLol", "few3t5364etsfg", "adadgvdthw54y64", "sfsefse", "eeeeeeewwwwwwwww", "wierdo", "efr4243234", "faze_initMenu", "fuckfestv2", "adawedr3q4r3w2qr4", "xZombieBait", "eyghrdfyh", "W00kie_Init_Menu", "awdet3465taddd", "rainbow_var", "iluio9pilkgvuk", "POOP_Main", "awer234rrsdfcsd", "W_O_O_K_I_E_Pro_RE", "toggle_keyEH", "JME_M_E_N_U_initMenu", "dawr5wdfsf23", "sgstgr4stwe4t", "gffffffffffffffh", "LOKI_GUI_Key_Color", "rdgfdzgzrfgr", "gzgdghragfzdgvdz", "MPGHALLDAYEVRYDAY47LETSDOTHISBBYYAAAAAAA", "sdfxdcfs3", "infi_STAR_exec", "xtags_star_xx", "ChangingBullets_xx", "ljkluilufgdsgzgzdrf324", "hgjghjfrdfeewrferrt43", "byebyezombies", "Root_Main4", "adr4w5trsdef", "wadgrfgzrd", "igodokxtt", "unlimammo", "tw4etinitMenu", "plrshldblckls", "dasd324r245rdsfs", "Jme_Is_God", "Monky_funcs_inited", "fuckmegrandma", "qopfkqpofqk", "da124q3easds", "awdadr3q42", "awde3q4erasd", "ShadowyFaz3VehZ", "Veh_Spawn_Shitt", "wuat_fpsMonitor", "sfg4w3t5esfsdf", "asdw435r325efdsd", "Monky_hax_toggled", "asd34r253453453", "mehatingjews", "da342szvcxzcvx", "W_0_0_K_I_E_Pro_RE", "InfiniteAmmo", "debug_star_colorful", "neo_fnc_throw", "fryt5tytfshyfkj", "sfewsrw", "W00kieMenu_hax_toggled", "AntiAntiAntiAntiHax", "thuytshujsr65uy", "adawdawe21", "ad44234efdzsf", "ffafsafafsfsgol", "shth654436tj", "gyjjgcjcj", "aim", "GodLolPenis", "vehiclegooov3ood_BushWookie", "htjhytu6waqe3q45", "y6sretysrt", "ANTI_ANTI_HAX", "antiantiantiantih4x", "riasgremory_G0d_Mode", "monkytp", "hax_toggled", "JJJJ_MMMM___EEEEEEE_INIT_MENU", "yiukfligzsgargfrae", "B0X_CANN0N_T0GGLE", "omgwtfbbq", "asdddddddddddad", "bowonky", "ExtasyMenu_Binds", "dontAddToTheArray", "adddaaaaaaaaa", "fesf4535teaf", "rainbowbitch", "ads2542345esfds", "n0clip", "saddaaaaaaaadd23", "GLASS911_Init", "fefq34tqtrafg", "f313131FukDaPolice1324e", "fuckfest", "BigFuckinBullets", "lmzsjgnas"]; }; if (isNil "_cheatFlag" && _loopCount >= 24) then diff --git a/server/default_config.sqf b/server/default_config.sqf index 9cbf0be7e..4d0c82bf9 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -10,7 +10,7 @@ // General settings A3W_startHour = 1; // In-game hour at mission start (0 to 23) A3W_timeMultiplierDay = 2.5; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) -A3W_timeMultiplierNight = 2.25; // Sets the speed of time between 8 PM and 5 AM +A3W_timeMultiplierNight = 2.0; // Sets the speed of time between 8 PM and 5 AM A3W_moonLight = 1; // Moon light during night (0 = no, 1 = yes) A3W_teamPlayersMap = 1; // Show all friendly players on the map at all times, regardless of difficulty level (0 = no, 1 = yes) A3W_globalVoiceWarnTimer = 5; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) @@ -31,8 +31,8 @@ A3W_unlimitedStamina = 1; // Allow unlimited sprinting, jumping, etc. ( A3W_bleedingTime = 60; // Time in seconds for which to allow revive after a critical injury (minimum 10 seconds) A3W_healthTime = 60*5; //seconds till death -A3W_hungerTime = 120*60; //seconds till starving -A3W_thirstTime = 100*60; //seconds till dehydrated +A3W_hungerTime = 60*60; //seconds till starving +A3W_thirstTime = 50*60; //seconds till dehydrated // Persistence settings A3W_playerSaving = 1; // Save player data like position, health, inventory, etc. (0 = no, 1 = yes) diff --git a/server/functions/setMissionSkill.sqf b/server/functions/setMissionSkill.sqf index a41eabf16..2b2db4fc4 100644 --- a/server/functions/setMissionSkill.sqf +++ b/server/functions/setMissionSkill.sqf @@ -15,12 +15,12 @@ _unit = _this; if (["A3W_missionsDifficulty"] call isConfigOn) then { _skill = 1; // Default skill for ARMA3 is 0.5 - _accuracy = 1; // Relative multiplier; absolute default accuracy for ARMA3 is 0.25 + _accuracy = 0.8; // Relative multiplier; absolute default accuracy for ARMA3 is 0.25 } else { - _skill = 0.75; - _accuracy = 1; + _skill = 1; + _accuracy = 0.5; }; _unit allowFleeing 0; diff --git a/server/missions/factoryMethods/createUnits/customGroup.sqf b/server/missions/factoryMethods/createUnits/customGroup.sqf index 16778a669..fdbdf777d 100644 --- a/server/missions/factoryMethods/createUnits/customGroup.sqf +++ b/server/missions/factoryMethods/createUnits/customGroup.sqf @@ -141,11 +141,11 @@ rifleman_loadout = { weighted_list = [ [1, sniper_loadout], - [1, aa_loadout], - [0.9, at_loadout], - [1.1, support_loadout], - [0.5, rifleman_loadout], - [0.5, grenadier_loadout] + [1.1, aa_loadout], + [1, at_loadout], + [1.2, support_loadout], + [1, rifleman_loadout], + [1, grenadier_loadout] ]; get_weighted_loadout = { From 01dc706dda4e2d4258276bca924a9bbd26ebaea8 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 22 Nov 2014 15:44:32 -0800 Subject: [PATCH 110/544] Add missing files --- addons/beacondetector/beacondetector.sqf | 76 +++++++++++++++++++++++ addons/beacondetector/sound/beep.wav | Bin 0 -> 1446 bytes 2 files changed, 76 insertions(+) create mode 100644 addons/beacondetector/beacondetector.sqf create mode 100644 addons/beacondetector/sound/beep.wav diff --git a/addons/beacondetector/beacondetector.sqf b/addons/beacondetector/beacondetector.sqf new file mode 100644 index 000000000..59d57651b --- /dev/null +++ b/addons/beacondetector/beacondetector.sqf @@ -0,0 +1,76 @@ +// @file Version: 1.0 +// @file Name: beacondetector.sqf +// @file Author: wiking.at +// Allows tracking of spawn beacons + +// Check if script is already active +if (BeaconScanInProgress) exitWith +{ + ["You are already performing another beacon scan.", 5] call mf_notify_client; +}; + +_beaconsnear = nearestObjects [player, ["Land_Tentdome_F"], 100]; + +if ((count _beaconsnear) > 0 ) then + { + + playsound "beep9"; ["Spawn beacon found - tracking started.", 5] call mf_notify_client; + BeaconScanInProgress = true; + Beaconscanstop = false; + + _distance = 0; //init distance + + while {_distance < 100} do + { + _beaconsnear = nearestObjects [player, ["Land_Tentdome_F"], 100]; + + if (Beaconscanstop) exitwith + { + playsound "beep9"; + ["Spawn beacon scan interrupted.", 5] call mf_notify_client; + BeaconScanInProgress = false; + }; + + if (count _beaconsnear == 0) exitwith + { + playsound "beep9"; + ["No spawn beacon in detector range.", 5] call mf_notify_client; + BeaconScanInProgress = false; + }; + + _nearestbeacon = _beaconsnear select 0; + _distance = player distance _nearestbeacon; + _dir = getdir (vehicle player); + _degree = ((getpos _nearestbeacon select 0) - (getpos player select 0)) atan2 ((getpos _nearestbeacon select 1) - (getpos player select 1)); + if (_degree < 0) then { _degree = _degree + 360}; + _difference = _degree - _dir; + if (_difference > 180) then { _difference = _difference - 360}; + if (_difference < -180) then { _difference = _difference + 360}; + _adjusteddiff = (abs _difference); + _beepfreq = ((_adjusteddiff / 50) + 0.25); + + + + switch (true) do + { + case (_distance < 6) : {playsound "beep6";}; + case (_distance < 10) : {playsound "beep5";}; + case (_distance < 20) : {playsound "beep4";}; + case (_distance < 30) : {playsound "beep3";}; + case (_distance < 50) : {playsound "beep2";}; + case (_distance < 100) : {playsound "beep";}; + default { + //default case should not happen + playsound "beep9"; + ["There was a malfunction of your beacon detector.", 5] call mf_notify_client; + }; + }; + sleep _beepfreq; + + }; + } +else +{ +playsound "beep9"; +["No Spawn beacon in detector range.", 5] call mf_notify_client; +}; \ No newline at end of file diff --git a/addons/beacondetector/sound/beep.wav b/addons/beacondetector/sound/beep.wav new file mode 100644 index 0000000000000000000000000000000000000000..9ad31d676f93bff3e6f5cba83d2c0f80d7884e22 GIT binary patch literal 1446 zcmX9;c}$dd5Pjb+umTFpawwPO6qJHM2~{j!RU#f(sb_6U5Tp<8U9x#~gtb zvzE`z*-#jy2cXC|^DSWKbU*_=ax$|D9VC8617v3wW-gWd64jy_G$m>gPb$Ug_gIOo zYzEc4+@Or-b{hKX(7!n%ZwP zyld7BRe6pdOtQARj~zIx3_E-G_l(-^So*x!^GhYa(=Wi$T>I?r0RQ3JuXY6#^=~m1 z`y}^l)0*|0+duc3p$lv)2q;nG+iHT^Ev}tA!m?gkUd{_y`D7*1{L5PQx+i!HJ;?Ii zr%Qg27m{q%wH=vg?OENE7g^q3ZkwYJF$$R?TP4rpQABhdLT# z*0eVa4!-?WU5!Kagv@&feLTmnHYWJi8h)$Z9}$nZN4ZhH&-;4!##A(%u&$Y$SL@@t zGdkwZ1^xEm%jF35a9h_{9%M8h>o__|-xc1Q9KW^swDpJhPU9SBzldDp0-xRfQS}C| zCb#2F*TN!(zw3AywY$xzdPm)=Ez>TI!o5(J&CylH+b$y^=~dT#yEU#I%Y&}=-mq1K zoq8BkS3&KeqSj_o&S;qrFN8S6R;M9S3gV$Y^yi4HtDY&0d;o+Fvc5N}v*G^U!Qy zE{oBpo>m^STFs!J;=@K}E5YhqL@OS+q8?=%tm@C0pp3;BjHoAI;5qs$%eak2tb;{W zFdsfN(acy(!DG%u4zl@*dhFr99F1kjKrDYk2^Y}=pP)i5!&45ioY@#)0zBc0MF?gi z4#EqOlHH>|VjNQGrgSikchJfbF2PAgVFzQBUZyh=3vrmUaE)oWLiyo7vi!EL%C8trW5IT)EIDBYZhC0NgIaG!Zh!cF!w z0~a|@kaM|8SoU#*si5(+Al=4 z(K1(tX!nTkp@v?Vi(NDb_x<9pkiKSNR>u&;;!pZW5`dQe_tjIg(fN-soHPf9W0{VGeL5bJ6}-x`3wG_;F*Q53r47cl`0`BYh<4d zOAL4|z07iUm3ti=CF&?!PZevHOs!a*mjZ_T6gt-kj~#vQj1X=DaZV!=(oCQ`1rwr_M^ZuUV{FyEY&A E59M8>?EnA( literal 0 HcmV?d00001 From b98cfa41c54cad26aa24d1cacf7e2329d89cfdda Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 22 Nov 2014 15:50:43 -0800 Subject: [PATCH 111/544] Random change --- description.ext | 1 + 1 file changed, 1 insertion(+) diff --git a/description.ext b/description.ext index 794d60673..51014dd0a 100644 --- a/description.ext +++ b/description.ext @@ -1,3 +1,4 @@ +//random comment respawn="BASE"; respawnDelay=15; disabledAI=1; From 4faf718fae0f523c50c451b41730f54336079eeb Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 23 Nov 2014 02:20:46 -0800 Subject: [PATCH 112/544] ? --- description.ext | 1 - server/default_config.sqf | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/description.ext b/description.ext index 51014dd0a..794d60673 100644 --- a/description.ext +++ b/description.ext @@ -1,4 +1,3 @@ -//random comment respawn="BASE"; respawnDelay=15; disabledAI=1; diff --git a/server/default_config.sqf b/server/default_config.sqf index 4d0c82bf9..fd26cfac9 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -66,8 +66,8 @@ A3W_playersList_saveInterval = 120; // Number of seconds between player list sav // List of classes for vehicles that are saveable // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; -A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore -A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought +A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore +A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) From 680eb76be565bf8f88bf83352a783e8a33d5f4d0 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 24 Nov 2014 12:21:55 -0800 Subject: [PATCH 113/544] MagRepack placed in addons --- description.ext | 2 +- init.sqf | 2 +- .../Configs/MagRepack_Dialog_About.hpp | 129 --- .../Configs/MagRepack_Dialog_Keybindings.hpp | 289 ------ .../Configs/MagRepack_Dialog_Main.hpp | 689 ------------- outlw_magRepack/Configs/defines.hpp | 419 -------- outlw_magRepack/Images/MR_SourceGradient.paa | Bin 27460 -> 0 bytes outlw_magRepack/Images/MR_TargetGradient.paa | Bin 27518 -> 0 bytes outlw_magRepack/Images/MR_logo.paa | Bin 22016 -> 0 bytes outlw_magRepack/Images/bulletCount/0.paa | Bin 308 -> 0 bytes outlw_magRepack/Images/bulletCount/1.paa | Bin 310 -> 0 bytes outlw_magRepack/Images/bulletCount/10.paa | Bin 310 -> 0 bytes outlw_magRepack/Images/bulletCount/11.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/12.paa | Bin 310 -> 0 bytes outlw_magRepack/Images/bulletCount/13.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/14.paa | Bin 312 -> 0 bytes outlw_magRepack/Images/bulletCount/15.paa | Bin 312 -> 0 bytes outlw_magRepack/Images/bulletCount/16.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/17.paa | Bin 310 -> 0 bytes outlw_magRepack/Images/bulletCount/18.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/19.paa | Bin 310 -> 0 bytes outlw_magRepack/Images/bulletCount/2.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/20.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/21.paa | Bin 310 -> 0 bytes outlw_magRepack/Images/bulletCount/22.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/23.paa | Bin 312 -> 0 bytes outlw_magRepack/Images/bulletCount/24.paa | Bin 312 -> 0 bytes outlw_magRepack/Images/bulletCount/25.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/26.paa | Bin 310 -> 0 bytes outlw_magRepack/Images/bulletCount/27.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/28.paa | Bin 310 -> 0 bytes outlw_magRepack/Images/bulletCount/29.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/3.paa | Bin 310 -> 0 bytes outlw_magRepack/Images/bulletCount/30.paa | Bin 309 -> 0 bytes outlw_magRepack/Images/bulletCount/4.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/5.paa | Bin 312 -> 0 bytes outlw_magRepack/Images/bulletCount/6.paa | Bin 312 -> 0 bytes outlw_magRepack/Images/bulletCount/7.paa | Bin 313 -> 0 bytes outlw_magRepack/Images/bulletCount/8.paa | Bin 310 -> 0 bytes outlw_magRepack/Images/bulletCount/9.paa | Bin 313 -> 0 bytes outlw_magRepack/MagRepack_Config.hpp | 5 - outlw_magRepack/MagRepack_init_sv.sqf | 69 -- .../Scripts/MagRepack_Keybindings.sqf | 139 --- outlw_magRepack/Scripts/MagRepack_Main.sqf | 969 ------------------ outlw_magRepack/Scripts/MagRepack_Misc.sqf | 439 -------- outlw_magRepack/readme.txt | 106 -- 46 files changed, 2 insertions(+), 3255 deletions(-) delete mode 100644 outlw_magRepack/Configs/MagRepack_Dialog_About.hpp delete mode 100644 outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp delete mode 100644 outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp delete mode 100644 outlw_magRepack/Configs/defines.hpp delete mode 100644 outlw_magRepack/Images/MR_SourceGradient.paa delete mode 100644 outlw_magRepack/Images/MR_TargetGradient.paa delete mode 100644 outlw_magRepack/Images/MR_logo.paa delete mode 100644 outlw_magRepack/Images/bulletCount/0.paa delete mode 100644 outlw_magRepack/Images/bulletCount/1.paa delete mode 100644 outlw_magRepack/Images/bulletCount/10.paa delete mode 100644 outlw_magRepack/Images/bulletCount/11.paa delete mode 100644 outlw_magRepack/Images/bulletCount/12.paa delete mode 100644 outlw_magRepack/Images/bulletCount/13.paa delete mode 100644 outlw_magRepack/Images/bulletCount/14.paa delete mode 100644 outlw_magRepack/Images/bulletCount/15.paa delete mode 100644 outlw_magRepack/Images/bulletCount/16.paa delete mode 100644 outlw_magRepack/Images/bulletCount/17.paa delete mode 100644 outlw_magRepack/Images/bulletCount/18.paa delete mode 100644 outlw_magRepack/Images/bulletCount/19.paa delete mode 100644 outlw_magRepack/Images/bulletCount/2.paa delete mode 100644 outlw_magRepack/Images/bulletCount/20.paa delete mode 100644 outlw_magRepack/Images/bulletCount/21.paa delete mode 100644 outlw_magRepack/Images/bulletCount/22.paa delete mode 100644 outlw_magRepack/Images/bulletCount/23.paa delete mode 100644 outlw_magRepack/Images/bulletCount/24.paa delete mode 100644 outlw_magRepack/Images/bulletCount/25.paa delete mode 100644 outlw_magRepack/Images/bulletCount/26.paa delete mode 100644 outlw_magRepack/Images/bulletCount/27.paa delete mode 100644 outlw_magRepack/Images/bulletCount/28.paa delete mode 100644 outlw_magRepack/Images/bulletCount/29.paa delete mode 100644 outlw_magRepack/Images/bulletCount/3.paa delete mode 100644 outlw_magRepack/Images/bulletCount/30.paa delete mode 100644 outlw_magRepack/Images/bulletCount/4.paa delete mode 100644 outlw_magRepack/Images/bulletCount/5.paa delete mode 100644 outlw_magRepack/Images/bulletCount/6.paa delete mode 100644 outlw_magRepack/Images/bulletCount/7.paa delete mode 100644 outlw_magRepack/Images/bulletCount/8.paa delete mode 100644 outlw_magRepack/Images/bulletCount/9.paa delete mode 100644 outlw_magRepack/MagRepack_Config.hpp delete mode 100644 outlw_magRepack/MagRepack_init_sv.sqf delete mode 100644 outlw_magRepack/Scripts/MagRepack_Keybindings.sqf delete mode 100644 outlw_magRepack/Scripts/MagRepack_Main.sqf delete mode 100644 outlw_magRepack/Scripts/MagRepack_Misc.sqf delete mode 100644 outlw_magRepack/readme.txt diff --git a/description.ext b/description.ext index 794d60673..8026b67be 100644 --- a/description.ext +++ b/description.ext @@ -54,7 +54,7 @@ loadScreen = "mapConfig\Loading.jpg"; #include "client\systems\playerMenu\dialog\teamkill_dialog.hpp" #include "addons\proving_ground\PG_config.hpp" #include "addons\JTS_PM\PM_Compact.hpp" -#include "outlw_magRepack\MagRepack_Config.hpp" +#include "addons\outlw_magRepack\MagRepack_Config.hpp" class RscTitles { diff --git a/init.sqf b/init.sqf index 6c878acc2..1eeef7074 100644 --- a/init.sqf +++ b/init.sqf @@ -66,4 +66,4 @@ if (isServer) then [] execVM "addons\JTS_PM\Functions.sqf"; [] execVM "addons\scripts\servercredits.sqf"; [] execVM "addons\scripts\zlt_fastrope.sqf"; -[] execVM "outlw_magRepack\MagRepack_init_sv.sqf"; +[] execVM "addons\outlw_magRepack\MagRepack_init_sv.sqf"; diff --git a/outlw_magRepack/Configs/MagRepack_Dialog_About.hpp b/outlw_magRepack/Configs/MagRepack_Dialog_About.hpp deleted file mode 100644 index bbf9be7d0..000000000 --- a/outlw_magRepack/Configs/MagRepack_Dialog_About.hpp +++ /dev/null @@ -1,129 +0,0 @@ - -class MagRepack_Dialog_About -{ - idd = -1; - onLoad = "uiNamespace setVariable ['outlw_MR_Dialog_About', (_this select 0)]"; - - class Controls - { - class A_BG_Main: outlw_MR_IGUIBack - { - idc = 2200; - x = 10 * GUI_GRID_W + GUI_GRID_X; - y = 10.5 * GUI_GRID_H + GUI_GRID_Y; - w = 20 * GUI_GRID_W; - h = 4 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - class A_MainTitle: outlw_MR_RscText - { - idc = 1000; - text = "Mag Repack: About"; - x = 10 * GUI_GRID_W + GUI_GRID_X; - y = 9.375 * GUI_GRID_H + GUI_GRID_Y; - w = 20 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; - }; - class A_ButtonCancel: outlw_MR_RscButtonMenu - { - idc = 2400; - text = "Mmkay"; - action = "closeDialog 0"; - x = 22.5 * GUI_GRID_W + GUI_GRID_X; - y = 14.625 * GUI_GRID_H + GUI_GRID_Y; - w = 7.5 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - default = false; - - class Attributes - { - align = "right"; - }; - }; - class A_BG_MiddleBottom: outlw_MR_IGUIBack - { - idc = 2405; - x = 17.625 * GUI_GRID_W + GUI_GRID_X; - y = 14.625 * GUI_GRID_H + GUI_GRID_Y; - w = 4.7225 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - class A_BG_LeftBottom: outlw_MR_IGUIBack - { - idc = 2401; - x = 10 * GUI_GRID_W + GUI_GRID_X; - y = 14.625 * GUI_GRID_H + GUI_GRID_Y; - w = 7.5 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - colorBackground[] = {0,0,0,0.75}; - }; - class A_Author: outlw_MR_RscText - { - idc = 1002; - text = "Author: Outlawled"; - x = 10.5 * GUI_GRID_W + GUI_GRID_X; - y = 10.75 * GUI_GRID_H + GUI_GRID_Y; - w = 19 * GUI_GRID_W; - h = 0.8 * GUI_GRID_H; - - sizeEx = 0.8 * GUI_GRID_H; - }; - class A_Version: outlw_MR_RscText - { - idc = 1001; - text = "Version:"; - x = 10.5 * GUI_GRID_W + GUI_GRID_X; - y = 11.55 * GUI_GRID_H + GUI_GRID_Y; - w = 19 * GUI_GRID_W; - h = 0.8 * GUI_GRID_H; - - sizeEx = 0.8 * GUI_GRID_H; - }; - class A_Date: outlw_MR_RscText - { - idc = 1003; - text = "Updated:"; - x = 10.5 * GUI_GRID_W + GUI_GRID_X; - y = 12.35 * GUI_GRID_H + GUI_GRID_Y; - w = 19 * GUI_GRID_W; - h = 0.8 * GUI_GRID_H; - - sizeEx = 0.8 * GUI_GRID_H; - }; - class A_ForumLink: outlw_MR_RscText - { - idc = 1004; - text = "BI Forum URL:"; - x = 10.5 * GUI_GRID_W + GUI_GRID_X; - y = 13.15 * GUI_GRID_H + GUI_GRID_Y; - w = 10 * GUI_GRID_W; - h = 0.8 * GUI_GRID_H; - sizeEx = 0.8 * GUI_GRID_H; - }; - class A_ButtonCopy: outlw_MR_RscButtonMenu - { - idc = 1005; - text = "Copy"; - action = "copyToClipboard 'http://forums.bistudio.com/showthread.php?151402-Mag-Repack';"; - x = 16.25 * GUI_GRID_W + GUI_GRID_X; - y = 13.25 * GUI_GRID_H + GUI_GRID_Y; - w = 4 * GUI_GRID_W; - h = 0.8 * GUI_GRID_H; - - tooltip = "http://forums.bistudio.com/showthread.php?151402-Mag-Repack"; - - default = true; - - class Attributes - { - align = "center"; - size = "0.75"; - valign = "middle"; - }; - }; - }; -}; diff --git a/outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp b/outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp deleted file mode 100644 index d90cb059d..000000000 --- a/outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp +++ /dev/null @@ -1,289 +0,0 @@ - -class MagRepack_Dialog_Keybindings -{ - idd = -1; - onLoad = "uiNamespace setVariable ['outlw_MR_Dialog_Keybindings', (_this select 0)]"; - onUnload = "outlw_MR_keybindingMenuActive = false;"; - onKeyDown = "_this call outlw_KB_keyDown;"; - onKeyUp = "_this call outlw_KB_keyUp;"; - - class Controls - { - class KB_BG_Main: outlw_MR_IGUIBack - { - idc = 2200; - - x = 10 * GUI_GRID_W + GUI_GRID_X; - y = 10.5 * GUI_GRID_H + GUI_GRID_Y; - w = 20 * GUI_GRID_W; - h = 4 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - class KB_MainTitle: outlw_MR_RscText - { - idc = 1000; - text = "Mag Repack: Keybindings"; - - x = 10 * GUI_GRID_W + GUI_GRID_X; - y = 9.375 * GUI_GRID_H + GUI_GRID_Y; - w = 20 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; - }; - class KB_ButtonCancel: outlw_MR_RscButtonMenu - { - idc = 2400; - text = "Cancel"; - action = "closeDialog 0"; - - x = 22.5 * GUI_GRID_W + GUI_GRID_X; - y = 14.625 * GUI_GRID_H + GUI_GRID_Y; - w = 7.5 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - default = false; - - class Attributes - { - align = "right"; - }; - }; - class KB_BG_MiddleBottom: outlw_MR_IGUIBack - { - idc = 2405; - - x = 17.625 * GUI_GRID_W + GUI_GRID_X; - y = 14.625 * GUI_GRID_H + GUI_GRID_Y; - w = 4.7225 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - class KB_ButtonApply: outlw_MR_RscButtonMenu - { - idc = 2401; - text = "Apply"; - action = "[[outlw_KB_cShift, outlw_KB_cCtrl, outlw_KB_cAlt, outlw_KB_cKey]] call outlw_MR_applyKeybinding;"; - - x = 10 * GUI_GRID_W + GUI_GRID_X; - y = 14.625 * GUI_GRID_H + GUI_GRID_Y; - w = 7.5 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - default = false; - }; - class KB_BG_Keybinding: outlw_MR_IGUIBack - { - idc = 2498; - - x = 20.125 * GUI_GRID_W + GUI_GRID_X; - y = 11.375 * GUI_GRID_H + GUI_GRID_Y; - w = 9 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - colorBackground[] = {1,1,1,0.25}; - }; - class KB_Keybinding: outlw_MR_RscStructuredText - { - idc = 2499; - text = ""; - - x = 20.125 * GUI_GRID_W + GUI_GRID_X; - y = 11.375 * GUI_GRID_H + GUI_GRID_Y; - w = 9 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - colorBackground[] = {0,0,0,0}; - - class Attributes - { - align = "center"; - valign = "middle"; - size = 0.8; - }; - }; - class KB_BG_Shift: outlw_MR_IGUIBack - { - idc = 2500; - - x = 20.125 * GUI_GRID_W + GUI_GRID_X; - y = 12.625 * GUI_GRID_H + GUI_GRID_Y; - w = 2.875 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - colorBackground[] = {0,0,0,0.8}; - }; - class KB_BG_Ctrl: outlw_MR_IGUIBack - { - idc = 2501; - - x = 23.1875 * GUI_GRID_W + GUI_GRID_X; - y = 12.625 * GUI_GRID_H + GUI_GRID_Y; - w = 2.75 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - colorBackground[] = {0,0,0,0.8}; - }; - class KB_BG_Alt: outlw_MR_IGUIBack - { - idc = 2502; - - x = 26.1875 * GUI_GRID_W + GUI_GRID_X; - y = 12.625 * GUI_GRID_H + GUI_GRID_Y; - w = 2.875 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - colorBackground[] = {0,0,0,0.8}; - }; - class KB_ButtonShift: outlw_MR_RscButtonMenu - { - idc = 2550; - text = "Shift"; - - action = "[0] call outlw_KB_modifierSwitch;"; - - x = 20.125 * GUI_GRID_W + GUI_GRID_X; - y = 12.625 * GUI_GRID_H + GUI_GRID_Y; - w = 2.875 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - colorFocused[] = {1,1,1,0.5}; - colorBackgroundFocused[] = {0,0,0,0}; - colorBackground[] = {0,0,0,0}; - colorBackground2[] = {1,1,1,0.5}; - - textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; - animTextureNormal = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureDisabled = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; - animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; - - class Attributes - { - align = "center"; - size = "0.875"; - }; - }; - class KB_ButtonCtrl: outlw_MR_RscButtonMenu - { - idc = 2551; - text = "Ctrl"; - - action = "[1] call outlw_KB_modifierSwitch;"; - - x = 23.1875 * GUI_GRID_W + GUI_GRID_X; - y = 12.625 * GUI_GRID_H + GUI_GRID_Y; - w = 2.75 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - colorFocused[] = {1,1,1,0.5}; - colorBackgroundFocused[] = {0,0,0,0}; - colorBackground[] = {0,0,0,0}; - colorBackground2[] = {1,1,1,0.5}; - - textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; - animTextureNormal = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureDisabled = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; - animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; - - class Attributes - { - align = "center"; - size = "0.875"; - }; - }; - class KB_ButtonAlt: outlw_MR_RscButtonMenu - { - idc = 2552; - text = "Alt"; - - action = "[2] call outlw_KB_modifierSwitch;"; - - x = 26.1875 * GUI_GRID_W + GUI_GRID_X; - y = 12.625 * GUI_GRID_H + GUI_GRID_Y; - w = 2.875 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - colorFocused[] = {1,1,1,0.5}; - colorBackgroundFocused[] = {0,0,0,0}; - colorBackground[] = {0,0,0,0}; - colorBackground2[] = {1,1,1,0.5}; - - textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; - animTextureNormal = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureDisabled = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; - animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; - animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; - - class Attributes - { - align = "center"; - size = "0.875"; - }; - }; - class KB_BG_KeyDescription: outlw_MR_RscPicture - { - idc = 2570; - text = "outlw_magRepack\Images\MR_TargetGradient.paa"; - - x = 10.875 * GUI_GRID_W + GUI_GRID_X; - y = 11.375 * GUI_GRID_H + GUI_GRID_Y; - w = 9 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - }; - class KB_BG_ModDescription: outlw_MR_RscPicture - { - idc = 2571; - text = "outlw_magRepack\Images\MR_TargetGradient.paa"; - - x = 10.875 * GUI_GRID_W + GUI_GRID_X; - y = 12.625 * GUI_GRID_H + GUI_GRID_Y; - w = 9 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - }; - class KB_KeyDescription: outlw_MR_RscStructuredText - { - idc = 2572; - text = "Keybinding:"; - - x = 10.875 * GUI_GRID_W + GUI_GRID_X; - y = 11.375 * GUI_GRID_H + GUI_GRID_Y; - w = 9 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - class Attributes - { - align = "right"; - }; - }; - class KB_ModDescription: outlw_MR_RscStructuredText - { - idc = 2573; - text = "Modifiers:"; - - x = 10.875 * GUI_GRID_W + GUI_GRID_X; - y = 12.625 * GUI_GRID_H + GUI_GRID_Y; - w = 9 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - class Attributes - { - align = "right"; - }; - }; - }; -}; - - - - - - - - diff --git a/outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp b/outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp deleted file mode 100644 index 8152cdecd..000000000 --- a/outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp +++ /dev/null @@ -1,689 +0,0 @@ - -class MagRepack_Dialog_Main -{ - idd = -1; - movingenable = false; - onLoad = "uiNamespace setVariable ['outlw_MR_Dialog_Main', (_this select 0)]"; - onUnload = "call outlw_MR_onDialogDestroy;"; - onMouseButtonUp = "call outlw_MR_onMouseButtonUp;"; - - class Controls - { - class MR_BG_ListBox: outlw_MR_IGUIBack - { - idc = 2200; - - x = 4.25 * GUI_GRID_W + GUI_GRID_X; - y = 2.5 * GUI_GRID_H + GUI_GRID_Y; - w = 14 * GUI_GRID_W; - h = 15.75 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - class MR_BG_Main: outlw_MR_IGUIBack - { - idc = 2201; - - x = 18.5 * GUI_GRID_W + GUI_GRID_X; - y = 2 * GUI_GRID_H + GUI_GRID_Y; - w = 18 * GUI_GRID_W; - h = 14.5 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - class MR_BG_LeftBorder: outlw_MR_IGUIBack - { - idc = 2955; - - x = 3.7 * GUI_GRID_W + GUI_GRID_X; - y = 2.75 * GUI_GRID_H + GUI_GRID_Y; - w = 0.25 * GUI_GRID_W; - h = 15.25 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - class MR_BG_BottomBorder: outlw_MR_IGUIBack - { - idc = 2956; - - x = 8.5 * GUI_GRID_W + GUI_GRID_X; - y = 18.5 * GUI_GRID_H + GUI_GRID_Y; - w = 8.5 * GUI_GRID_W; - h = 0.25 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - /* - class MR_BG_Logo: outlw_MR_IGUIBack - { - idc = 2956; - - x = 4.25 * GUI_GRID_W + GUI_GRID_X; - y = 18.5 * GUI_GRID_H + GUI_GRID_Y; - w = 6.0404 * GUI_GRID_W; - h = 1.1633 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - class MR_Logo: outlw_MR_RscPicture - { - idc = 1200; - - text = "outlw_magRepack\Images\MR_logo.paa"; - x = 4.5 * GUI_GRID_W + GUI_GRID_X; - y = 17 * GUI_GRID_H + GUI_GRID_Y; - w = 5.5 * GUI_GRID_W; - h = 4.5 * GUI_GRID_H; - }; - */ - class MR_MainTitle: outlw_MR_RscStructuredText - { - idc = 1001; - - text = "Mag Repack"; - x = 19 * GUI_GRID_W + GUI_GRID_X; - y = 0.75 * GUI_GRID_H + GUI_GRID_Y; - w = 12.5 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - colorBackground[] = {0,0,0,1}; - }; - class MR_MagListTitle: outlw_MR_RscStructuredText - { - idc = 1000; - - text = "All Magazines"; - x = 7.75 * GUI_GRID_W + GUI_GRID_X; - y = 1.25 * GUI_GRID_H + GUI_GRID_Y; - w = 10 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - colorBackground[] = {0,0,0,1}; - - class Attributes - { - align = "right"; - }; - }; - class MR_SourceBox: outlw_MR_IGUIBack - { - idc = 2208; - - x = 19 * GUI_GRID_W + GUI_GRID_X; - y = 3.5 * GUI_GRID_H + GUI_GRID_Y; - w = 17 * GUI_GRID_W; - h = 4 * GUI_GRID_H; - colorBackground[] = {1,1,1,0.1}; - }; - class MR_FG_Source: outlw_MR_RscPicture - { - idc = 2210; - text = "outlw_magRepack\Images\MR_SourceGradient.paa"; - - x = 19.5 * GUI_GRID_W + GUI_GRID_X; - y = 4 * GUI_GRID_H + GUI_GRID_Y; - w = 16 * GUI_GRID_W; - h = 3 * GUI_GRID_H; - }; - class MR_TargetBox: outlw_MR_IGUIBack - { - idc = 2214; - - x = 19 * GUI_GRID_W + GUI_GRID_X; - y = 8 * GUI_GRID_H + GUI_GRID_Y; - w = 17 * GUI_GRID_W; - h = 4 * GUI_GRID_H; - colorBackground[] = {1,1,1,0.1}; - }; - class MR_FG_Target: outlw_MR_RscPicture - { - idc = 2211; - text = "outlw_magRepack\Images\MR_TargetGradient.paa"; - - x = 19.5 * GUI_GRID_W + GUI_GRID_X; - y = 8.5 * GUI_GRID_H + GUI_GRID_Y; - w = 16 * GUI_GRID_W; - h = 3 * GUI_GRID_H; - }; - class MR_BG_SourceText: outlw_MR_RscText - { - idc = 1005; - style = 1; - - text = ""; - x = 19 * GUI_GRID_W + GUI_GRID_X; - y = 3 * GUI_GRID_H + GUI_GRID_Y; - w = 17 * GUI_GRID_W; - h = 0.5 * GUI_GRID_H; - colorBackground[] = {0,0,0,1}; - sizeEx = 0.8 * GUI_GRID_H; - }; - class MR_SourceText: outlw_MR_RscText - { - idc = 1002; - style = 0; - - text = " Source"; - x = 19 * GUI_GRID_W + GUI_GRID_X; - y = 2.8125 * GUI_GRID_H + GUI_GRID_Y; - w = 17 * GUI_GRID_W; - h = 0.75 * GUI_GRID_H; - colorBackground[] = {0,0,0,0}; - sizeEx = 0.75 * GUI_GRID_H; - }; - class MR_BG_TargetText: outlw_MR_RscText - { - idc = 1003; - style = 1; - - text = ""; - x = 19 * GUI_GRID_W + GUI_GRID_X; - y = 12 * GUI_GRID_H + GUI_GRID_Y; - w = 17 * GUI_GRID_W; - h = 0.5 * GUI_GRID_H; - colorBackground[] = {0,0,0,1}; - sizeEx = 0.8 * GUI_GRID_H; - }; - class MR_TargetText: outlw_MR_RscText - { - idc = 1004; - style = 1; - - text = "Target "; - x = 19 * GUI_GRID_W + GUI_GRID_X; - y = 11.8125 * GUI_GRID_H + GUI_GRID_Y; - w = 17 * GUI_GRID_W; - h = 0.75 * GUI_GRID_H; - colorBackground[] = {0,0,0,0}; - sizeEx = 0.75 * GUI_GRID_H; - }; - class MR_SourcePic: outlw_MR_RscPicture - { - idc = 1201; - - text = ""; - x = 20 * GUI_GRID_W + GUI_GRID_X; - y = 4 * GUI_GRID_H + GUI_GRID_Y; - w = 3.5 * GUI_GRID_W; - h = 3 * GUI_GRID_H; - }; - class MR_SourceInfo: outlw_MR_RscStructuredText - { - idc = 1100; - - x = 23 * GUI_GRID_W + GUI_GRID_X; - y = 4.25 * GUI_GRID_H + GUI_GRID_Y; - w = 12.5 * GUI_GRID_W; - h = 2.5 * GUI_GRID_H; - sizeEx = 0.65 * GUI_GRID_H; - }; - class MR_TargetPic: outlw_MR_RscPicture - { - idc = 1203; - - text = ""; - x = 31.5 * GUI_GRID_W + GUI_GRID_X; - y = 8.5 * GUI_GRID_H + GUI_GRID_Y; - w = 3.5 * GUI_GRID_W; - h = 3 * GUI_GRID_H; - }; - class MR_TargetInfo: outlw_MR_RscStructuredText - { - idc = 1101; - - x = 19.5 * GUI_GRID_W + GUI_GRID_X; - y = 8.75 * GUI_GRID_H + GUI_GRID_Y; - w = 12.5 * GUI_GRID_W; - h = 2.5 * GUI_GRID_H; - sizeEx = 0.65 * GUI_GRID_H; - }; - class MR_SourceListBox: outlw_MR_RscListBox - { - idc = 1501; - canDrag = 1; - rowHeight = 3 * GUI_GRID_H; - onLBDrag = "[(((_this select 1) select 0) select 1), (((_this select 1) select 0) select 2), 'source'] call outlw_MR_onDrag;"; - onMouseButtonClick = "if ((_this select 1) == 1) then {call outlw_MR_clearSource;};"; - - x = 19.5 * GUI_GRID_W + GUI_GRID_X; - y = 4 * GUI_GRID_H + GUI_GRID_Y; - w = 16 * GUI_GRID_W; - h = 3 * GUI_GRID_H; - sizeEx = 0.65 * GUI_GRID_H; - - colorText[] = {0,0,0,0}; - colorDisabled[] = {0,0,0,0}; - colorScrollbar[] = {0,0,0,0}; - colorSelect[] = {0,0,0,0}; - colorSelect2[] = {0,0,0,0}; - colorSelectBackground[] = {0,0,0,0}; - colorSelectBackground2[] = {0,0,0,0}; - colorBackground[] = {0,0,0,0}; - }; - class MR_TargetListBox: outlw_MR_RscListBox - { - idc = 1502; - canDrag = 1; - rowHeight = 3 * GUI_GRID_H; - onLBDrag = "[(((_this select 1) select 0) select 1), (((_this select 1) select 0) select 2), 'target'] call outlw_MR_onDrag;"; - onMouseButtonClick = "if ((_this select 1) == 1) then {call outlw_MR_clearTarget;};"; - - x = 19.5 * GUI_GRID_W + GUI_GRID_X; - y = 8.5 * GUI_GRID_H + GUI_GRID_Y; - w = 16 * GUI_GRID_W; - h = 3 * GUI_GRID_H; - sizeEx = 0.65 * GUI_GRID_H; - - colorText[] = {0,0,0,0}; - colorDisabled[] = {0,0,0,0}; - colorScrollbar[] = {0,0,0,0}; - colorSelect[] = {0,0,0,0}; - colorSelect2[] = {0,0,0,0}; - colorSelectBackground[] = {0,0,0,0}; - colorSelectBackground2[] = {0,0,0,0}; - colorBackground[] = {0,0,0,0}; - }; - class MR_SourceArea: outlw_MR_IGUIBack - { - idc = 2215; - onLBDrop = "((_this select 4) select 0) call outlw_MR_addSource; true;"; - - x = 19 * GUI_GRID_W + GUI_GRID_X; - y = 3.5 * GUI_GRID_H + GUI_GRID_Y; - w = 17 * GUI_GRID_W; - h = 4 * GUI_GRID_H; - colorBackground[] = {0,0,0,0}; - tooltipColorBox[] = {0,0,0,0}; - }; - class MR_TargetArea: outlw_MR_IGUIBack - { - idc = 2216; - onLBDrop = "((_this select 4) select 0) call outlw_MR_addTarget; true;"; - - x = 19 * GUI_GRID_W + GUI_GRID_X; - y = 8 * GUI_GRID_H + GUI_GRID_Y; - w = 17 * GUI_GRID_W; - h = 4 * GUI_GRID_H; - colorBackground[] = {0,0,0,0}; - tooltipColorBox[] = {0,0,0,0}; - }; - class MR_SourceConvertButton: outlw_MR_RscButtonMenu - { - idc = 1600; - text = ""; - action = "['Source'] call outlw_MR_convert;"; - - x = 33 * GUI_GRID_W + GUI_GRID_X; - y = 3.5 * GUI_GRID_H + GUI_GRID_Y; - w = 3 * GUI_GRID_W; - h = 0.5 * GUI_GRID_H; - - size = 0.5 * GUI_GRID_H; - - class Attributes - { - font = "PuristaMedium"; - align = "center"; - }; - - animTextureNormal = "#(argb,8,8,3)color(0,0,0,0)"; - animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0)"; - animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; - animTexturePressed = "#(argb,8,8,3)color(0,0,0,0)"; - animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; - }; - class MR_TargetConvertButton: outlw_MR_RscButtonMenu - { - idc = 1601; - text = ""; - action = "['target'] call outlw_MR_convert;"; - - x = 33 * GUI_GRID_W + GUI_GRID_X; - y = 8 * GUI_GRID_H + GUI_GRID_Y; - w = 3 * GUI_GRID_W; - h = 0.5 * GUI_GRID_H; - - size = 0.5 * GUI_GRID_H; - - class Attributes - { - font = "PuristaMedium"; - align = "center"; - }; - - animTextureNormal = "#(argb,8,8,3)color(0,0,0,0)"; - animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0)"; - animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; - animTexturePressed = "#(argb,8,8,3)color(0,0,0,0)"; - animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; - }; - class MR_BG_ComboBox: outlw_MR_IGUIBack - { - idc = 15000; - - x = 4.75 * GUI_GRID_W + GUI_GRID_X; - y = 3.8 * GUI_GRID_H + GUI_GRID_Y; - w = 13.5 * GUI_GRID_W; - h = 13.95 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.35}; - }; - class MR_MagListBox: outlw_MR_RscListBox - { - idc = 1500; - type = 102; - canDrag = 1; - columns[] = {0.12,-0.01,0.006,0.83}; - rowHeight = 1.45 * GUI_GRID_H; - drawSideArrows = 0; - idcLeft = -1; - idcRight = -1; - onLBDrag = "[(((_this select 1) select 0) select 1), (((_this select 1) select 0) select 2), 'list'] call outlw_MR_onDrag;"; - - x = 4.75 * GUI_GRID_W + GUI_GRID_X; - y = 4 * GUI_GRID_H + GUI_GRID_Y; - w = 13 * GUI_GRID_W; - h = 13.6 * GUI_GRID_H; - sizeEx = 0.7 * GUI_GRID_H; - }; - class MR_MagListBoxArea: outlw_MR_IGUIBack - { - idc = 2217; - onLBDrop = "call outlw_MR_moveToList; true;"; - - x = 4.75 * GUI_GRID_W + GUI_GRID_X; - y = 3.8 * GUI_GRID_H + GUI_GRID_Y; - w = 13.5 * GUI_GRID_W; - h = 13.95 * GUI_GRID_H; - colorBackground[] = {0,0,0,0}; - }; - class MR_MagListCombo: outlw_MR_RscCombo - { - idc = 22170; - onLBSelChanged = "outlw_MR_currentFilter = (_this select 0) lbData ((_this select 1) - 1); call outlw_MR_populateMagListBox;"; - - x = 4.75 * GUI_GRID_W + GUI_GRID_X; - y = 3 * GUI_GRID_H + GUI_GRID_Y; - w = 13.5 * GUI_GRID_W; - h = 0.8 * GUI_GRID_H; - - sizeEx = 0.75 * GUI_GRID_H; - }; - class MR_PB_SourceAmmo: outlw_MR_RscControlsGroup - { - idc = 2218; - x = 19.5 * GUI_GRID_W + GUI_GRID_X; - y = 4 * GUI_GRID_H + GUI_GRID_Y; - w = 0.5 * GUI_GRID_W; - h = 3 * GUI_GRID_H; - - class Controls - { - class MR_SourceAmmo: outlw_MR_IGUIBack - { - idc = 22180; - x = 0 * GUI_GRID_W + GUI_GRID_X; - y = 3 * GUI_GRID_H + GUI_GRID_Y; - w = 0.5 * GUI_GRID_W; - h = 3 * GUI_GRID_H; - colorBackground[] = {1,1,1,1}; - }; - }; - }; - class MR_PB_TargetAmmo: outlw_MR_RscControlsGroup - { - idc = 2219; - x = 35 * GUI_GRID_W + GUI_GRID_X; - y = 8.5 * GUI_GRID_H + GUI_GRID_Y; - w = 0.5 * GUI_GRID_W; - h = 3 * GUI_GRID_H; - - class Controls - { - class MR_TargetAmmo: outlw_MR_IGUIBack - { - idc = 22190; - x = 0 * GUI_GRID_W + GUI_GRID_X; - y = 3 * GUI_GRID_H + GUI_GRID_Y; - w = 0.5 * GUI_GRID_W; - h = 3 * GUI_GRID_H; - colorBackground[] = {1,1,1,1}; - }; - }; - }; - class MR_BG_RepackProgress: outlw_MR_IGUIBack - { - idc = 10005; - - x = 20.875 * GUI_GRID_W + GUI_GRID_X; - y = 13.875 * GUI_GRID_H + GUI_GRID_Y; - w = 13.3125 * GUI_GRID_W; - h = 1.25 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.9}; - }; - class MR_PB_Repack: outlw_MR_RscControlsGroup - { - idc = 10000; - - x = 21 * GUI_GRID_W + GUI_GRID_X; - y = 14 * GUI_GRID_H + GUI_GRID_Y; - w = 13 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - - class Controls - { - class MR_BG_RepackProgress: outlw_MR_IGUIBack - { - idc = 10001; - - x = 0 * GUI_GRID_W + GUI_GRID_X; - y = 0 * GUI_GRID_H + GUI_GRID_Y; - w = 13 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - colorBackground[] = {1,1,1,0.2}; - }; - class MR_RepackProgress: outlw_MR_IGUIBack - { - idc = 10002; - - x = -13 * GUI_GRID_W + GUI_GRID_X; - y = 0 * GUI_GRID_H + GUI_GRID_Y; - w = 13 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - colorBackground[] = {1,1,1,0.275}; - }; - }; - }; - class MR_RepackingText: outlw_MR_RscText - { - idc = 1008; - text = ""; - x = 25 * GUI_GRID_W + GUI_GRID_X; - y = 14 * GUI_GRID_H + GUI_GRID_Y; - w = 5 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - }; - class MR_ButtonClose: outlw_MR_RscActiveText - { - idc = 2499; - style = 48; - text = "\A3\Ui_f\data\GUI\Rsc\RscDisplayArcadeMap\icon_exit_cross_ca.paa"; - tooltip = "Close"; - action = "closeDialog 0;"; - - x = 35.625 * GUI_GRID_W + GUI_GRID_X; - y = 2.125 * GUI_GRID_H + GUI_GRID_Y; - w = 0.76 * GUI_GRID_W; - h = 0.75 * GUI_GRID_H; - - default = false; - }; - class MR_ButtonOptions: outlw_MR_RscButtonMenu - { - idc = 2400; - - text = "Options"; - action = "call outlw_MR_optionsMenu;"; - x = 18.5 * GUI_GRID_W + GUI_GRID_X; - y = 16.75 * GUI_GRID_H + GUI_GRID_Y; - w = 6.5 * GUI_GRID_W; - h = 1 * GUI_GRID_H; - }; - class MR_Options_Border_Top: outlw_MR_IGUIBack - { - idc = 8997; - - x = 36.75 * GUI_GRID_W + GUI_GRID_X; - y = 5.75 * GUI_GRID_H + GUI_GRID_Y; - w = 0.25 * GUI_GRID_W; - h = 3 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - class MR_Options_Border_Bottom: outlw_MR_IGUIBack - { - idc = 8998; - - x = 36.75 * GUI_GRID_W + GUI_GRID_X; - y = 13.25 * GUI_GRID_H + GUI_GRID_Y; - w = 0.25 * GUI_GRID_W; - h = 1.5 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - class MR_Options_Border: outlw_MR_IGUIBack - { - idc = 8999; - - x = 36.75 * GUI_GRID_W + GUI_GRID_X; - y = 8.75 * GUI_GRID_H + GUI_GRID_Y; - w = 0.25 * GUI_GRID_W; - h = 4.5 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.75}; - }; - class MR_Options_Group: outlw_MR_RscControlsGroup - { - idc = 9000; - - x = 36.5 * GUI_GRID_W + GUI_GRID_X; - y = 7.375 * GUI_GRID_H + GUI_GRID_Y; - w = 0 * GUI_GRID_W; - h = 6.125 * GUI_GRID_H; - - class Controls - { - class MR_BG_Options: outlw_MR_IGUIBack - { - idc = 9007; - - x = 0 * GUI_GRID_W + GUI_GRID_X; - y = 1.125 * GUI_GRID_H + GUI_GRID_Y; - w = 8 * GUI_GRID_W; - h = 3.875 * GUI_GRID_H; - colorBackground[] = {0,0,0,0.675}; - }; - class MR_OptionsTitle: outlw_MR_RscStructuredText - { - idc = 9001; - - text = "OPTIONS"; - x = 1.75 * GUI_GRID_W + GUI_GRID_X; - y = 0 * GUI_GRID_H + GUI_GRID_Y; - w = 6 * GUI_GRID_W; - h = 0.875 * GUI_GRID_H; - colorBackground[] = {0,0,0,1}; - - class Attributes - { - align = "right"; - size = "0.875"; - }; - }; - class MR_ButtonOption_Debug: outlw_MR_RscButtonMenu - { - idc = 9002; - text = "Debug Mode"; - action = "call outlw_MR_debugSwitch;"; - x = 0 * GUI_GRID_W + GUI_GRID_X; - y = 1.125 * GUI_GRID_H + GUI_GRID_Y; - w = 8 * GUI_GRID_W; - h = 0.875 * GUI_GRID_H; - - class Attributes - { - size = "0.875"; - }; - - default = false; - }; - class MR_ButtonOption_ShowFull: outlw_MR_RscButtonMenu - { - idc = 9004; - text = "Show Full"; - action = "call outlw_MR_showFullSwitch;"; - x = 0 * GUI_GRID_W + GUI_GRID_X; - y = 2.125 * GUI_GRID_H + GUI_GRID_Y; - w = 8 * GUI_GRID_W; - h = 0.875 * GUI_GRID_H; - - class Attributes - { - size = "0.875"; - }; - - default = false; - }; - class MR_ButtonOption_Keybindings: outlw_MR_RscButtonMenu - { - idc = 9003; - text = "Keybindings"; - action = "call outlw_MR_openKeybindings"; - x = 0 * GUI_GRID_W + GUI_GRID_X; - y = 3.125 * GUI_GRID_H + GUI_GRID_Y; - w = 8 * GUI_GRID_W; - h = 0.875 * GUI_GRID_H; - - class Attributes - { - size = "0.875"; - }; - - default = false; - }; - class MR_ButtonOption_About: outlw_MR_RscButtonMenu - { - idc = 9005; - text = "About"; - action = "call outlw_MR_openAbout"; - x = 0 * GUI_GRID_W + GUI_GRID_X; - y = 4.125 * GUI_GRID_H + GUI_GRID_Y; - w = 8 * GUI_GRID_W; - h = 0.875 * GUI_GRID_H; - - class Attributes - { - size = "0.875"; - }; - - default = false; - }; - class MR_ButtonOption_Hide: outlw_MR_RscButtonMenu - { - idc = 9006; - text = "Hide"; - action = "call outlw_MR_optionsMenu;"; - x = 4.5 * GUI_GRID_W + GUI_GRID_X; - y = 5.25 * GUI_GRID_H + GUI_GRID_Y; - w = 3.5 * GUI_GRID_W; - h = 0.875 * GUI_GRID_H; - - class Attributes - { - align = "right"; - size = "0.875"; - }; - - default = false; - }; - }; - }; - }; -}; - - - - - - - - diff --git a/outlw_magRepack/Configs/defines.hpp b/outlw_magRepack/Configs/defines.hpp deleted file mode 100644 index 9a9f08316..000000000 --- a/outlw_magRepack/Configs/defines.hpp +++ /dev/null @@ -1,419 +0,0 @@ - -#define GUI_GRID_X (0) -#define GUI_GRID_Y (0) -#define GUI_GRID_W (0.025) -#define GUI_GRID_H (0.04) -#define GUI_GRID_WAbs (1) -#define GUI_GRID_HAbs (1) - -// Control types -#define CT_STATIC 0 -#define CT_BUTTON 1 -#define CT_EDIT 2 -#define CT_SLIDER 3 -#define CT_COMBO 4 -#define CT_LISTBOX 5 -#define CT_TOOLBOX 6 -#define CT_CHECKBOXES 7 -#define CT_PROGRESS 8 -#define CT_HTML 9 -#define CT_STATIC_SKEW 10 -#define CT_ACTIVETEXT 11 -#define CT_TREE 12 -#define CT_STRUCTURED_TEXT 13 -#define CT_CONTEXT_MENU 14 -#define CT_CONTROLS_GROUP 15 -#define CT_SHORTCUTBUTTON 16 -#define CT_XKEYDESC 40 -#define CT_XBUTTON 41 -#define CT_XLISTBOX 42 -#define CT_XSLIDER 43 -#define CT_XCOMBO 44 -#define CT_ANIMATED_TEXTURE 45 -#define CT_OBJECT 80 -#define CT_OBJECT_ZOOM 81 -#define CT_OBJECT_CONTAINER 82 -#define CT_OBJECT_CONT_ANIM 83 -#define CT_LINEBREAK 98 -#define CT_USER 99 -#define CT_MAP 100 -#define CT_MAP_MAIN 101 -#define CT_LISTNBOX 102 - -// Static styles -#define ST_POS 0x0F -#define ST_HPOS 0x03 -#define ST_VPOS 0x0C -#define ST_LEFT 0x00 -#define ST_RIGHT 0x01 -#define ST_CENTER 0x02 -#define ST_DOWN 0x04 -#define ST_UP 0x08 -#define ST_VCENTER 0x0C - -#define ST_TYPE 0xF0 -#define ST_SINGLE 0x00 -#define ST_MULTI 0x10 -#define ST_TITLE_BAR 0x20 -#define ST_PICTURE 0x30 -#define ST_FRAME 0x40 -#define ST_BACKGROUND 0x50 -#define ST_GROUP_BOX 0x60 -#define ST_GROUP_BOX2 0x70 -#define ST_HUD_BACKGROUND 0x80 -#define ST_TILE_PICTURE 0x90 -#define ST_WITH_RECT 0xA0 -#define ST_LINE 0xB0 - -#define ST_SHADOW 0x100 -#define ST_NO_RECT 0x200 -#define ST_KEEP_ASPECT_RATIO 0x800 - -#define ST_TITLE ST_TITLE_BAR + ST_CENTER - -// Slider styles -#define SL_DIR 0x400 -#define SL_VERT 0 -#define SL_HORZ 0x400 - -#define SL_TEXTURES 0x10 - -// progress bar -#define ST_VERTICAL 0x01 -#define ST_HORIZONTAL 0 - -// Listbox styles -#define LB_TEXTURES 0x10 -#define LB_MULTI 0x20 - -// Tree styles -#define TR_SHOWROOT 1 -#define TR_AUTOCOLLAPSE 2 - -// MessageBox styles -#define MB_BUTTON_OK 1 -#define MB_BUTTON_CANCEL 2 -#define MB_BUTTON_USER 4 - -class outlw_MR_RscText -{ - access = 0; - type = 0; - idc = -1; - colorBackground[] = {0,0,0,0}; - colorText[] = {1,1,1,1}; - text = ""; - fixedWidth = 0; - x = 0; - y = 0; - h = 0.037; - w = 0.3; - style = 0; - shadow = 1; - colorShadow[] = {0,0,0,0.5}; - font = "PuristaMedium"; - SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - linespacing = 1; -}; -class outlw_MR_RscStructuredText -{ - access = 0; - type = 13; - idc = -1; - style = 0; - colorText[] = {1,1,1,1}; - class Attributes - { - font = "PuristaMedium"; - color = "#ffffff"; - align = "left"; - shadow = 1; - }; - x = 0; - y = 0; - h = 0.035; - w = 0.1; - text = ""; - size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - shadow = 1; -}; -class outlw_MR_RscPicture -{ - access = 0; - type = 0; - idc = -1; - style = 48; - colorBackground[] = {0,0,0,0}; - colorText[] = {1,1,1,1}; - font = "TahomaB"; - sizeEx = 0; - lineSpacing = 0; - text = ""; - fixedWidth = 0; - shadow = 0; - x = 0; - y = 0; - w = 0.2; - h = 0.15; -}; -class outlw_MR_RscListBox -{ - access = 0; - type = 5; - w = 0.4; - h = 0.4; - rowHeight = 0; - colorText[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.25}; - colorScrollbar[] = {1,0,0,0}; - colorSelect[] = {0,0,0,1}; - colorSelect2[] = {0,0,0,1}; - colorSelectBackground[] = {0.95,0.95,0.95,1}; - colorSelectBackground2[] = {1,1,1,0.5}; - colorBackground[] = {0,0,0,0}; - soundSelect[] = - { - "\A3\ui_f\data\sound\RscListbox\soundSelect", - 0.09, - 1 - }; - arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; - arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; - class ListScrollBar - { - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.3}; - shadow = 0; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - }; - style = 16; - font = "PuristaMedium"; - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - shadow = 0; - colorShadow[] = {0,0,0,0.5}; - color[] = {1,1,1,1}; - period = 1.2; - maxHistoryDelay = 1; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; -}; -class outlw_MR_RscActiveText -{ - access = 0; - type = 11; - color[] = {1,1,1,0.7}; - colorActive[] = {1,1,1,1}; - colorText[] = {1,1,1,0.7}; - soundClick[] = {"",0.1,1}; - soundEnter[] = {"",0.1,1}; - soundEscape[] = {"",0.1,1}; - soundPush[] = {"",0.1,1}; - font = "PuristaMedium"; - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; -}; -class outlw_MR_IGUIBack -{ - type = 0; - idc = 124; - style = 128; - text = ""; - colorText[] = {0,0,0,0}; - font = "PuristaMedium"; - sizeEx = 0; - shadow = 0; - x = 0.1; - y = 0.1; - w = 0.1; - h = 0.1; - colorbackground[] = - { - "(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", - "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", - "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", - "(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])" - }; -}; -class outlw_MR_RscButtonMenu -{ - idc = -1; - type = 16; - style = "0x02 + 0xC0"; - default = 0; - shadow = 0; - x = 0; - y = 0; - w = 0.095589; - h = 0.039216; - textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; - animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; - animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; - animTextureOver = "#(argb,8,8,3)color(1,1,1,0.5)"; - animTextureFocused = "#(argb,8,8,3)color(0,0,0,0.8)"; - animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; - animTextureDefault = "#(argb,8,8,3)color(0,0,0,0.8)"; - class HitZone - { - left = 0; - top = 0; - right = 0; - bottom = 0; - }; - colorFocused[] = {1,1,1,0.5}; - colorBackgroundFocused[] = {0,0,0,0.8}; - colorBackground[] = {0,0,0,0.8}; - colorBackground2[] = {1,1,1,0.5}; - color[] = {1,1,1,1}; - color2[] = {1,1,1,1}; - colorText[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.25}; - period = 1.2; - periodFocus = 1.2; - periodOver = 1.2; - size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - class TextPos - { - left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)"; - top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; - right = 0.005; - bottom = 0; - }; - class Attributes - { - font = "PuristaLight"; - color = "#E5E5E5"; - align = "left"; - shadow = "false"; - }; - class ShortcutPos - { - left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005"; - top = 0.005; - w = 0.0225; - h = 0.03; - }; - soundEnter[] = - { - "\A3\ui_f\data\sound\RscButtonMenu\soundEnter", - 0.09, - 1 - }; - soundPush[] = - { - "\A3\ui_f\data\sound\RscButtonMenu\soundPush", - 0.09, - 1 - }; - soundClick[] = - { - "\A3\ui_f\data\sound\RscButtonMenu\soundClick", - 0.09, - 1 - }; - soundEscape[] = - { - "\A3\ui_f\data\sound\RscButtonMenu\soundEscape", - 0.09, - 1 - }; -}; -class outlw_MR_RscControlsGroup -{ - class VScrollbar - { - color[] = {1,1,1,0}; - width = 0; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; - shadow = 0; - }; - class HScrollbar - { - color[] = {1,1,1,0}; - height = 0; - shadow = 0; - }; - class ScrollBar - { - color[] = {1,1,1,0}; - colorActive[] = {1,1,1,0}; - colorDisabled[] = {1,1,1,0}; - shadow = 0; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - }; - type = 15; - idc = -1; - x = 0; - y = 0; - w = 1; - h = 1; - shadow = 0; - style = 16; -}; -class outlw_MR_RscCombo -{ - access = 0; - type = 4; - colorSelect[] = {0,0,0,1}; - colorText[] = {1,1,1,1}; - colorBackground[] = {0,0,0,1}; - colorScrollbar[] = {1,0,0,1}; - soundSelect[] = - { - "\A3\ui_f\data\sound\RscCombo\soundSelect", - 0.1, - 1 - }; - soundExpand[] = - { - "\A3\ui_f\data\sound\RscCombo\soundExpand", - 0.1, - 1 - }; - soundCollapse[] = - { - "\A3\ui_f\data\sound\RscCombo\soundCollapse", - 0.1, - 1 - }; - maxHistoryDelay = 1; - class ComboScrollBar - { - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.3}; - shadow = 0; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - }; - style = "0x10 + 0x200"; - x = 0; - y = 0; - w = 0.12; - h = 0.035; - shadow = 0; - colorSelectBackground[] = {1,1,1,0.7}; - arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; - arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; - wholeHeight = 0.45; - color[] = {1,1,1,1}; - colorActive[] = {1,0,0,1}; - colorDisabled[] = {1,1,1,0.25}; - font = "PuristaMedium"; - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; -}; - - - - diff --git a/outlw_magRepack/Images/MR_SourceGradient.paa b/outlw_magRepack/Images/MR_SourceGradient.paa deleted file mode 100644 index b88c73d80b73b8b5fac31f00cfedb0835de0b109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27460 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 RAty8{)^pOyubyFR{vRsz3N8Qu diff --git a/outlw_magRepack/Images/MR_logo.paa b/outlw_magRepack/Images/MR_logo.paa deleted file mode 100644 index 12e004a3da61c72e12b7f75cdee0c5f2d91ab874..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22016 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 N1<3$jCJt4YPXV8X8@~Vm diff --git a/outlw_magRepack/Images/bulletCount/12.paa b/outlw_magRepack/Images/bulletCount/12.paa deleted file mode 100644 index d9d63adcaffb6a255175a301eeb952192c7f5911..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmWF)b$53Radr=LWMN=n`2YWZGMFFX=nLil2l3q3xOQ6UimOuUz56j~Su#Kiv} N*+>R<4i0&kM*+uV9RvUX diff --git a/outlw_magRepack/Images/bulletCount/15.paa b/outlw_magRepack/Images/bulletCount/15.paa deleted file mode 100644 index 46d9f1ed175b1fe7ebfd97943971d962ebd0dc2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmWF)b$53Radr=LWMN=n`2YWZHJBga=nLil2l3q&_r N%?JigHV$c+PXVyL8(aVY diff --git a/outlw_magRepack/Images/bulletCount/17.paa b/outlw_magRepack/Images/bulletCount/17.paa deleted file mode 100644 index d32399923c87a6269307b444112ca8244d71c5de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmWF)b$53Radr=LWMN=n`2YWZ511d}=nLil2l3qpF diff --git a/outlw_magRepack/Images/bulletCount/18.paa b/outlw_magRepack/Images/bulletCount/18.paa deleted file mode 100644 index 7ebdf61b51e98aa559e7d26b26b2758d140e822c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmWF)b$53Radr=LWMN=n`2YX^6fi%+(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9GjurLJ#7#R7HAsUyFpD2MK9fcGI1{MZ+26Z$?@G)T; Lz|F!T4)ZAh%*-2= diff --git a/outlw_magRepack/Images/bulletCount/19.paa b/outlw_magRepack/Images/bulletCount/19.paa deleted file mode 100644 index 901b9879d76206ac09811344629c43f8009c33a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmWF)b$53Radr=LWMN=n`2YX^956q^(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9GjuuueeSQz;k82M2lIRY%)MLG&G3=Av`@(d~{j$q-z Mu!5O~Llovs0ES5$oB#j- diff --git a/outlw_magRepack/Images/bulletCount/2.paa b/outlw_magRepack/Images/bulletCount/2.paa deleted file mode 100644 index aa4a8a861dd70a82183408dd5fc639fcc2f2305a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmWF)b$53Radr=LWMN=n`2YXE0GJ=)=nLil2l3qt096PZvj6}9 diff --git a/outlw_magRepack/Images/bulletCount/20.paa b/outlw_magRepack/Images/bulletCount/20.paa deleted file mode 100644 index 8e34da025c337d44075456a8a935ffefc3161c29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmWF)b$53Radr=LWMN=n`2YX^QZPTl(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9Gju;2n59E|)R$N-@bBsl^c?2~j9LKqlW7~~n$Q5?a; Ng3StECJtekPXXxa8_WOz diff --git a/outlw_magRepack/Images/bulletCount/21.paa b/outlw_magRepack/Images/bulletCount/21.paa deleted file mode 100644 index 2f174e27de6fa396ad95f6059c0a1cb0cb4bd48b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmWF)b$53Radr=LWMN=n`2YX^S};Gt(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9Gju)qQ=JdFG>$N*!&XmSL2m^bMt_%JZAFvv5gAUlE& PWGb48tXv#|FmD0?q1_wQ diff --git a/outlw_magRepack/Images/bulletCount/22.paa b/outlw_magRepack/Images/bulletCount/22.paa deleted file mode 100644 index bfeabfdbef2eb1a9530de2231ab33dfb3091c319..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmWF)b$53Radr=LWMN=n`2YX^Rxm%p(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9GjvY7b)Gx8%K1A+-*ks-ju$p8P6u7V2#0}F#ZgF2EU RxY$63Vj9WMz`+mmDFDf39ryqM diff --git a/outlw_magRepack/Images/bulletCount/23.paa b/outlw_magRepack/Images/bulletCount/23.paa deleted file mode 100644 index f1cf4bf9fba5c4bf3feddc3988e6a58fcab84afa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmWF)b$53Radr=LWMN=n`2YX^UNAqx(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9F2vG|x682M2lRRoxLKj|pgFfgz%$TO%hFet+u@gHOt NrVZ>I9K0}(0stJ#9WDR> diff --git a/outlw_magRepack/Images/bulletCount/24.paa b/outlw_magRepack/Images/bulletCount/24.paa deleted file mode 100644 index 0f208799086cf8ed9e034b7487a002c50ef82557..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmWF)b$53Radr=LWMN=n`2YX^Q7}Kk(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9HuVq@fI40N4Q>I{*Lx diff --git a/outlw_magRepack/Images/bulletCount/25.paa b/outlw_magRepack/Images/bulletCount/25.paa deleted file mode 100644 index 1d71842e025445b82e0da4aa3c44c25fe73c9818..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmWF)b$53Radr=LWMN=n`2YX^IWRxM(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9JE<6`88Kn55CMpH$Ai`B?RL5G2Xg+ZP{9qtGLsM(lS LaI$f5!h8w<_qH2o diff --git a/outlw_magRepack/Images/bulletCount/26.paa b/outlw_magRepack/Images/bulletCount/26.paa deleted file mode 100644 index c2565c3cc8bef85e5dada7fa74deec03941dad07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmWF)b$53Radr=LWMN=n`2YX^H84NI(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9c#W8_Cb1_TqrqKW_?V~~x43IhWRgFFL}0y~0@3uYC% L6?`1*FmD0?v5gyW diff --git a/outlw_magRepack/Images/bulletCount/27.paa b/outlw_magRepack/Images/bulletCount/27.paa deleted file mode 100644 index 81808a2fdd5b7e782de839034b7c2651d63c6d89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmWF)b$53Radr=LWMN=n`2YX^JupAQ(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkU@ZfksleNaT)okBv53dAj81G!XVF}4s`?{6U<&rE4W!W ISYbW|025^!p#T5? diff --git a/outlw_magRepack/Images/bulletCount/28.paa b/outlw_magRepack/Images/bulletCount/28.paa deleted file mode 100644 index 8a43ee95f7c54a23311fc1f23ce590a013ab9c7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmWF)b$53Radr=LWMN=n`2YX^GcZ5G(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zVi=kcWklpMjAd71Bn4g?o~Xf(Qcx3xhm^3d9jS2z$}&Wai;u HhItbJ%ikNO diff --git a/outlw_magRepack/Images/bulletCount/29.paa b/outlw_magRepack/Images/bulletCount/29.paa deleted file mode 100644 index 407ca6b1b248936dbb00c21a5afd3843bac4377a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmWF)b$53Radr=LWMN=n`2YX^doVx3(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zVkO_&GQj`9Y8YLLo@n2yn1(vQgk+U|?a8XHbVYf(4(Qyi6Q$ G&jJ7~PaDnv diff --git a/outlw_magRepack/Images/bulletCount/3.paa b/outlw_magRepack/Images/bulletCount/3.paa deleted file mode 100644 index a6b938d853a9ad41b35b1a00c9aa3cac51787064..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmWF)b$53Radr=LWMN=n`2YXEB$yxJ=nLil2l3qzQ~M`C*U&#(>eZ5#V9IV50!^7Yl40rhnq-~a#s diff --git a/outlw_magRepack/Images/bulletCount/5.paa b/outlw_magRepack/Images/bulletCount/5.paa deleted file mode 100644 index 1a5ba5fc003e9746e2e9c5d09ddc9c3c1aecc2dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmWF)b$53Radr=LWMN=n`2YXECYT@L=nLil2l3qx0DS=+6951J diff --git a/outlw_magRepack/Images/bulletCount/7.paa b/outlw_magRepack/Images/bulletCount/7.paa deleted file mode 100644 index 43f9e6035ff5e528801b2e25a89d831439891c8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmWF)b$53Radr=LWMN=n`2YXE6__94=nLil2l3q> "CfgPatches" >> "outlw_magRepack")) exitWith {}; - -disableSerialization; - -outlw_MR_version = "3.1.0"; -outlw_MR_date = "5 February 2014"; - -outlw_MR_defaultKeybinding = [false, true, false, 19]; - -outlw_MR_canCreateDialog = true; -outlw_MR_keybindingMenuActive = false; -outlw_MR_debugMode = profileNamespace getVariable ["outlw_MR_debugMode_profile", false]; -outlw_MR_doHideFull = profileNamespace getVariable ["outlw_MR_doHideFull_profile", false]; -outlw_MR_keyList = profileNamespace getVariable ["outlw_MR_keyList_profile", outlw_MR_defaultKeybinding]; - -if (typeName(outlw_MR_keyList select 0) != "BOOL") then -{ - profileNamespace setVariable ["outlw_MR_keyList_profile", outlw_MR_defaultKeybinding]; - outlw_MR_keyList =+ outlw_MR_defaultKeybinding; -}; - -outlw_MR_shift = outlw_MR_keyList select 0; -outlw_MR_ctrl = outlw_MR_keyList select 1; -outlw_MR_alt = outlw_MR_keyList select 2; -outlw_MR_keybinding = outlw_MR_keyList select 3; - -[] execVM "outlw_magRepack\Scripts\MagRepack_Main.sqf"; -[] execVM "outlw_magRepack\Scripts\MagRepack_Keybindings.sqf"; -[] execVM "outlw_magRepack\Scripts\MagRepack_Misc.sqf"; - -waitUntil {!(isNil "outlw_MR_getIDCs")}; - -outlw_MR_listIDCs = [(missionConfigFile >> "MR_Dialog" >> "Controls")] call outlw_MR_getIDCs; - -waitUntil {!(isNull (findDisplay 46))}; - -(findDisplay 46) displayAddEventHandler ["KeyDown", "_this call outlw_MR_keyDown;"]; - -systemChat "Mag Repack Initialized"; -systemChat ("Keybinding: " + (call outlw_MR_keyListToString)); - - - - - - - - diff --git a/outlw_magRepack/Scripts/MagRepack_Keybindings.sqf b/outlw_magRepack/Scripts/MagRepack_Keybindings.sqf deleted file mode 100644 index d7e4fd2d9..000000000 --- a/outlw_magRepack/Scripts/MagRepack_Keybindings.sqf +++ /dev/null @@ -1,139 +0,0 @@ - -outlw_MR_openKeybindings = -{ - createDialog "MagRepack_Dialog_Keybindings"; - outlw_MR_keybindingMenuActive = true; - - outlw_KB_cShift = outlw_MR_shift; - outlw_KB_cCtrl = outlw_MR_ctrl; - outlw_KB_cAlt = outlw_MR_alt; - outlw_KB_cKey = outlw_MR_keybinding; - - call outlw_KB_updateKeyText; - - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2401) ctrlEnable false; - - if (outlw_KB_cShift) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2500) ctrlSetBackgroundColor [1, 1, 1, 0.25]; - }; - - if (outlw_KB_cCtrl) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2501) ctrlSetBackgroundColor [1, 1, 1, 0.25]; - }; - - if (outlw_KB_cAlt) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2502) ctrlSetBackgroundColor [1, 1, 1, 0.25]; - }; -}; - -outlw_MR_applyKeybinding = -{ - private ["_systemString"]; - - outlw_MR_keyList =+ (_this select 0); - profileNamespace setVariable ["outlw_MR_keyList_profile", outlw_MR_keyList]; - - outlw_MR_shift = outlw_MR_keyList select 0; - outlw_MR_ctrl = outlw_MR_keyList select 1; - outlw_MR_alt = outlw_MR_keyList select 2; - outlw_MR_keybinding = outlw_MR_keyList select 3; - - if (count _this > 1 && {_this select 1}) then - { - _systemString = "Mag Repack keybinding has been reset to "; - } - else - { - _systemString = "Mag Repack keybinding has been updated to "; - closeDialog 0; - }; - - systemChat (_systemString + (call outlw_MR_keyListToString)); -}; - -outlw_KB_keyDown = -{ - if ((_this select 1) != 1) then - { - outlw_KB_cKey = _this select 1; - call outlw_KB_updateKeyText; - call outlw_KB_enableApply; - - true; - }; -}; - -outlw_KB_enableApply = -{ - if !([outlw_MR_keyList, [outlw_KB_cShift, outlw_KB_cCtrl, outlw_KB_cAlt, outlw_KB_cKey]] call BIS_fnc_areEqual) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2401) ctrlEnable true; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2401) ctrlEnable false; - }; -}; - -outlw_KB_updateKeyText = -{ - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2499) ctrlSetText (keyName outlw_KB_cKey); -}; - -outlw_KB_modifierSwitch = -{ - _mod = _this select 0; - - if (_mod == 0) then - { - if (!outlw_KB_cShift) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2500) ctrlSetBackgroundColor [1, 1, 1, 0.25]; - outlw_KB_cShift = true; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2500) ctrlSetBackgroundColor [0, 0, 0, 0.8]; - outlw_KB_cShift = false; - }; - } - else - { - if (_mod == 1) then - { - if (!outlw_KB_cCtrl) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2501) ctrlSetBackgroundColor [1, 1, 1, 0.25]; - outlw_KB_cCtrl = true; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2501) ctrlSetBackgroundColor [0, 0, 0, 0.8]; - outlw_KB_cCtrl = false; - }; - } - else - { - if (_mod == 2) then - { - if (!outlw_KB_cAlt) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2502) ctrlSetBackgroundColor [1, 1, 1, 0.25]; - outlw_KB_cAlt = true; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2502) ctrlSetBackgroundColor [0, 0, 0, 0.8]; - outlw_KB_cAlt = false; - }; - }; - }; - }; - - call outlw_KB_updateKeyText; - call outlw_KB_enableApply; -}; - diff --git a/outlw_magRepack/Scripts/MagRepack_Main.sqf b/outlw_magRepack/Scripts/MagRepack_Main.sqf deleted file mode 100644 index 941191ce4..000000000 --- a/outlw_magRepack/Scripts/MagRepack_Main.sqf +++ /dev/null @@ -1,969 +0,0 @@ - -outlw_MR_createDialog = -{ - private ["_stance", "_raised", "_weapon"]; - - outlw_MR_sourceType = ""; - outlw_MR_sourceCount = 0; - outlw_MR_sourceCap = 0; - - outlw_MR_targetType = ""; - outlw_MR_targetCount = 0; - outlw_MR_targetCap = 0; - - outlw_MR_listDragging = false; - outlw_MR_sourceDragging = false; - outlw_MR_targetDragging = false; - - outlw_MR_doAddToMagazines = true; - outlw_MR_canCreateDialog = false; - - outlw_MR_dragType = ""; - outlw_MR_dragCount = 0; - outlw_MR_dragCap = 0; - - outlw_MR_currentFilter = ""; - outlw_MR_isRepacking = false; - outlw_MR_optionsOpen = false; - - createDialog "MagRepack_Dialog_Main"; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1001) ctrlSetText ("Mag Repack [" + outlw_MR_version + "]"); - - outlw_MR_blur = ppEffectCreate ["DynamicBlur", 401]; - outlw_MR_blur ppEffectEnable true; - outlw_MR_blur ppEffectAdjust [1.5]; - outlw_MR_blur ppEffectCommit 0; - - if (vehicle player == player) then - { - _stance = "Pknl"; - _raised = "Sras"; - _weapon = "Wpst"; - - if (stance player == "PRONE") then - { - _stance = "Ppne"; - }; - - switch (currentWeapon player) do - { - case (""): {_raised = "Snon"; _weapon = "Wnon";}; - case (primaryWeapon player): {_weapon = "Wrfl";}; - case (secondaryWeapon player): {_weapon = "Wlnr";}; - }; - - player playMove ("Ainv" + _stance + "Mstp" + _raised + _weapon + "Dnon"); - }; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbAdd "All Ammo Types"; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbSetData [0, ""]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbSetCurSel 0; - - call outlw_MR_populateMagListBox; - call outlw_MR_populateMagComboBox; - - [true] call outlw_MR_sourceEnabled; - [true] call outlw_MR_targetEnabled; - - if (outlw_MR_debugMode) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: On"; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: Off"; - }; - - if (outlw_MR_doHideFull) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: Off"; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: On"; - }; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9003) ctrlSetStructuredText parseText "Keybindings"; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9005) ctrlSetStructuredText parseText "About"; - - outlw_MR_startingInfo = call outlw_MR_debugInfo; - - [] spawn - { - private ["_a", "_b"]; - - _a = magazinesAmmo player; - - while {!(IsNull (uiNamespace getVariable "outlw_MR_Dialog_Main"))} do - { - sleep 0.05; - - _b = magazinesAmmo player; - - if !([_a, _b] call BIS_fnc_areEqual) then - { - call outlw_MR_populateMagListBox; - _a =+ _b; - }; - - if !(alive player) then - { - closeDialog 0; - }; - }; - }; -}; - -outlw_MR_populateMagComboBox = -{ - private ["_this", "_magTypes", "_ammoTypes", "_n", "_a"]; - - _magTypes = (call outlw_MR_magInfo) select 0; - _ammoTypes = []; - _a = 0; - - for "_n" from 0 to ((count _magTypes) - 1) do - { - if !((getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo")) in _ammoTypes) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbAdd ([([(getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo"))] call outlw_MR_ammoDisplayName), 25] call outlw_MR_shortString); - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbSetData [_a, (getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo"))]; - _ammoTypes set [count _ammoTypes, (getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo"))]; - - _a = _a + 1; - }; - }; -}; - -outlw_MR_populateMagListBox = -{ - private ["_this", "_args", "_magListTitle", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_magCounts", "_bgrndPos", "_n", "_a"]; - - _args = call outlw_MR_magInfo; - _magListTitle = "All Magazines"; - - if (outlw_MR_sourceType != "" || {outlw_MR_targetType != ""} || {outlw_MR_currentFilter != ""}) then - { - _args = (_args) call outlw_MR_filter; - _magListTitle = "Compatible Mags"; - }; - - lnbClear ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500); - - _args = (_args) call outlw_MR_uniqueMags; - - if (outlw_MR_doHideFull) then - { - _args = (_args) call outlw_MR_hideFull; - _magListTitle = "Non-Full Magazines"; - - if (outlw_MR_sourceType != "" || {outlw_MR_targetType != ""} || {outlw_MR_currentFilter != ""}) then - { - _magListTitle = "Compatible, Non-Full"; - }; - }; - - _magTypes = _args select 0; - _magAmmoCounts = _args select 1; - _magAmmoCaps = _args select 2; - _magCounts = _args select 3; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1000) ctrlSetStructuredText parseText _magListTitle; - - _bgrndPos = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500); - - if (count _magTypes > 9) then - { - ["outlw_MR_Dialog_Main", 1500, [(_bgrndPos select 0), (_bgrndPos select 1), 0.3375, (_bgrndPos select 3)], 0] call outlw_MR_ctrlSetPos; - ["outlw_MR_Dialog_Main", 2217, [(_bgrndPos select 0), (_bgrndPos select 1), 0.321, (_bgrndPos select 3) + 0.003], 0] call outlw_MR_ctrlSetPos; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbDeleteColumn 3; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbAddColumn 0.83; - } - else - { - ["outlw_MR_Dialog_Main", 1500, [(_bgrndPos select 0), (_bgrndPos select 1), 0.325, (_bgrndPos select 3)], 0] call outlw_MR_ctrlSetPos; - ["outlw_MR_Dialog_Main", 2217, [(_bgrndPos select 0), (_bgrndPos select 1), 0.325, (_bgrndPos select 3) + 0.003], 0] call outlw_MR_ctrlSetPos; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbDeleteColumn 3; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbAddColumn 0.89; - - }; - - _a = 0; - - for "_n" from 0 to ((count _magTypes) - 1) do - { - _magCountStr = str(_magCounts select _n); - - if (_magCounts select _n < 10) then - { - _magCountStr = " " + _magCountStr; - }; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbAddRow [([(getText(configFile >> "cfgMagazines" >> _magTypes select _n >> "DisplayName")), 25] call outlw_MR_shortString), "", "", _magCountStr]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbSetPicture [[_n, 1], format ["outlw_magRepack\Images\bulletCount\%1.paa", round((_magAmmoCounts select _n)/(_magAmmoCaps select _n)*30)]]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbSetPicture [[_n, 2], (getText(configFile >> "cfgMagazines" >> _magTypes select _n >> "picture"))]; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lbSetValue [_n*4, _magAmmoCounts select _n]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lbSetData [_n*4, _magTypes select _n]; - }; -}; - -outlw_MR_filter = -{ - private ["_this", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_ammoType", "_returnTypes", "_returnCounts", "_returnCaps"]; - - _magTypes = _this select 0; - _magAmmoCounts = _this select 1; - _magAmmoCaps = _this select 2; - - _ammoType = (getText(configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "ammo")); - - if (_ammoType == "") then - { - _ammoType = (getText(configFile >> "cfgMagazines" >> outlw_MR_targetType >> "ammo")); - }; - - if (_ammoType == "") then - { - _ammoType = outlw_MR_currentFilter; - }; - - _returnTypes = []; - _returnCounts = []; - _returnCaps = []; - - for "_n" from 0 to ((count _magTypes) - 1) do - { - if ((getText (configFile >> "cfgMagazines" >> _magTypes select _n >> "ammo")) == _ammoType) then - { - _returnTypes set [count _returnTypes, _magTypes select _n]; - _returnCounts set [count _returnCounts, _magAmmoCounts select _n]; - _returnCaps set [count _returnCaps, _magAmmoCaps select _n]; - }; - }; - - [_returnTypes, _returnCounts, _returnCaps]; -}; - -outlw_MR_hideFull = -{ - private ["_this", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_magCounts", "_returnMagTypes", "_returnAmmoCaps", "_returnAmmoCaps", "_returnMagCounts", "_n", "_a"]; - - _magTypes = _this select 0; - _magAmmoCounts = _this select 1; - _magAmmoCaps = _this select 2; - _magCounts = _this select 3; - - _returnMagTypes = []; - _returnMagAmmoCounts = []; - _returnMagAmmoCaps = []; - _returnMagCounts = []; - - _a = 0; - - for "_n" from 0 to ((count _magTypes) - 1) do - { - if ((_magAmmoCounts select _n) != (_magAmmoCaps select _n)) then - { - _returnMagTypes set [_a, _magTypes select _n]; - _returnMagAmmoCounts set [_a, _magAmmoCounts select _n]; - _returnMagAmmoCaps set [_a, _magAmmoCaps select _n]; - _returnMagCounts set [_a, _magCounts select _n]; - - _a = _a + 1; - }; - }; - - [_returnMagTypes, _returnMagAmmoCounts, _returnMagAmmoCaps, _returnMagCounts]; -}; - -outlw_MR_repack = -{ - private ["_sourceCap", "_targetCap", "_refreshRate", "_refreshCount", "_magCode", "_keepRepacking", "_sleepTime", "_n"]; - - outlw_MR_isRepacking = true; - - _refreshRate = outlw_MR_bulletTime; - _refreshCount = 1; - - _magCode = - { - outlw_MR_sourceCount = outlw_MR_sourceCount - 1; - outlw_MR_targetCount = outlw_MR_targetCount + 1; - }; - - if ([outlw_MR_sourceType] call outlw_MR_isBeltMagazine && {[outlw_MR_targetType] call outlw_MR_isBeltMagazine}) then - { - _refreshRate = outlw_MR_beltTime; - _magCode = - { - outlw_MR_sourceCount = outlw_MR_sourceCount - (outlw_MR_targetCap - outlw_MR_targetCount); - outlw_MR_targetCount = outlw_MR_targetCount + (outlw_MR_targetCap - outlw_MR_targetCount) + outlw_MR_sourceCount; - if (outlw_MR_targetCount > outlw_MR_targetCap) then {outlw_MR_targetCount = outlw_MR_targetCap}; - if (outlw_MR_sourceCount < 0) then {outlw_MR_sourceCount = 0}; - }; - } - else - { - if (outlw_MR_sourceCount >= (outlw_MR_targetCap - outlw_MR_targetCount)) then - { - _refreshCount = (outlw_MR_targetCap - outlw_MR_targetCount); - } - else - { - _refreshCount = outlw_MR_sourceCount; - }; - }; - - [] spawn outlw_MR_repackingText; - - ["outlw_MR_Dialog_Main", 10002, [0,0], (_refreshCount * _refreshRate)] call outlw_MR_ctrlSetPos; - - _keepRepacking = {outlw_MR_sourceType != "" && outlw_MR_targetType != "" && outlw_MR_sourceCount > 0 && outlw_MR_targetCount < outlw_MR_targetCap}; - _sleepTime = (time + (_refreshRate)); - - while {time < _sleepTime && call _keepRepacking} do - { - sleep 0.05; - }; - - while _keepRepacking do - { - call _magCode; - - ["outlw_MR_Dialog_Main", 22180, [0,((0.12/outlw_MR_sourceCap) * (outlw_MR_sourceCap - outlw_MR_sourceCount))], 0] call outlw_MR_ctrlSetPos; - ["outlw_MR_Dialog_Main", 22190, [0,((0.12/outlw_MR_targetCap) * (outlw_MR_targetCap - outlw_MR_targetCount))], 0] call outlw_MR_ctrlSetPos; - - _sleepTime = (time + (_refreshRate)); - - while {time < _sleepTime && call _keepRepacking} do - { - sleep 0.05; - }; - }; - - if (outlw_MR_sourceCount <= 0) then - { - call outlw_MR_clearSource; - }; - - if (outlw_MR_targetCount == outlw_MR_targetCap) then - { - call outlw_MR_clearTarget; - }; - - outlw_MR_isRepacking = false; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1008) ctrlSetText ""; - - ["outlw_MR_Dialog_Main", 10002, [-0.325,0], 0] call outlw_MR_ctrlSetPos; -}; - -outlw_MR_repackingText = -{ - private ["_repacking"]; - - _repacking = "Repacking..."; - - while {outlw_MR_isRepacking} do - { - _repacking = _repacking + "."; - - if (_repacking == "Repacking....") then - { - _repacking = "Repacking"; - }; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1008) ctrlSetText _repacking; - - sleep 1; - }; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1008) ctrlSetText ""; -}; - -outlw_MR_debugInfo = -{ - private ["_magsAmmo", "_totalMagCount", "_totalAmmo", "_typeCountAmmo", "_magType", "_magAmmo", "_index", "_inArray", "_n", "_a"]; - - _magsAmmo = magazinesAmmo player; - _totalMagCount = 0; - _totalAmmo = 0; - _typeCountAmmo = []; - - for "_n" from 0 to ((count _magsAmmo) - 1) do - { - _magType = ((_magsAmmo select _n) select 0); - _magAmmo = ((_magsAmmo select _n) select 1); - - if (getNumber(configFile >> "CfgMagazines" >> _magType >> "count") > 1 || {[_magType] call outlw_MR_isConvertable}) then - { - _index = 0; - _inArray = false; - - for [{_a = 0}, {_a < count _typeCountAmmo && !_inArray}, {_a = _a + 1}] do - { - if (_magType == ((_typeCountAmmo select _a) select 0)) then - { - _inArray = true; - _index = _a; - }; - }; - - if (_inArray) then - { - (_typeCountAmmo select _index) set [1, ((_typeCountAmmo select _index) select 1) + 1]; - (_typeCountAmmo select _index) set [2, ((_typeCountAmmo select _index) select 2) + _magAmmo]; - } - else - { - _typeCountAmmo set [(count _typeCountAmmo), [_magType, 1, _magAmmo]]; - }; - - _totalMagCount = _totalMagCount + 1; - _totalAmmo = _totalAmmo + _magAmmo; - }; - }; - - [[_totalMagCount, _totalAmmo], _typeCountAmmo]; -}; - -outlw_MR_block = -{ - private ["_doBlockSource", "_doBlockTarget"]; - - _doBlockSource = true; - _doBlockTarget = true; - - switch (true) do - { - case (outlw_MR_sourceType != ""): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip "Source is already defined!";}; - case (outlw_MR_dragCount == 0): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip "Source cannot be empty!";}; - case (outlw_MR_dragCap < 100 && (outlw_MR_targetType != "" && outlw_MR_targetCap >= 100)): - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip "The Target requires a belt, not individual bullets!"; - }; - default {_doBlockSource = false;}; - }; - - if (_doBlockSource) then - { - if (outlw_MR_sourceDragging) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,1,1,0.3]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip ""; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,0,0,0.3]; - }; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable false; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,1,1,0.3]; - }; - - switch (true) do - { - case (outlw_MR_targetType != ""): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip "Target is already defined!";}; - case (outlw_MR_dragCount == outlw_MR_dragCap && outlw_MR_dragCap != 1): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip "Target magazine cannot be full!";}; - case (outlw_MR_dragCap >= 100 && (outlw_MR_sourceType != "" && outlw_MR_sourceCap < 100)): - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip "This magazine requires belts, not individual bullets!"; - }; - default {_doBlockTarget = false;}; - }; - - if (_doBlockTarget) then - { - if (outlw_MR_targetDragging) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,1,1,0.3]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip ""; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,0,0,0.3]; - }; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable false; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,1,1,0.3]; - }; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlSetBackgroundColor [1,1,1,0.3]; -}; - -outlw_MR_onDrag = -{ - private ["_this", "_magInfo"]; - - outlw_MR_listDragging = false; - outlw_MR_sourceDragging = false; - outlw_MR_targetDragging = false; - - outlw_MR_dragType = _this select 1; - outlw_MR_dragCount = _this select 0; - outlw_MR_dragCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_dragType >> "count"); - - switch (_this select 2) do - { - case "source": {outlw_MR_dragCount = outlw_MR_sourceCount; outlw_MR_dragCap = outlw_MR_sourceCap; outlw_MR_sourceDragging = true; ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlEnable true;}; - case "target": {outlw_MR_dragCount = outlw_MR_targetCount; outlw_MR_dragCap = outlw_MR_targetCap; outlw_MR_targetDragging = true; ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlEnable true;}; - default {outlw_MR_listDragging = true;}; - }; - - call outlw_MR_block; -}; - -outlw_MR_onMouseButtonUp = -{ - outlw_MR_dragType = ""; - outlw_MR_dragCount = 0; - outlw_MR_dragCap = 0; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,0,0,0]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip ""; - - if (outlw_MR_sourceType == "") then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable true; - }; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,0,0,0]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip ""; - - if (outlw_MR_targetType == "") then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable true; - }; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlSetBackgroundColor [0,0,0,0]; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlEnable false; -}; - -outlw_MR_sourceEnabled = -{ - private ["_this"]; - - if (_this select 0) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable true; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlEnable false; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetText ""; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetTooltip ""; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1201) ctrlSetText ""; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1100) ctrlSetStructuredText parseText ""; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip ""; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable false; - - if ([outlw_MR_sourceType] call outlw_MR_isConvertable) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetText "Convert"; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetTooltip (getText(configFile >> "CfgMagazines" >> ([outlw_MR_sourceType] call outlw_MR_getConversion) >> "DisplayName")); - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlEnable true; - }; - }; - - if (outlw_MR_dragType != "") then - { - call outlw_MR_block; - }; -}; - -outlw_MR_targetEnabled = -{ - private ["_this"]; - - if (_this select 0) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable true; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlEnable false; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetText ""; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetTooltip ""; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1203) ctrlSetText ""; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1101) ctrlSetStructuredText parseText ""; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip ""; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable false; - - if ([outlw_MR_targetType] call outlw_MR_isConvertable) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetText "Convert"; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetTooltip (getText(configFile >> "CfgMagazines" >> ([outlw_MR_targetType] call outlw_MR_getConversion) >> "DisplayName")); - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlEnable true; - }; - }; - - if (outlw_MR_dragType != "") then - { - call outlw_MR_block; - }; -}; - -outlw_MR_addSource = -{ - private ["_this", "_doExit", "_magInfo"]; - - _doExit = false; - - if (outlw_MR_listDragging) then - { - if ([_this select 2, _this select 1] call outlw_MR_magVerified) then - { - outlw_MR_sourceType = _this select 2; - outlw_MR_sourceCount = _this select 1; - outlw_MR_sourceCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_sourceType >> "count"); - - [outlw_MR_sourceType, outlw_MR_sourceCount] call outlw_MR_removeMag; - call outlw_MR_populateMagListBox; - } - else - { - _doExit = true; - }; - } - else - { - outlw_MR_sourceType = outlw_MR_targetType; - outlw_MR_sourceCount = outlw_MR_targetCount; - outlw_MR_sourceCap = outlw_MR_targetCap; - - outlw_MR_doAddToMagazines = false; - - call outlw_MR_clearTarget; - }; - - if (_doExit) exitWith {}; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1501) lbAdd (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "DisplayName")); - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1201) ctrlSetText (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "picture")); - - ["outlw_MR_Dialog_Main", 22180, [0,((0.12/outlw_MR_sourceCap) * (outlw_MR_sourceCap - outlw_MR_sourceCount))], 0] call outlw_MR_ctrlSetPos; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1100) ctrlSetStructuredText parseText format - [ - "%1
%2
", - (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "DisplayName")), - (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "descriptionshort")) - ]; - - [false] call outlw_MR_sourceEnabled; - - if (outlw_MR_targetType != "") then - { - [] spawn outlw_MR_repack; - }; -}; - -outlw_MR_clearSource = -{ - private ["_doPopulate"]; - - _doPopulate = false; - - if (outlw_MR_doAddToMagazines) then - { - if (outlw_MR_sourceCount > 0) then - { - player addMagazine [outlw_MR_sourceType, outlw_MR_sourceCount]; - _doPopulate = true; - }; - }; - - lnbClear ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1501); - - outlw_MR_sourceType = ""; - outlw_MR_sourceCount = 0; - - if (_doPopulate) then - { - call outlw_MR_populateMagListBox; - }; - - [true] call outlw_MR_sourceEnabled; - outlw_MR_doAddToMagazines = true; - - ["outlw_MR_Dialog_Main", 22180, [0,0.12], 0] call outlw_MR_ctrlSetPos; -}; - -outlw_MR_addTarget = -{ - private ["_this", "_doExit", "_magInfo"]; - - _doExit = false; - - if (outlw_MR_listDragging) then - { - if ([_this select 2, _this select 1] call outlw_MR_magVerified) then - { - outlw_MR_targetType = _this select 2; - outlw_MR_targetCount = _this select 1; - outlw_MR_targetCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_targetType >> "count"); - - [outlw_MR_targetType, outlw_MR_targetCount] call outlw_MR_removeMag; - call outlw_MR_populateMagListBox; - } - else - { - _doExit = true; - }; - } - else - { - outlw_MR_targetType = outlw_MR_sourceType; - outlw_MR_targetCount = outlw_MR_sourceCount; - outlw_MR_targetCap = outlw_MR_sourceCap; - - outlw_MR_doAddToMagazines = false; - - call outlw_MR_clearSource; - }; - - if (_doExit) exitWith {}; - - if (outlw_MR_targetCap == 1) then - { - if ([outlw_MR_targetType] call outlw_MR_isConvertable) then - { - outlw_MR_targetType = [outlw_MR_targetType] call outlw_MR_getConversion; - outlw_MR_targetCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_targetType >> "count"); - }; - }; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1502) lbAdd (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "DisplayName")); - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1203) ctrlSetText (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "picture")); - - ["outlw_MR_Dialog_Main", 22190, [0,((0.12/outlw_MR_targetCap) * (outlw_MR_targetCap - outlw_MR_targetCount))], 0] call outlw_MR_ctrlSetPos; - - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1101) ctrlSetStructuredText parseText format - [ - "%1
%2
", - (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "DisplayName")), - (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "descriptionshort")) - ]; - - [false] call outlw_MR_targetEnabled; - - if (outlw_MR_sourceType != "") then - { - [] spawn outlw_MR_repack; - }; -}; - -outlw_MR_clearTarget = -{ - if (outlw_MR_doAddToMagazines) then - { - player addMagazine [outlw_MR_targetType, outlw_MR_targetCount]; - }; - - lnbClear ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1502); - - outlw_MR_targetType = ""; - outlw_MR_targetCount = 0; - - call outlw_MR_populateMagListBox; - - [true] call outlw_MR_targetEnabled; - outlw_MR_doAddToMagazines = true; - - ["outlw_MR_Dialog_Main", 22190, [0,0.12], 0] call outlw_MR_ctrlSetPos; -}; - -outlw_MR_moveToList = -{ - switch (true) do - { - case (outlw_MR_sourceDragging): {call outlw_MR_clearSource;}; - case (outlw_MR_targetDragging): {call outlw_MR_clearTarget;}; - }; -}; - -outlw_MR_optionsMenu = -{ - _posGroup = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9000); - _posBottom = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8998); - _posTop = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8997); - - if ([9006,9001,9000,8999,8998,8997] call outlw_MR_isAnimating) exitWith {}; - - if (outlw_MR_optionsOpen) then - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9006) ctrlSetPosition [0,0.21]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9001) ctrlSetPosition [0,0]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9000) ctrlSetPosition [(_posGroup select 0) - 0.00625, (_posGroup select 1), 0, (_posGroup select 3)]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8999) ctrlSetPosition [(_posGroup select 0), (_posGroup select 1) + 0.055]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8998) ctrlSetPosition [(_posBottom select 0), (_posBottom select 1) - 0.01]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8997) ctrlSetPosition [(_posTop select 0), (_posTop select 1) + 0.055]; - - outlw_MR_optionsOpen = false; - - [] spawn - { - {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.15;} forEach [9006,9001,9000,8999]; - sleep 0.15; - {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.1;} forEach [8998,8997]; - }; - } - else - { - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9006) ctrlSetPosition [0.1125,0.21]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9001) ctrlSetPosition [0.04375,0]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9000) ctrlSetPosition [(_posGroup select 0) + 0.00625, (_posGroup select 1), 0.2, (_posGroup select 3)]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8999) ctrlSetPosition [(_posGroup select 0) + 0.2125, (_posGroup select 1) + 0.055]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8998) ctrlSetPosition [(_posBottom select 0), (_posBottom select 1) + 0.01]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8997) ctrlSetPosition [(_posTop select 0), (_posTop select 1) - 0.055]; - - outlw_MR_optionsOpen = true; - - [] spawn - { - {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.1;} forEach [8998,8997]; - sleep 0.1; - {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.15;} forEach [9006,9001,9000,8999]; - }; - }; -}; - -outlw_MR_debugSwitch = -{ - if (outlw_MR_debugMode) then - { - outlw_MR_debugMode = false; - profileNamespace setVariable ["outlw_MR_debugMode_profile", false]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: Off"; - } - else - { - outlw_MR_debugMode = true; - profileNamespace setVariable ["outlw_MR_debugMode_profile", true]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: On"; - }; -}; - -outlw_MR_showFullSwitch = -{ - if (outlw_MR_doHideFull) then - { - outlw_MR_doHideFull = false; - profileNamespace setVariable ["outlw_MR_doHideFull_profile", false]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: On"; - } - else - { - outlw_MR_doHideFull = true; - profileNamespace setVariable ["outlw_MR_doHideFull_profile", true]; - ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: Off"; - }: - - call outlw_MR_populateMagListBox; -}; - -outlw_MR_onDialogDestroy = -{ - private ["_endingInfo", "_sTCA", "_eTCA", "_snTCA", "_enTCA", "_output", "_toAdd", "_dif", "_difStr", "_n", "_a"]; - - ppEffectDestroy outlw_MR_blur; - - if (outlw_MR_sourceType != "") then - { - call outlw_MR_clearSource; - }; - - if (outlw_MR_targetType != "") then - { - call outlw_MR_clearTarget; - }; - - if (outlw_MR_debugMode) then - { - _endingInfo = call outlw_MR_debugInfo; - - _sTCA = outlw_MR_startingInfo select 1; - _eTCA = _endingInfo select 1; - _output = ""; - - for "_n" from 0 to ((count _sTCA) - 1) do - { - _snTCA = _sTCA select _n; - _toAdd = ((getText (configFile >> "cfgMagazines" >> _snTCA select 0 >> "DisplayName")) + "
[" + str(_snTCA select 1) + "] >> [0]
Ammo: -" + str(_snTCA select 2) + ""); - - for "_a" from 0 to ((count _eTCA) - 1) do - { - _enTCA = _eTCA select _a; - - if ((_snTCA select 0) == (_enTCA select 0)) then - { - _toAdd = ((getText (configFile >> "cfgMagazines" >> _snTCA select 0 >> "DisplayName")) + "
[" + str(_snTCA select 1) + "] >> [" + str(_enTCA select 1) + "]
"); - - _dif = (_enTCA select 2) - (_snTCA select 2); - - switch (true) do - { - case (_dif > 0): {_toAdd = (_toAdd + "Ammo: +" + str(_dif) + "")}; - case (_dif < 0): {_toAdd = (_toAdd + "Ammo: " + str(_dif) + "")}; - default {_toAdd = (_toAdd + "Ammo: No Change")}; - }; - }; - }; - - _output = (_output + _toAdd + "

"); - }; - - for "_n" from 0 to ((count _eTCA) - 1) do - { - _enTCA = _eTCA select _n; - _toAdd = ((getText (configFile >> "cfgMagazines" >> _enTCA select 0 >> "DisplayName")) + "
[0] >> [" + str(_enTCA select 1) + "]
Ammo: +" + str(_enTCA select 2) + "

"); - - for "_a" from 0 to ((count _sTCA) - 1) do - { - _snTCA = _sTCA select _a; - - if ((_snTCA select 0) == (_enTCA select 0)) then - { - _toAdd = ""; - _a = count _sTCA; - }; - }; - - _output = (_output + _toAdd); - }; - - _dif = ((_endingInfo select 0) select 1) - ((outlw_MR_startingInfo select 0) select 1); - _difStr = ""; - - switch (true) do - { - case (_dif > 0): {_difStr = ("+" + str(_dif) + "")}; - case (_dif < 0): {_difStr = ("" + str(_dif) + "")}; - default {_difStr = "No Change"}; - }; - - hint parseText ("
Mag Repack Debug

All Mags
[" + str((outlw_MR_startingInfo select 0) select 0) + "] >> [" + str((_endingInfo select 0) select 0) + "]
Ammo: " + _difStr + "

" + _output + "
"); - }; - - [] spawn - { - sleep 0.5; - outlw_MR_canCreateDialog = true; - }; -}; - - - - diff --git a/outlw_magRepack/Scripts/MagRepack_Misc.sqf b/outlw_magRepack/Scripts/MagRepack_Misc.sqf deleted file mode 100644 index 197b662b7..000000000 --- a/outlw_magRepack/Scripts/MagRepack_Misc.sqf +++ /dev/null @@ -1,439 +0,0 @@ - -outlw_MR_modifierCheck = -{ - _shift = _this select 2; - _ctrl = _this select 3; - _alt = _this select 4; - - if (outlw_MR_shift && {!_shift}) then - { - false; - } - else - { - if (outlw_MR_ctrl && {!_ctrl}) then - { - false; - } - else - { - if (outlw_MR_alt && {!_alt}) then - { - false; - } - else - { - true; - }; - }; - }; -}; - -outlw_MR_keyDown = -{ - _key = _this select 1; - - if (_key == outlw_MR_keybinding && {_this call outlw_MR_modifierCheck}) then - { - if (outlw_MR_canCreateDialog) then - { - call outlw_MR_createDialog; - true; - } - else - { - if (!outlw_MR_keybindingMenuActive) then - { - closeDialog 0; - true; - }; - }; - } - else - { - if (_key == 14 && {_this select 2} && {_this select 3} && {_this select 4} && {outlw_MR_canCreateDialog}) then - { - [outlw_MR_defaultKeybinding, true] call outlw_MR_applyKeybinding; - true; - }; - }; -}; - -outlw_MR_getIDCs = -{ - private ["_this", "_config", "_ctrlCount", "_returnList", "_ctrl", "_n"]; - - _config = _this select 0; - _filter = {true}; - - if (count _this > 1) then - { - _filter = _this select 1; - }; - - _ctrlCount = count(_config); - _returnList = []; - - for "_n" from 0 to (_ctrlCount - 1) do - { - _ctrl = configName((_config) select _n); - - if (call _filter) then - { - _returnList = _returnList + [getNumber(_config >> _ctrl >> "idc")]; - }; - - if (isClass(_config >> _ctrl >> "Controls")) then - { - _returnList = _returnList + ([(_config >> _ctrl >> "Controls"), _filter] call outlw_MR_getIDCs); - }; - }; - - _returnList; -}; - -outlw_MR_isAnimating = -{ - private ["_listIDCs", "_ctrlCount", "_returnBool", "_idc", "_n"]; - - _listIDCs = outlw_MR_listIDCs; - - if ((count _this) > 0) then - { - _listIDCs = _this; - }; - - _ctrlCount = count _listIDCs; - _returnBool = false; - - for "_n" from 0 to (_ctrlCount - 1) do - { - _idc = _listIDCs select _n; - - if !(ctrlCommitted ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _idc)) then - { - _n = _ctrlCount; - _returnBool = true; - }; - }; - - _returnBool; -}; - -outlw_MR_ctrlSetPos = -{ - ((uiNamespace getVariable (_this select 0)) displayCtrl (_this select 1)) ctrlSetPosition (_this select 2); - ((uiNamespace getVariable (_this select 0)) displayCtrl (_this select 1)) ctrlCommit (_this select 3); -}; - -outlw_MR_shortString = -{ - private ["_this", "_inputString", "_limit", "_uniray", "_n"]; - - _inputString = _this select 0; - _limit = _this select 1; - _uniray = toArray(_inputString); - - if (count(_uniray) > _limit) then - { - for [{_n = (count(_uniray) - 1);}, {_n >= _limit}, {_n = _n - 1}] do - { - _uniray set [_n, -42]; - }; - - _uniray = _uniray - [-42]; - - (toString(_uniray) + "..."); - } - else - { - _inputString; - }; -}; - -outlw_MR_ammoDisplayName = -{ - private ["_this", "_uniray", "_n"]; - - _uniray = toArray(_this select 0); - - for "_n" from 0 to ((count _uniray) - 1) do - { - if (_n < 2) then - { - _uniray set [_n, -42]; - }; - - if ((_uniray select _n) == 95) then - { - _uniray set [_n, 32]; - }; - }; - - _uniray = _uniray - [-42]; - - toString(_uniray); -}; - -outlw_MR_magInfo = -{ - private ["_this", "_magsAmmo", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_magType", "_n", "_a"]; - - _magsAmmo = magazinesAmmo player; - _magTypes = []; - _magAmmoCounts = []; - _magAmmoCaps = []; - _a = 0; - - for "_n" from 0 to ((count _magsAmmo) - 1) do - { - _magType = ((_magsAmmo select _n) select 0); - - if (getNumber(configFile >> "CfgMagazines" >> _magType >> "count") > 1 || {[_magType] call outlw_MR_isConvertable}) then - { - _magTypes set [_a, _magType]; - _magAmmoCounts set [_a, ((_magsAmmo select _n) select 1)]; - _magAmmoCaps set [_a, getNumber(configFile >> "CfgMagazines" >> _magType >> "count")]; - _a = _a + 1; - }; - }; - - [_magTypes, _magAmmoCounts, _magAmmoCaps]; -}; - -outlw_MR_removeMag = -{ - private ["_this", "_toRemove", "_ammoCount", "_magInfo", "_n"]; - - _toRemove = _this select 0; - _ammoCount = _this select 1; - _magInfo = call outlw_MR_magInfo; - - {player removeMagazine _x} forEach (_magInfo select 0); - - for "_n" from 0 to ((count (_magInfo select 0)) - 1) do - { - if (((_magInfo select 0) select _n) != _toRemove || {((_magInfo select 1) select _n) != _ammoCount}) then - { - player addMagazine [((_magInfo select 0) select _n), ((_magInfo select 1) select _n)]; - } - else - { - _toRemove = ""; - }; - }; -}; - -outlw_MR_magVerified = -{ - private ["_this", "_toVerify", "_ammoCount", "_magInfo", "_returnBool", "_n"]; - - _toVerify = _this select 0; - _ammoCount = _this select 1; - _magInfo = call outlw_MR_magInfo; - _returnBool = false; - - for "_n" from 0 to ((count (_magInfo select 0)) - 1) do - { - if (((_magInfo select 0) select _n) == _toVerify && {((_magInfo select 1) select _n) == _ammoCount}) then - { - _n = count (_magInfo select 0); - _returnBool = true; - }; - }; - - _returnBool; -}; - -outlw_MR_uniqueMags = -{ - private ["_this", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_returnMagTypes", "_returnAmmoCaps", "_returnAmmoCaps", "_returnMagCounts", "_n", "_a", "_p"]; - - _magTypes = _this select 0; - _magAmmoCounts = _this select 1; - _magAmmoCaps = _this select 2; - - _returnMagTypes = []; - _returnAmmoCounts = []; - _returnAmmoCaps = []; - _returnMagCounts = []; - - _isUnique = true; - _a = 0; - _p = 0; - - for "_n" from 0 to ((count _magTypes) - 1) do - { - _isUnique = true; - - for [{_a = 0}, {(_a < count _returnMagTypes) && _isUnique}, {_a = _a + 1}] do - { - if ((_magTypes select _n) == (_returnMagTypes select _a) && {(_magAmmoCounts select _n) == (_returnAmmoCounts select _a)}) then - { - _isUnique = false; - } - }; - - if (_isUnique) then - { - _returnMagTypes set [_p, _magTypes select _n]; - _returnAmmoCounts set [_p, _magAmmoCounts select _n]; - _returnAmmoCaps set [_p, _magAmmoCaps select _n]; - _returnMagCounts set [_p, 1]; - - _p = _p + 1; - } - else - { - _returnMagCounts set [(_a - 1), ((_returnMagCounts select (_a - 1)) + 1)]; - }; - }; - - [_returnMagTypes, _returnAmmoCounts, _returnAmmoCaps, _returnMagCounts]; -}; - -outlw_MR_isBeltMagazine = -{ - private ["_magType", "_cap", "_nameSound", "_returnBool"]; - - _magType = _this select 0; - _cap = getNumber(configFile >> "CfgMagazines" >> _magType >> "count"); - _nameSound = getText(configFile >> "CfgMagazines" >> _magType >> "nameSound"); - - _returnBool = false; - - if (_nameSound == "mGun" || {(_nameSound != "magazine" && _cap >= 100)}) then - { - _returnBool = true; - }; - - _returnBool; -}; - -outlw_MR_isConvertable = -{ - (([_this select 0] call outlw_MR_getConversion) != ""); -}; - -outlw_MR_getConversion = -{ - private ["_magType", "_returnType", "_magTypeArray"]; - - _magType = _this select 0; - _returnType = ""; - - if (getNumber(configFile >> "CfgMagazines" >> _magType >> "count") == 3) then - { - _returnType = configName(inheritsFrom(configFile >> "CfgMagazines" >> _magType)); - } - else - { - _magTypeArray = toArray(_magType); - - if ((_magTypeArray select 0) == 49) then - { - _magTypeArray set [0, 51]; - _returnType = toString(_magTypeArray); - } - else - { - _returnType = ("3Rnd_" + _magType); - }; - }; - - if !(isClass(configFile >> "CfgMagazines" >> _returnType)) then - { - _returnType = ""; - }; - - _returnType; -}; - -outlw_MR_convert = -{ - private ["_this", "_magType", "_ammoCount", "_toAdd", "_n"]; - - _magType = outlw_MR_sourceType; - _ammoCount = outlw_MR_sourceCount; - - if ((_this select 0) == "Target") then - { - _magType = outlw_MR_targetType; - _ammoCount = outlw_MR_targetCount; - }; - - _toAdd = [_magType] call outlw_MR_getConversion; - outlw_MR_doAddToMagazines = false; - - for "_n" from 0 to (_ammoCount - 1) do - { - player addMagazine [_toAdd, 1]; - }; - - call outlw_MR_populateMagListBox; - - if ((_this select 0) == "Source") then - { - call outlw_MR_clearSource; - } - else - { - call outlw_MR_clearTarget; - }; -}; - -outlw_MR_keyListToString = -{ - private ["_shift", "_ctrl", "_alt", "_key", "_returnString", "_q"]; - - if (count _this == 4) then - { - _shift = (_this select 0); - _ctrl = (_this select 1); - _alt = (_this select 2); - _key = (_this select 3); - } - else - { - _shift = outlw_MR_shift; - _ctrl = outlw_MR_ctrl; - _alt = outlw_MR_alt; - _key = outlw_MR_keybinding; - }; - - _returnString = ""; - _q = '"'; - - if (_shift) then - { - _returnString = _returnString + "Shift+"; - }; - - if (_ctrl) then - { - _returnString = _returnString + "Ctrl+"; - }; - - if (_alt) then - { - _returnString = _returnString + "Alt+"; - }; - - _returnString = (_returnString + (keyName _key)); - - (_q + toString(toArray(_returnString) - [34]) + _q); -}; - -outlw_MR_openAbout = -{ - createDialog "MagRepack_Dialog_About"; - - ((uiNamespace getVariable "outlw_MR_Dialog_About") displayCtrl 1001) ctrlSetText ("Version: " + outlw_MR_version); - ((uiNamespace getVariable "outlw_MR_Dialog_About") displayCtrl 1003) ctrlSetText ("Updated: " + outlw_MR_date); - ((uiNamespace getVariable "outlw_MR_Dialog_About") displayCtrl 2400) ctrlSetStructuredText parseText "MMKAY"; -}; - - - - - diff --git a/outlw_magRepack/readme.txt b/outlw_magRepack/readme.txt deleted file mode 100644 index f819a2469..000000000 --- a/outlw_magRepack/readme.txt +++ /dev/null @@ -1,106 +0,0 @@ - --------------- -| Mag Repack | --------------- - - - Version: 3.1.0 - - Created: 7 March 2013 - - Updated: 5 February 2014 - ----------- -| Author | ----------- - - - Outlawled (outlawled@gmail.com) - ---------------- -| Description | ---------------- - - - Allows the player to repack the ammo in his magazines. - - Default keybinding to open the Mag Repack dialog is "Ctrl+R", this can be customized via the options menu in the Mag Repack dialog. - - Pressing "Alt+Shift+Ctrl+Backspace" will reset the keybinding to the default setting (in case the player forgets what he changed his keybinding to). - - The player may choose a magazine from a list of all of his magazines to be the "Source" magazine and then he may choose a magazine from a list of all of his magazines of the same ammo type as the Source magazine to be the "Target" magazine (or vice versa). As soon as the Source and Target are both defined, bullets from the Source magazine will automatically start repacking into the Target magazine. - ---------- -| Notes | ---------- - - - You can change the repack times for individual bullets and belt magazines via the outlw_MR_bulletTime and outlw_MR_beltTime variables located in the MagRepack_init_sv.sqf. - ----------------- -| Installation | ----------------- - - - Place the "outlw_magRepack" folder into your mission folder. - - - Add the following to your init.sqf - - [] execVM "outlw_magRepack\MagRepack_init_sv.sqf"; - - - Add the following to your description.ext - - #include "outlw_magRepack\MagRepack_config.hpp" - -------------- -| Changelog | -------------- - - 3.1.0 - - Fixed: Error dialogs popping up about the scrollbars. - - Removed: Mag Repack logo from the bottom left of the main dialog. - - Overhauled keybinding system. It now allows just one key and any combination of Shift, Ctrl, and Alt modifiers. For example: "Ctrl+R", "Alt+J", "Shift+Ctrl+N", "Shift+Alt+Ctrl+Space", etc. - - Redesigned Keybinding dialog based on the new keybinding system. - - Magazine type (i.e. whether the magazine is a belt magazine or a regular magazine) is determined by the magazine's "nameSound" config entry instead of just being based on the magazine's capacity. - - Rewrote 40mm grenade conversion system so it no longer uses a predefined list. - - - 3.0.2 - - Fixed: Updated UI classnames to be unique so as to avoid possible conflicts. - - Fixed: An issue with the keybinding not being recognized if another key wasn't pressed between keybinding presses. - - Changed "MagRepack_config.cpp" file extension to ".hpp". - - - 3.0.1 - - New: Pressing the keybinding while the dialog is open will now close the dialog. - - Back-end optimizations. - - Adjusted size of the Mag Repack logo to be slightly smaller. - - Fixed: Now uses the keyName command to get the Strings associated with each keyboard key instead of having them hardcoded like an idiot. - - New: Can now change the bullet and belt repack times via outlw_MR_bulletTime and outlw_MR_beltTime variables (script version). - - All default repack times slightly increased. - - Fixed: Changed script version init file name to "MagRepack_init_sv.sqf" to avoid conflict when user has the addon version installed while playing on a server running the script version. - - - 3.0.0 - - Removed: Everything. - - New: Added a GUI. - - New: Players may now repack bullets from different types of magazines as long as both magazines use the same ammo. - - New: Players may now convert 1rnd 40mm magazines into 3rnd 40mm magazines and vice versa. - - New: Players may now change their keybinding. - - New: Optional debug info. - - Fixed: Added animations for prone, launchers, and no weapon. - - - 2.1.4 - - Reverted back to 2.1.2. - - - 2.1.3 - - Fixed: Now uses CBA's Extended Pre-Init EventHandlers instead of the Post-Init ones which were broken with the ArmA 3 Beta update. - - - 2.1.2 - - Fixed: Uses "hintSilent" instead of "hint" for most cases. - - Fixed: The sorting function is now a proper function available in the player's function library. - - - 2.1.1 - - Fixed: Now works with latest ArmA 3 Alpha Development Build - - - 2.1 - - Fixed: Changed a global variable to be less likely to cause mod incompatibility. - - - 2.0 - - New: Animation changed to 'Gear' animation. - - New: Magazine types are now repacked one by one. - - New: How long it takes to repack each magazine type depends on how many bullets of that magazine type need to be repacked. - - New: A magazine type can be skipped by pressing the 'Space' key. - - New: Repack can be exited by moving (if player is inside a vehicle, getting out will exit, pressing movement keys will do nothing). - - Fixed: Player can no longer repack magazines while in the driver, gunner, or commander seat of a vehicle. - - New: Informational hint after repacking now displays each individual magazine ammo count from before and after the repack. E.G. [15,16,12,5,3] >> [20,20,11] - - New: While repacking, a hint displays which magazine type is being repacked and the current ammo counts of each individual magazine of the current magazine type. - - Fixed: Vaulting and reloading are now disabled during repack. - - - 1.3 - - Initial release. - From 1ad59a35c03014b657b77ce0d1e25b039a4a0e48 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 24 Nov 2014 12:25:59 -0800 Subject: [PATCH 114/544] MagRepack placed in addons --- .../Configs/MagRepack_Dialog_About.hpp | 129 +++ .../Configs/MagRepack_Dialog_Keybindings.hpp | 289 ++++++ .../Configs/MagRepack_Dialog_Main.hpp | 689 +++++++++++++ addons/outlw_magRepack/Configs/defines.hpp | 419 ++++++++ .../Images/MR_SourceGradient.paa | Bin 0 -> 27460 bytes .../Images/MR_TargetGradient.paa | Bin 0 -> 27518 bytes addons/outlw_magRepack/Images/MR_logo.paa | Bin 0 -> 22016 bytes .../outlw_magRepack/Images/bulletCount/0.paa | Bin 0 -> 308 bytes .../outlw_magRepack/Images/bulletCount/1.paa | Bin 0 -> 310 bytes .../outlw_magRepack/Images/bulletCount/10.paa | Bin 0 -> 310 bytes .../outlw_magRepack/Images/bulletCount/11.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/12.paa | Bin 0 -> 310 bytes .../outlw_magRepack/Images/bulletCount/13.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/14.paa | Bin 0 -> 312 bytes .../outlw_magRepack/Images/bulletCount/15.paa | Bin 0 -> 312 bytes .../outlw_magRepack/Images/bulletCount/16.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/17.paa | Bin 0 -> 310 bytes .../outlw_magRepack/Images/bulletCount/18.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/19.paa | Bin 0 -> 310 bytes .../outlw_magRepack/Images/bulletCount/2.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/20.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/21.paa | Bin 0 -> 310 bytes .../outlw_magRepack/Images/bulletCount/22.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/23.paa | Bin 0 -> 312 bytes .../outlw_magRepack/Images/bulletCount/24.paa | Bin 0 -> 312 bytes .../outlw_magRepack/Images/bulletCount/25.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/26.paa | Bin 0 -> 310 bytes .../outlw_magRepack/Images/bulletCount/27.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/28.paa | Bin 0 -> 310 bytes .../outlw_magRepack/Images/bulletCount/29.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/3.paa | Bin 0 -> 310 bytes .../outlw_magRepack/Images/bulletCount/30.paa | Bin 0 -> 309 bytes .../outlw_magRepack/Images/bulletCount/4.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/5.paa | Bin 0 -> 312 bytes .../outlw_magRepack/Images/bulletCount/6.paa | Bin 0 -> 312 bytes .../outlw_magRepack/Images/bulletCount/7.paa | Bin 0 -> 313 bytes .../outlw_magRepack/Images/bulletCount/8.paa | Bin 0 -> 310 bytes .../outlw_magRepack/Images/bulletCount/9.paa | Bin 0 -> 313 bytes addons/outlw_magRepack/MagRepack_Config.hpp | 5 + addons/outlw_magRepack/MagRepack_init_sv.sqf | 69 ++ .../Scripts/MagRepack_Keybindings.sqf | 139 +++ .../Scripts/MagRepack_Main.sqf | 969 ++++++++++++++++++ .../Scripts/MagRepack_Misc.sqf | 439 ++++++++ addons/outlw_magRepack/readme.txt | 106 ++ 44 files changed, 3253 insertions(+) create mode 100644 addons/outlw_magRepack/Configs/MagRepack_Dialog_About.hpp create mode 100644 addons/outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp create mode 100644 addons/outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp create mode 100644 addons/outlw_magRepack/Configs/defines.hpp create mode 100644 addons/outlw_magRepack/Images/MR_SourceGradient.paa create mode 100644 addons/outlw_magRepack/Images/MR_TargetGradient.paa create mode 100644 addons/outlw_magRepack/Images/MR_logo.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/0.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/1.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/10.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/11.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/12.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/13.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/14.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/15.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/16.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/17.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/18.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/19.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/2.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/20.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/21.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/22.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/23.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/24.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/25.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/26.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/27.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/28.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/29.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/3.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/30.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/4.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/5.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/6.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/7.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/8.paa create mode 100644 addons/outlw_magRepack/Images/bulletCount/9.paa create mode 100644 addons/outlw_magRepack/MagRepack_Config.hpp create mode 100644 addons/outlw_magRepack/MagRepack_init_sv.sqf create mode 100644 addons/outlw_magRepack/Scripts/MagRepack_Keybindings.sqf create mode 100644 addons/outlw_magRepack/Scripts/MagRepack_Main.sqf create mode 100644 addons/outlw_magRepack/Scripts/MagRepack_Misc.sqf create mode 100644 addons/outlw_magRepack/readme.txt diff --git a/addons/outlw_magRepack/Configs/MagRepack_Dialog_About.hpp b/addons/outlw_magRepack/Configs/MagRepack_Dialog_About.hpp new file mode 100644 index 000000000..bbf9be7d0 --- /dev/null +++ b/addons/outlw_magRepack/Configs/MagRepack_Dialog_About.hpp @@ -0,0 +1,129 @@ + +class MagRepack_Dialog_About +{ + idd = -1; + onLoad = "uiNamespace setVariable ['outlw_MR_Dialog_About', (_this select 0)]"; + + class Controls + { + class A_BG_Main: outlw_MR_IGUIBack + { + idc = 2200; + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 10.5 * GUI_GRID_H + GUI_GRID_Y; + w = 20 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class A_MainTitle: outlw_MR_RscText + { + idc = 1000; + text = "Mag Repack: About"; + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 9.375 * GUI_GRID_H + GUI_GRID_Y; + w = 20 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + }; + class A_ButtonCancel: outlw_MR_RscButtonMenu + { + idc = 2400; + text = "Mmkay"; + action = "closeDialog 0"; + x = 22.5 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 7.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + default = false; + + class Attributes + { + align = "right"; + }; + }; + class A_BG_MiddleBottom: outlw_MR_IGUIBack + { + idc = 2405; + x = 17.625 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 4.7225 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class A_BG_LeftBottom: outlw_MR_IGUIBack + { + idc = 2401; + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 7.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {0,0,0,0.75}; + }; + class A_Author: outlw_MR_RscText + { + idc = 1002; + text = "Author: Outlawled"; + x = 10.5 * GUI_GRID_W + GUI_GRID_X; + y = 10.75 * GUI_GRID_H + GUI_GRID_Y; + w = 19 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + + sizeEx = 0.8 * GUI_GRID_H; + }; + class A_Version: outlw_MR_RscText + { + idc = 1001; + text = "Version:"; + x = 10.5 * GUI_GRID_W + GUI_GRID_X; + y = 11.55 * GUI_GRID_H + GUI_GRID_Y; + w = 19 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + + sizeEx = 0.8 * GUI_GRID_H; + }; + class A_Date: outlw_MR_RscText + { + idc = 1003; + text = "Updated:"; + x = 10.5 * GUI_GRID_W + GUI_GRID_X; + y = 12.35 * GUI_GRID_H + GUI_GRID_Y; + w = 19 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + + sizeEx = 0.8 * GUI_GRID_H; + }; + class A_ForumLink: outlw_MR_RscText + { + idc = 1004; + text = "BI Forum URL:"; + x = 10.5 * GUI_GRID_W + GUI_GRID_X; + y = 13.15 * GUI_GRID_H + GUI_GRID_Y; + w = 10 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + sizeEx = 0.8 * GUI_GRID_H; + }; + class A_ButtonCopy: outlw_MR_RscButtonMenu + { + idc = 1005; + text = "Copy"; + action = "copyToClipboard 'http://forums.bistudio.com/showthread.php?151402-Mag-Repack';"; + x = 16.25 * GUI_GRID_W + GUI_GRID_X; + y = 13.25 * GUI_GRID_H + GUI_GRID_Y; + w = 4 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + + tooltip = "http://forums.bistudio.com/showthread.php?151402-Mag-Repack"; + + default = true; + + class Attributes + { + align = "center"; + size = "0.75"; + valign = "middle"; + }; + }; + }; +}; diff --git a/addons/outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp b/addons/outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp new file mode 100644 index 000000000..8cc6e526c --- /dev/null +++ b/addons/outlw_magRepack/Configs/MagRepack_Dialog_Keybindings.hpp @@ -0,0 +1,289 @@ + +class MagRepack_Dialog_Keybindings +{ + idd = -1; + onLoad = "uiNamespace setVariable ['outlw_MR_Dialog_Keybindings', (_this select 0)]"; + onUnload = "outlw_MR_keybindingMenuActive = false;"; + onKeyDown = "_this call outlw_KB_keyDown;"; + onKeyUp = "_this call outlw_KB_keyUp;"; + + class Controls + { + class KB_BG_Main: outlw_MR_IGUIBack + { + idc = 2200; + + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 10.5 * GUI_GRID_H + GUI_GRID_Y; + w = 20 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class KB_MainTitle: outlw_MR_RscText + { + idc = 1000; + text = "Mag Repack: Keybindings"; + + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 9.375 * GUI_GRID_H + GUI_GRID_Y; + w = 20 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + }; + class KB_ButtonCancel: outlw_MR_RscButtonMenu + { + idc = 2400; + text = "Cancel"; + action = "closeDialog 0"; + + x = 22.5 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 7.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + default = false; + + class Attributes + { + align = "right"; + }; + }; + class KB_BG_MiddleBottom: outlw_MR_IGUIBack + { + idc = 2405; + + x = 17.625 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 4.7225 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class KB_ButtonApply: outlw_MR_RscButtonMenu + { + idc = 2401; + text = "Apply"; + action = "[[outlw_KB_cShift, outlw_KB_cCtrl, outlw_KB_cAlt, outlw_KB_cKey]] call outlw_MR_applyKeybinding;"; + + x = 10 * GUI_GRID_W + GUI_GRID_X; + y = 14.625 * GUI_GRID_H + GUI_GRID_Y; + w = 7.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + default = false; + }; + class KB_BG_Keybinding: outlw_MR_IGUIBack + { + idc = 2498; + + x = 20.125 * GUI_GRID_W + GUI_GRID_X; + y = 11.375 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {1,1,1,0.25}; + }; + class KB_Keybinding: outlw_MR_RscStructuredText + { + idc = 2499; + text = ""; + + x = 20.125 * GUI_GRID_W + GUI_GRID_X; + y = 11.375 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {0,0,0,0}; + + class Attributes + { + align = "center"; + valign = "middle"; + size = 0.8; + }; + }; + class KB_BG_Shift: outlw_MR_IGUIBack + { + idc = 2500; + + x = 20.125 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.875 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {0,0,0,0.8}; + }; + class KB_BG_Ctrl: outlw_MR_IGUIBack + { + idc = 2501; + + x = 23.1875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.75 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {0,0,0,0.8}; + }; + class KB_BG_Alt: outlw_MR_IGUIBack + { + idc = 2502; + + x = 26.1875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.875 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorBackground[] = {0,0,0,0.8}; + }; + class KB_ButtonShift: outlw_MR_RscButtonMenu + { + idc = 2550; + text = "Shift"; + + action = "[0] call outlw_KB_modifierSwitch;"; + + x = 20.125 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.875 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorFocused[] = {1,1,1,0.5}; + colorBackgroundFocused[] = {0,0,0,0}; + colorBackground[] = {0,0,0,0}; + colorBackground2[] = {1,1,1,0.5}; + + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; + + class Attributes + { + align = "center"; + size = "0.875"; + }; + }; + class KB_ButtonCtrl: outlw_MR_RscButtonMenu + { + idc = 2551; + text = "Ctrl"; + + action = "[1] call outlw_KB_modifierSwitch;"; + + x = 23.1875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.75 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorFocused[] = {1,1,1,0.5}; + colorBackgroundFocused[] = {0,0,0,0}; + colorBackground[] = {0,0,0,0}; + colorBackground2[] = {1,1,1,0.5}; + + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; + + class Attributes + { + align = "center"; + size = "0.875"; + }; + }; + class KB_ButtonAlt: outlw_MR_RscButtonMenu + { + idc = 2552; + text = "Alt"; + + action = "[2] call outlw_KB_modifierSwitch;"; + + x = 26.1875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 2.875 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + colorFocused[] = {1,1,1,0.5}; + colorBackgroundFocused[] = {0,0,0,0}; + colorBackground[] = {0,0,0,0}; + colorBackground2[] = {1,1,1,0.5}; + + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,0)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; + + class Attributes + { + align = "center"; + size = "0.875"; + }; + }; + class KB_BG_KeyDescription: outlw_MR_RscPicture + { + idc = 2570; + text = "addons\outlw_magRepack\Images\MR_TargetGradient.paa"; + + x = 10.875 * GUI_GRID_W + GUI_GRID_X; + y = 11.375 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + }; + class KB_BG_ModDescription: outlw_MR_RscPicture + { + idc = 2571; + text = "addons\outlw_magRepack\Images\MR_TargetGradient.paa"; + + x = 10.875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + }; + class KB_KeyDescription: outlw_MR_RscStructuredText + { + idc = 2572; + text = "Keybinding:"; + + x = 10.875 * GUI_GRID_W + GUI_GRID_X; + y = 11.375 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + class Attributes + { + align = "right"; + }; + }; + class KB_ModDescription: outlw_MR_RscStructuredText + { + idc = 2573; + text = "Modifiers:"; + + x = 10.875 * GUI_GRID_W + GUI_GRID_X; + y = 12.625 * GUI_GRID_H + GUI_GRID_Y; + w = 9 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + class Attributes + { + align = "right"; + }; + }; + }; +}; + + + + + + + + diff --git a/addons/outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp b/addons/outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp new file mode 100644 index 000000000..b7729f9a2 --- /dev/null +++ b/addons/outlw_magRepack/Configs/MagRepack_Dialog_Main.hpp @@ -0,0 +1,689 @@ + +class MagRepack_Dialog_Main +{ + idd = -1; + movingenable = false; + onLoad = "uiNamespace setVariable ['outlw_MR_Dialog_Main', (_this select 0)]"; + onUnload = "call outlw_MR_onDialogDestroy;"; + onMouseButtonUp = "call outlw_MR_onMouseButtonUp;"; + + class Controls + { + class MR_BG_ListBox: outlw_MR_IGUIBack + { + idc = 2200; + + x = 4.25 * GUI_GRID_W + GUI_GRID_X; + y = 2.5 * GUI_GRID_H + GUI_GRID_Y; + w = 14 * GUI_GRID_W; + h = 15.75 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_BG_Main: outlw_MR_IGUIBack + { + idc = 2201; + + x = 18.5 * GUI_GRID_W + GUI_GRID_X; + y = 2 * GUI_GRID_H + GUI_GRID_Y; + w = 18 * GUI_GRID_W; + h = 14.5 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_BG_LeftBorder: outlw_MR_IGUIBack + { + idc = 2955; + + x = 3.7 * GUI_GRID_W + GUI_GRID_X; + y = 2.75 * GUI_GRID_H + GUI_GRID_Y; + w = 0.25 * GUI_GRID_W; + h = 15.25 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_BG_BottomBorder: outlw_MR_IGUIBack + { + idc = 2956; + + x = 8.5 * GUI_GRID_W + GUI_GRID_X; + y = 18.5 * GUI_GRID_H + GUI_GRID_Y; + w = 8.5 * GUI_GRID_W; + h = 0.25 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + /* + class MR_BG_Logo: outlw_MR_IGUIBack + { + idc = 2956; + + x = 4.25 * GUI_GRID_W + GUI_GRID_X; + y = 18.5 * GUI_GRID_H + GUI_GRID_Y; + w = 6.0404 * GUI_GRID_W; + h = 1.1633 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_Logo: outlw_MR_RscPicture + { + idc = 1200; + + text = "addons\outlw_magRepack\Images\MR_logo.paa"; + x = 4.5 * GUI_GRID_W + GUI_GRID_X; + y = 17 * GUI_GRID_H + GUI_GRID_Y; + w = 5.5 * GUI_GRID_W; + h = 4.5 * GUI_GRID_H; + }; + */ + class MR_MainTitle: outlw_MR_RscStructuredText + { + idc = 1001; + + text = "Mag Repack"; + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 0.75 * GUI_GRID_H + GUI_GRID_Y; + w = 12.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {0,0,0,1}; + }; + class MR_MagListTitle: outlw_MR_RscStructuredText + { + idc = 1000; + + text = "All Magazines"; + x = 7.75 * GUI_GRID_W + GUI_GRID_X; + y = 1.25 * GUI_GRID_H + GUI_GRID_Y; + w = 10 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {0,0,0,1}; + + class Attributes + { + align = "right"; + }; + }; + class MR_SourceBox: outlw_MR_IGUIBack + { + idc = 2208; + + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 3.5 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {1,1,1,0.1}; + }; + class MR_FG_Source: outlw_MR_RscPicture + { + idc = 2210; + text = "addons\outlw_magRepack\Images\MR_SourceGradient.paa"; + + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 4 * GUI_GRID_H + GUI_GRID_Y; + w = 16 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + }; + class MR_TargetBox: outlw_MR_IGUIBack + { + idc = 2214; + + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 8 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {1,1,1,0.1}; + }; + class MR_FG_Target: outlw_MR_RscPicture + { + idc = 2211; + text = "addons\outlw_magRepack\Images\MR_TargetGradient.paa"; + + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 8.5 * GUI_GRID_H + GUI_GRID_Y; + w = 16 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + }; + class MR_BG_SourceText: outlw_MR_RscText + { + idc = 1005; + style = 1; + + text = ""; + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 3 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 0.5 * GUI_GRID_H; + colorBackground[] = {0,0,0,1}; + sizeEx = 0.8 * GUI_GRID_H; + }; + class MR_SourceText: outlw_MR_RscText + { + idc = 1002; + style = 0; + + text = " Source"; + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 2.8125 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 0.75 * GUI_GRID_H; + colorBackground[] = {0,0,0,0}; + sizeEx = 0.75 * GUI_GRID_H; + }; + class MR_BG_TargetText: outlw_MR_RscText + { + idc = 1003; + style = 1; + + text = ""; + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 12 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 0.5 * GUI_GRID_H; + colorBackground[] = {0,0,0,1}; + sizeEx = 0.8 * GUI_GRID_H; + }; + class MR_TargetText: outlw_MR_RscText + { + idc = 1004; + style = 1; + + text = "Target "; + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 11.8125 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 0.75 * GUI_GRID_H; + colorBackground[] = {0,0,0,0}; + sizeEx = 0.75 * GUI_GRID_H; + }; + class MR_SourcePic: outlw_MR_RscPicture + { + idc = 1201; + + text = ""; + x = 20 * GUI_GRID_W + GUI_GRID_X; + y = 4 * GUI_GRID_H + GUI_GRID_Y; + w = 3.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + }; + class MR_SourceInfo: outlw_MR_RscStructuredText + { + idc = 1100; + + x = 23 * GUI_GRID_W + GUI_GRID_X; + y = 4.25 * GUI_GRID_H + GUI_GRID_Y; + w = 12.5 * GUI_GRID_W; + h = 2.5 * GUI_GRID_H; + sizeEx = 0.65 * GUI_GRID_H; + }; + class MR_TargetPic: outlw_MR_RscPicture + { + idc = 1203; + + text = ""; + x = 31.5 * GUI_GRID_W + GUI_GRID_X; + y = 8.5 * GUI_GRID_H + GUI_GRID_Y; + w = 3.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + }; + class MR_TargetInfo: outlw_MR_RscStructuredText + { + idc = 1101; + + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 8.75 * GUI_GRID_H + GUI_GRID_Y; + w = 12.5 * GUI_GRID_W; + h = 2.5 * GUI_GRID_H; + sizeEx = 0.65 * GUI_GRID_H; + }; + class MR_SourceListBox: outlw_MR_RscListBox + { + idc = 1501; + canDrag = 1; + rowHeight = 3 * GUI_GRID_H; + onLBDrag = "[(((_this select 1) select 0) select 1), (((_this select 1) select 0) select 2), 'source'] call outlw_MR_onDrag;"; + onMouseButtonClick = "if ((_this select 1) == 1) then {call outlw_MR_clearSource;};"; + + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 4 * GUI_GRID_H + GUI_GRID_Y; + w = 16 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + sizeEx = 0.65 * GUI_GRID_H; + + colorText[] = {0,0,0,0}; + colorDisabled[] = {0,0,0,0}; + colorScrollbar[] = {0,0,0,0}; + colorSelect[] = {0,0,0,0}; + colorSelect2[] = {0,0,0,0}; + colorSelectBackground[] = {0,0,0,0}; + colorSelectBackground2[] = {0,0,0,0}; + colorBackground[] = {0,0,0,0}; + }; + class MR_TargetListBox: outlw_MR_RscListBox + { + idc = 1502; + canDrag = 1; + rowHeight = 3 * GUI_GRID_H; + onLBDrag = "[(((_this select 1) select 0) select 1), (((_this select 1) select 0) select 2), 'target'] call outlw_MR_onDrag;"; + onMouseButtonClick = "if ((_this select 1) == 1) then {call outlw_MR_clearTarget;};"; + + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 8.5 * GUI_GRID_H + GUI_GRID_Y; + w = 16 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + sizeEx = 0.65 * GUI_GRID_H; + + colorText[] = {0,0,0,0}; + colorDisabled[] = {0,0,0,0}; + colorScrollbar[] = {0,0,0,0}; + colorSelect[] = {0,0,0,0}; + colorSelect2[] = {0,0,0,0}; + colorSelectBackground[] = {0,0,0,0}; + colorSelectBackground2[] = {0,0,0,0}; + colorBackground[] = {0,0,0,0}; + }; + class MR_SourceArea: outlw_MR_IGUIBack + { + idc = 2215; + onLBDrop = "((_this select 4) select 0) call outlw_MR_addSource; true;"; + + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 3.5 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {0,0,0,0}; + tooltipColorBox[] = {0,0,0,0}; + }; + class MR_TargetArea: outlw_MR_IGUIBack + { + idc = 2216; + onLBDrop = "((_this select 4) select 0) call outlw_MR_addTarget; true;"; + + x = 19 * GUI_GRID_W + GUI_GRID_X; + y = 8 * GUI_GRID_H + GUI_GRID_Y; + w = 17 * GUI_GRID_W; + h = 4 * GUI_GRID_H; + colorBackground[] = {0,0,0,0}; + tooltipColorBox[] = {0,0,0,0}; + }; + class MR_SourceConvertButton: outlw_MR_RscButtonMenu + { + idc = 1600; + text = ""; + action = "['Source'] call outlw_MR_convert;"; + + x = 33 * GUI_GRID_W + GUI_GRID_X; + y = 3.5 * GUI_GRID_H + GUI_GRID_Y; + w = 3 * GUI_GRID_W; + h = 0.5 * GUI_GRID_H; + + size = 0.5 * GUI_GRID_H; + + class Attributes + { + font = "PuristaMedium"; + align = "center"; + }; + + animTextureNormal = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; + animTexturePressed = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; + }; + class MR_TargetConvertButton: outlw_MR_RscButtonMenu + { + idc = 1601; + text = ""; + action = "['target'] call outlw_MR_convert;"; + + x = 33 * GUI_GRID_W + GUI_GRID_X; + y = 8 * GUI_GRID_H + GUI_GRID_Y; + w = 3 * GUI_GRID_W; + h = 0.5 * GUI_GRID_H; + + size = 0.5 * GUI_GRID_H; + + class Attributes + { + font = "PuristaMedium"; + align = "center"; + }; + + animTextureNormal = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)"; + animTexturePressed = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0)"; + }; + class MR_BG_ComboBox: outlw_MR_IGUIBack + { + idc = 15000; + + x = 4.75 * GUI_GRID_W + GUI_GRID_X; + y = 3.8 * GUI_GRID_H + GUI_GRID_Y; + w = 13.5 * GUI_GRID_W; + h = 13.95 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.35}; + }; + class MR_MagListBox: outlw_MR_RscListBox + { + idc = 1500; + type = 102; + canDrag = 1; + columns[] = {0.12,-0.01,0.006,0.83}; + rowHeight = 1.45 * GUI_GRID_H; + drawSideArrows = 0; + idcLeft = -1; + idcRight = -1; + onLBDrag = "[(((_this select 1) select 0) select 1), (((_this select 1) select 0) select 2), 'list'] call outlw_MR_onDrag;"; + + x = 4.75 * GUI_GRID_W + GUI_GRID_X; + y = 4 * GUI_GRID_H + GUI_GRID_Y; + w = 13 * GUI_GRID_W; + h = 13.6 * GUI_GRID_H; + sizeEx = 0.7 * GUI_GRID_H; + }; + class MR_MagListBoxArea: outlw_MR_IGUIBack + { + idc = 2217; + onLBDrop = "call outlw_MR_moveToList; true;"; + + x = 4.75 * GUI_GRID_W + GUI_GRID_X; + y = 3.8 * GUI_GRID_H + GUI_GRID_Y; + w = 13.5 * GUI_GRID_W; + h = 13.95 * GUI_GRID_H; + colorBackground[] = {0,0,0,0}; + }; + class MR_MagListCombo: outlw_MR_RscCombo + { + idc = 22170; + onLBSelChanged = "outlw_MR_currentFilter = (_this select 0) lbData ((_this select 1) - 1); call outlw_MR_populateMagListBox;"; + + x = 4.75 * GUI_GRID_W + GUI_GRID_X; + y = 3 * GUI_GRID_H + GUI_GRID_Y; + w = 13.5 * GUI_GRID_W; + h = 0.8 * GUI_GRID_H; + + sizeEx = 0.75 * GUI_GRID_H; + }; + class MR_PB_SourceAmmo: outlw_MR_RscControlsGroup + { + idc = 2218; + x = 19.5 * GUI_GRID_W + GUI_GRID_X; + y = 4 * GUI_GRID_H + GUI_GRID_Y; + w = 0.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + + class Controls + { + class MR_SourceAmmo: outlw_MR_IGUIBack + { + idc = 22180; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 3 * GUI_GRID_H + GUI_GRID_Y; + w = 0.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + colorBackground[] = {1,1,1,1}; + }; + }; + }; + class MR_PB_TargetAmmo: outlw_MR_RscControlsGroup + { + idc = 2219; + x = 35 * GUI_GRID_W + GUI_GRID_X; + y = 8.5 * GUI_GRID_H + GUI_GRID_Y; + w = 0.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + + class Controls + { + class MR_TargetAmmo: outlw_MR_IGUIBack + { + idc = 22190; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 3 * GUI_GRID_H + GUI_GRID_Y; + w = 0.5 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + colorBackground[] = {1,1,1,1}; + }; + }; + }; + class MR_BG_RepackProgress: outlw_MR_IGUIBack + { + idc = 10005; + + x = 20.875 * GUI_GRID_W + GUI_GRID_X; + y = 13.875 * GUI_GRID_H + GUI_GRID_Y; + w = 13.3125 * GUI_GRID_W; + h = 1.25 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.9}; + }; + class MR_PB_Repack: outlw_MR_RscControlsGroup + { + idc = 10000; + + x = 21 * GUI_GRID_W + GUI_GRID_X; + y = 14 * GUI_GRID_H + GUI_GRID_Y; + w = 13 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + + class Controls + { + class MR_BG_RepackProgress: outlw_MR_IGUIBack + { + idc = 10001; + + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 0 * GUI_GRID_H + GUI_GRID_Y; + w = 13 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {1,1,1,0.2}; + }; + class MR_RepackProgress: outlw_MR_IGUIBack + { + idc = 10002; + + x = -13 * GUI_GRID_W + GUI_GRID_X; + y = 0 * GUI_GRID_H + GUI_GRID_Y; + w = 13 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + colorBackground[] = {1,1,1,0.275}; + }; + }; + }; + class MR_RepackingText: outlw_MR_RscText + { + idc = 1008; + text = ""; + x = 25 * GUI_GRID_W + GUI_GRID_X; + y = 14 * GUI_GRID_H + GUI_GRID_Y; + w = 5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + }; + class MR_ButtonClose: outlw_MR_RscActiveText + { + idc = 2499; + style = 48; + text = "\A3\Ui_f\data\GUI\Rsc\RscDisplayArcadeMap\icon_exit_cross_ca.paa"; + tooltip = "Close"; + action = "closeDialog 0;"; + + x = 35.625 * GUI_GRID_W + GUI_GRID_X; + y = 2.125 * GUI_GRID_H + GUI_GRID_Y; + w = 0.76 * GUI_GRID_W; + h = 0.75 * GUI_GRID_H; + + default = false; + }; + class MR_ButtonOptions: outlw_MR_RscButtonMenu + { + idc = 2400; + + text = "Options"; + action = "call outlw_MR_optionsMenu;"; + x = 18.5 * GUI_GRID_W + GUI_GRID_X; + y = 16.75 * GUI_GRID_H + GUI_GRID_Y; + w = 6.5 * GUI_GRID_W; + h = 1 * GUI_GRID_H; + }; + class MR_Options_Border_Top: outlw_MR_IGUIBack + { + idc = 8997; + + x = 36.75 * GUI_GRID_W + GUI_GRID_X; + y = 5.75 * GUI_GRID_H + GUI_GRID_Y; + w = 0.25 * GUI_GRID_W; + h = 3 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_Options_Border_Bottom: outlw_MR_IGUIBack + { + idc = 8998; + + x = 36.75 * GUI_GRID_W + GUI_GRID_X; + y = 13.25 * GUI_GRID_H + GUI_GRID_Y; + w = 0.25 * GUI_GRID_W; + h = 1.5 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_Options_Border: outlw_MR_IGUIBack + { + idc = 8999; + + x = 36.75 * GUI_GRID_W + GUI_GRID_X; + y = 8.75 * GUI_GRID_H + GUI_GRID_Y; + w = 0.25 * GUI_GRID_W; + h = 4.5 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.75}; + }; + class MR_Options_Group: outlw_MR_RscControlsGroup + { + idc = 9000; + + x = 36.5 * GUI_GRID_W + GUI_GRID_X; + y = 7.375 * GUI_GRID_H + GUI_GRID_Y; + w = 0 * GUI_GRID_W; + h = 6.125 * GUI_GRID_H; + + class Controls + { + class MR_BG_Options: outlw_MR_IGUIBack + { + idc = 9007; + + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 1.125 * GUI_GRID_H + GUI_GRID_Y; + w = 8 * GUI_GRID_W; + h = 3.875 * GUI_GRID_H; + colorBackground[] = {0,0,0,0.675}; + }; + class MR_OptionsTitle: outlw_MR_RscStructuredText + { + idc = 9001; + + text = "OPTIONS"; + x = 1.75 * GUI_GRID_W + GUI_GRID_X; + y = 0 * GUI_GRID_H + GUI_GRID_Y; + w = 6 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + colorBackground[] = {0,0,0,1}; + + class Attributes + { + align = "right"; + size = "0.875"; + }; + }; + class MR_ButtonOption_Debug: outlw_MR_RscButtonMenu + { + idc = 9002; + text = "Debug Mode"; + action = "call outlw_MR_debugSwitch;"; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 1.125 * GUI_GRID_H + GUI_GRID_Y; + w = 8 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + + class Attributes + { + size = "0.875"; + }; + + default = false; + }; + class MR_ButtonOption_ShowFull: outlw_MR_RscButtonMenu + { + idc = 9004; + text = "Show Full"; + action = "call outlw_MR_showFullSwitch;"; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 2.125 * GUI_GRID_H + GUI_GRID_Y; + w = 8 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + + class Attributes + { + size = "0.875"; + }; + + default = false; + }; + class MR_ButtonOption_Keybindings: outlw_MR_RscButtonMenu + { + idc = 9003; + text = "Keybindings"; + action = "call outlw_MR_openKeybindings"; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 3.125 * GUI_GRID_H + GUI_GRID_Y; + w = 8 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + + class Attributes + { + size = "0.875"; + }; + + default = false; + }; + class MR_ButtonOption_About: outlw_MR_RscButtonMenu + { + idc = 9005; + text = "About"; + action = "call outlw_MR_openAbout"; + x = 0 * GUI_GRID_W + GUI_GRID_X; + y = 4.125 * GUI_GRID_H + GUI_GRID_Y; + w = 8 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + + class Attributes + { + size = "0.875"; + }; + + default = false; + }; + class MR_ButtonOption_Hide: outlw_MR_RscButtonMenu + { + idc = 9006; + text = "Hide"; + action = "call outlw_MR_optionsMenu;"; + x = 4.5 * GUI_GRID_W + GUI_GRID_X; + y = 5.25 * GUI_GRID_H + GUI_GRID_Y; + w = 3.5 * GUI_GRID_W; + h = 0.875 * GUI_GRID_H; + + class Attributes + { + align = "right"; + size = "0.875"; + }; + + default = false; + }; + }; + }; + }; +}; + + + + + + + + diff --git a/addons/outlw_magRepack/Configs/defines.hpp b/addons/outlw_magRepack/Configs/defines.hpp new file mode 100644 index 000000000..9a9f08316 --- /dev/null +++ b/addons/outlw_magRepack/Configs/defines.hpp @@ -0,0 +1,419 @@ + +#define GUI_GRID_X (0) +#define GUI_GRID_Y (0) +#define GUI_GRID_W (0.025) +#define GUI_GRID_H (0.04) +#define GUI_GRID_WAbs (1) +#define GUI_GRID_HAbs (1) + +// Control types +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_SLIDER 3 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_SHORTCUTBUTTON 16 +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define CT_LISTNBOX 102 + +// Static styles +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0C + +#define ST_TYPE 0xF0 +#define ST_SINGLE 0x00 +#define ST_MULTI 0x10 +#define ST_TITLE_BAR 0x20 +#define ST_PICTURE 0x30 +#define ST_FRAME 0x40 +#define ST_BACKGROUND 0x50 +#define ST_GROUP_BOX 0x60 +#define ST_GROUP_BOX2 0x70 +#define ST_HUD_BACKGROUND 0x80 +#define ST_TILE_PICTURE 0x90 +#define ST_WITH_RECT 0xA0 +#define ST_LINE 0xB0 + +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 +#define ST_KEEP_ASPECT_RATIO 0x800 + +#define ST_TITLE ST_TITLE_BAR + ST_CENTER + +// Slider styles +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 + +#define SL_TEXTURES 0x10 + +// progress bar +#define ST_VERTICAL 0x01 +#define ST_HORIZONTAL 0 + +// Listbox styles +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 + +// Tree styles +#define TR_SHOWROOT 1 +#define TR_AUTOCOLLAPSE 2 + +// MessageBox styles +#define MB_BUTTON_OK 1 +#define MB_BUTTON_CANCEL 2 +#define MB_BUTTON_USER 4 + +class outlw_MR_RscText +{ + access = 0; + type = 0; + idc = -1; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + text = ""; + fixedWidth = 0; + x = 0; + y = 0; + h = 0.037; + w = 0.3; + style = 0; + shadow = 1; + colorShadow[] = {0,0,0,0.5}; + font = "PuristaMedium"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + linespacing = 1; +}; +class outlw_MR_RscStructuredText +{ + access = 0; + type = 13; + idc = -1; + style = 0; + colorText[] = {1,1,1,1}; + class Attributes + { + font = "PuristaMedium"; + color = "#ffffff"; + align = "left"; + shadow = 1; + }; + x = 0; + y = 0; + h = 0.035; + w = 0.1; + text = ""; + size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + shadow = 1; +}; +class outlw_MR_RscPicture +{ + access = 0; + type = 0; + idc = -1; + style = 48; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = "TahomaB"; + sizeEx = 0; + lineSpacing = 0; + text = ""; + fixedWidth = 0; + shadow = 0; + x = 0; + y = 0; + w = 0.2; + h = 0.15; +}; +class outlw_MR_RscListBox +{ + access = 0; + type = 5; + w = 0.4; + h = 0.4; + rowHeight = 0; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.25}; + colorScrollbar[] = {1,0,0,0}; + colorSelect[] = {0,0,0,1}; + colorSelect2[] = {0,0,0,1}; + colorSelectBackground[] = {0.95,0.95,0.95,1}; + colorSelectBackground2[] = {1,1,1,0.5}; + colorBackground[] = {0,0,0,0}; + soundSelect[] = + { + "\A3\ui_f\data\sound\RscListbox\soundSelect", + 0.09, + 1 + }; + arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; + arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; + class ListScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + style = 16; + font = "PuristaMedium"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + shadow = 0; + colorShadow[] = {0,0,0,0.5}; + color[] = {1,1,1,1}; + period = 1.2; + maxHistoryDelay = 1; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; +}; +class outlw_MR_RscActiveText +{ + access = 0; + type = 11; + color[] = {1,1,1,0.7}; + colorActive[] = {1,1,1,1}; + colorText[] = {1,1,1,0.7}; + soundClick[] = {"",0.1,1}; + soundEnter[] = {"",0.1,1}; + soundEscape[] = {"",0.1,1}; + soundPush[] = {"",0.1,1}; + font = "PuristaMedium"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; +}; +class outlw_MR_IGUIBack +{ + type = 0; + idc = 124; + style = 128; + text = ""; + colorText[] = {0,0,0,0}; + font = "PuristaMedium"; + sizeEx = 0; + shadow = 0; + x = 0.1; + y = 0.1; + w = 0.1; + h = 0.1; + colorbackground[] = + { + "(profilenamespace getvariable ['IGUI_BCG_RGB_R',0])", + "(profilenamespace getvariable ['IGUI_BCG_RGB_G',1])", + "(profilenamespace getvariable ['IGUI_BCG_RGB_B',1])", + "(profilenamespace getvariable ['IGUI_BCG_RGB_A',0.8])" + }; +}; +class outlw_MR_RscButtonMenu +{ + idc = -1; + type = 16; + style = "0x02 + 0xC0"; + default = 0; + shadow = 0; + x = 0; + y = 0; + w = 0.095589; + h = 0.039216; + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,0.5)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,0.8)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,0.8)"; + class HitZone + { + left = 0; + top = 0; + right = 0; + bottom = 0; + }; + colorFocused[] = {1,1,1,0.5}; + colorBackgroundFocused[] = {0,0,0,0.8}; + colorBackground[] = {0,0,0,0.8}; + colorBackground2[] = {1,1,1,0.5}; + color[] = {1,1,1,1}; + color2[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.25}; + period = 1.2; + periodFocus = 1.2; + periodOver = 1.2; + size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + class TextPos + { + left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)"; + top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; + right = 0.005; + bottom = 0; + }; + class Attributes + { + font = "PuristaLight"; + color = "#E5E5E5"; + align = "left"; + shadow = "false"; + }; + class ShortcutPos + { + left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005"; + top = 0.005; + w = 0.0225; + h = 0.03; + }; + soundEnter[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundEnter", + 0.09, + 1 + }; + soundPush[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundPush", + 0.09, + 1 + }; + soundClick[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundClick", + 0.09, + 1 + }; + soundEscape[] = + { + "\A3\ui_f\data\sound\RscButtonMenu\soundEscape", + 0.09, + 1 + }; +}; +class outlw_MR_RscControlsGroup +{ + class VScrollbar + { + color[] = {1,1,1,0}; + width = 0; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + shadow = 0; + }; + class HScrollbar + { + color[] = {1,1,1,0}; + height = 0; + shadow = 0; + }; + class ScrollBar + { + color[] = {1,1,1,0}; + colorActive[] = {1,1,1,0}; + colorDisabled[] = {1,1,1,0}; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + type = 15; + idc = -1; + x = 0; + y = 0; + w = 1; + h = 1; + shadow = 0; + style = 16; +}; +class outlw_MR_RscCombo +{ + access = 0; + type = 4; + colorSelect[] = {0,0,0,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,1}; + colorScrollbar[] = {1,0,0,1}; + soundSelect[] = + { + "\A3\ui_f\data\sound\RscCombo\soundSelect", + 0.1, + 1 + }; + soundExpand[] = + { + "\A3\ui_f\data\sound\RscCombo\soundExpand", + 0.1, + 1 + }; + soundCollapse[] = + { + "\A3\ui_f\data\sound\RscCombo\soundCollapse", + 0.1, + 1 + }; + maxHistoryDelay = 1; + class ComboScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + style = "0x10 + 0x200"; + x = 0; + y = 0; + w = 0.12; + h = 0.035; + shadow = 0; + colorSelectBackground[] = {1,1,1,0.7}; + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + wholeHeight = 0.45; + color[] = {1,1,1,1}; + colorActive[] = {1,0,0,1}; + colorDisabled[] = {1,1,1,0.25}; + font = "PuristaMedium"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; +}; + + + + diff --git a/addons/outlw_magRepack/Images/MR_SourceGradient.paa b/addons/outlw_magRepack/Images/MR_SourceGradient.paa new file mode 100644 index 0000000000000000000000000000000000000000..b88c73d80b73b8b5fac31f00cfedb0835de0b109 GIT binary patch literal 27460 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 RAty8{)^pOyubyFR{vRsz3N8Qu literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/MR_logo.paa b/addons/outlw_magRepack/Images/MR_logo.paa new file mode 100644 index 0000000000000000000000000000000000000000..12e004a3da61c72e12b7f75cdee0c5f2d91ab874 GIT binary patch literal 22016 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 N1<3$jCJt4YPXV8X8@~Vm literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/12.paa b/addons/outlw_magRepack/Images/bulletCount/12.paa new file mode 100644 index 0000000000000000000000000000000000000000..d9d63adcaffb6a255175a301eeb952192c7f5911 GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YWZGMFFX=nLil2l3q3xOQ6UimOuUz56j~Su#Kiv} N*+>R<4i0&kM*+uV9RvUX literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/15.paa b/addons/outlw_magRepack/Images/bulletCount/15.paa new file mode 100644 index 0000000000000000000000000000000000000000..46d9f1ed175b1fe7ebfd97943971d962ebd0dc2a GIT binary patch literal 312 zcmWF)b$53Radr=LWMN=n`2YWZHJBga=nLil2l3q&_r N%?JigHV$c+PXVyL8(aVY literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/17.paa b/addons/outlw_magRepack/Images/bulletCount/17.paa new file mode 100644 index 0000000000000000000000000000000000000000..d32399923c87a6269307b444112ca8244d71c5de GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YWZ511d}=nLil2l3qpF literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/18.paa b/addons/outlw_magRepack/Images/bulletCount/18.paa new file mode 100644 index 0000000000000000000000000000000000000000..7ebdf61b51e98aa559e7d26b26b2758d140e822c GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^6fi%+(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9GjurLJ#7#R7HAsUyFpD2MK9fcGI1{MZ+26Z$?@G)T; Lz|F!T4)ZAh%*-2= literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/19.paa b/addons/outlw_magRepack/Images/bulletCount/19.paa new file mode 100644 index 0000000000000000000000000000000000000000..901b9879d76206ac09811344629c43f8009c33a3 GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YX^956q^(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9GjuuueeSQz;k82M2lIRY%)MLG&G3=Av`@(d~{j$q-z Mu!5O~Llovs0ES5$oB#j- literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/2.paa b/addons/outlw_magRepack/Images/bulletCount/2.paa new file mode 100644 index 0000000000000000000000000000000000000000..aa4a8a861dd70a82183408dd5fc639fcc2f2305a GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YXE0GJ=)=nLil2l3qt096PZvj6}9 literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/20.paa b/addons/outlw_magRepack/Images/bulletCount/20.paa new file mode 100644 index 0000000000000000000000000000000000000000..8e34da025c337d44075456a8a935ffefc3161c29 GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^QZPTl(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9Gju;2n59E|)R$N-@bBsl^c?2~j9LKqlW7~~n$Q5?a; Ng3StECJtekPXXxa8_WOz literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/21.paa b/addons/outlw_magRepack/Images/bulletCount/21.paa new file mode 100644 index 0000000000000000000000000000000000000000..2f174e27de6fa396ad95f6059c0a1cb0cb4bd48b GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YX^S};Gt(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9Gju)qQ=JdFG>$N*!&XmSL2m^bMt_%JZAFvv5gAUlE& PWGb48tXv#|FmD0?q1_wQ literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/22.paa b/addons/outlw_magRepack/Images/bulletCount/22.paa new file mode 100644 index 0000000000000000000000000000000000000000..bfeabfdbef2eb1a9530de2231ab33dfb3091c319 GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^Rxm%p(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9GjvY7b)Gx8%K1A+-*ks-ju$p8P6u7V2#0}F#ZgF2EU RxY$63Vj9WMz`+mmDFDf39ryqM literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/23.paa b/addons/outlw_magRepack/Images/bulletCount/23.paa new file mode 100644 index 0000000000000000000000000000000000000000..f1cf4bf9fba5c4bf3feddc3988e6a58fcab84afa GIT binary patch literal 312 zcmWF)b$53Radr=LWMN=n`2YX^UNAqx(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9F2vG|x682M2lRRoxLKj|pgFfgz%$TO%hFet+u@gHOt NrVZ>I9K0}(0stJ#9WDR> literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/24.paa b/addons/outlw_magRepack/Images/bulletCount/24.paa new file mode 100644 index 0000000000000000000000000000000000000000..0f208799086cf8ed9e034b7487a002c50ef82557 GIT binary patch literal 312 zcmWF)b$53Radr=LWMN=n`2YX^Q7}Kk(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9HuVq@fI40N4Q>I{*Lx literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/25.paa b/addons/outlw_magRepack/Images/bulletCount/25.paa new file mode 100644 index 0000000000000000000000000000000000000000..1d71842e025445b82e0da4aa3c44c25fe73c9818 GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^IWRxM(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9JE<6`88Kn55CMpH$Ai`B?RL5G2Xg+ZP{9qtGLsM(lS LaI$f5!h8w<_qH2o literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/26.paa b/addons/outlw_magRepack/Images/bulletCount/26.paa new file mode 100644 index 0000000000000000000000000000000000000000..c2565c3cc8bef85e5dada7fa74deec03941dad07 GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YX^H84NI(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkO9c#W8_Cb1_TqrqKW_?V~~x43IhWRgFFL}0y~0@3uYC% L6?`1*FmD0?v5gyW literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/27.paa b/addons/outlw_magRepack/Images/bulletCount/27.paa new file mode 100644 index 0000000000000000000000000000000000000000..81808a2fdd5b7e782de839034b7c2651d63c6d89 GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^JupAQ(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zViwkU@ZfksleNaT)okBv53dAj81G!XVF}4s`?{6U<&rE4W!W ISYbW|025^!p#T5? literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/28.paa b/addons/outlw_magRepack/Images/bulletCount/28.paa new file mode 100644 index 0000000000000000000000000000000000000000..8a43ee95f7c54a23311fc1f23ce590a013ab9c7c GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YX^GcZ5G(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zVi=kcWklpMjAd71Bn4g?o~Xf(Qcx3xhm^3d9jS2z$}&Wai;u HhItbJ%ikNO literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/29.paa b/addons/outlw_magRepack/Images/bulletCount/29.paa new file mode 100644 index 0000000000000000000000000000000000000000..407ca6b1b248936dbb00c21a5afd3843bac4377a GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YX^doVx3(HF}958}H!`nZAkOh63c2fMlXI{?`YK+MVr zB*+FF40a543=GWw>zVkO_&GQj`9Y8YLLo@n2yn1(vQgk+U|?a8XHbVYf(4(Qyi6Q$ G&jJ7~PaDnv literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/3.paa b/addons/outlw_magRepack/Images/bulletCount/3.paa new file mode 100644 index 0000000000000000000000000000000000000000..a6b938d853a9ad41b35b1a00c9aa3cac51787064 GIT binary patch literal 310 zcmWF)b$53Radr=LWMN=n`2YXEB$yxJ=nLil2l3qzQ~M`C*U&#(>eZ5#V9IV50!^7Yl40rhnq-~a#s literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/5.paa b/addons/outlw_magRepack/Images/bulletCount/5.paa new file mode 100644 index 0000000000000000000000000000000000000000..1a5ba5fc003e9746e2e9c5d09ddc9c3c1aecc2dd GIT binary patch literal 312 zcmWF)b$53Radr=LWMN=n`2YXECYT@L=nLil2l3qx0DS=+6951J literal 0 HcmV?d00001 diff --git a/addons/outlw_magRepack/Images/bulletCount/7.paa b/addons/outlw_magRepack/Images/bulletCount/7.paa new file mode 100644 index 0000000000000000000000000000000000000000..43f9e6035ff5e528801b2e25a89d831439891c8a GIT binary patch literal 313 zcmWF)b$53Radr=LWMN=n`2YXE6__94=nLil2l3q> "CfgPatches" >> "outlw_magRepack")) exitWith {}; + +disableSerialization; + +outlw_MR_version = "3.1.0"; +outlw_MR_date = "5 February 2014"; + +outlw_MR_defaultKeybinding = [false, true, false, 19]; + +outlw_MR_canCreateDialog = true; +outlw_MR_keybindingMenuActive = false; +outlw_MR_debugMode = profileNamespace getVariable ["outlw_MR_debugMode_profile", false]; +outlw_MR_doHideFull = profileNamespace getVariable ["outlw_MR_doHideFull_profile", false]; +outlw_MR_keyList = profileNamespace getVariable ["outlw_MR_keyList_profile", outlw_MR_defaultKeybinding]; + +if (typeName(outlw_MR_keyList select 0) != "BOOL") then +{ + profileNamespace setVariable ["outlw_MR_keyList_profile", outlw_MR_defaultKeybinding]; + outlw_MR_keyList =+ outlw_MR_defaultKeybinding; +}; + +outlw_MR_shift = outlw_MR_keyList select 0; +outlw_MR_ctrl = outlw_MR_keyList select 1; +outlw_MR_alt = outlw_MR_keyList select 2; +outlw_MR_keybinding = outlw_MR_keyList select 3; + +[] execVM "addons\outlw_magRepack\Scripts\MagRepack_Main.sqf"; +[] execVM "addons\outlw_magRepack\Scripts\MagRepack_Keybindings.sqf"; +[] execVM "addons\outlw_magRepack\Scripts\MagRepack_Misc.sqf"; + +waitUntil {!(isNil "outlw_MR_getIDCs")}; + +outlw_MR_listIDCs = [(missionConfigFile >> "MR_Dialog" >> "Controls")] call outlw_MR_getIDCs; + +waitUntil {!(isNull (findDisplay 46))}; + +(findDisplay 46) displayAddEventHandler ["KeyDown", "_this call outlw_MR_keyDown;"]; + +systemChat "Mag Repack Initialized"; +systemChat ("Keybinding: " + (call outlw_MR_keyListToString)); + + + + + + + + diff --git a/addons/outlw_magRepack/Scripts/MagRepack_Keybindings.sqf b/addons/outlw_magRepack/Scripts/MagRepack_Keybindings.sqf new file mode 100644 index 000000000..d7e4fd2d9 --- /dev/null +++ b/addons/outlw_magRepack/Scripts/MagRepack_Keybindings.sqf @@ -0,0 +1,139 @@ + +outlw_MR_openKeybindings = +{ + createDialog "MagRepack_Dialog_Keybindings"; + outlw_MR_keybindingMenuActive = true; + + outlw_KB_cShift = outlw_MR_shift; + outlw_KB_cCtrl = outlw_MR_ctrl; + outlw_KB_cAlt = outlw_MR_alt; + outlw_KB_cKey = outlw_MR_keybinding; + + call outlw_KB_updateKeyText; + + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2401) ctrlEnable false; + + if (outlw_KB_cShift) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2500) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + }; + + if (outlw_KB_cCtrl) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2501) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + }; + + if (outlw_KB_cAlt) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2502) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + }; +}; + +outlw_MR_applyKeybinding = +{ + private ["_systemString"]; + + outlw_MR_keyList =+ (_this select 0); + profileNamespace setVariable ["outlw_MR_keyList_profile", outlw_MR_keyList]; + + outlw_MR_shift = outlw_MR_keyList select 0; + outlw_MR_ctrl = outlw_MR_keyList select 1; + outlw_MR_alt = outlw_MR_keyList select 2; + outlw_MR_keybinding = outlw_MR_keyList select 3; + + if (count _this > 1 && {_this select 1}) then + { + _systemString = "Mag Repack keybinding has been reset to "; + } + else + { + _systemString = "Mag Repack keybinding has been updated to "; + closeDialog 0; + }; + + systemChat (_systemString + (call outlw_MR_keyListToString)); +}; + +outlw_KB_keyDown = +{ + if ((_this select 1) != 1) then + { + outlw_KB_cKey = _this select 1; + call outlw_KB_updateKeyText; + call outlw_KB_enableApply; + + true; + }; +}; + +outlw_KB_enableApply = +{ + if !([outlw_MR_keyList, [outlw_KB_cShift, outlw_KB_cCtrl, outlw_KB_cAlt, outlw_KB_cKey]] call BIS_fnc_areEqual) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2401) ctrlEnable true; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2401) ctrlEnable false; + }; +}; + +outlw_KB_updateKeyText = +{ + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2499) ctrlSetText (keyName outlw_KB_cKey); +}; + +outlw_KB_modifierSwitch = +{ + _mod = _this select 0; + + if (_mod == 0) then + { + if (!outlw_KB_cShift) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2500) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + outlw_KB_cShift = true; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2500) ctrlSetBackgroundColor [0, 0, 0, 0.8]; + outlw_KB_cShift = false; + }; + } + else + { + if (_mod == 1) then + { + if (!outlw_KB_cCtrl) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2501) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + outlw_KB_cCtrl = true; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2501) ctrlSetBackgroundColor [0, 0, 0, 0.8]; + outlw_KB_cCtrl = false; + }; + } + else + { + if (_mod == 2) then + { + if (!outlw_KB_cAlt) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2502) ctrlSetBackgroundColor [1, 1, 1, 0.25]; + outlw_KB_cAlt = true; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Keybindings") displayCtrl 2502) ctrlSetBackgroundColor [0, 0, 0, 0.8]; + outlw_KB_cAlt = false; + }; + }; + }; + }; + + call outlw_KB_updateKeyText; + call outlw_KB_enableApply; +}; + diff --git a/addons/outlw_magRepack/Scripts/MagRepack_Main.sqf b/addons/outlw_magRepack/Scripts/MagRepack_Main.sqf new file mode 100644 index 000000000..aedc87956 --- /dev/null +++ b/addons/outlw_magRepack/Scripts/MagRepack_Main.sqf @@ -0,0 +1,969 @@ + +outlw_MR_createDialog = +{ + private ["_stance", "_raised", "_weapon"]; + + outlw_MR_sourceType = ""; + outlw_MR_sourceCount = 0; + outlw_MR_sourceCap = 0; + + outlw_MR_targetType = ""; + outlw_MR_targetCount = 0; + outlw_MR_targetCap = 0; + + outlw_MR_listDragging = false; + outlw_MR_sourceDragging = false; + outlw_MR_targetDragging = false; + + outlw_MR_doAddToMagazines = true; + outlw_MR_canCreateDialog = false; + + outlw_MR_dragType = ""; + outlw_MR_dragCount = 0; + outlw_MR_dragCap = 0; + + outlw_MR_currentFilter = ""; + outlw_MR_isRepacking = false; + outlw_MR_optionsOpen = false; + + createDialog "MagRepack_Dialog_Main"; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1001) ctrlSetText ("Mag Repack [" + outlw_MR_version + "]"); + + outlw_MR_blur = ppEffectCreate ["DynamicBlur", 401]; + outlw_MR_blur ppEffectEnable true; + outlw_MR_blur ppEffectAdjust [1.5]; + outlw_MR_blur ppEffectCommit 0; + + if (vehicle player == player) then + { + _stance = "Pknl"; + _raised = "Sras"; + _weapon = "Wpst"; + + if (stance player == "PRONE") then + { + _stance = "Ppne"; + }; + + switch (currentWeapon player) do + { + case (""): {_raised = "Snon"; _weapon = "Wnon";}; + case (primaryWeapon player): {_weapon = "Wrfl";}; + case (secondaryWeapon player): {_weapon = "Wlnr";}; + }; + + player playMove ("Ainv" + _stance + "Mstp" + _raised + _weapon + "Dnon"); + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbAdd "All Ammo Types"; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbSetData [0, ""]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbSetCurSel 0; + + call outlw_MR_populateMagListBox; + call outlw_MR_populateMagComboBox; + + [true] call outlw_MR_sourceEnabled; + [true] call outlw_MR_targetEnabled; + + if (outlw_MR_debugMode) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: On"; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: Off"; + }; + + if (outlw_MR_doHideFull) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: Off"; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: On"; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9003) ctrlSetStructuredText parseText "Keybindings"; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9005) ctrlSetStructuredText parseText "About"; + + outlw_MR_startingInfo = call outlw_MR_debugInfo; + + [] spawn + { + private ["_a", "_b"]; + + _a = magazinesAmmo player; + + while {!(IsNull (uiNamespace getVariable "outlw_MR_Dialog_Main"))} do + { + sleep 0.05; + + _b = magazinesAmmo player; + + if !([_a, _b] call BIS_fnc_areEqual) then + { + call outlw_MR_populateMagListBox; + _a =+ _b; + }; + + if !(alive player) then + { + closeDialog 0; + }; + }; + }; +}; + +outlw_MR_populateMagComboBox = +{ + private ["_this", "_magTypes", "_ammoTypes", "_n", "_a"]; + + _magTypes = (call outlw_MR_magInfo) select 0; + _ammoTypes = []; + _a = 0; + + for "_n" from 0 to ((count _magTypes) - 1) do + { + if !((getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo")) in _ammoTypes) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbAdd ([([(getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo"))] call outlw_MR_ammoDisplayName), 25] call outlw_MR_shortString); + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 22170) lbSetData [_a, (getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo"))]; + _ammoTypes set [count _ammoTypes, (getText(configFile >> "cfgMagazines" >> (_magTypes select _n) >> "ammo"))]; + + _a = _a + 1; + }; + }; +}; + +outlw_MR_populateMagListBox = +{ + private ["_this", "_args", "_magListTitle", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_magCounts", "_bgrndPos", "_n", "_a"]; + + _args = call outlw_MR_magInfo; + _magListTitle = "All Magazines"; + + if (outlw_MR_sourceType != "" || {outlw_MR_targetType != ""} || {outlw_MR_currentFilter != ""}) then + { + _args = (_args) call outlw_MR_filter; + _magListTitle = "Compatible Mags"; + }; + + lnbClear ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500); + + _args = (_args) call outlw_MR_uniqueMags; + + if (outlw_MR_doHideFull) then + { + _args = (_args) call outlw_MR_hideFull; + _magListTitle = "Non-Full Magazines"; + + if (outlw_MR_sourceType != "" || {outlw_MR_targetType != ""} || {outlw_MR_currentFilter != ""}) then + { + _magListTitle = "Compatible, Non-Full"; + }; + }; + + _magTypes = _args select 0; + _magAmmoCounts = _args select 1; + _magAmmoCaps = _args select 2; + _magCounts = _args select 3; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1000) ctrlSetStructuredText parseText _magListTitle; + + _bgrndPos = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500); + + if (count _magTypes > 9) then + { + ["outlw_MR_Dialog_Main", 1500, [(_bgrndPos select 0), (_bgrndPos select 1), 0.3375, (_bgrndPos select 3)], 0] call outlw_MR_ctrlSetPos; + ["outlw_MR_Dialog_Main", 2217, [(_bgrndPos select 0), (_bgrndPos select 1), 0.321, (_bgrndPos select 3) + 0.003], 0] call outlw_MR_ctrlSetPos; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbDeleteColumn 3; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbAddColumn 0.83; + } + else + { + ["outlw_MR_Dialog_Main", 1500, [(_bgrndPos select 0), (_bgrndPos select 1), 0.325, (_bgrndPos select 3)], 0] call outlw_MR_ctrlSetPos; + ["outlw_MR_Dialog_Main", 2217, [(_bgrndPos select 0), (_bgrndPos select 1), 0.325, (_bgrndPos select 3) + 0.003], 0] call outlw_MR_ctrlSetPos; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbDeleteColumn 3; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbAddColumn 0.89; + + }; + + _a = 0; + + for "_n" from 0 to ((count _magTypes) - 1) do + { + _magCountStr = str(_magCounts select _n); + + if (_magCounts select _n < 10) then + { + _magCountStr = " " + _magCountStr; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbAddRow [([(getText(configFile >> "cfgMagazines" >> _magTypes select _n >> "DisplayName")), 25] call outlw_MR_shortString), "", "", _magCountStr]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbSetPicture [[_n, 1], format ["addons\outlw_magRepack\Images\bulletCount\%1.paa", round((_magAmmoCounts select _n)/(_magAmmoCaps select _n)*30)]]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lnbSetPicture [[_n, 2], (getText(configFile >> "cfgMagazines" >> _magTypes select _n >> "picture"))]; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lbSetValue [_n*4, _magAmmoCounts select _n]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1500) lbSetData [_n*4, _magTypes select _n]; + }; +}; + +outlw_MR_filter = +{ + private ["_this", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_ammoType", "_returnTypes", "_returnCounts", "_returnCaps"]; + + _magTypes = _this select 0; + _magAmmoCounts = _this select 1; + _magAmmoCaps = _this select 2; + + _ammoType = (getText(configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "ammo")); + + if (_ammoType == "") then + { + _ammoType = (getText(configFile >> "cfgMagazines" >> outlw_MR_targetType >> "ammo")); + }; + + if (_ammoType == "") then + { + _ammoType = outlw_MR_currentFilter; + }; + + _returnTypes = []; + _returnCounts = []; + _returnCaps = []; + + for "_n" from 0 to ((count _magTypes) - 1) do + { + if ((getText (configFile >> "cfgMagazines" >> _magTypes select _n >> "ammo")) == _ammoType) then + { + _returnTypes set [count _returnTypes, _magTypes select _n]; + _returnCounts set [count _returnCounts, _magAmmoCounts select _n]; + _returnCaps set [count _returnCaps, _magAmmoCaps select _n]; + }; + }; + + [_returnTypes, _returnCounts, _returnCaps]; +}; + +outlw_MR_hideFull = +{ + private ["_this", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_magCounts", "_returnMagTypes", "_returnAmmoCaps", "_returnAmmoCaps", "_returnMagCounts", "_n", "_a"]; + + _magTypes = _this select 0; + _magAmmoCounts = _this select 1; + _magAmmoCaps = _this select 2; + _magCounts = _this select 3; + + _returnMagTypes = []; + _returnMagAmmoCounts = []; + _returnMagAmmoCaps = []; + _returnMagCounts = []; + + _a = 0; + + for "_n" from 0 to ((count _magTypes) - 1) do + { + if ((_magAmmoCounts select _n) != (_magAmmoCaps select _n)) then + { + _returnMagTypes set [_a, _magTypes select _n]; + _returnMagAmmoCounts set [_a, _magAmmoCounts select _n]; + _returnMagAmmoCaps set [_a, _magAmmoCaps select _n]; + _returnMagCounts set [_a, _magCounts select _n]; + + _a = _a + 1; + }; + }; + + [_returnMagTypes, _returnMagAmmoCounts, _returnMagAmmoCaps, _returnMagCounts]; +}; + +outlw_MR_repack = +{ + private ["_sourceCap", "_targetCap", "_refreshRate", "_refreshCount", "_magCode", "_keepRepacking", "_sleepTime", "_n"]; + + outlw_MR_isRepacking = true; + + _refreshRate = outlw_MR_bulletTime; + _refreshCount = 1; + + _magCode = + { + outlw_MR_sourceCount = outlw_MR_sourceCount - 1; + outlw_MR_targetCount = outlw_MR_targetCount + 1; + }; + + if ([outlw_MR_sourceType] call outlw_MR_isBeltMagazine && {[outlw_MR_targetType] call outlw_MR_isBeltMagazine}) then + { + _refreshRate = outlw_MR_beltTime; + _magCode = + { + outlw_MR_sourceCount = outlw_MR_sourceCount - (outlw_MR_targetCap - outlw_MR_targetCount); + outlw_MR_targetCount = outlw_MR_targetCount + (outlw_MR_targetCap - outlw_MR_targetCount) + outlw_MR_sourceCount; + if (outlw_MR_targetCount > outlw_MR_targetCap) then {outlw_MR_targetCount = outlw_MR_targetCap}; + if (outlw_MR_sourceCount < 0) then {outlw_MR_sourceCount = 0}; + }; + } + else + { + if (outlw_MR_sourceCount >= (outlw_MR_targetCap - outlw_MR_targetCount)) then + { + _refreshCount = (outlw_MR_targetCap - outlw_MR_targetCount); + } + else + { + _refreshCount = outlw_MR_sourceCount; + }; + }; + + [] spawn outlw_MR_repackingText; + + ["outlw_MR_Dialog_Main", 10002, [0,0], (_refreshCount * _refreshRate)] call outlw_MR_ctrlSetPos; + + _keepRepacking = {outlw_MR_sourceType != "" && outlw_MR_targetType != "" && outlw_MR_sourceCount > 0 && outlw_MR_targetCount < outlw_MR_targetCap}; + _sleepTime = (time + (_refreshRate)); + + while {time < _sleepTime && call _keepRepacking} do + { + sleep 0.05; + }; + + while _keepRepacking do + { + call _magCode; + + ["outlw_MR_Dialog_Main", 22180, [0,((0.12/outlw_MR_sourceCap) * (outlw_MR_sourceCap - outlw_MR_sourceCount))], 0] call outlw_MR_ctrlSetPos; + ["outlw_MR_Dialog_Main", 22190, [0,((0.12/outlw_MR_targetCap) * (outlw_MR_targetCap - outlw_MR_targetCount))], 0] call outlw_MR_ctrlSetPos; + + _sleepTime = (time + (_refreshRate)); + + while {time < _sleepTime && call _keepRepacking} do + { + sleep 0.05; + }; + }; + + if (outlw_MR_sourceCount <= 0) then + { + call outlw_MR_clearSource; + }; + + if (outlw_MR_targetCount == outlw_MR_targetCap) then + { + call outlw_MR_clearTarget; + }; + + outlw_MR_isRepacking = false; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1008) ctrlSetText ""; + + ["outlw_MR_Dialog_Main", 10002, [-0.325,0], 0] call outlw_MR_ctrlSetPos; +}; + +outlw_MR_repackingText = +{ + private ["_repacking"]; + + _repacking = "Repacking..."; + + while {outlw_MR_isRepacking} do + { + _repacking = _repacking + "."; + + if (_repacking == "Repacking....") then + { + _repacking = "Repacking"; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1008) ctrlSetText _repacking; + + sleep 1; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1008) ctrlSetText ""; +}; + +outlw_MR_debugInfo = +{ + private ["_magsAmmo", "_totalMagCount", "_totalAmmo", "_typeCountAmmo", "_magType", "_magAmmo", "_index", "_inArray", "_n", "_a"]; + + _magsAmmo = magazinesAmmo player; + _totalMagCount = 0; + _totalAmmo = 0; + _typeCountAmmo = []; + + for "_n" from 0 to ((count _magsAmmo) - 1) do + { + _magType = ((_magsAmmo select _n) select 0); + _magAmmo = ((_magsAmmo select _n) select 1); + + if (getNumber(configFile >> "CfgMagazines" >> _magType >> "count") > 1 || {[_magType] call outlw_MR_isConvertable}) then + { + _index = 0; + _inArray = false; + + for [{_a = 0}, {_a < count _typeCountAmmo && !_inArray}, {_a = _a + 1}] do + { + if (_magType == ((_typeCountAmmo select _a) select 0)) then + { + _inArray = true; + _index = _a; + }; + }; + + if (_inArray) then + { + (_typeCountAmmo select _index) set [1, ((_typeCountAmmo select _index) select 1) + 1]; + (_typeCountAmmo select _index) set [2, ((_typeCountAmmo select _index) select 2) + _magAmmo]; + } + else + { + _typeCountAmmo set [(count _typeCountAmmo), [_magType, 1, _magAmmo]]; + }; + + _totalMagCount = _totalMagCount + 1; + _totalAmmo = _totalAmmo + _magAmmo; + }; + }; + + [[_totalMagCount, _totalAmmo], _typeCountAmmo]; +}; + +outlw_MR_block = +{ + private ["_doBlockSource", "_doBlockTarget"]; + + _doBlockSource = true; + _doBlockTarget = true; + + switch (true) do + { + case (outlw_MR_sourceType != ""): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip "Source is already defined!";}; + case (outlw_MR_dragCount == 0): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip "Source cannot be empty!";}; + case (outlw_MR_dragCap < 100 && (outlw_MR_targetType != "" && outlw_MR_targetCap >= 100)): + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip "The Target requires a belt, not individual bullets!"; + }; + default {_doBlockSource = false;}; + }; + + if (_doBlockSource) then + { + if (outlw_MR_sourceDragging) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,1,1,0.3]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip ""; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,0,0,0.3]; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable false; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,1,1,0.3]; + }; + + switch (true) do + { + case (outlw_MR_targetType != ""): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip "Target is already defined!";}; + case (outlw_MR_dragCount == outlw_MR_dragCap && outlw_MR_dragCap != 1): {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip "Target magazine cannot be full!";}; + case (outlw_MR_dragCap >= 100 && (outlw_MR_sourceType != "" && outlw_MR_sourceCap < 100)): + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip "This magazine requires belts, not individual bullets!"; + }; + default {_doBlockTarget = false;}; + }; + + if (_doBlockTarget) then + { + if (outlw_MR_targetDragging) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,1,1,0.3]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip ""; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,0,0,0.3]; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable false; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,1,1,0.3]; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlSetBackgroundColor [1,1,1,0.3]; +}; + +outlw_MR_onDrag = +{ + private ["_this", "_magInfo"]; + + outlw_MR_listDragging = false; + outlw_MR_sourceDragging = false; + outlw_MR_targetDragging = false; + + outlw_MR_dragType = _this select 1; + outlw_MR_dragCount = _this select 0; + outlw_MR_dragCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_dragType >> "count"); + + switch (_this select 2) do + { + case "source": {outlw_MR_dragCount = outlw_MR_sourceCount; outlw_MR_dragCap = outlw_MR_sourceCap; outlw_MR_sourceDragging = true; ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlEnable true;}; + case "target": {outlw_MR_dragCount = outlw_MR_targetCount; outlw_MR_dragCap = outlw_MR_targetCap; outlw_MR_targetDragging = true; ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlEnable true;}; + default {outlw_MR_listDragging = true;}; + }; + + call outlw_MR_block; +}; + +outlw_MR_onMouseButtonUp = +{ + outlw_MR_dragType = ""; + outlw_MR_dragCount = 0; + outlw_MR_dragCap = 0; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetBackgroundColor [1,0,0,0]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip ""; + + if (outlw_MR_sourceType == "") then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable true; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetBackgroundColor [1,0,0,0]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip ""; + + if (outlw_MR_targetType == "") then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable true; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlSetBackgroundColor [0,0,0,0]; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2217) ctrlEnable false; +}; + +outlw_MR_sourceEnabled = +{ + private ["_this"]; + + if (_this select 0) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable true; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlEnable false; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetTooltip ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1201) ctrlSetText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1100) ctrlSetStructuredText parseText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlSetToolTip ""; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2215) ctrlEnable false; + + if ([outlw_MR_sourceType] call outlw_MR_isConvertable) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetText "Convert"; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlSetTooltip (getText(configFile >> "CfgMagazines" >> ([outlw_MR_sourceType] call outlw_MR_getConversion) >> "DisplayName")); + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1600) ctrlEnable true; + }; + }; + + if (outlw_MR_dragType != "") then + { + call outlw_MR_block; + }; +}; + +outlw_MR_targetEnabled = +{ + private ["_this"]; + + if (_this select 0) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable true; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlEnable false; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetTooltip ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1203) ctrlSetText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1101) ctrlSetStructuredText parseText ""; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlSetToolTip ""; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 2216) ctrlEnable false; + + if ([outlw_MR_targetType] call outlw_MR_isConvertable) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetText "Convert"; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlSetTooltip (getText(configFile >> "CfgMagazines" >> ([outlw_MR_targetType] call outlw_MR_getConversion) >> "DisplayName")); + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1601) ctrlEnable true; + }; + }; + + if (outlw_MR_dragType != "") then + { + call outlw_MR_block; + }; +}; + +outlw_MR_addSource = +{ + private ["_this", "_doExit", "_magInfo"]; + + _doExit = false; + + if (outlw_MR_listDragging) then + { + if ([_this select 2, _this select 1] call outlw_MR_magVerified) then + { + outlw_MR_sourceType = _this select 2; + outlw_MR_sourceCount = _this select 1; + outlw_MR_sourceCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_sourceType >> "count"); + + [outlw_MR_sourceType, outlw_MR_sourceCount] call outlw_MR_removeMag; + call outlw_MR_populateMagListBox; + } + else + { + _doExit = true; + }; + } + else + { + outlw_MR_sourceType = outlw_MR_targetType; + outlw_MR_sourceCount = outlw_MR_targetCount; + outlw_MR_sourceCap = outlw_MR_targetCap; + + outlw_MR_doAddToMagazines = false; + + call outlw_MR_clearTarget; + }; + + if (_doExit) exitWith {}; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1501) lbAdd (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "DisplayName")); + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1201) ctrlSetText (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "picture")); + + ["outlw_MR_Dialog_Main", 22180, [0,((0.12/outlw_MR_sourceCap) * (outlw_MR_sourceCap - outlw_MR_sourceCount))], 0] call outlw_MR_ctrlSetPos; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1100) ctrlSetStructuredText parseText format + [ + "%1
%2
", + (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "DisplayName")), + (getText (configFile >> "cfgMagazines" >> outlw_MR_sourceType >> "descriptionshort")) + ]; + + [false] call outlw_MR_sourceEnabled; + + if (outlw_MR_targetType != "") then + { + [] spawn outlw_MR_repack; + }; +}; + +outlw_MR_clearSource = +{ + private ["_doPopulate"]; + + _doPopulate = false; + + if (outlw_MR_doAddToMagazines) then + { + if (outlw_MR_sourceCount > 0) then + { + player addMagazine [outlw_MR_sourceType, outlw_MR_sourceCount]; + _doPopulate = true; + }; + }; + + lnbClear ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1501); + + outlw_MR_sourceType = ""; + outlw_MR_sourceCount = 0; + + if (_doPopulate) then + { + call outlw_MR_populateMagListBox; + }; + + [true] call outlw_MR_sourceEnabled; + outlw_MR_doAddToMagazines = true; + + ["outlw_MR_Dialog_Main", 22180, [0,0.12], 0] call outlw_MR_ctrlSetPos; +}; + +outlw_MR_addTarget = +{ + private ["_this", "_doExit", "_magInfo"]; + + _doExit = false; + + if (outlw_MR_listDragging) then + { + if ([_this select 2, _this select 1] call outlw_MR_magVerified) then + { + outlw_MR_targetType = _this select 2; + outlw_MR_targetCount = _this select 1; + outlw_MR_targetCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_targetType >> "count"); + + [outlw_MR_targetType, outlw_MR_targetCount] call outlw_MR_removeMag; + call outlw_MR_populateMagListBox; + } + else + { + _doExit = true; + }; + } + else + { + outlw_MR_targetType = outlw_MR_sourceType; + outlw_MR_targetCount = outlw_MR_sourceCount; + outlw_MR_targetCap = outlw_MR_sourceCap; + + outlw_MR_doAddToMagazines = false; + + call outlw_MR_clearSource; + }; + + if (_doExit) exitWith {}; + + if (outlw_MR_targetCap == 1) then + { + if ([outlw_MR_targetType] call outlw_MR_isConvertable) then + { + outlw_MR_targetType = [outlw_MR_targetType] call outlw_MR_getConversion; + outlw_MR_targetCap = getNumber(configFile >> "CfgMagazines" >> outlw_MR_targetType >> "count"); + }; + }; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1502) lbAdd (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "DisplayName")); + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1203) ctrlSetText (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "picture")); + + ["outlw_MR_Dialog_Main", 22190, [0,((0.12/outlw_MR_targetCap) * (outlw_MR_targetCap - outlw_MR_targetCount))], 0] call outlw_MR_ctrlSetPos; + + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1101) ctrlSetStructuredText parseText format + [ + "%1
%2
", + (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "DisplayName")), + (getText (configFile >> "cfgMagazines" >> outlw_MR_targetType >> "descriptionshort")) + ]; + + [false] call outlw_MR_targetEnabled; + + if (outlw_MR_sourceType != "") then + { + [] spawn outlw_MR_repack; + }; +}; + +outlw_MR_clearTarget = +{ + if (outlw_MR_doAddToMagazines) then + { + player addMagazine [outlw_MR_targetType, outlw_MR_targetCount]; + }; + + lnbClear ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 1502); + + outlw_MR_targetType = ""; + outlw_MR_targetCount = 0; + + call outlw_MR_populateMagListBox; + + [true] call outlw_MR_targetEnabled; + outlw_MR_doAddToMagazines = true; + + ["outlw_MR_Dialog_Main", 22190, [0,0.12], 0] call outlw_MR_ctrlSetPos; +}; + +outlw_MR_moveToList = +{ + switch (true) do + { + case (outlw_MR_sourceDragging): {call outlw_MR_clearSource;}; + case (outlw_MR_targetDragging): {call outlw_MR_clearTarget;}; + }; +}; + +outlw_MR_optionsMenu = +{ + _posGroup = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9000); + _posBottom = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8998); + _posTop = ctrlPosition ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8997); + + if ([9006,9001,9000,8999,8998,8997] call outlw_MR_isAnimating) exitWith {}; + + if (outlw_MR_optionsOpen) then + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9006) ctrlSetPosition [0,0.21]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9001) ctrlSetPosition [0,0]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9000) ctrlSetPosition [(_posGroup select 0) - 0.00625, (_posGroup select 1), 0, (_posGroup select 3)]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8999) ctrlSetPosition [(_posGroup select 0), (_posGroup select 1) + 0.055]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8998) ctrlSetPosition [(_posBottom select 0), (_posBottom select 1) - 0.01]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8997) ctrlSetPosition [(_posTop select 0), (_posTop select 1) + 0.055]; + + outlw_MR_optionsOpen = false; + + [] spawn + { + {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.15;} forEach [9006,9001,9000,8999]; + sleep 0.15; + {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.1;} forEach [8998,8997]; + }; + } + else + { + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9006) ctrlSetPosition [0.1125,0.21]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9001) ctrlSetPosition [0.04375,0]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9000) ctrlSetPosition [(_posGroup select 0) + 0.00625, (_posGroup select 1), 0.2, (_posGroup select 3)]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8999) ctrlSetPosition [(_posGroup select 0) + 0.2125, (_posGroup select 1) + 0.055]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8998) ctrlSetPosition [(_posBottom select 0), (_posBottom select 1) + 0.01]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 8997) ctrlSetPosition [(_posTop select 0), (_posTop select 1) - 0.055]; + + outlw_MR_optionsOpen = true; + + [] spawn + { + {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.1;} forEach [8998,8997]; + sleep 0.1; + {((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _x) ctrlCommit 0.15;} forEach [9006,9001,9000,8999]; + }; + }; +}; + +outlw_MR_debugSwitch = +{ + if (outlw_MR_debugMode) then + { + outlw_MR_debugMode = false; + profileNamespace setVariable ["outlw_MR_debugMode_profile", false]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: Off"; + } + else + { + outlw_MR_debugMode = true; + profileNamespace setVariable ["outlw_MR_debugMode_profile", true]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9002) ctrlSetStructuredText parseText "Debug Mode: On"; + }; +}; + +outlw_MR_showFullSwitch = +{ + if (outlw_MR_doHideFull) then + { + outlw_MR_doHideFull = false; + profileNamespace setVariable ["outlw_MR_doHideFull_profile", false]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: On"; + } + else + { + outlw_MR_doHideFull = true; + profileNamespace setVariable ["outlw_MR_doHideFull_profile", true]; + ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl 9004) ctrlSetStructuredText parseText "Show Full: Off"; + }: + + call outlw_MR_populateMagListBox; +}; + +outlw_MR_onDialogDestroy = +{ + private ["_endingInfo", "_sTCA", "_eTCA", "_snTCA", "_enTCA", "_output", "_toAdd", "_dif", "_difStr", "_n", "_a"]; + + ppEffectDestroy outlw_MR_blur; + + if (outlw_MR_sourceType != "") then + { + call outlw_MR_clearSource; + }; + + if (outlw_MR_targetType != "") then + { + call outlw_MR_clearTarget; + }; + + if (outlw_MR_debugMode) then + { + _endingInfo = call outlw_MR_debugInfo; + + _sTCA = outlw_MR_startingInfo select 1; + _eTCA = _endingInfo select 1; + _output = ""; + + for "_n" from 0 to ((count _sTCA) - 1) do + { + _snTCA = _sTCA select _n; + _toAdd = ((getText (configFile >> "cfgMagazines" >> _snTCA select 0 >> "DisplayName")) + "
[" + str(_snTCA select 1) + "] >> [0]
Ammo: -" + str(_snTCA select 2) + ""); + + for "_a" from 0 to ((count _eTCA) - 1) do + { + _enTCA = _eTCA select _a; + + if ((_snTCA select 0) == (_enTCA select 0)) then + { + _toAdd = ((getText (configFile >> "cfgMagazines" >> _snTCA select 0 >> "DisplayName")) + "
[" + str(_snTCA select 1) + "] >> [" + str(_enTCA select 1) + "]
"); + + _dif = (_enTCA select 2) - (_snTCA select 2); + + switch (true) do + { + case (_dif > 0): {_toAdd = (_toAdd + "Ammo: +" + str(_dif) + "")}; + case (_dif < 0): {_toAdd = (_toAdd + "Ammo: " + str(_dif) + "")}; + default {_toAdd = (_toAdd + "Ammo: No Change")}; + }; + }; + }; + + _output = (_output + _toAdd + "

"); + }; + + for "_n" from 0 to ((count _eTCA) - 1) do + { + _enTCA = _eTCA select _n; + _toAdd = ((getText (configFile >> "cfgMagazines" >> _enTCA select 0 >> "DisplayName")) + "
[0] >> [" + str(_enTCA select 1) + "]
Ammo: +" + str(_enTCA select 2) + "

"); + + for "_a" from 0 to ((count _sTCA) - 1) do + { + _snTCA = _sTCA select _a; + + if ((_snTCA select 0) == (_enTCA select 0)) then + { + _toAdd = ""; + _a = count _sTCA; + }; + }; + + _output = (_output + _toAdd); + }; + + _dif = ((_endingInfo select 0) select 1) - ((outlw_MR_startingInfo select 0) select 1); + _difStr = ""; + + switch (true) do + { + case (_dif > 0): {_difStr = ("+" + str(_dif) + "")}; + case (_dif < 0): {_difStr = ("" + str(_dif) + "")}; + default {_difStr = "No Change"}; + }; + + hint parseText ("
Mag Repack Debug

All Mags
[" + str((outlw_MR_startingInfo select 0) select 0) + "] >> [" + str((_endingInfo select 0) select 0) + "]
Ammo: " + _difStr + "

" + _output + "
"); + }; + + [] spawn + { + sleep 0.5; + outlw_MR_canCreateDialog = true; + }; +}; + + + + diff --git a/addons/outlw_magRepack/Scripts/MagRepack_Misc.sqf b/addons/outlw_magRepack/Scripts/MagRepack_Misc.sqf new file mode 100644 index 000000000..197b662b7 --- /dev/null +++ b/addons/outlw_magRepack/Scripts/MagRepack_Misc.sqf @@ -0,0 +1,439 @@ + +outlw_MR_modifierCheck = +{ + _shift = _this select 2; + _ctrl = _this select 3; + _alt = _this select 4; + + if (outlw_MR_shift && {!_shift}) then + { + false; + } + else + { + if (outlw_MR_ctrl && {!_ctrl}) then + { + false; + } + else + { + if (outlw_MR_alt && {!_alt}) then + { + false; + } + else + { + true; + }; + }; + }; +}; + +outlw_MR_keyDown = +{ + _key = _this select 1; + + if (_key == outlw_MR_keybinding && {_this call outlw_MR_modifierCheck}) then + { + if (outlw_MR_canCreateDialog) then + { + call outlw_MR_createDialog; + true; + } + else + { + if (!outlw_MR_keybindingMenuActive) then + { + closeDialog 0; + true; + }; + }; + } + else + { + if (_key == 14 && {_this select 2} && {_this select 3} && {_this select 4} && {outlw_MR_canCreateDialog}) then + { + [outlw_MR_defaultKeybinding, true] call outlw_MR_applyKeybinding; + true; + }; + }; +}; + +outlw_MR_getIDCs = +{ + private ["_this", "_config", "_ctrlCount", "_returnList", "_ctrl", "_n"]; + + _config = _this select 0; + _filter = {true}; + + if (count _this > 1) then + { + _filter = _this select 1; + }; + + _ctrlCount = count(_config); + _returnList = []; + + for "_n" from 0 to (_ctrlCount - 1) do + { + _ctrl = configName((_config) select _n); + + if (call _filter) then + { + _returnList = _returnList + [getNumber(_config >> _ctrl >> "idc")]; + }; + + if (isClass(_config >> _ctrl >> "Controls")) then + { + _returnList = _returnList + ([(_config >> _ctrl >> "Controls"), _filter] call outlw_MR_getIDCs); + }; + }; + + _returnList; +}; + +outlw_MR_isAnimating = +{ + private ["_listIDCs", "_ctrlCount", "_returnBool", "_idc", "_n"]; + + _listIDCs = outlw_MR_listIDCs; + + if ((count _this) > 0) then + { + _listIDCs = _this; + }; + + _ctrlCount = count _listIDCs; + _returnBool = false; + + for "_n" from 0 to (_ctrlCount - 1) do + { + _idc = _listIDCs select _n; + + if !(ctrlCommitted ((uiNamespace getVariable "outlw_MR_Dialog_Main") displayCtrl _idc)) then + { + _n = _ctrlCount; + _returnBool = true; + }; + }; + + _returnBool; +}; + +outlw_MR_ctrlSetPos = +{ + ((uiNamespace getVariable (_this select 0)) displayCtrl (_this select 1)) ctrlSetPosition (_this select 2); + ((uiNamespace getVariable (_this select 0)) displayCtrl (_this select 1)) ctrlCommit (_this select 3); +}; + +outlw_MR_shortString = +{ + private ["_this", "_inputString", "_limit", "_uniray", "_n"]; + + _inputString = _this select 0; + _limit = _this select 1; + _uniray = toArray(_inputString); + + if (count(_uniray) > _limit) then + { + for [{_n = (count(_uniray) - 1);}, {_n >= _limit}, {_n = _n - 1}] do + { + _uniray set [_n, -42]; + }; + + _uniray = _uniray - [-42]; + + (toString(_uniray) + "..."); + } + else + { + _inputString; + }; +}; + +outlw_MR_ammoDisplayName = +{ + private ["_this", "_uniray", "_n"]; + + _uniray = toArray(_this select 0); + + for "_n" from 0 to ((count _uniray) - 1) do + { + if (_n < 2) then + { + _uniray set [_n, -42]; + }; + + if ((_uniray select _n) == 95) then + { + _uniray set [_n, 32]; + }; + }; + + _uniray = _uniray - [-42]; + + toString(_uniray); +}; + +outlw_MR_magInfo = +{ + private ["_this", "_magsAmmo", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_magType", "_n", "_a"]; + + _magsAmmo = magazinesAmmo player; + _magTypes = []; + _magAmmoCounts = []; + _magAmmoCaps = []; + _a = 0; + + for "_n" from 0 to ((count _magsAmmo) - 1) do + { + _magType = ((_magsAmmo select _n) select 0); + + if (getNumber(configFile >> "CfgMagazines" >> _magType >> "count") > 1 || {[_magType] call outlw_MR_isConvertable}) then + { + _magTypes set [_a, _magType]; + _magAmmoCounts set [_a, ((_magsAmmo select _n) select 1)]; + _magAmmoCaps set [_a, getNumber(configFile >> "CfgMagazines" >> _magType >> "count")]; + _a = _a + 1; + }; + }; + + [_magTypes, _magAmmoCounts, _magAmmoCaps]; +}; + +outlw_MR_removeMag = +{ + private ["_this", "_toRemove", "_ammoCount", "_magInfo", "_n"]; + + _toRemove = _this select 0; + _ammoCount = _this select 1; + _magInfo = call outlw_MR_magInfo; + + {player removeMagazine _x} forEach (_magInfo select 0); + + for "_n" from 0 to ((count (_magInfo select 0)) - 1) do + { + if (((_magInfo select 0) select _n) != _toRemove || {((_magInfo select 1) select _n) != _ammoCount}) then + { + player addMagazine [((_magInfo select 0) select _n), ((_magInfo select 1) select _n)]; + } + else + { + _toRemove = ""; + }; + }; +}; + +outlw_MR_magVerified = +{ + private ["_this", "_toVerify", "_ammoCount", "_magInfo", "_returnBool", "_n"]; + + _toVerify = _this select 0; + _ammoCount = _this select 1; + _magInfo = call outlw_MR_magInfo; + _returnBool = false; + + for "_n" from 0 to ((count (_magInfo select 0)) - 1) do + { + if (((_magInfo select 0) select _n) == _toVerify && {((_magInfo select 1) select _n) == _ammoCount}) then + { + _n = count (_magInfo select 0); + _returnBool = true; + }; + }; + + _returnBool; +}; + +outlw_MR_uniqueMags = +{ + private ["_this", "_magTypes", "_magAmmoCounts", "_magAmmoCaps", "_returnMagTypes", "_returnAmmoCaps", "_returnAmmoCaps", "_returnMagCounts", "_n", "_a", "_p"]; + + _magTypes = _this select 0; + _magAmmoCounts = _this select 1; + _magAmmoCaps = _this select 2; + + _returnMagTypes = []; + _returnAmmoCounts = []; + _returnAmmoCaps = []; + _returnMagCounts = []; + + _isUnique = true; + _a = 0; + _p = 0; + + for "_n" from 0 to ((count _magTypes) - 1) do + { + _isUnique = true; + + for [{_a = 0}, {(_a < count _returnMagTypes) && _isUnique}, {_a = _a + 1}] do + { + if ((_magTypes select _n) == (_returnMagTypes select _a) && {(_magAmmoCounts select _n) == (_returnAmmoCounts select _a)}) then + { + _isUnique = false; + } + }; + + if (_isUnique) then + { + _returnMagTypes set [_p, _magTypes select _n]; + _returnAmmoCounts set [_p, _magAmmoCounts select _n]; + _returnAmmoCaps set [_p, _magAmmoCaps select _n]; + _returnMagCounts set [_p, 1]; + + _p = _p + 1; + } + else + { + _returnMagCounts set [(_a - 1), ((_returnMagCounts select (_a - 1)) + 1)]; + }; + }; + + [_returnMagTypes, _returnAmmoCounts, _returnAmmoCaps, _returnMagCounts]; +}; + +outlw_MR_isBeltMagazine = +{ + private ["_magType", "_cap", "_nameSound", "_returnBool"]; + + _magType = _this select 0; + _cap = getNumber(configFile >> "CfgMagazines" >> _magType >> "count"); + _nameSound = getText(configFile >> "CfgMagazines" >> _magType >> "nameSound"); + + _returnBool = false; + + if (_nameSound == "mGun" || {(_nameSound != "magazine" && _cap >= 100)}) then + { + _returnBool = true; + }; + + _returnBool; +}; + +outlw_MR_isConvertable = +{ + (([_this select 0] call outlw_MR_getConversion) != ""); +}; + +outlw_MR_getConversion = +{ + private ["_magType", "_returnType", "_magTypeArray"]; + + _magType = _this select 0; + _returnType = ""; + + if (getNumber(configFile >> "CfgMagazines" >> _magType >> "count") == 3) then + { + _returnType = configName(inheritsFrom(configFile >> "CfgMagazines" >> _magType)); + } + else + { + _magTypeArray = toArray(_magType); + + if ((_magTypeArray select 0) == 49) then + { + _magTypeArray set [0, 51]; + _returnType = toString(_magTypeArray); + } + else + { + _returnType = ("3Rnd_" + _magType); + }; + }; + + if !(isClass(configFile >> "CfgMagazines" >> _returnType)) then + { + _returnType = ""; + }; + + _returnType; +}; + +outlw_MR_convert = +{ + private ["_this", "_magType", "_ammoCount", "_toAdd", "_n"]; + + _magType = outlw_MR_sourceType; + _ammoCount = outlw_MR_sourceCount; + + if ((_this select 0) == "Target") then + { + _magType = outlw_MR_targetType; + _ammoCount = outlw_MR_targetCount; + }; + + _toAdd = [_magType] call outlw_MR_getConversion; + outlw_MR_doAddToMagazines = false; + + for "_n" from 0 to (_ammoCount - 1) do + { + player addMagazine [_toAdd, 1]; + }; + + call outlw_MR_populateMagListBox; + + if ((_this select 0) == "Source") then + { + call outlw_MR_clearSource; + } + else + { + call outlw_MR_clearTarget; + }; +}; + +outlw_MR_keyListToString = +{ + private ["_shift", "_ctrl", "_alt", "_key", "_returnString", "_q"]; + + if (count _this == 4) then + { + _shift = (_this select 0); + _ctrl = (_this select 1); + _alt = (_this select 2); + _key = (_this select 3); + } + else + { + _shift = outlw_MR_shift; + _ctrl = outlw_MR_ctrl; + _alt = outlw_MR_alt; + _key = outlw_MR_keybinding; + }; + + _returnString = ""; + _q = '"'; + + if (_shift) then + { + _returnString = _returnString + "Shift+"; + }; + + if (_ctrl) then + { + _returnString = _returnString + "Ctrl+"; + }; + + if (_alt) then + { + _returnString = _returnString + "Alt+"; + }; + + _returnString = (_returnString + (keyName _key)); + + (_q + toString(toArray(_returnString) - [34]) + _q); +}; + +outlw_MR_openAbout = +{ + createDialog "MagRepack_Dialog_About"; + + ((uiNamespace getVariable "outlw_MR_Dialog_About") displayCtrl 1001) ctrlSetText ("Version: " + outlw_MR_version); + ((uiNamespace getVariable "outlw_MR_Dialog_About") displayCtrl 1003) ctrlSetText ("Updated: " + outlw_MR_date); + ((uiNamespace getVariable "outlw_MR_Dialog_About") displayCtrl 2400) ctrlSetStructuredText parseText "MMKAY"; +}; + + + + + diff --git a/addons/outlw_magRepack/readme.txt b/addons/outlw_magRepack/readme.txt new file mode 100644 index 000000000..362093c70 --- /dev/null +++ b/addons/outlw_magRepack/readme.txt @@ -0,0 +1,106 @@ + +-------------- +| Mag Repack | +-------------- + + - Version: 3.1.0 + - Created: 7 March 2013 + - Updated: 5 February 2014 + +---------- +| Author | +---------- + + - Outlawled (outlawled@gmail.com) + +--------------- +| Description | +--------------- + + - Allows the player to repack the ammo in his magazines. + - Default keybinding to open the Mag Repack dialog is "Ctrl+R", this can be customized via the options menu in the Mag Repack dialog. + - Pressing "Alt+Shift+Ctrl+Backspace" will reset the keybinding to the default setting (in case the player forgets what he changed his keybinding to). + - The player may choose a magazine from a list of all of his magazines to be the "Source" magazine and then he may choose a magazine from a list of all of his magazines of the same ammo type as the Source magazine to be the "Target" magazine (or vice versa). As soon as the Source and Target are both defined, bullets from the Source magazine will automatically start repacking into the Target magazine. + +--------- +| Notes | +--------- + + - You can change the repack times for individual bullets and belt magazines via the outlw_MR_bulletTime and outlw_MR_beltTime variables located in the MagRepack_init_sv.sqf. + +---------------- +| Installation | +---------------- + + - Place the "outlw_magRepack" folder into your mission folder. + + - Add the following to your init.sqf + - [] execVM "addons\outlw_magRepack\MagRepack_init_sv.sqf"; + + - Add the following to your description.ext + - #include "addons\outlw_magRepack\MagRepack_config.hpp" + +------------- +| Changelog | +------------- + - 3.1.0 + - Fixed: Error dialogs popping up about the scrollbars. + - Removed: Mag Repack logo from the bottom left of the main dialog. + - Overhauled keybinding system. It now allows just one key and any combination of Shift, Ctrl, and Alt modifiers. For example: "Ctrl+R", "Alt+J", "Shift+Ctrl+N", "Shift+Alt+Ctrl+Space", etc. + - Redesigned Keybinding dialog based on the new keybinding system. + - Magazine type (i.e. whether the magazine is a belt magazine or a regular magazine) is determined by the magazine's "nameSound" config entry instead of just being based on the magazine's capacity. + - Rewrote 40mm grenade conversion system so it no longer uses a predefined list. + + - 3.0.2 + - Fixed: Updated UI classnames to be unique so as to avoid possible conflicts. + - Fixed: An issue with the keybinding not being recognized if another key wasn't pressed between keybinding presses. + - Changed "MagRepack_config.cpp" file extension to ".hpp". + + - 3.0.1 + - New: Pressing the keybinding while the dialog is open will now close the dialog. + - Back-end optimizations. + - Adjusted size of the Mag Repack logo to be slightly smaller. + - Fixed: Now uses the keyName command to get the Strings associated with each keyboard key instead of having them hardcoded like an idiot. + - New: Can now change the bullet and belt repack times via outlw_MR_bulletTime and outlw_MR_beltTime variables (script version). + - All default repack times slightly increased. + - Fixed: Changed script version init file name to "MagRepack_init_sv.sqf" to avoid conflict when user has the addon version installed while playing on a server running the script version. + + - 3.0.0 + - Removed: Everything. + - New: Added a GUI. + - New: Players may now repack bullets from different types of magazines as long as both magazines use the same ammo. + - New: Players may now convert 1rnd 40mm magazines into 3rnd 40mm magazines and vice versa. + - New: Players may now change their keybinding. + - New: Optional debug info. + - Fixed: Added animations for prone, launchers, and no weapon. + + - 2.1.4 + - Reverted back to 2.1.2. + + - 2.1.3 + - Fixed: Now uses CBA's Extended Pre-Init EventHandlers instead of the Post-Init ones which were broken with the ArmA 3 Beta update. + + - 2.1.2 + - Fixed: Uses "hintSilent" instead of "hint" for most cases. + - Fixed: The sorting function is now a proper function available in the player's function library. + + - 2.1.1 + - Fixed: Now works with latest ArmA 3 Alpha Development Build + + - 2.1 + - Fixed: Changed a global variable to be less likely to cause mod incompatibility. + + - 2.0 + - New: Animation changed to 'Gear' animation. + - New: Magazine types are now repacked one by one. + - New: How long it takes to repack each magazine type depends on how many bullets of that magazine type need to be repacked. + - New: A magazine type can be skipped by pressing the 'Space' key. + - New: Repack can be exited by moving (if player is inside a vehicle, getting out will exit, pressing movement keys will do nothing). + - Fixed: Player can no longer repack magazines while in the driver, gunner, or commander seat of a vehicle. + - New: Informational hint after repacking now displays each individual magazine ammo count from before and after the repack. E.G. [15,16,12,5,3] >> [20,20,11] + - New: While repacking, a hint displays which magazine type is being repacked and the current ammo counts of each individual magazine of the current magazine type. + - Fixed: Vaulting and reloading are now disabled during repack. + + - 1.3 + - Initial release. + From d46e4223edb6f9b15f5c9c6ab1f3e4ef3e2c0051 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 24 Nov 2014 12:31:39 -0800 Subject: [PATCH 115/544] Removed slay from admin panel. --- client/systems/adminPanel/dialog/playerMenu.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/systems/adminPanel/dialog/playerMenu.hpp b/client/systems/adminPanel/dialog/playerMenu.hpp index dbfd16f0b..b9df946cd 100644 --- a/client/systems/adminPanel/dialog/playerMenu.hpp +++ b/client/systems/adminPanel/dialog/playerMenu.hpp @@ -170,7 +170,7 @@ class PlayersMenu h = 0.04 * safezoneH; }; - class SlayButton: w_RscButton + /*class SlayButton: w_RscButton { idc = -1; text = "Slay"; @@ -179,7 +179,7 @@ class PlayersMenu y = 0.748 * safezoneH + safezoneY; w = 0.05 * safezoneW; h = 0.04 * safezoneH; - }; + };*/ class UnlockTeamSwitchButton: w_RscButton { From 2d82d7a7add3d09677d14ee87c7301ac9c84e22d Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 24 Nov 2014 12:41:15 -0800 Subject: [PATCH 116/544] Added TAW --- addons/taw_vd/CfgFunctions.hpp | 14 + addons/taw_vd/dialog.hpp | 507 ++++++++++++++++++++++++ addons/taw_vd/fn_onSliderChange.sqf | 47 +++ addons/taw_vd/fn_onTerrainChange.sqf | 18 + addons/taw_vd/fn_openTAWVD.sqf | 29 ++ addons/taw_vd/fn_tawvdInit.sqf | 27 ++ addons/taw_vd/fn_trackViewDistance.sqf | 23 ++ addons/taw_vd/fn_updateViewDistance.sqf | 28 ++ description.ext | 6 +- 9 files changed, 697 insertions(+), 2 deletions(-) create mode 100644 addons/taw_vd/CfgFunctions.hpp create mode 100644 addons/taw_vd/dialog.hpp create mode 100644 addons/taw_vd/fn_onSliderChange.sqf create mode 100644 addons/taw_vd/fn_onTerrainChange.sqf create mode 100644 addons/taw_vd/fn_openTAWVD.sqf create mode 100644 addons/taw_vd/fn_tawvdInit.sqf create mode 100644 addons/taw_vd/fn_trackViewDistance.sqf create mode 100644 addons/taw_vd/fn_updateViewDistance.sqf diff --git a/addons/taw_vd/CfgFunctions.hpp b/addons/taw_vd/CfgFunctions.hpp new file mode 100644 index 000000000..54dd2572f --- /dev/null +++ b/addons/taw_vd/CfgFunctions.hpp @@ -0,0 +1,14 @@ +class TAWVD +{ + tag = "TAWVD"; + class TAW_VD + { + file = "taw_vd"; + class onSliderChange {}; + class onTerrainChange {}; + class updateViewDistance {}; + class openTAWVD {}; + class trackViewDistance {}; + class tawvdInit {postInit = 1;}; + }; +}; \ No newline at end of file diff --git a/addons/taw_vd/dialog.hpp b/addons/taw_vd/dialog.hpp new file mode 100644 index 000000000..523c93279 --- /dev/null +++ b/addons/taw_vd/dialog.hpp @@ -0,0 +1,507 @@ +/* + ArmA 3 TAW View Distance Management +*/ +#define ST_LEFT 0x00 +#define ST_MULTI 0x10 +#define GUI_GRID_CENTER_WAbs ((safezoneW / safezoneH) min 1.2) +#define GUI_GRID_CENTER_HAbs (GUI_GRID_CENTER_WAbs / 1.2) +#define GUI_GRID_CENTER_W (GUI_GRID_CENTER_WAbs / 40) +#define GUI_GRID_CENTER_H (GUI_GRID_CENTER_HAbs / 25) +#define GUI_GRID_CENTER_X (safezoneX + (safezoneW - GUI_GRID_CENTER_WAbs)/2) +#define GUI_GRID_CENTER_Y (safezoneY + (safezoneH - GUI_GRID_CENTER_HAbs)/2) + +class TAWVD_Checkbox +{ + access = 0; // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified) + idc = -1; // Control identification (without it, the control won't be displayed) + type = 77; // Type + style = ST_LEFT + ST_MULTI; // Style + default = 0; // Control selected by default (only one within a display can be used) + blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect. + + x = 0; + y = 0; + w = 1 * GUI_GRID_CENTER_W; // Width + h = 1 * GUI_GRID_CENTER_H; // Height + + //Colors + color[] = { 1, 1, 1, 0.7 }; // Texture color + colorFocused[] = { 1, 1, 1, 1 }; // Focused texture color + colorHover[] = { 1, 1, 1, 1 }; // Mouse over texture color + colorPressed[] = { 1, 1, 1, 1 }; // Mouse pressed texture color + colorDisabled[] = { 1, 1, 1, 0.2 }; // Disabled texture color + + //Background colors + colorBackground[] = { 0, 0, 0, 0 }; // Fill color + colorBackgroundFocused[] = { 0, 0, 0, 0 }; // Focused fill color + colorBackgroundHover[] = { 0, 0, 0, 0 }; // Mouse hover fill color + colorBackgroundPressed[] = { 0, 0, 0, 0 }; // Mouse pressed fill color + colorBackgroundDisabled[] = { 0, 0, 0, 0 }; // Disabled fill color + + //Textures + textureChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; //Texture of checked CheckBox. + textureUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; //Texture of unchecked CheckBox. + textureFocusedChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; //Texture of checked focused CheckBox (Could be used for showing different texture when focused). + textureFocusedUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; //Texture of unchecked focused CheckBox. + textureHoverChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + textureHoverUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + texturePressedChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + texturePressedUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + textureDisabledChecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_checked_ca.paa"; + textureDisabledUnchecked = "\A3\Ui_f\data\GUI\RscCommon\RscCheckBox\CheckBox_unchecked_ca.paa"; + + tooltip = ""; // Tooltip text + tooltipColorShade[] = { 0, 0, 0, 1 }; // Tooltip background color + tooltipColorText[] = { 1, 1, 1, 1 }; // Tooltip text color + tooltipColorBox[] = { 1, 1, 1, 1 }; // Tooltip frame color + + //Sounds + soundClick[] = { "\A3\ui_f\data\sound\RscButton\soundClick", 0.09, 1 }; // Sound played after control is activated in format {file, volume, pitch} + soundEnter[] = { "\A3\ui_f\data\sound\RscButton\soundEnter", 0.09, 1 }; // Sound played when mouse cursor enters the control + soundPush[] = { "\A3\ui_f\data\sound\RscButton\soundPush", 0.09, 1 }; // Sound played when the control is pushed down + soundEscape[] = { "\A3\ui_f\data\sound\RscButton\soundEscape", 0.09, 1 }; // Sound played when the control is released after pushing down + +}; +class TAWVD_RscShortcutButton { + idc = -1; + style = 0; + default = 0; + shadow = 1; + w = 0.183825; + h = "( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20)"; + color[] = {1,1,1,1.0}; + colorFocused[] = {1,1,1,1.0}; + color2[] = {0.95,0.95,0.95,1}; + colorDisabled[] = {1,1,1,0.25}; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1}; + colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1}; + colorBackground2[] = {1,1,1,1}; + animTextureDefault = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; + animTextureNormal = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; + animTextureDisabled = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\normal_ca.paa"; + animTextureOver = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\over_ca.paa"; + animTextureFocused = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\focus_ca.paa"; + animTexturePressed = "\A3\ui_f\data\GUI\RscCommon\RscShortcutButton\down_ca.paa"; + periodFocus = 1.2; + periodOver = 0.8; + class HitZone + { + left = 0.0; + top = 0.0; + right = 0.0; + bottom = 0.0; + }; + class ShortcutPos + { + left = 0; + top = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; + w = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)"; + h = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + }; + class TextPos + { + left = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1) * (3/4)"; + top = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 20) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; + right = 0.005; + bottom = 0.0; + }; + period = 0.4; + font = "PuristaMedium"; + size = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + text = ""; + soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1}; + soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1}; + action = ""; + class Attributes + { + font = "PuristaMedium"; + color = "#E5E5E5"; + align = "left"; + shadow = "true"; + }; + class AttributesImage + { + font = "PuristaMedium"; + color = "#E5E5E5"; + align = "left"; + }; +}; + +class TAWVD_RscText { + x = 0; + y = 0; + h = 0.037; + w = 0.3; + type = 0; + style = 0; + shadow = 1; + colorShadow[] = {0, 0, 0, 0.5}; + font = "PuristaMedium"; + SizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + text = ""; + colorText[] = {1, 1, 1, 1.0}; + colorBackground[] = {0, 0, 0, 0}; + linespacing = 1; +}; + +class TAWVD_RscTitle : TAWVD_RscText { + style = 0; + shadow = 0; + sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + colorText[] = {0.95, 0.95, 0.95, 1}; +}; + +class TAWVD_RscButtonMenu : TAWVD_RscShortcutButton { + idc = -1; + type = 16; + style = "0x02 + 0xC0"; + default = 0; + shadow = 0; + x = 0; + y = 0; + w = 0.095589; + h = 0.039216; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)"; + colorBackground[] = {0,0,0,0.8}; + colorBackgroundFocused[] = {1,1,1,1}; + colorBackground2[] = {0.75,0.75,0.75,1}; + color[] = {1,1,1,1}; + colorFocused[] = {0,0,0,1}; + color2[] = {0,0,0,1}; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.25}; + period = 1.2; + periodFocus = 1.2; + periodOver = 1.2; + size = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; + class TextPos + { + left = "0.25 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + top = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; + right = 0.005; + bottom = 0.0; + }; + class Attributes + { + font = "PuristaLight"; + color = "#E5E5E5"; + align = "left"; + shadow = "false"; + }; + class ShortcutPos + { + left = "(6.25 * ( ((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005"; + top = 0.005; + w = 0.0225; + h = 0.03; + }; + soundEnter[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundPush",0.09,1}; + soundClick[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; + textureNoShortcut = ""; +}; + +class TAWVD_RscXSliderH +{ + style = 1024; + type = 43; + shadow = 2; + x = 0; + y = 0; + h = 0.029412; + w = 0.400000; + color[] = { + 1, 1, 1, 0.7 + }; + colorActive[] = { + 1, 1, 1, 1 + }; + colorDisabled[] = { + 1, 1, 1, 0.500000 + }; + arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; + thumb = "\A3\ui_f\data\gui\cfg\slider\thumb_ca.paa"; +}; + +class TAWVD_activeText +{ + idc = -1; + type = 11; + style = 0; + x = 0; + y = 0; + h = 0.037; + w = 0.3; + sizeEx = 0.040; + font = "PuristaLight"; + color[] = {1, 1, 1, 1}; + colorActive[] = {1, 0.2, 0.2, 1}; + soundEnter[] = {"\A3\ui_f\data\sound\onover", 0.09, 1}; + soundPush[] = {"\A3\ui_f\data\sound\new1", 0.0, 0}; + soundClick[] = {"\A3\ui_f\data\sound\onclick", 0.07, 1}; + soundEscape[] = {"\A3\ui_f\data\sound\onescape", 0.09, 1}; + action = ""; + text = ""; +}; + +class TAW_VD +{ + idd = 2900; + name= "taw_vd"; + movingEnable = false; + enableSimulation = true; + //onLoad = "['guns'] execVM 'gear\switch.sqf'"; + + class controlsBackground { + class TAWVD_RscTitleBackground:TAWVD_RscText { + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"}; + idc = -1; + x = 0.3; + y = 0.2; + w = 0.5; + h = (1 / 25); + }; + + class MainBackground : TAWVD_RscText { + colorBackground[] = {0, 0, 0, 0.7}; + idc = -1; + x = 0.3; + y = 0.2 + (11 / 250); + w = 0.5; + h = 0.57 - (22 / 250); + }; + + class VDonFoot : TAWVD_RscText + { + idc = -1; + text = "On Foot:"; + + x = 0.32; y = 0.258; + w = 0.275; h = 0.04; + }; + + class VDinCar : TAWVD_RscText + { + idc = -1; + text = "In Car:"; + + x = 0.32; y = 0.305; + w = 0.275; h = 0.04; + }; + + class VDinAir : TAWVD_RscText + { + idc = -1; + text = "In Air:"; + + x = 0.32; y = 0.355; + w = 0.275; h = 0.04; + }; + + class VDObject : VDinAir + { + text = "Object:"; + y = 0.655; + }; + + class VDTerrSet : TAWVD_RscText + { + idc = -1; + text = "Grass Settings"; + shadow = 0; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"}; + + x = 0.30; + y = 0.45; + w = 0.5; + h = (1 / 25); + }; + + class VDObjectSet : VDTerrSet + { + text = "Object Settings"; + y = 0.55; + }; + + }; + + class controls + { + class Title : TAWVD_RscTitle { + colorBackground[] = {0, 0, 0, 0}; + idc = -1; + text = "TAW View Distance Script"; + x = 0.3; + y = 0.2; + w = 0.8; + h = (1 / 25); + }; + + class VD_onfoot_slider : TAWVD_RscXSliderH + { + idc = 2901; + text = ""; + onSliderPosChanged = "[0,_this select 1] call TAWVD_fnc_onSliderChange;"; + tooltip = "View distance while on foot"; + x = 0.42; + y = 0.30 - (1 / 25); + + w = "9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + + class VD_onfoot_value : TAWVD_RscText + { + idc = 2902; + text = ""; + + x = 0.70; y = 0.258; + w = 0.275; h = 0.04; + }; + + class VD_car_slider : TAWVD_RscXSliderH + { + idc = 2911; + text = ""; + onSliderPosChanged = "[1,_this select 1] call TAWVD_fnc_onSliderChange;"; + tooltip = "View distance while in a land vehicle"; + x = 0.42; + y = 0.35 - (1 / 25); + + w = "9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + + class VD_car_value : TAWVD_RscText + { + idc = 2912; + text = ""; + + x = 0.70; y = 0.31; + w = 0.275; h = 0.04; + }; + + class VD_air_slider : TAWVD_RscXSliderH + { + idc = 2921; + text = ""; + onSliderPosChanged = "[2,_this select 1] call TAWVD_fnc_onSliderChange;"; + tooltip = "View distance while in a air vehicle"; + x = 0.42; + y = 0.40 - (1 / 25); + + w = "9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + + class VD_air_value : TAWVD_RscText + { + idc = 2922; + text = ""; + + x = 0.70; y = 0.36; + w = 0.275; h = 0.04; + }; + + class ObjectSyncCheckbox : TAWVD_Checkbox + { + idc = 2931; + x = 0.32; y = 0.6; + tooltip = "Sync object rendering with view rendering"; + onCheckedChanged = "if((_this select 1) == 1) then {tawvd_syncObject = true;ctrlEnable [2941,false];} else {tawvd_syncObject = false; ctrlEnable [2941,true];};"; + + }; + + class ObjectSyncText : TAWVD_RscText + { + idc = -1; + text = "Sync with view"; + x = 0.345; y = 0.596; + w = 0.35; h = 0.04; + }; + + class VD_object_slider : VD_air_slider + { + idc = 2941; + onSliderPosChanged = "[3,_this select 1] call TAWVD_fnc_onSliderChange;"; + tooltip = "Object rendering distance"; + y = 0.70 - (1 / 25); + }; + + class VD_Object_Value : VD_air_value + { + idc = 2942; + y = 0.656; + }; + + class VD_terr_none : TAWVD_activeText + { + idc = -1; + text = "None"; + action = "['none'] call TAWVD_fnc_onTerrainChange;"; + sizeEx = 0.04; + + x = 0.38; y = 0.50; + w = 0.275; h = 0.04; + }; + + class VD_terr_low : TAWVD_activeText + { + idc = -1; + text = "Low"; + action = "['low'] call TAWVD_fnc_onTerrainChange;"; + sizeEx = 0.04; + + x = 0.47; y = 0.50; + w = 0.275; h = 0.04; + }; + + class VD_terr_normal : TAWVD_activeText + { + idc = -1; + text = "Normal"; + action = "['norm'] call TAWVD_fnc_onTerrainChange;"; + sizeEx = 0.04; + + x = 0.56; y = 0.50; + w = 0.275; h = 0.04; + }; + + class VD_terr_high : TAWVD_activeText + { + idc = -1; + text = "High"; + action = "['high'] call TAWVD_fnc_onTerrainChange;"; + sizeEx = 0.04; + + x = 0.67; y = 0.50; + w = 0.275; h = 0.04; + }; + + class ButtonClose : TAWVD_RscButtonMenu { + idc = -1; + //shortcuts[] = {0x00050000 + 2}; + text = "Close"; + onButtonClick = "closeDialog 0;"; + x = 0.48; + y = 0.77 - (1 / 25); + w = (6.25 / 40); + h = (1 / 25); + }; + }; +}; \ No newline at end of file diff --git a/addons/taw_vd/fn_onSliderChange.sqf b/addons/taw_vd/fn_onSliderChange.sqf new file mode 100644 index 000000000..e3fdc2a2a --- /dev/null +++ b/addons/taw_vd/fn_onSliderChange.sqf @@ -0,0 +1,47 @@ +/* + File: fn_onSliderChange.sqf + Author: Bryan "Tonic" Boardwine + + Description: + Called when the slider is changed for any field and updates the view distance for it. +*/ +private["_mode","_value"]; +_mode = [_this,0,-1,[0]] call BIS_fnc_param; +_value = [_this,1,-1,[0]] call BIS_fnc_param; +if(_mode == -1 OR _value == -1) exitWith {}; +disableSerialization; + +switch (_mode) do +{ + case 0: + { + tawvd_foot = round(_value); + ctrlSetText[2902,format["%1",tawvd_foot]]; + [] call TAWVD_fnc_updateViewDistance; + }; + + case 1: + { + tawvd_car = round(_value); + ctrlSetText[2912,format["%1",tawvd_car]]; + [] call TAWVD_fnc_updateViewDistance; + }; + + case 2: + { + tawvd_air = round(_value); + ctrlSetText[2922,format["%1",tawvd_air]]; + [] call TAWVD_fnc_updateViewDistance; + }; + + case 3: { + tawvd_object = round(_value); + ctrlSetText[2942,format["%1",tawvd_object]]; + setObjectViewDistance [tawvd_object,100]; + }; +}; + +if(tawvd_syncObject) then { + sliderSetPosition[2941, tawvd_object]; + ctrlSetText[2942,format["%1",tawvd_object]]; +}; \ No newline at end of file diff --git a/addons/taw_vd/fn_onTerrainChange.sqf b/addons/taw_vd/fn_onTerrainChange.sqf new file mode 100644 index 000000000..e74c2058a --- /dev/null +++ b/addons/taw_vd/fn_onTerrainChange.sqf @@ -0,0 +1,18 @@ +/* + File: fn_onTerrainChange.sqf + Author: Bryan "Tonic" Boardwine + + Description: + Updates the players terraingrid when called. +*/ +private["_type"]; +_type = [_this,0,"",[""]] call BIS_fnc_param; +if(_type == "") exitWith {}; + +switch (_type) do +{ + case "none": {if(isNil "tawvd_disablenone") then {setTerrainGrid 50;};}; + case "low": {setTerrainGrid 30;}; + case "norm": {setTerrainGrid 12.5;}; + case "high": {setTerrainGrid 3.125;}; +}; \ No newline at end of file diff --git a/addons/taw_vd/fn_openTAWVD.sqf b/addons/taw_vd/fn_openTAWVD.sqf new file mode 100644 index 000000000..092fed3f7 --- /dev/null +++ b/addons/taw_vd/fn_openTAWVD.sqf @@ -0,0 +1,29 @@ +/* + File: fn_openTAWVD.sqf + Author: Bryan "Tonic" Boardwine + + Description: + Called via addAction and opens the TAW View Distance Menu +*/ +if(!createDialog "TAW_VD") exitWith {hint "Something went wrong, the menu won't open?"}; +disableSerialization; + +ctrlSetText[2902, format["%1", tawvd_foot]]; +ctrlSetText[2912, format["%1", tawvd_car]]; +ctrlSetText[2922, format["%1", tawvd_air]]; +ctrlSetText[2942, format["%1", tawvd_object]]; + +//Setup the sliders +{ + slidersetRange [_x select 0,100,12000]; + ((findDisplay 2900) displayCtrl (_x select 0)) sliderSetSpeed [100,100,100]; + sliderSetPosition[_x select 0, _x select 1]; +} foreach [[2901,tawvd_foot],[2911,tawvd_car],[2921,tawvd_air],[2941,tawvd_object]]; + +((finddisplay 2900) displayCtrl 2931) cbSetChecked tawvd_syncObject; + +if(tawvd_syncObject) then { + ctrlEnable [2941,false]; +} else { + ctrlEnable [2941,true]; +}; \ No newline at end of file diff --git a/addons/taw_vd/fn_tawvdInit.sqf b/addons/taw_vd/fn_tawvdInit.sqf new file mode 100644 index 000000000..94a5282c4 --- /dev/null +++ b/addons/taw_vd/fn_tawvdInit.sqf @@ -0,0 +1,27 @@ +/* + File: fn_tawvdInit.sqf + Author: Bryan "Tonic" Boardwine + + Description: + Master init for TAW View Distance (Addon version). + If the script verson is present it will exit. +*/ +if(!isMultiplayer) exitWith {}; +tawvd_foot = viewDistance; +tawvd_car = viewDistance; +tawvd_air = viewDistance; +tawvd_syncObject = true; //Enable the automatic syncing of Object View rendering with the current view distance. +tawvd_object = tawvd_foot; + +tawvd_addon_disable = true; +//The hacky method... Apparently if you stall (sleep or waitUntil) with CfgFunctions you stall the mission initialization process... Good job BIS, why wouldn't you spawn it via preInit or postInit? +[] spawn +{ + waitUntil {!isNull player && player == player}; + waitUntil{!isNil "BIS_fnc_init"}; + waitUntil {!(isNull (findDisplay 46))}; + + tawvd_action = player addAction["Settings",TAWVD_fnc_openTAWVD,[],-99,false,false,"",'']; + + [] spawn TAWVD_fnc_trackViewDistance; +}; \ No newline at end of file diff --git a/addons/taw_vd/fn_trackViewDistance.sqf b/addons/taw_vd/fn_trackViewDistance.sqf new file mode 100644 index 000000000..86f4f0c29 --- /dev/null +++ b/addons/taw_vd/fn_trackViewDistance.sqf @@ -0,0 +1,23 @@ +/* + File: fn_trackViewDistance.sqf + Author: Bryan "Tonic" Boardwine + + Description: + Constantly monitors the players state. + + i.e Player gets in landvehicle then adjust viewDistance. +*/ +private["_old","_recorded"]; +while {true} do +{ + _recorded = vehicle player; + if(!alive player) then + { + _old = player; + _old removeAction tawvd_action; + waitUntil {alive player}; + tawvd_action = player addAction["Settings",TAWVD_fnc_openTAWVD,[],-99,false,false,"",'']; + }; + [] call TAWVD_fnc_updateViewDistance; + waitUntil {_recorded != vehicle player || !alive player}; +}; \ No newline at end of file diff --git a/addons/taw_vd/fn_updateViewDistance.sqf b/addons/taw_vd/fn_updateViewDistance.sqf new file mode 100644 index 000000000..57a4190e5 --- /dev/null +++ b/addons/taw_vd/fn_updateViewDistance.sqf @@ -0,0 +1,28 @@ +/* + File: fn_updateViewDistance.sqf + Author: Bryan "Tonic" Boardwine + + Description: + Updates the view distance dependant on whether the player is on foot, a car or an aircraft. +*/ +private["_dist"]; +switch (true) do +{ + case ((vehicle player) isKindOf "Man"): { + setViewDistance tawvd_foot; + _dist = tawvd_foot; + }; + case ((vehicle player) isKindOf "LandVehicle"): { + setViewDistance tawvd_car; + _dist = tawvd_car; + }; + case ((vehicle player) isKindOf "Air"): { + setViewDistance tawvd_air; + _dist = tawvd_air; + }; +}; + +if(tawvd_syncObject) then { + setObjectViewDistance [_dist,100]; + tawvd_object = _dist; +}; \ No newline at end of file diff --git a/description.ext b/description.ext index 8026b67be..69b0ccf4a 100644 --- a/description.ext +++ b/description.ext @@ -55,6 +55,7 @@ loadScreen = "mapConfig\Loading.jpg"; #include "addons\proving_ground\PG_config.hpp" #include "addons\JTS_PM\PM_Compact.hpp" #include "addons\outlw_magRepack\MagRepack_Config.hpp" +#include "addons\taw_vd\dialog.hpp" class RscTitles { @@ -66,10 +67,11 @@ class RscTitles class CfgFunctions { - class A3W + #include "addons\taw_vd\CfgFunctions.hpp" + class A3W { #include "server\CfgFunctions.hpp" - }; + }; }; class CfgNotifications From 4713dfc381f327b840c1010bceca1d6ae4418eae Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 24 Nov 2014 12:45:15 -0800 Subject: [PATCH 117/544] Removed a3wasteland view distance. --- client/systems/playerMenu/dialog/player_settings.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/systems/playerMenu/dialog/player_settings.hpp b/client/systems/playerMenu/dialog/player_settings.hpp index 25957ec31..5487dff43 100644 --- a/client/systems/playerMenu/dialog/player_settings.hpp +++ b/client/systems/playerMenu/dialog/player_settings.hpp @@ -89,13 +89,13 @@ class playerSettings { w = 0.3; h = 0.05; }; - class distanceText : w_RscText { + /*class distanceText : w_RscText { idc = view_range_text; text = "View range:"; sizeEx = 0.025; x = 0.03; y = 0.40; w = 0.3; h = 0.02; - }; + };*/ class uptimeText : w_RscText { idc = uptime_text; @@ -160,7 +160,7 @@ class playerSettings { w = 0.225; h = 0.033 * safezoneH; }; - class btnDistanceNear : w_RscButton { + /*class btnDistanceNear : w_RscButton { idc = -1; text = "Near"; onButtonClick = "setViewDistance 1100;"; @@ -189,6 +189,6 @@ class playerSettings { onButtonClick = "setViewDistance 5000;"; x = 0.02; y = 0.60; w = 0.125; h = 0.033 * safezoneH; - }; + };*/ }; }; From 3963f4fabf7f9eba2bd522a53e748a108794fb57 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 24 Nov 2014 12:54:55 -0800 Subject: [PATCH 118/544] Disable TAW grass Option 'None' --- init.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/init.sqf b/init.sqf index 1eeef7074..fdebd7437 100644 --- a/init.sqf +++ b/init.sqf @@ -17,6 +17,9 @@ X_Server = false; X_Client = false; X_JIP = false; +//disable TAW grass Option 'None' +tawvd_disablenone = true; + // versionName = ""; // Set in STR_WL_WelcomeToWasteland in stringtable.xml if (isServer) then { X_Server = true }; From f45be40dda34cb3c1a96e974d9b3d37c1104251a Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 24 Nov 2014 13:25:11 -0800 Subject: [PATCH 119/544] TAW tweak and fix. --- addons/taw_vd/CfgFunctions.hpp | 2 +- addons/taw_vd/dialog.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/taw_vd/CfgFunctions.hpp b/addons/taw_vd/CfgFunctions.hpp index 54dd2572f..4fa30e8e2 100644 --- a/addons/taw_vd/CfgFunctions.hpp +++ b/addons/taw_vd/CfgFunctions.hpp @@ -3,7 +3,7 @@ class TAWVD tag = "TAWVD"; class TAW_VD { - file = "taw_vd"; + file = "addons\taw_vd"; class onSliderChange {}; class onTerrainChange {}; class updateViewDistance {}; diff --git a/addons/taw_vd/dialog.hpp b/addons/taw_vd/dialog.hpp index 523c93279..016efc5f3 100644 --- a/addons/taw_vd/dialog.hpp +++ b/addons/taw_vd/dialog.hpp @@ -345,7 +345,7 @@ class TAW_VD class Title : TAWVD_RscTitle { colorBackground[] = {0, 0, 0, 0}; idc = -1; - text = "TAW View Distance Script"; + text = "View Distance Script"; x = 0.3; y = 0.2; w = 0.8; From 6c86412a0c611639bd6cf356e971a8483579cce8 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 24 Nov 2014 15:23:52 -0800 Subject: [PATCH 120/544] TAW tweak and removed some textures. --- addons/taw_vd/dialog.hpp | 10 +++++----- addons/taw_vd/fn_openTAWVD.sqf | 2 +- addons/taw_vd/fn_tawvdInit.sqf | 2 +- client/functions/playerActions.sqf | 1 - client/images/vehicleTextures/camo_pank.jpg | Bin 37191 -> 0 bytes client/images/vehicleTextures/denim.jpg | Bin 98862 -> 0 bytes client/images/vehicleTextures/leopard.jpg | Bin 83408 -> 0 bytes client/images/vehicleTextures/psych.jpg | Bin 106517 -> 0 bytes client/images/vehicleTextures/rainbow.jpg | Bin 34945 -> 0 bytes .../playerMenu/dialog/player_settings.hpp | 8 ++++---- storeConfig.sqf | 12 ++++++------ 11 files changed, 17 insertions(+), 18 deletions(-) delete mode 100644 client/images/vehicleTextures/camo_pank.jpg delete mode 100644 client/images/vehicleTextures/denim.jpg delete mode 100644 client/images/vehicleTextures/leopard.jpg delete mode 100644 client/images/vehicleTextures/psych.jpg delete mode 100644 client/images/vehicleTextures/rainbow.jpg diff --git a/addons/taw_vd/dialog.hpp b/addons/taw_vd/dialog.hpp index 016efc5f3..fbcdb8bc8 100644 --- a/addons/taw_vd/dialog.hpp +++ b/addons/taw_vd/dialog.hpp @@ -345,7 +345,7 @@ class TAW_VD class Title : TAWVD_RscTitle { colorBackground[] = {0, 0, 0, 0}; idc = -1; - text = "View Distance Script"; + text = "View Distance"; x = 0.3; y = 0.2; w = 0.8; @@ -449,7 +449,7 @@ class TAW_VD y = 0.656; }; - class VD_terr_none : TAWVD_activeText + /*class VD_terr_none : TAWVD_activeText { idc = -1; text = "None"; @@ -458,7 +458,7 @@ class TAW_VD x = 0.38; y = 0.50; w = 0.275; h = 0.04; - }; + };*/ class VD_terr_low : TAWVD_activeText { @@ -467,7 +467,7 @@ class TAW_VD action = "['low'] call TAWVD_fnc_onTerrainChange;"; sizeEx = 0.04; - x = 0.47; y = 0.50; + x = 0.37; y = 0.50; w = 0.275; h = 0.04; }; @@ -478,7 +478,7 @@ class TAW_VD action = "['norm'] call TAWVD_fnc_onTerrainChange;"; sizeEx = 0.04; - x = 0.56; y = 0.50; + x = 0.50; y = 0.50; w = 0.275; h = 0.04; }; diff --git a/addons/taw_vd/fn_openTAWVD.sqf b/addons/taw_vd/fn_openTAWVD.sqf index 092fed3f7..aa49d9493 100644 --- a/addons/taw_vd/fn_openTAWVD.sqf +++ b/addons/taw_vd/fn_openTAWVD.sqf @@ -15,7 +15,7 @@ ctrlSetText[2942, format["%1", tawvd_object]]; //Setup the sliders { - slidersetRange [_x select 0,100,12000]; + slidersetRange [_x select 0,100,2500]; ((findDisplay 2900) displayCtrl (_x select 0)) sliderSetSpeed [100,100,100]; sliderSetPosition[_x select 0, _x select 1]; } foreach [[2901,tawvd_foot],[2911,tawvd_car],[2921,tawvd_air],[2941,tawvd_object]]; diff --git a/addons/taw_vd/fn_tawvdInit.sqf b/addons/taw_vd/fn_tawvdInit.sqf index 94a5282c4..74444c368 100644 --- a/addons/taw_vd/fn_tawvdInit.sqf +++ b/addons/taw_vd/fn_tawvdInit.sqf @@ -21,7 +21,7 @@ tawvd_addon_disable = true; waitUntil{!isNil "BIS_fnc_init"}; waitUntil {!(isNull (findDisplay 46))}; - tawvd_action = player addAction["Settings",TAWVD_fnc_openTAWVD,[],-99,false,false,"",'']; + tawvd_action = player addAction["View Distance",TAWVD_fnc_openTAWVD,[],-99,false,false,"",'']; [] spawn TAWVD_fnc_trackViewDistance; }; \ No newline at end of file diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 36bb06fb6..4a4df0df2 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -13,7 +13,6 @@ ["Heal Self", "addons\scripts\healSelf.sqf",0,0,false,false,"","((damage player)>0.01 && (damage player)<0.25499) && ('FirstAidKit' in (items player)) && (vehicle player == player)"], ["Resupply", "addons\scripts\fn_resupplytruck.sqf", [], 51, false, false, "", "!(vehicle player == player) and (cursortarget iskindof 'O_Truck_03_device_F') and (player distance cursortarget) < 10"], - ["Messenger", "addons\JTS_PM\JTS_PM.sqf", [], -11, false], //, false, "", ""], [format [" [Player Menu]", "#FF8000"], "client\systems\playerMenu\init.sqf", [], -10, false], diff --git a/client/images/vehicleTextures/camo_pank.jpg b/client/images/vehicleTextures/camo_pank.jpg deleted file mode 100644 index 619b89f33b55771e66e4b4210578723fc0545ee4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37191 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

~G5#QW@WXmnQ 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 diff --git a/client/images/vehicleTextures/leopard.jpg b/client/images/vehicleTextures/leopard.jpg deleted file mode 100644 index 05e4b878e3ccfc5dd7a0e88c6c74d42121a2121d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83408 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

Sqj1c77zC#_NQdPZ-I(h`f14 zXWrAC)8=GT^;|xgwLyk_aIT?@@+}f^r%yQf*RN~26T_z7A>#O4LV_T3#UoWFiWH1| zLkmvdO?pvd3gz5Je*7w6 zL;Lw1LZhxEDi#??9Z)lJ!GEdQ_2PXURj$hGBb!{m=Xs6VPQ7%le7y5dfkc;v0J2#^ z>tx80DyBx_Id_DkwA*}>P;V-JzA)FMSIrNrRLyUql`CHUL@qpL#LVCQ+}I-jY@rol z_9Z>(uX!;W(Y91~268%OCZ08$VTApA#_QE3WHXP*UZ7&_T-{J;am{i|^SZJZqQa-IMj4+;Il6NL10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDs zA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@ z2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw} z0$vDs;eUoR0WSo+5b#343jr?#yb$n0zzb(<%0Z9=K@J2t5ad9R3)qn|#wq%ej*Ac+ zblUB#0D|0a6663cg!Fz>dVm)KUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjj zg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDs zA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@ z2zVjjg`Swvr+Y&TD!2{IBzjwBcj7a>D3-D4X64!+jWX?k7Xn@gcp>10fENN@2zVjj zgf687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f68 z7Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjj zg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@*x-{h!__cOf^VH g$EzhN87@q$po;-71iTRNLcj|FFZ?g@!k_*B1er~;5dZ)H diff --git a/client/images/vehicleTextures/psych.jpg b/client/images/vehicleTextures/psych.jpg deleted file mode 100644 index 34f2d11d52a96f0204e45ac42f7adbff276290b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106517 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 Sr&3iL=jP?#MfZ94KmXYlMav@q diff --git a/client/images/vehicleTextures/rainbow.jpg b/client/images/vehicleTextures/rainbow.jpg deleted file mode 100644 index 9d581858abe91a50a0bf22f90da13e1ae87e9d31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34945 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

J0s~; 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 Date: Tue, 25 Nov 2014 02:17:36 -0800 Subject: [PATCH 121/544] TAW view distance increased. --- addons/taw_vd/fn_openTAWVD.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/taw_vd/fn_openTAWVD.sqf b/addons/taw_vd/fn_openTAWVD.sqf index aa49d9493..9d7cc8dda 100644 --- a/addons/taw_vd/fn_openTAWVD.sqf +++ b/addons/taw_vd/fn_openTAWVD.sqf @@ -15,7 +15,7 @@ ctrlSetText[2942, format["%1", tawvd_object]]; //Setup the sliders { - slidersetRange [_x select 0,100,2500]; + slidersetRange [_x select 0,100,3000]; ((findDisplay 2900) displayCtrl (_x select 0)) sliderSetSpeed [100,100,100]; sliderSetPosition[_x select 0, _x select 1]; } foreach [[2901,tawvd_foot],[2911,tawvd_car],[2921,tawvd_air],[2941,tawvd_object]]; From 75158363d0b4ebbd2467ed8ff945cd6d805552bc Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 25 Nov 2014 14:45:19 -0800 Subject: [PATCH 122/544] TAW fix and adjustment. --- addons/taw_vd/dialog.hpp | 2 +- addons/taw_vd/fn_trackViewDistance.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/taw_vd/dialog.hpp b/addons/taw_vd/dialog.hpp index fbcdb8bc8..30a5879ab 100644 --- a/addons/taw_vd/dialog.hpp +++ b/addons/taw_vd/dialog.hpp @@ -322,7 +322,7 @@ class TAW_VD class VDTerrSet : TAWVD_RscText { idc = -1; - text = "Grass Settings"; + text = "Terrain Settings"; shadow = 0; colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"}; diff --git a/addons/taw_vd/fn_trackViewDistance.sqf b/addons/taw_vd/fn_trackViewDistance.sqf index 86f4f0c29..fc55d5b0e 100644 --- a/addons/taw_vd/fn_trackViewDistance.sqf +++ b/addons/taw_vd/fn_trackViewDistance.sqf @@ -16,7 +16,7 @@ while {true} do _old = player; _old removeAction tawvd_action; waitUntil {alive player}; - tawvd_action = player addAction["Settings",TAWVD_fnc_openTAWVD,[],-99,false,false,"",'']; + tawvd_action = player addAction["View Distance",TAWVD_fnc_openTAWVD,[],-99,false,false,"",'']; }; [] call TAWVD_fnc_updateViewDistance; waitUntil {_recorded != vehicle player || !alive player}; From 1e8cd97a32281244883250152ab3e586e9fffa17 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 25 Nov 2014 17:49:50 -0800 Subject: [PATCH 123/544] Added ear plug and add back global. --- client/clientEvents/onKeyPress.sqf | 12 ++++++++++++ description.ext | 2 +- server/default_config.sqf | 6 +++--- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/client/clientEvents/onKeyPress.sqf b/client/clientEvents/onKeyPress.sqf index 8bf88ee85..e37fb9082 100644 --- a/client/clientEvents/onKeyPress.sqf +++ b/client/clientEvents/onKeyPress.sqf @@ -85,6 +85,18 @@ switch (true) do _handled = true; }; + + // Ear Plugs - End Key + case (_key == 207): + { + if (soundVolume <= 0.5) then + { + 0.5 fadeSound 1; + ["You've taken out your ear plugs.",4] call mf_notify_client; + } else { + 0.5 fadeSound 0.1; + ["You've inserted your ear plugs.",4] call mf_notify_client; + }; }; }; diff --git a/description.ext b/description.ext index 69b0ccf4a..78aa5c1a6 100644 --- a/description.ext +++ b/description.ext @@ -1,7 +1,7 @@ respawn="BASE"; respawnDelay=15; disabledAI=1; -disableChannels[] = {0,2}; // {0} to disable global, {2} for command channel +disableChannels[] = {2}; // {0} to disable global, {2} for command channel joinUnassigned = 0; enableItemsDropping = 0; forceRotorLibSimulation = 0; // Force RotorLib (0 = disable, 1= enable) diff --git a/server/default_config.sqf b/server/default_config.sqf index fd26cfac9..6628472d3 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -8,13 +8,13 @@ // This file is overriden by the external file "A3Wasteland_settings\main_config.sqf" if present // General settings -A3W_startHour = 1; // In-game hour at mission start (0 to 23) +A3W_startHour = 11; // In-game hour at mission start (0 to 23) A3W_timeMultiplierDay = 2.5; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) A3W_timeMultiplierNight = 2.0; // Sets the speed of time between 8 PM and 5 AM A3W_moonLight = 1; // Moon light during night (0 = no, 1 = yes) A3W_teamPlayersMap = 1; // Show all friendly players on the map at all times, regardless of difficulty level (0 = no, 1 = yes) -A3W_globalVoiceWarnTimer = 5; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) -A3W_globalVoiceMaxWarns = 5; // Number of global voice warnings after which the player will be killed and crashed (0 = disabled) +A3W_globalVoiceWarnTimer = 4; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) +A3W_globalVoiceMaxWarns = 4; // Number of global voice warnings after which the player will be killed and crashed (0 = disabled) A3W_antiHackMinRecoil = 1.0; // Mininum recoil coefficient enforced by the antihack (recommended values: default = 1.0, TMR Mod = 0.5, VTS Weapon Resting = 0.25) A3W_spawnBeaconCooldown = 5*60; // Number of seconds to wait between each use of an individual spawn beacon (0 = disabled) A3W_spawnBeaconSpawnHeight = 1500; // Altitude in meters at which players will spawn when using spawn beacons (0 = ground/sea) From 7ad3fc5987b86076a31ee704a775afe9ad6cac00 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 25 Nov 2014 23:57:43 -0800 Subject: [PATCH 124/544] Fixed key press and changed stringtable. --- client/clientEvents/onKeyPress.sqf | 25 ++++++++++++++----------- stringtable.xml | 2 +- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/client/clientEvents/onKeyPress.sqf b/client/clientEvents/onKeyPress.sqf index e37fb9082..8ec924374 100644 --- a/client/clientEvents/onKeyPress.sqf +++ b/client/clientEvents/onKeyPress.sqf @@ -34,7 +34,14 @@ switch (true) do // Home & Windows keys case (_key in [199,219,220]): { - showPlayerNames = if (isNil "showPlayerNames") then { true } else { !showPlayerNames }; + if (isNil "showPlayerNames") then + { + showPlayerNames = true; + } + else + { + showPlayerNames = !showPlayerNames; + }; }; case (_key in actionKeys "GetOver"): @@ -72,20 +79,16 @@ switch (true) do }; // Scoreboard - case (_key in actionKeys "NetworkStats"): + case (_key in actionKeys "NetworkStats" && {!_shift && (!_ctrl || isNil "TFAR_fnc_TaskForceArrowheadRadioInit")}): { - if (_key != 25 || // 25 = P - ((!_ctrl || {!(486539289 in actionKeys "NetworkPlayers") && isNil "TFAR_fnc_TaskForceArrowheadRadioInit"}) && // 486539289 = Left Ctrl + P - (!_shift || {!(704643042 in actionKeys "NetworkPlayers")}))) then // 704643042 = Left Shift + P + if (alive player && isNull (uiNamespace getVariable ["ScoreGUI", displayNull])) then { - if (alive player && isNull (uiNamespace getVariable ["ScoreGUI", displayNull])) then - { - call loadScoreboard; - }; - - _handled = true; + call loadScoreboard; }; + _handled = true; + }; + // Ear Plugs - End Key case (_key == 207): { diff --git a/stringtable.xml b/stringtable.xml index eb228803e..6d339ac90 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -39,7 +39,7 @@ <t color='#FFFFFF' size='1.5' >* You are in <img size="1.5" image="%1"/> <t color="%2">%3</t> team.<br/>* Attacking or stealing from other %4 players is <t color="#FF1111">FORBIDDEN</t><br/>* <t color="#FF1111">NO VOICE IN GLOBAL</t><br/>* You can find the Server Rules in the map menu.<br/>* Server restarts are done at the admin's discretion.<br/>* You will be locked to your team after 3 minutes.</t> - <t color='#FFFFFF' size='1.5' >* You are in <img size="1.5" image="%1"/> <t color="%2">%3</t> team.<br/>* You are <t color="#00aa00">FREE TO ATTACK ANYONE</t><br/>* <t color="#FF1111">KEEP VOICE IN SIDE TO A MINIMUM</t><br/>* You can find the Server Rules in the map menu.<br/>* Server restarts are done at the admin's discretion.</t> + <t color='#FFFFFF' size='1.5' >* You are in <img size="1.5" image="%1"/> <t color="%2">%3</t> team.<br/>* You are <t color="#00aa00">FREE TO ATTACK ANYONE</t><br/>* <t color="#FF1111">NO VOICE IN GLOBAL</t><br/>* You can find the Server Rules in the map menu.<br/>* Server restarts are done at the admin's discretion.</t> <t color='#FFFFFF' size='1.5' >Report bugs and suggestions at http://forums.a3wasteland.com/ <br/>Server restarts are done at the admin's discretion.<br/>Press the Windows or Home key to toggle player names<br/>For more info please see the map<br/> From 21e17f81715ff15829d0df0f7a218f9ad90aebef Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 2 Dec 2014 02:27:07 -0800 Subject: [PATCH 125/544] Added improved spectate camera. --- addons/camera/dikcodes.h | 341 +++++ addons/camera/functions.sqf | 1307 ++++++++++++++++++++ addons/camera/macro.h | 142 +++ client/init.sqf | 1 + client/systems/adminPanel/playerSelect.sqf | 21 +- 5 files changed, 1807 insertions(+), 5 deletions(-) create mode 100644 addons/camera/dikcodes.h create mode 100644 addons/camera/functions.sqf create mode 100644 addons/camera/macro.h diff --git a/addons/camera/dikcodes.h b/addons/camera/dikcodes.h new file mode 100644 index 000000000..18d691fc0 --- /dev/null +++ b/addons/camera/dikcodes.h @@ -0,0 +1,341 @@ +/* F1 ... F15 */ +#define DIK_F1 0x3B +#define DIK_F2 0x3C +#define DIK_F3 0x3D +#define DIK_F4 0x3E +#define DIK_F5 0x3F +#define DIK_F6 0x40 +#define DIK_F7 0x41 +#define DIK_F8 0x42 +#define DIK_F9 0x43 +#define DIK_F10 0x44 +#define DIK_F11 0x57 +#define DIK_F12 0x58 +#define DIK_F13 0x64 +#define DIK_F14 0x65 +#define DIK_F15 0x66 + +/* 0..9 */ +#define DIK_0 0x0B +#define DIK_1 0x02 +#define DIK_2 0x03 +#define DIK_3 0x04 +#define DIK_4 0x05 +#define DIK_5 0x06 +#define DIK_6 0x07 +#define DIK_7 0x08 +#define DIK_8 0x09 +#define DIK_9 0x0A +#define DIK_NUMPAD0 0x52 +#define DIK_NUMPAD1 0x4F +#define DIK_NUMPAD2 0x50 +#define DIK_NUMPAD3 0x51 +#define DIK_NUMPAD4 0x4B +#define DIK_NUMPAD5 0x4C +#define DIK_NUMPAD6 0x4D +#define DIK_NUMPAD7 0x47 +#define DIK_NUMPAD8 0x48 +#define DIK_NUMPAD9 0x49 + +/* alpha */ +#define DIK_A 0x1E +#define DIK_B 0x30 +#define DIK_C 0x2E +#define DIK_D 0x20 +#define DIK_E 0x12 +#define DIK_F 0x21 +#define DIK_G 0x22 +#define DIK_H 0x23 +#define DIK_I 0x17 +#define DIK_J 0x24 +#define DIK_K 0x25 +#define DIK_L 0x26 +#define DIK_M 0x32 +#define DIK_N 0x31 +#define DIK_O 0x18 +#define DIK_P 0x19 +#define DIK_Q 0x10 +#define DIK_R 0x13 +#define DIK_S 0x1F +#define DIK_T 0x14 +#define DIK_U 0x16 +#define DIK_V 0x2F +#define DIK_W 0x11 +#define DIK_X 0x2D +#define DIK_Y 0x15 +#define DIK_Z 0x2C + +/* Controls */ +#define DIK_ESCAPE 0x01 +#define DIK_TAB 0x0F +#define DIK_LSHIFT 0x2A +#define DIK_RSHIFT 0x36 +#define DIK_LCONTROL 0x1D +#define DIK_RCONTROL 0x9D +#define DIK_BACK 0x0E /* backspace */ +#define DIK_BACKSPACE DIK_BACK +#define DIK_RETURN 0x1C /* Enter on main keyboard */ +#define DIK_NUMPADENTER 0x9C /* Enter on numeric keypad */ +#define DIK_LMENU 0x38 /* left Alt */ +#define DIK_LALT DIK_LMENU +#define DIK_SPACE 0x39 +#define DIK_CAPITAL 0x3A /* capslock */ +#define DIK_CAPSLOCK DIK_CAPITAL +#define DIK_NUMLOCK 0x45 +#define DIK_SCROLL 0x46 /* Scroll Lock */ +#define DIK_RMENU 0xB8 /* right Alt */ +#define DIK_RALT DIK_RMENU /* right Alt */ +#define Graphics +#define DIK_AT 0x91 /* (NEC PC98) */ +#define DIK_COLON 0x92 /* (NEC PC98) */ +#define DIK_UNDERLINE 0x93 /* (NEC PC98) */ +#define DIK_MINUS 0x0C /* - on main keyboard */ +#define DIK_EQUALS 0x0D +#define DIK_LBRACKET 0x1A +#define DIK_RBRACKET 0x1B +#define DIK_SEMICOLON 0x27 +#define DIK_APOSTROPHE 0x28 +#define DIK_GRAVE 0x29 /* accent grave */ +#define DIK_BACKSLASH 0x2B +#define DIK_COMMA 0x33 +#define DIK_PERIOD 0x34 /* . on main keyboard */ +#define DIK_SLASH 0x35 /* / on main keyboard */ +#define DIK_MULTIPLY 0x37 /* * on numeric keypad */ +#define DIK_NUMPADSTAR DIK_MULTIPLY +#define DIK_SUBTRACT 0x4A /* - on numeric keypad */ +#define DIK_ADD 0x4E /* + on numeric keypad */ +#define DIK_DECIMAL 0x53 /* . on numeric keypad */ +#define DIK_NUMPADEQUALS 0x8D /* = on numeric keypad (NEC PC98) */ +#define DIK_NUMPADMINUS DIK_SUBTRACT /* - on numeric keypad */ +#define DIK_NUMPADPLUS DIK_ADD /* + on numeric keypad */ +#define DIK_NUMPADPERIOD DIK_DECIMAL /* . on numeric keypad */ +#define DIK_NUMPADSLASH DIK_DIVIDE /* / on numeric keypad */ + +/* KataKana */ +#define DIK_KANA 0x70 /* (Japanese keyboard) */ +#define DIK_ABNT_C1 0x73 /* / ? on Portugese (Brazilian) keyboards */ +#define DIK_CONVERT 0x79 /* (Japanese keyboard) */ +#define DIK_NOCONVERT 0x7B /* (Japanese keyboard) */ +#define DIK_YEN 0x7D /* (Japanese keyboard) */ +#define DIK_OEM_102 0x56 /* < > | on UK/Germany keyboards */ +#define DIK_ABNT_C2 0x7E /* Numpad . on Portugese (Brazilian) keyboards */ +#define DIK_PREVTRACK 0x90 /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */ +#define DIK_KANJI 0x94 /* (Japanese keyboard) */ +#define DIK_STOP 0x95 /* (NEC PC98) */ +#define DIK_AX 0x96 /* (Japan AX) */ +#define DIK_UNLABELED 0x97 /* (J3100) */ +#define DIK_NUMPADCOMMA 0xB3 /* ,on numeric keypad (NEC PC98) */ + +/* Alternate names for keys originally not used on US keyboards. */ +#define DIK_CIRCUMFLEX DIK_PREVTRACK /* Japanese keyboard */ +#define Apps +#define DIK_NEXTTRACK 0x99 /* Next Track */ +#define DIK_MUTE 0xA0 /* Mute */ +#define DIK_CALCULATOR 0xA1 /* Calculator */ +#define DIK_PLAYPAUSE 0xA2 /* Play / Pause */ +#define DIK_MEDIASTOP 0xA4 /* Media Stop */ +#define DIK_VOLUMEDOWN 0xAE /* Volume - */ +#define DIK_VOLUMEUP 0xB0 /* Volume + */ +#define DIK_WEBHOME 0xB2 /* Web home */ +#define DIK_SYSRQ 0xB7 +#define DIK_PAUSE 0xC5 /* Pause */ +#define DIK_APPS 0xDD /* AppMenu key */ +#define DIK_POWER 0xDE /* System Power */ +#define DIK_SLEEP 0xDF /* System Sleep */ +#define DIK_WAKE 0xE3 /* System Wake */ +#define DIK_WEBSEARCH 0xE5 /* Web Search */ +#define DIK_WEBFAVORITES 0xE6 /* Web Favorites */ +#define DIK_WEBREFRESH 0xE7 /* Web Refresh */ +#define DIK_WEBSTOP 0xE8 /* Web Stop */ +#define DIK_WEBFORWARD 0xE9 /* Web Forward */ +#define DIK_WEBBACK 0xEA /* Web Back */ +#define DIK_MYCOMPUTER 0xEB /* My Computer */ +#define DIK_MAIL 0xEC /* Mail */ +#define DIK_MEDIASELECT 0xED /* Media Select */ + +/* ArrowKeypad */ +#define DIK_HOME 0xC7 /* Home on arrow keypad */ +#define DIK_UP 0xC8 /* UpArrow on arrow keypad */ +#define DIK_PRIOR 0xC9 /* PgUp on arrow keypad */ +#define DIK_LEFT 0xCB /* LeftArrow on arrow keypad */ +#define DIK_RIGHT 0xCD /* RightArrow on arrow keypad */ +#define DIK_END 0xCF /* End on arrow keypad */ +#define DIK_DOWN 0xD0 /* DownArrow on arrow keypad */ +#define DIK_NEXT 0xD1 /* PgDn on arrow keypad */ +#define DIK_INSERT 0xD2 /* Insert on arrow keypad */ +#define DIK_DELETE 0xD3 /* Delete on arrow keypad */ +#define DIK_UPARROW DIK_UP /* UpArrow on arrow keypad */ +#define DIK_PGUP DIK_PRIOR /* PgUp on arrow keypad */ +#define DIK_LEFTARROW DIK_LEFT /* LeftArrow on arrow keypad */ +#define DIK_RIGHTARROW DIK_RIGHT /* RightArrow on arrow keypad */ +#define DIK_DOWNARROW DIK_DOWN /* DownArrow on arrow keypad */ +#define DIK_PGDN DIK_NEXT /* PgDn on arrow keypad */ +#define other +#define DIK_LWIN 0xDB /* Left Windows key */ +#define DIK_RWIN 0xDC /* Right Windows key */ + +/* Numeric sort */ +#define DIK_ESCAPE 0x01 +#define DIK_1 0x02 +#define DIK_2 0x03 +#define DIK_3 0x04 +#define DIK_4 0x05 +#define DIK_5 0x06 +#define DIK_6 0x07 +#define DIK_7 0x08 +#define DIK_8 0x09 +#define DIK_9 0x0A +#define DIK_0 0x0B +#define DIK_MINUS 0x0C /* - on main keyboard */ +#define DIK_EQUALS 0x0D +#define DIK_BACK 0x0E /* backspace */ +#define DIK_TAB 0x0F +#define DIK_Q 0x10 +#define DIK_W 0x11 +#define DIK_E 0x12 +#define DIK_R 0x13 +#define DIK_T 0x14 +#define DIK_Y 0x15 +#define DIK_U 0x16 +#define DIK_I 0x17 +#define DIK_O 0x18 +#define DIK_P 0x19 +#define DIK_LBRACKET 0x1A +#define DIK_RBRACKET 0x1B +#define DIK_RETURN 0x1C /* Enter on main keyboard */ +#define DIK_LCONTROL 0x1D +#define DIK_A 0x1E +#define DIK_S 0x1F +#define DIK_D 0x20 +#define DIK_F 0x21 +#define DIK_G 0x22 +#define DIK_H 0x23 +#define DIK_J 0x24 +#define DIK_K 0x25 +#define DIK_L 0x26 +#define DIK_SEMICOLON 0x27 +#define DIK_APOSTROPHE 0x28 +#define DIK_GRAVE 0x29 /* accent grave */ +#define DIK_LSHIFT 0x2A +#define DIK_BACKSLASH 0x2B +#define DIK_Z 0x2C +#define DIK_X 0x2D +#define DIK_C 0x2E +#define DIK_V 0x2F +#define DIK_B 0x30 +#define DIK_N 0x31 +#define DIK_M 0x32 +#define DIK_COMMA 0x33 +#define DIK_PERIOD 0x34 /* . on main keyboard */ +#define DIK_SLASH 0x35 /* / on main keyboard */ +#define DIK_RSHIFT 0x36 +#define DIK_MULTIPLY 0x37 /* * on numeric keypad */ +#define DIK_LMENU 0x38 /* left Alt */ +#define DIK_SPACE 0x39 +#define DIK_CAPITAL 0x3A +#define DIK_F1 0x3B +#define DIK_F2 0x3C +#define DIK_F3 0x3D +#define DIK_F4 0x3E +#define DIK_F5 0x3F +#define DIK_F6 0x40 +#define DIK_F7 0x41 +#define DIK_F8 0x42 +#define DIK_F9 0x43 +#define DIK_F10 0x44 +#define DIK_NUMLOCK 0x45 +#define DIK_SCROLL 0x46 /* Scroll Lock */ +#define DIK_NUMPAD7 0x47 +#define DIK_NUMPAD8 0x48 +#define DIK_NUMPAD9 0x49 +#define DIK_SUBTRACT 0x4A /* - on numeric keypad */ +#define DIK_NUMPAD4 0x4B +#define DIK_NUMPAD5 0x4C +#define DIK_NUMPAD6 0x4D +#define DIK_ADD 0x4E /* + on numeric keypad */ +#define DIK_NUMPAD1 0x4F +#define DIK_NUMPAD2 0x50 +#define DIK_NUMPAD3 0x51 +#define DIK_NUMPAD0 0x52 +#define DIK_DECIMAL 0x53 /* . on numeric keypad */ +#define DIK_OEM_102 0x56 /* < > | on UK/Germany keyboards */ +#define DIK_F11 0x57 +#define DIK_F12 0x58 +#define DIK_F13 0x64 /* (NEC PC98) */ +#define DIK_F14 0x65 /* (NEC PC98) */ +#define DIK_F15 0x66 /* (NEC PC98) */ +#define DIK_KANA 0x70 /* (Japanese keyboard) */ +#define DIK_ABNT_C1 0x73 /* / ? on Portugese (Brazilian) keyboards */ +#define DIK_CONVERT 0x79 /* (Japanese keyboard) */ +#define DIK_NOCONVERT 0x7B /* (Japanese keyboard) */ +#define DIK_YEN 0x7D /* (Japanese keyboard) */ +#define DIK_ABNT_C2 0x7E /* Numpad . on Portugese (Brazilian) keyboards */ +#define DIK_NUMPADEQUALS 0x8D /* = on numeric keypad (NEC PC98) */ +#define DIK_PREVTRACK 0x90 /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */ +#define DIK_AT 0x91 /* (NEC PC98) */ +#define DIK_COLON 0x92 /* (NEC PC98) */ +#define DIK_UNDERLINE 0x93 /* (NEC PC98) */ +#define DIK_KANJI 0x94 /* (Japanese keyboard) */ +#define DIK_STOP 0x95 /* (NEC PC98) */ +#define DIK_AX 0x96 /* (Japan AX) */ +#define DIK_UNLABELED 0x97 /* (J3100) */ +#define DIK_NEXTTRACK 0x99 /* Next Track */ +#define DIK_NUMPADENTER 0x9C /* Enter on numeric keypad */ +#define DIK_RCONTROL 0x9D +#define DIK_MUTE 0xA0 /* Mute */ +#define DIK_CALCULATOR 0xA1 /* Calculator */ +#define DIK_PLAYPAUSE 0xA2 /* Play / Pause */ +#define DIK_MEDIASTOP 0xA4 /* Media Stop */ +#define DIK_VOLUMEDOWN 0xAE /* Volume - */ +#define DIK_VOLUMEUP 0xB0 /* Volume + */ +#define DIK_WEBHOME 0xB2 /* Web home */ +#define DIK_NUMPADCOMMA 0xB3 /* ,on numeric keypad (NEC PC98) */ +#define DIK_DIVIDE 0xB5 /* / on numeric keypad */ +#define DIK_SYSRQ 0xB7 +#define DIK_RMENU 0xB8 /* right Alt */ +#define DIK_PAUSE 0xC5 /* Pause */ +#define DIK_HOME 0xC7 /* Home on arrow keypad */ +#define DIK_UP 0xC8 /* UpArrow on arrow keypad */ +#define DIK_PRIOR 0xC9 /* PgUp on arrow keypad */ +#define DIK_LEFT 0xCB /* LeftArrow on arrow keypad */ +#define DIK_RIGHT 0xCD /* RightArrow on arrow keypad */ +#define DIK_END 0xCF /* End on arrow keypad */ +#define DIK_DOWN 0xD0 /* DownArrow on arrow keypad */ +#define DIK_NEXT 0xD1 /* PgDn on arrow keypad */ +#define DIK_INSERT 0xD2 /* Insert on arrow keypad */ +#define DIK_DELETE 0xD3 /* Delete on arrow keypad */ +#define DIK_LWIN 0xDB /* Left Windows key */ +#define DIK_RWIN 0xDC /* Right Windows key */ +#define DIK_APPS 0xDD /* AppMenu key */ +#define DIK_POWER 0xDE /* System Power */ +#define DIK_SLEEP 0xDF /* System Sleep */ +#define DIK_WAKE 0xE3 /* System Wake */ +#define DIK_WEBSEARCH 0xE5 /* Web Search */ +#define DIK_WEBFAVORITES 0xE6 /* Web Favorites */ +#define DIK_WEBREFRESH 0xE7 /* Web Refresh */ +#define DIK_WEBSTOP 0xE8 /* Web Stop */ +#define DIK_WEBFORWARD 0xE9 /* Web Forward */ +#define DIK_WEBBACK 0xEA /* Web Back */ +#define DIK_MYCOMPUTER 0xEB /* My Computer */ +#define DIK_MAIL 0xEC /* Mail */ +#define DIK_MEDIASELECT 0xED /* Media Select */ + +/* Alternate names for keys,to facilitate transition from DOS. */ +#define DIK_BACKSPACE DIK_BACK /* backspace */ +#define DIK_NUMPADSTAR DIK_MULTIPLY /* * on numeric keypad */ +#define DIK_LALT DIK_LMENU /* left Alt */ +#define DIK_CAPSLOCK DIK_CAPITAL /* CapsLock */ +#define DIK_NUMPADMINUS DIK_SUBTRACT /* - on numeric keypad */ +#define DIK_NUMPADPLUS DIK_ADD /* + on numeric keypad */ +#define DIK_NUMPADPERIOD DIK_DECIMAL /* . on numeric keypad */ +#define DIK_NUMPADSLASH DIK_DIVIDE /* / on numeric keypad */ +#define DIK_RALT DIK_RMENU /* right Alt */ +#define DIK_UPARROW DIK_UP /* UpArrow on arrow keypad */ +#define DIK_PGUP DIK_PRIOR /* PgUp on arrow keypad */ +#define DIK_LEFTARROW DIK_LEFT /* LeftArrow on arrow keypad */ +#define DIK_RIGHTARROW DIK_RIGHT /* RightArrow on arrow keypad */ +#define DIK_DOWNARROW DIK_DOWN /* DownArrow on arrow keypad */ +#define DIK_PGDN DIK_NEXT /* PgDn on arrow keypad */ + +/* Alternate names for keys originally not used on US keyboards. */ +#define DIK_CIRCUMFLEX DIK_PREVTRACK /* Japanese keyboard */ \ No newline at end of file diff --git a/addons/camera/functions.sqf b/addons/camera/functions.sqf new file mode 100644 index 000000000..dd71fa295 --- /dev/null +++ b/addons/camera/functions.sqf @@ -0,0 +1,1307 @@ +#include "dikcodes.h" +#include "macro.h" + +//if (not(undefined(camera_functions_defined))) exitWith {nil}; +diag_log format["Loading camera functions ..."]; + +object_calcualte_vectors = { + ARGVX2(0,_data); + def(_direction); + def(_angle); + def(_pitch); + + _direction = _data select 0; + _angle = _data select 1; + _pitch = _data select 2; + + _vecdx = sin(_direction) * cos(_angle); + _vecdy = cos(_direction) * cos(_angle); + _vecdz = sin(_angle); + + _vecux = cos(_direction) * cos(_angle) * sin(_pitch); + _vecuy = sin(_direction) * cos(_angle) * sin(_pitch); + _vecuz = cos(_angle) * cos(_pitch); + + + def(_dir_vector); + def(_up_vector); + _dir_vector = [_vecdx,_vecdy,_vecdz]; + _up_vector = [_vecux,_vecuy,_vecuz]; + + ([_dir_vector,_up_vector]) +}; + +object_set_heading = { + ARGVX2(0,_object); + ARGVX2(1,_data); + + def(_vectors); + _vectors = [_data] call object_calcualte_vectors; + _object setVectorDirAndUp _vectors; +}; + +object_setVariable = { + ARGVX2(0,_object); + ARGVX2(1,_variable_name); + ARGV2(2,_variable_value); + ARGV2(3,_remote); + + if (undefined(_remote)) then { + _remote = false; + }; + + if (undefined(_variable_name)) exitWith {nil}; + + if (undefined(_variable_value)) then { + _object setVariable [_variable_name,nil,_remote]; + } + else { + _object setVariable [_variable_name,_variable_value,_remote]; + }; +}; + + +object_getVariable = { + ARGVX2(0,_object); + ARGVX2(1,_variable_name); + ARGV2(2,_default); + if (typeName _object != "OBJECT") exitWith {nil}; + if (undefined(_variable_name)) exitWith {nil}; + + + //player commandChat format["_object = %1",_object]; + def(_result); + _result = _object getVariable [_variable_name,OR(_default,nil)]; + + if (undefined(_result)) exitWith {OR(_default,nil)}; + _result +}; + +camera_keyUpHandler = { + //player commandChat format["camera_keyUpHandler %1",_this]; + ARGVX2(0,_this); + + ARGV2(0,_display); + ARGV2(1,_key); + ARGV2(2,_shift); + ARGV2(3,_control); + ARGV2(4,_alt); + + init(_player,camera_unit); + [false,_key] call camera_update_key_tracker; + + if (_shift) then { + camera_shift_held = false; + }; + + if (_control) then { + camera_control_held = false; + }; + + if (_alt) then { + camera_alt_held = false; + }; + + if (_key == DIK_LWIN) then { + camera_lwin_held = false; + }; + + if (_key == DIK_SPACE) then { + camera_space_held = false; + }; + + + if ((_key in (actionKeys "MoveForward") || + _key in (actionKeys "MoveBack") || + _key in (actionKeys "TurnLeft") || + _key in (actionKeys "TurnRight") || + _key in (actionKeys "HeliUp") || + _key in (actionKeys "HeliDown")) && + (count(camera_key_tracker) == 0)) then { + [_player,0] call camera_set_velocity; + }; + + false +}; + +camera_remove_keyUp = { + disableSerialization; + _display = findDisplay 46; + if (not(undefined(camera_keyUpHandler_id))) then { + _display displayRemoveEventHandler ["keyUp",camera_keyUpHandler_id]; + camera_keyUpHandler_id = nil; + }; +}; + + +camera_setup_keyUp = { + init(_data,_this); + + disableSerialization; + _display = findDisplay 46; + if ( undefined(camera_keyUpHandler_id) ) then { + camera_keyUpHandler_id = _display displayAddEventHandler ["keyUp",format["[_this,%1] call camera_keyUpHandler",_data]]; + }; +}; + + +camera_move_pos_vector = { + ARGVX2(0,_pos); + ARGVX2(1,_data); + ARGVX2(2,_velocity); + + def(_direction); + def(_angle); + def(_pitch); + _direction = _data select 0; + _angle = _data select 1; + _pitch = _data select 2; + + _vecdx = (sin(_direction) * cos(_angle)) * _velocity; + _vecdy = (cos(_direction) * cos(_angle)) * _velocity; + _vecdz = (sin(_angle)) * _velocity; + + _pos = [((_pos select 0) + _vecdx),((_pos select 1) + _vecdy),((_pos select 2) + _vecdz)]; + _pos +}; + + +camera_next_target = { + ARGVX2(0,_direction); + ARGV2(1,_target); + + def(_units); + _units = playableUnits; + _target = if (undefined(_target)) then {_units select 0} else {_target}; + + def(_index); + _index = _units find _target; + _index = _index + _direction; + _index = if (_index >= (count(_units))) then {0} else {_index}; + _index = if (_index < 0) then { (count _units) - 1} else {_index}; + _target = _units select _index; + + (_target) +}; + +camera_update_target = { + ARGVX2(0,_player); + ARGVX2(1,_key); + ARGVX2(2,_shift); + ARGVX2(3,_control); + + + def(_target); + def(_previous_target); + _target = [_player,"camera_target"] call object_getVariable; + _previous_target = _target; + + def(_handled); + _handled = false; + if (_shift && _key in (actionKeys "NextChannel")) then { + _target = [+1,_target] call camera_next_target; + camera_unit commandChat format["Attaching to %1",(name _target)]; + [_player, _target, OR(_previous_target,nil)] call camera_attach_to_target; + + _handled = true; + }; + + if (_shift && _key in (actionKeys "PrevChannel")) then { + _target = [-1,_target] call camera_next_target; + camera_unit commandChat format["Attaching to %1",(name _target)]; + [_player, _target, OR(_previous_target,nil)] call camera_attach_to_target; + _handled = true; + }; + + if (_shift && _key in (actionKeys "Chat")) then { + private["_new_target", "_current_target"]; + _new_target = [10] call camera_target; + + def(_aiming_at_same_player); + _aiming_at_same_player = (!isNil "_new_target" && {!isNil "_previous_target" && {_new_target == _previous_target}}); + + def(_not_aiming_at_anything); + _not_aiming_at_anything = (isNil "_new_target" && {!isNil "_previous_target"}); + + if (_not_aiming_at_anything || _aiming_at_same_player) then { + camera_unit commandChat format["Detaching from %1", (name _previous_target)]; + [_player, _previous_target] call camera_detach_from_target; + } + else { if (not(_aiming_at_same_player) && {not(isNil "_new_target")}) then { + camera_unit commandChat format["Attaching to %1",(name _new_target)]; + [_player, _new_target, OR(_previous_target,nil)] call camera_attach_to_target; + } + else { + camera_unit commandChat format["Nothing to detach from, or attach to"]; + };}; + + _handled = true; + }; + + if (_control && _key == DIK_H) then { + camera_hud_enabled = if (isNil "camera_hud_enabled") then {true} else {nil}; + _handled = true; + }; + + if (_control && _key == DIK_E) then { + [] call camera_toggle; + _handled = true; + }; + + _handled +}; + +camera_detach_from_target = { + ARGVX3(0,_player,objNull); + ARGV3(1,_previous_target,objNull); + + _camera = [_player,"camera"] call object_getVariable; + + detach _camera; + [_player,"camera_target",nil] call object_setVariable; + + def(_heading); + _heading = if (undefined(_previous_target)) then {nil} else {[_previous_target,([_player] call camera_get_heading)] call camera_heading_modelToWorld;}; + [_player,OR(_heading,nil)] call camera_set_heading; + + def(_pos); + _pos = if (undefined(_previous_target)) then {nil} else {_previous_target modelToWorld ([_player] call camera_get_position)}; + [_player,OR(_pos,nil)] call camera_set_position; + +}; + +camera_attach_to_target = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_target,objNull); + ARGV3(2,_previous_target,objNull); + + [_player,"camera_target",_target] call object_setVariable; + + def(_pos); + _pos = if (undefined(_previous_target)) then {nil} else {[_player] call camera_get_position}; + [_player,OR(_pos,nil)] call camera_set_position; + + def(_heading); + _heading = if (undefined(_previous_target)) then {[0,0,0]} else {[_player] call camera_get_heading}; + [_player,OR(_heading,nil)] call camera_set_heading; +}; + +camera_get_map_open = { + ARGVX2(0,_player); + + def(_map_open); + _map_open = [_player,"camera_map_open"] call object_getVariable; + _map_open = if (undefined(_map_open)) then {false} else {_map_open}; + _map_open +}; + +camera_set_map_open = { + ARGVX2(0,_player); + ARGVX2(1,_map_open); + + [_player,"camera_map_open",_map_open] call object_setVariable; +}; + +camera_map_control = { + ((finddisplay 12) displayctrl 51) +}; + +camera_map_open = { + ARGVX2(0,_player); + + [_player,true] call camera_set_map_open; + openMap [true,true]; + + (call camera_map_control) mapCenterOnCamera false; + + def(_pos); + _pos = [_player] call camera_get_world_position; + mapAnimAdd [0,(ctrlMapScale (call camera_map_control)) ,_pos]; + mapAnimCommit; +}; + +camera_map_close = { + ARGVX2(0,_player); + + [_player,false] call camera_set_map_open; + openMap [false,false]; + + def(_pos); + _pos = [_player] call camera_get_world_position; + mapAnimAdd [0,(ctrlMapScale (call camera_map_control)) ,_pos]; + mapAnimCommit; +}; + + +camera_update_map = { + ARGVX2(0,_player); + ARGVX2(1,_key); + ARGVX2(2,_shift); + + if (not(_key in (actionKeys "ShowMap"))) exitWith {nil}; + + if (not([_player] call camera_get_map_open)) then { + [_player] call camera_map_open; + } + else { + [_player] call camera_map_close; + }; +}; + +camera_get_max_velocity = { + ARGVX2(0,_player); + + def(_velocity); + _velocity = [_player,"camera_max_velocity"] call object_getVariable; + _velocity = if (undefined(_velocity)) then {0} else {_velocity}; + _velocity +}; + +camera_set_max_velocity = { + ARGVX2(0,_player); + ARGVX2(1,_velocity); + [_player,"camera_max_velocity",_velocity] call object_setVariable; + +}; + +camera_get_velocity = { + ARGVX2(0,_player); + + def(_velocity); + _velocity = [_player,"camera_velocity"] call object_getVariable; + _velocity = if (undefined(_velocity)) then {0} else {_velocity}; + _velocity +}; + +camera_set_velocity = { + ARGVX2(0,_player); + ARGVX2(1,_velocity); + [_player,"camera_velocity",_velocity] call object_setVariable; +}; + + +camera_calculate_velocity = { + ARGVX2(0,_player); + ARGVX2(1,_shift); + + def(_velocity); + def(_max_velocity); + def(_delta); + _delta = 0.05; + + _velocity = [_player] call camera_get_velocity; + _max_velocity = [_player] call camera_get_max_velocity; + + if (_velocity < _max_velocity) then { + _velocity = (_velocity + _delta); + _velocity = (_velocity) min (_max_velocity); + } + else { + _velocity = (_velocity - _delta); + _velocity = (_velocity) max (_max_velocity); + }; + + [_player,_velocity] call camera_set_velocity; + + _velocity = if (_shift) then {_velocity + 3} else {_velocity}; + (_velocity) +}; + +camera_get_position = { + ARGVX2(0,_player); + + def(_target); + _target = [_player,"camera_target"] call object_getVariable; + + def(_position); + def(_relative); + def(_default); + _relative = [0,-3,3]; + _default = if (undefined(_target)) then {_player modelToWorld _relative} else {_relative}; + + _position = [_player,"camera_pos"] call object_getVariable; + _position = if (undefined(_position)) then {_default} else {_position}; + _position +}; + +camera_get_world_position = { + ARGVX2(0,_player); + + def(_pos); + _pos = [_player] call camera_get_position; + + def(_target); + _target = [_player,"camera_target"] call object_getVariable; + _pos = if (undefined(_target)) then { _pos } else { _target modelToWorld _pos }; + _pos +}; + +camera_save_position = { + ARGVX2(0,_player); + ARGV2(1,_position); + [_player,"camera_pos",OR(_position,nil)] call object_setVariable; +}; + + +camera_set_position = { + ARGVX2(0,_player); + ARGV2(1,_position); + + [_player,OR(_position,nil)] call camera_save_position; + _position = [_player] call camera_get_position; + + def(_target); + _target = [_player,"camera_target"] call object_getVariable; + + def(_camera); + _camera = [_player,"camera"] call object_getVariable; + if (undefined(_camera)) exitWith {nil}; + + if (undefined(_target)) then { + _camera setPos _position; + //_camera camSetPos _position; + //_camera camCommit 0.3; + } + else { + _camera attachTo [(vehicle _target),_position]; + }; + +}; + +camera_update_position = { + //player commandChat format["camera_update_position %1",_this]; + ARGVX2(0,_player); + ARGVX2(1,_key); + ARGVX2(2,_shift); + + def(_position); + _position = [_player] call camera_get_position; + + def(_velocity); + _velocity = [_player,_shift] call camera_calculate_velocity; + + def(_heading); + def(_direction); + def(_angle); + def(_bank); + _heading = [_player] call camera_get_heading; + _direction = _heading select 0; + _angle = _heading select 1; + _bank = _heading select 2; + + if (_key in (actionKeys "MoveForward")) then { + _position = [_position,[_direction,_angle,_bank],_velocity] call camera_move_pos_vector; + }; + + if (_key in (actionKeys "MoveBack")) then { + _angle = _angle + 180; + _angle = if (_angle > 360) then { _angle - 360 } else {_angle}; + _position = [_position,[_direction,_angle,_bank],_velocity] call camera_move_pos_vector; + }; + + if (_key in (actionKeys "TurnLeft") || _key in (actionKeys "MoveLeft")) then { + _direction = _direction - 90; + _direction = if (_direction < 0) then { 360 - abs(_direction) } else {_direction}; + _position = [_position,[_direction,0,_bank],_velocity] call camera_move_pos_vector; + }; + + if (_key in (actionKeys "TurnRight") || _key in (actionKeys "MoveRight")) then { + _direction = _direction + 90; + _direction = if (_direction > 360) then {_direction - 360} else {_direction}; + _position = [_position,[_direction,0,_bank],_velocity] call camera_move_pos_vector; + }; + + + if (_key == DIK_Q) then { + _angle = _angle + 90; + _angle = if (_angle > 360) then { _angle - 360 } else {_angle}; + _position = [_position,[_direction,_angle,_bank],_velocity] call camera_move_pos_vector; + }; + + + if (_key == DIK_Z) then { + _angle = _angle - 90; + _angle = if (_angle < 0) then { 360 - abs(_angle) } else {_angle}; + _position = [_position,[_direction,_angle,_bank],_velocity] call camera_move_pos_vector; + }; + + [_player,OR(_position,nil)] call camera_set_position; +}; + + +camera_MouseZChanged_handler = { + //player commandChat format["camera_MouseZChanged_handler %1",_this]; + ARGVX2(0,_this); + init(_player,camera_unit); + + ARGV2(1,_zc); + + def(_velocity); + _velocity = [_player] call camera_get_max_velocity; + _velocity = if (_zc > 0) then {_velocity + 0.1} else {_velocity - 0.1}; + _velocity = (_velocity) min (5); + _velocity = (_velocity) max (0); + _velocity = (round(_velocity * 100) / 100); + //player commandChat format["Camera max velocity set at %1",_velocity]; + [_player,_velocity] call camera_set_max_velocity; + + true +}; + +camera_remove_MouseZChanged = { + disableSerialization; + def(_control); + _control = findDisplay 46; + if (not(undefined(camera_MouseZChanged_id))) then { + _control displayRemovEeventHandler ["MouseZChanged",camera_MouseZChanged_id]; + camera_MouseZChanged_id = nil; + }; +}; + +camera_setup_MouseZChanged = { + init(_data,_this); + disableSerialization; + def(_control); + _control = findDisplay 46; + if ( undefined(camera_MouseZChanged_id) ) then { + camera_MouseZChanged_id = _control displayAddEventHandler ["MouseZChanged",format["[_this,%1] call camera_MouseZChanged_handler",_data]]; + //player commandChat format["camera_MouseZChanged_id = %1",camera_MouseZChanged_id]; + }; +}; + +camera_get_nightvision = { + ARGVX2(0,_player); + + def(_nightvision); + _nightvision = [_player,"camera_nightvision"] call object_getVariable; + _nightvision = if (undefined(_nightvision)) then {0} else {_nightvision}; + _nightvision +}; + +camera_set_nightvision = { + ARGVX2(0,_player); + ARGVX2(1,_nightvision); + + [_player,"camera_nightvision",_nightvision] call object_setVariable; + (_nightvision) +}; + +camera_update_nightvision = { + ARGVX2(0,_player); + ARGVX2(1,_key); + + if (not(_key in actionKeys "NightVision")) exitWith {nil}; + + def(_nightvision); + _nightvision = [_player] call camera_get_nightvision; + _nightvision = ((_nightvision + 1) % 10); + //player commandChat format["_nightvision = %1",_nightvision]; + switch (_nightvision) do { + case 0: { + camera_unit commandChat format["Setting camera default mode"]; + camUseNVG false; + false SetCamUseTi 0; + }; + case 1: { + camera_unit commandChat format["Setting camera NV "]; + camUseNVG true; + false SetCamUseTi 0; + }; + case 2: { + camera_unit commandChat format["Setting camera thermal white-hot"]; + camUseNVG false; + true SetCamUseTi 0; + }; + case 3: { + camera_unit commandChat format["Setting camera thermal black-hot"]; + camUseNVG false; + true SetCamUseTi 1; + }; + case 4: { + camera_unit commandChat format["Setting camera thermal light-green-hot"]; + camUseNVG false; + true SetCamUseTi 2; + }; + case 5: { + camera_unit commandChat format["Setting camera thermal dark-green-hot"]; + camUseNVG false; + true SetCamUseTi 3; + }; + case 6: { + camera_unit commandChat format["Setting camera light-orange-hot "]; + camUseNVG false; + true SetCamUseTi 4; + }; + case 7: { + camera_unit commandChat format["Setting camera dark-orange-hot "]; + camUseNVG false; + true SetCamUseTi 5; + }; + case 8: { + camera_unit commandChat format["Setting camera orange body-heat "]; + camUseNVG false; + true SetCamUseTi 6; + }; + case 9: { + camera_unit commandChat format["Setting camera colored body-heat "]; + camUseNVG false; + true SetCamUseTi 7; + }; + }; + + [_player,_nightvision] call camera_set_nightvision; +}; + +camera_target = { + ARGVX3(0,_distance,0); + private["_objects", "_object"]; + _objects = nearestObjects [(screenToWorld [(safezoneX + 0.5 * safezoneW),(safezoneY + 0.5 * safezoneH)]),["LandVehicle","Man"],_distance]; + if (count _objects == 0) exitWith {nil}; + _object = (_objects select 0); + + if (isNil "_object" || isNull _object) exitWith {nil}; + + if (_object isKindOf "Man" && {!isPlayer _object}) exitWith {nil}; + if (_object isKindOf "LandVehicle" && {(count (crew _object)) == 0}) exitWith {nil}; + + _object +}; + +camera_enabled = { + ARGVX2(0,_player); + + def(_camera); + _camera = [_player,"camera"] call object_getVariable; + not(undefined(_camera)) +}; + +camera_keyDownHandler = { + //player commandChat format["camera_keyDownHandler = %1",_this]; + init(_player,camera_unit); + + ARGVX2(0,_this); + ARGVX2(1,_key); + ARGVX2(2,_shift); + ARGVX2(3,_control); + ARGVX2(4,_alt); + + [true,_key] call camera_update_key_tracker; + //player commandChat format["_key = %1",_key]; + + if (_shift) then { + camera_shift_held = true; + }; + + if (_control) then { + camera_control_held = true; + }; + + if (_alt) then { + camera_alt_held = true; + }; + + if (_key == DIK_LWIN) then { + camera_lwin_held = true; + }; + + if (_key == DIK_SPACE) then { + camera_space_held = true; + }; + + + + def(_camera); + _camera = [_player,"camera"] call object_getVariable; + if (undefined(_camera)) exitWith {nil}; + + [_player,_key,_shift] call camera_update_map; + if ([_player] call camera_get_map_open) exitWith {false}; + + [_player,_key] call camera_update_nightvision; + + def(_handled); + _handled = [_player,_key,_shift,_control] call camera_update_target; + + + [_player,_key,_shift] call camera_update_position; + + + _handled +}; + +camera_remove_keyDown = { + disableSerialization; + _display = findDisplay 46; + if (not(undefined(camera_keyDownHandler_id))) then { + _display displayRemoveEventHandler ["keyDown",camera_keyDownHandler_id]; + camera_keyDownHandler_id = nil; + }; +}; + +camera_setup_keyDown = { + init(_data,_this); + + disableSerialization; + _display = findDisplay 46; + if ( undefined(camera_keyDownHandler_id) ) then { + camera_keyDownHandler_id = _display displayAddEventHandler ["keyDown",format["[_this,%1] call camera_keyDownHandler",_data]]; + }; +}; + + +camera_mouseMoving_handler = { + //player commandChat format["camera_mouseMoving_handler %1",_this]; + + ARGVX2(0,_this); + ARGVX2(1,_xc); + ARGVX2(2,_yc); + + + init(_player,camera_unit); + + if (dialog) exitWith {false}; + + if ([_player] call camera_get_map_open) exitWith {false}; + + + [_player,_xc,_yc] call camera_update_heading; + false +}; + +camera_remove_mouseMoving = { + disableSerialization; + _display = findDisplay 46; + if (not(undefined(camera_mouseMoving_id))) then { + _display displayRemoveEventHandler ["mouseMoving",camera_mouseMoving_id]; + camera_mouseMoving_id = nil; + }; +}; + +camera_setup_mouseMoving = { + init(_data,_this); + disableSerialization; + _display = findDisplay 46; + if ( undefined(camera_mouseMoving_id) ) then { + camera_mouseMoving_id = _display displayAddEventHandler ["mouseMoving",format["[_this,%1] call camera_mouseMoving_handler",_data]]; + }; +}; + + +camera_heading2vectors = { + ARGVX2(0,_heading); + + def(_direction); + def(_angle); + def(_bank); + _direction = _heading select 0; + _angle = _heading select 1; + _bank = _heading select 2; + + _vecdx = sin(_direction) * cos(_angle); + _vecdy = cos(_direction) * cos(_angle); + _vecdz = sin(_angle); + + _vecux = cos(_direction) * cos(_angle) * sin(_bank); + _vecuy = sin(_direction) * cos(_angle) * sin(_bank); + _vecuz = cos(_angle) * cos(_bank); + + ([ [_vecdx,_vecdy,_vecdz],[_vecux,_vecuy,_vecuz] ]) +}; + +camera_vectorDir2heading = { + //player commandChat format["camera_vectorDir2heading %1",_this]; + ARGVX2(0,_vectorDir); + + def(_vecdz); + def(_vecdy); + def(_vecdx); + _vecdx = _vectorDir select 0; + _vecdy = _vectorDir select 1; + _vecdz = _vectorDir select 2; + + def(_angle); + _angle = asin(_vecdz); + _direction = asin(_vecdx / cos(_angle)); + + _angle = if (_angle < 0) then {360 - abs(_angle)} else {_angle}; + _direction = if (_direction < 0) then {360 - abs(_direction)} else {_direction}; + + def(_heading); + _heading = [_direction,_angle,0]; + + //player commandChat format["_convert = %1",_heading]; + _heading +}; + +camera_save_heading = { + ARGVX2(0,_player); + ARGVX2(1,_heading); + [_player,"camera_heading",_heading] call object_setVariable; +}; + +camera_get_heading = { + ARGVX2(0,_player); + + def(_camera); + _camera = [_player,"camera"] call object_getVariable; + + def(_heading); + _heading = [_player,"camera_heading"] call object_getVariable; + _heading = if (undefined(_heading)) then {[_player,[0,0,0]] call camera_heading_modelToWorld} else {_heading}; + _heading +}; + +camera_update_heading = { + ARGVX2(0,_player); + ARGVX2(1,_xc); + ARGVX2(2,_yc);; + + def(_heading); + _heading = [_player] call camera_get_heading; + + def(_dir); + _dir = _heading select 0; + _dir = _dir + _xc; + _dir = if (_dir > 360) then { _dir - 360 } else { _dir }; + _dir = if (_dir < 0) then { 360 - abs(_dir) } else { _dir}; + + def(_angle); + _angle = _heading select 1; + _angle = if (undefined(_angle)) then {0} else {_angle}; + _angle = _angle - _yc; + _angle = if (_angle > 360) then { _angle - 360 } else { _angle }; + _angle = if (_angle < 0) then { 360 - abs(_angle) } else { _angle}; + + def(_bank); + _bank = _heading select 2; + + _heading = [_dir,_angle,_bank]; + //player commandChat format["_update_heading = %1",_heading]; + [_player,_heading] call camera_set_heading; +}; + + +camera_set_heading = { + ARGVX2(0,_player); + ARGVX2(1,_heading); + + def(_camera); + _camera = [_player,"camera"] call object_getVariable; + if (undefined(_camera)) exitWith {nil}; + + //player commandChat format["_heading_before = %1",_heading]; + [_player,_heading] call camera_save_heading; + _heading = [_player] call camera_get_heading; + + //player commandChat format["_heading_last = %1",_heading]; + def(_vectors); + _vectors = [_heading] call camera_heading2vectors; + _camera setVectorDirAndUp _vectors; + + +}; + +camera_heading_modelToWorld = { + ARGVX2(0,_target); + ARGVX2(1,_heading); + + //player commandChat format["_heading2_before = %1",_heading]; + def(_tdir); + _tdir = getDir _target; + + def(_dir); + _dir = _heading select 0; + _dir = _dir + _tdir; + _dir = if (_dir > 360) then { _dir - 360 } else { _dir }; + _heading set [0,_dir]; + //player commandChat format["_heading2_after = %1",_heading]; + _heading +}; + +camera_destroy = { + //camera_unit commandChat format["camera_destroy %1",_this]; + ARGVX3(0,_player, objNull); + + def(_camera); + _camera = [_player,"camera"] call object_getVariable; + if (undefined(_camera)) exitWith {}; + + [_player,"camera",nil] call object_setVariable; + [_player] call camera_map_close; + + _camera cameraEffect ["terminate","back"]; + //camera_unit commandChat format["destroying camera! %1",_camera]; + camDestroy _camera; +}; + + +camera_create = { + ARGVX3(0,_player, objNull); + if (not(isPlayer _player)) exitWith {}; + + def(_pos); + def(_camera); + _pos = (getPosATL _player); + _camera = "camera" camCreate [(_pos select 0),(_pos select 1),((_pos select 2) + 3)]; + _camera cameraEffect ["Internal","LEFT"]; + _camera setPos _pos; + _camera camSetFoV 1; + _camera camPrepareFocus [-1,-1]; + _camera camCommitPrepared 0; + + showCinemaBorder false; + cameraEffectEnableHUD true; + clearRadio; + enableRadio true; + //_camera camCommand "MANUAL ON"; + _camera camCommand "INERTIA OFF"; + + [_player,"camera",_camera] call object_setVariable; + [_player,"camera_target",nil] call object_setVariable; + [_player,nil] call camera_set_heading; + [_player,nil] call camera_set_position; + [_player] call camera_map_close; + [_player,0] call camera_set_velocity; + [_player,1] call camera_set_max_velocity; + + + //hook for disabling camera when player dies + [_camera,_player] spawn { + ARGVX2(0,_camera); + ARGVX2(1,_player); + + camera_unit commandChat format["waiting!"]; + waitUntil { + (not(alive _player) || (isNull ([_player,"camera",objNull] call object_getVariable))) + }; + + [_player] call camera_destroy; + }; + + _camera +}; + +camera_mouseButtonClick_handler = { + //player commandChat format["camera_mouseButtonClick_handler %1",_this]; + ARGVX2(0,_this); + + init(_player,camera_unit); + + if (not([_player] call camera_get_map_open)) exitWith {false}; + + ARGVX2(0,_display); + ARGVX2(1,_button); + ARGVX2(2,_x); + ARGVX2(3,_y); + ARGVX2(5,_control); + + if (not(_button == 0)) exitWith {nil}; + + def(_target); + _target = [_player,"camera_target"] call object_getVariable; + if (not(undefined(_target))) exitWith { + player commandChat format["Cannot teleport while camera is attached to a target"]; + false + }; + + def(_world_pos); + _world_pos = _display posScreenToWorld [_x,_y]; + + def(_pos); + _pos = [_player] call camera_get_position; + _world_pos set [2,(_pos select 2)]; + + [_player,_world_pos] call camera_set_position; + mapAnimAdd [0,(ctrlMapScale _display),_world_pos]; + mapAnimCommit; + + [_player] call camera_map_close; + + true +}; + +camera_remove_mouseButtonClick = { + disableSerialization; + def(_control); + _control = call camera_map_control; + if (not(undefined(camera_mouseButtonClick_id))) then { + _control ctrlRemovEeventHandler ["MouseButtonClick",camera_mouseButtonClick_id]; + camera_mouseButtonClick_id = nil; + }; +}; + +camera_setup_mouseButtonClick = { + init(_data,_this); + disableSerialization; + def(_control); + _control = call camera_map_control; + if (undefined(camera_mouseButtonClick_id)) then { + camera_mouseButtonClick_id = _control ctrlAddEventHandler ["MouseButtonClick",format["[_this,%1] call camera_mouseButtonClick_handler",_data]]; + //player commandChat format["camera_mouseButtonClick_id = %1",camera_mouseButtonClick_id]; + }; +}; + +camera_MouseButtonDown_handler = { + //player commandChat format["camera_MouseButtonDown_handler %1",_this]; + ARGV2(0,_this); + + init(_player,camera_unit); + + ARGV2(0,_display); + ARGV2(1,_button); + ARGV2(2,_x); + ARGV2(3,_y); + ARGV2(4,_shift); + ARGV2(5,_control); + + + true +}; + +camera_remove_MouseButtonDown = { + disableSerialization; + def(_display); + _display = findDisplay 46; + if (not(undefined(camera_MouseButtonDown_id))) then { + _display displayRemoveEventHandler ["MouseButtonDown",camera_MouseButtonDown_id]; + camera_MouseButtonDown_id = nil; + }; +}; + +camera_setup_MouseButtonDown = { + init(_data,_this); + disableSerialization; + + def(_display); + _display = findDisplay 46; + if ( undefined(camera_MouseButtonDown_id) ) then { + camera_MouseButtonDown_id = _display displayAddEventHandler ["MouseButtonDown",format["[_this,%1] call camera_MouseButtonDown_handler",_data]]; + //player commandChat format["camera_MouseButtonDown_id = %1",camera_MouseButtonDown_id]; + }; +}; + +camera_MouseButtonUp_handler = { + //player commandChat format["camera_MouseButtonUp_handler %1",_this]; + ARGVX2(0,_this); + + init(_player,camera_unit); + + ARGVX2(0,_display); + ARGVX2(1,_button); + ARGVX2(2,_x); + ARGVX2(3,_y); + ARGVX2(5,_control); + + + true +}; + +camera_remove_MouseButtonUp = { + disableSerialization; + + def(_display); + _display = findDisplay 46; + if (not(undefined(camera_MouseButtonUp_id))) then { + _display displayRemoveEventHandler ["MouseButtonUp",camera_MouseButtonUp_id]; + camera_MouseButtonUp_id = nil; + }; +}; + +camera_setup_MouseButtonUp = { + init(_data,_this); + disableSerialization; + + def(_display); + _display = findDisplay 46; + if ( undefined(camera_MouseButtonUp_id) ) then { + camera_MouseButtonUp_id = _display displayAddEventHandler ["MouseButtonUp",format["[_this,%1] call camera_MouseButtonUp_handler",_data]]; + //player commandChat format["camera_MouseButtonUp_id = %1",camera_MouseButtonUp_id]; + }; +}; + + + + + +camera_start_loop = { + //player commandChat format["camera_start_loop %1"]; + camera_loop_active = true; + ["A3W_camera_oneachFrame", "onEachFrame", camera_loop] call BIS_fnc_addStackedEventHandler; +}; + +camera_stop_loop = { + //player commandChat format["camera_stop_loop %1"]; + camera_loop_active = false; + ["A3W_camera_oneachFrame", "onEachFrame"] call BIS_fnc_removeStackedEventHandler; +}; + + +camera_loop = { + if (not(camera_loop_active)) exitWith {}; + if (isNil "camera_unit" || {typeName camera_unit != "OBJECT" || {isNull camera_unit}}) exitWith {}; + + private["_player"]; + _player = camera_unit; + if (not([_player] call camera_enabled)) exitWith {}; + + [_player] call camera_hud_update; +}; + +camera_hud_target = nil; +camera_hud_update = { + private["_player", "_target"]; + _player = _this select 0; + _target = [3] call camera_target; + + if (isNil "_target" || { + typeName _target != typeName objNull || { + isNull _target || { + isNil "camera_hud_enabled"}}}) exitWith { + if (!isNil "camera_hud_target") then { + camera_hud_target = nil; + hintSilent ""; + }; + }; + + camera_hud_target = _target; + [_target] call camera_3d_tags_draw; + [_target] call camera_show_info; +}; + +camera_toggle = { + if (!isOBJECT(camera_unit)) then { + camera_unit = player; + }; + + init(_player,camera_unit); + + + def(_camera); + _camera = [_player,"camera"] call object_getVariable; + _camera = if (undefined(_camera)) then {objNull} else {_camera}; + + + if (isNull _camera) then { + camera_unit commandChat format["Enabling camera!"]; + [] call camera_setup_mouseMoving; + [] call camera_setup_keyDown; + [] call camera_setup_keyUp; + [] call camera_setup_mouseButtonClick; + [] call camera_setup_MouseZChanged; + [] call camera_setup_MouseButtonDown; + [] call camera_setup_MouseButtonUp; + [_player] call camera_create; + + [] call camera_start_loop; + + } + else { + camera_unit commandChat format["Disabling camera!"]; + [] call camera_remove_mouseMoving; + [] call camera_remove_keyDown; + [] call camera_remove_keyUp; + [] call camera_remove_mouseButtonClick; + [] call camera_remove_MouseZChanged; + [] call camera_remove_MouseButtonDown; + [] call camera_remove_MouseButtonUp; + + [] call camera_stop_loop; + + [_player] call camera_destroy; + + }; +}; + +camera_shift_held = false; +camera_control_held = false; +camera_alt_held = false; +camera_lwin_held = false; +camera_space_held = false; + + +camera_key_tracker = []; +camera_update_key_tracker = { + ARGVX2(0,_down); + ARGVX2(1,_key); + + if (not(_key in (actionKeys "MoveForward") || + _key in (actionKeys "MoveBack") || + _key in (actionKeys "TurnLeft") || + _key in (actionKeys "TurnRight") || + _key in (actionKeys "HeliUp") || + _key in (actionKeys "HeliDown"))) exitWith {}; + + if (_down && {(camera_key_tracker find _key) == -1}) then { + camera_key_tracker set [count(camera_key_tracker),_key]; + }; + + if (not(_down) && {(camera_key_tracker find _key) >= 0}) then { + camera_key_tracker = camera_key_tracker - [_key]; + }; +}; + + +camera_show_info = { + private["_target"]; + _target = _this select 0; + + hintSilent format["name: %1\ndamage: %2\nfatigue: %3\nrecoil: %4", + (name _target), + (damage _target), + (getFatigue _target), + (unitRecoilCoefficient _target) + ]; +}; + +camera_3d_tags_draw = { + private["_target"]; + _target = _this select 0; + + private["_player"]; + _player = camera_unit; + + + disableSerialization; + + if (not(alive _target) || visibleMap) exitWith {}; + + private["_vehicle"]; + _vehicle = (vehicle _target); + + if (not(alive _vehicle) || {not(isPlayer _target) || {not(alive _target)}}) exitWith {}; + + private["_distance", "_has_admin_camera", "_under_base"]; + _distance = _target distance ([_player,"camera",objNull] call object_getVariable); + + if (_distance > 25) exitWith {}; + + + private["_part", "_pos", "_pos3d", "_pos2d"]; + _part = if (_vehicle == _target) then {"neck" } else {"engine"}; + _pos = (_target selectionPosition _part); + _pos = [(_pos select 0), (_pos select 1), (_pos select 2) + 0.3]; + _pos3d = ((vehicle _target) modelToWorld (_pos)); + if (not(count _pos3d == 3)) exitWith {}; + + private["_size", "_font"]; + _size = 0.045; + _font = "PuristaMedium"; + + private["_text", "_icon"]; + _icon = "\A3\ui_f\data\map\markers\military\triangle_CA.paa"; + + _pos2d = worldToScreen((vehicle _target) modelToWorld (_pos)); + if (not(count (_pos2d) == 2)) exitWith {}; + + private["_x", "_y"]; + _x = abs((_pos2d select 0) - 0.5); + _y = abs((_pos2d select 1) - 0.5); + + _text = format["%1 (%2) [%3]", (name _target), (side _target), round(_distance)]; + + drawIcon3D [_icon, [0.71,0.28,0,0.8], _pos3d, 0.6,0.6, 180, _text, 2, _size, _font]; +}; + + +diag_log format["Loading camera functions loaded ..."]; +camera_functions_defined = true; \ No newline at end of file diff --git a/addons/camera/macro.h b/addons/camera/macro.h new file mode 100644 index 000000000..7cdedd47a --- /dev/null +++ b/addons/camera/macro.h @@ -0,0 +1,142 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} \ No newline at end of file diff --git a/client/init.sqf b/client/init.sqf index 906bd4062..567348c5b 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -131,6 +131,7 @@ A3W_scriptThreads pushBack execVM "addons\fpsFix\vehicleManager.sqf"; A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "client\functions\drawPlayerIcons.sqf"; [] execVM "addons\far_revive\FAR_revive_init.sqf"; +[] execVM "addons\camera\functions.sqf"; if (["A3W_teamPlayersMap"] call isConfigOn) then { diff --git a/client/systems/adminPanel/playerSelect.sqf b/client/systems/adminPanel/playerSelect.sqf index 860eea3ee..4861d1c8e 100644 --- a/client/systems/adminPanel/playerSelect.sqf +++ b/client/systems/adminPanel/playerSelect.sqf @@ -44,9 +44,14 @@ if (_uid call isAdmin) then { _spectating = ctrlText _spectateButton; if (_spectating == "Spectate") then { - _spectateButton ctrlSetText "Spectating"; - //player commandChat format ["Viewing %1.", name _target]; - + if (!([player] call camera_enabled)) then { + [] call camera_toggle; + }; + [player, _target] call camera_attach_to_target; + player commandChat format ["Viewing %1.", name _target]; + _spectateButton ctrlSetText "Spectating"; + + /* if (!isNil "_camadm") then { camDestroy _camadm; }; _camadm = "camera" camCreate ([(position vehicle _target select 0) - 5,(position vehicle _target select 1), (position vehicle _target select 2) + 10]); _camadm cameraEffect ["external", "TOP"]; @@ -69,11 +74,17 @@ if (_uid call isAdmin) then if (_rnum > 4) then {_rnum = 0;}; sleep 5; }; + */ } else { _spectateButton ctrlSetText "Spectate"; - player commandchat format ["No Longer Viewing.", name _target]; - player cameraEffect ["terminate","back"]; + player commandChat format ["No Longer Viewing.", name _target]; + + if ([player] call camera_enabled) then { + [] call camera_toggle; + }; + /*player cameraEffect ["terminate","back"]; if (!isNil "_camadm") then { camDestroy _camadm; }; + */ }; }; }; From 9b36576719d7335c7b21aeb3d2198c4d560700c7 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 3 Dec 2014 16:08:28 -0800 Subject: [PATCH 126/544] Updated mission.sqm. --- mission.sqm | 292 +++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 234 insertions(+), 58 deletions(-) diff --git a/mission.sqm b/mission.sqm index 630c48246..34921039c 100644 --- a/mission.sqm +++ b/mission.sqm @@ -70,7 +70,8 @@ class Mission "A3_Modules_F_Sites", "a3_characters_f_beta", "a3_characters_f_gamma", - "a3_characters_f" + "a3_characters_f", + "A3_Structures_F_EPA_Mil_Scrapyard" }; addOnsAuto[]= { @@ -85,12 +86,13 @@ class Mission "A3_Structures_F_Households_Slum", "A3_Structures_F_Civ_Market", "A3_Structures_F_Civ_Camping", + "A3_Structures_F_EPA_Mil_Scrapyard", "a3_map_altis" }; randomSeed=14957468; class Intel { - briefingName="A3Wasteland Altis v1.0b"; // it would be great if you could keep "A3" in the name, like "ABC A3Wasteland" instead of "ABC Wasteland" :) + briefingName="A3Wasteland Altis v1.0b"; overviewText="Wasteland survival sandbox by Team Wasteland - visit A3Wasteland.com for more details"; resistanceWest=0; startWeather=0.10000001; @@ -109,7 +111,7 @@ class Mission }; class Groups { - items=51; + items=53; class Item0 { side="WEST"; @@ -122,7 +124,6 @@ class Mission id=0; side="WEST"; vehicle="C_man_w_worker_F"; - //player="PLAY CDG"; // If you want to enable the headless client slot, just uncomment this line forceHeadlessClient=1; leader=1; skill=0.60000002; @@ -2032,13 +2033,55 @@ class Mission items=1; class Item0 { - position[]={3971.4854,4.7541585,15072.055}; - azimut=190; + position[]={12399.45,24.942524,15565.64}; + azimut=83; id=158; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; + text="GunStore5"; + init="[this] spawn A3W_fnc_setupStoreNPC"; + description="DO NOT MODIFY IN EDITOR"; + }; + }; + }; + class Item51 + { + side="LOGIC"; + class Vehicles + { + items=1; + class Item0 + { + position[]={5861.8003,225.62582,20106.82}; + azimut=282; + id=159; + side="LOGIC"; + vehicle="C_man_1_1_F"; + leader=1; + skill=0.60000002; + text="VehStore6"; + init="[this] spawn A3W_fnc_setupStoreNPC"; + description="DO NOT MODIFY IN EDITOR"; + }; + }; + }; + class Item52 + { + side="LOGIC"; + class Vehicles + { + items=1; + class Item0 + { + position[]={3578.8296,26.278221,10781.126}; + azimut=69; + id=160; + side="LOGIC"; + vehicle="C_man_1_1_F"; + leader=1; + skill=0.60000002; text="VehStore5"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; @@ -2048,12 +2091,12 @@ class Mission }; class Vehicles { - items=24; + items=31; class Item0 { position[]={5892.3325,225.05762,20124.521}; azimut=24.888161; - id=159; + id=161; side="EMPTY"; vehicle="Land_i_House_Big_01_V1_F"; skill=0.2; @@ -2064,7 +2107,7 @@ class Mission { position[]={5802.2612,223.31776,20114.979}; azimut=97.660759; - id=160; + id=162; side="EMPTY"; vehicle="Land_u_House_Small_02_V1_F"; skill=0.2; @@ -2075,7 +2118,7 @@ class Mission { position[]={5812.7163,223.88718,20112.508}; azimut=97.660759; - id=161; + id=163; side="EMPTY"; vehicle="Land_u_House_Small_02_V1_F"; skill=0.2; @@ -2085,7 +2128,7 @@ class Mission class Item3 { position[]={5904.832,225.58371,20186.275}; - id=162; + id=164; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -2096,7 +2139,7 @@ class Mission { position[]={5778.2402,221.67844,20113.643}; azimut=7.7879138; - id=163; + id=165; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -2107,7 +2150,7 @@ class Mission { position[]={5883.7109,227.44626,20088.664}; azimut=38.791935; - id=164; + id=166; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -2118,7 +2161,7 @@ class Mission { position[]={5941.0063,219.62125,20237.648}; azimut=-76.434235; - id=165; + id=167; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -2129,7 +2172,7 @@ class Mission { position[]={5853.6426,218.96228,20175.209}; azimut=85.118469; - id=166; + id=168; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -2140,7 +2183,7 @@ class Mission { position[]={5851.854,221.32671,20162.656}; azimut=124.47146; - id=167; + id=169; side="EMPTY"; vehicle="Land_Slum_House02_F"; skill=0.2; @@ -2151,7 +2194,7 @@ class Mission { position[]={5847.7378,222.46086,20154.539}; azimut=133.80367; - id=168; + id=170; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -2162,7 +2205,7 @@ class Mission { position[]={5840.5811,223.07314,20150.303}; azimut=153.61746; - id=169; + id=171; side="EMPTY"; vehicle="Land_Slum_House01_F"; skill=0.2; @@ -2173,7 +2216,7 @@ class Mission { position[]={5830.8071,222.7514,20148.615}; azimut=177.95645; - id=170; + id=172; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -2184,7 +2227,7 @@ class Mission { position[]={5838.062,217.12964,20181.893}; azimut=-37.911983; - id=171; + id=173; side="EMPTY"; vehicle="Land_Slum_House01_F"; skill=0.2; @@ -2195,7 +2238,7 @@ class Mission { position[]={5832.1758,217.55113,20175.316}; azimut=-46.636852; - id=172; + id=174; side="EMPTY"; vehicle="Land_Slum_House02_F"; skill=0.2; @@ -2206,7 +2249,7 @@ class Mission { position[]={5826.5269,218.02791,20169.475}; azimut=-46.636852; - id=173; + id=175; side="EMPTY"; vehicle="Land_Slum_House01_F"; skill=0.2; @@ -2217,7 +2260,7 @@ class Mission { position[]={5819.561,219.2971,20159.201}; azimut=-90.399368; - id=174; + id=176; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -2228,7 +2271,7 @@ class Mission { position[]={5841.7822,222.42061,20158.293}; azimut=-44.915901; - id=175; + id=177; side="EMPTY"; vehicle="Land_StallWater_F"; skill=0.2; @@ -2239,7 +2282,7 @@ class Mission { position[]={5833.0811,221.07756,20159.025}; azimut=-66.432838; - id=176; + id=178; side="EMPTY"; vehicle="Land_Cages_F"; skill=0.2; @@ -2249,7 +2292,7 @@ class Mission class Item18 { position[]={5843.8735,219.25572,20169.4}; - id=177; + id=179; side="EMPTY"; vehicle="Land_CratesShabby_F"; skill=0.2; @@ -2260,7 +2303,7 @@ class Mission { position[]={5837.647,220.00575,20164.465}; azimut=-44.915901; - id=178; + id=180; side="EMPTY"; vehicle="Land_MarketShelter_F"; skill=0.2; @@ -2271,7 +2314,7 @@ class Mission { position[]={5836.4023,222.51828,20154.047}; azimut=-174.08286; - id=179; + id=181; side="EMPTY"; vehicle="Land_Sacks_heap_F"; skill=0.2; @@ -2282,7 +2325,7 @@ class Mission { position[]={5841.7148,217.69827,20176.627}; azimut=-123.43818; - id=180; + id=182; side="EMPTY"; vehicle="Land_WoodenCart_F"; skill=0.2; @@ -2293,7 +2336,7 @@ class Mission { position[]={5838.0376,219.93082,20164.814}; azimut=163.54198; - id=181; + id=183; side="EMPTY"; vehicle="Campfire_burning_F"; skill=0.2; @@ -2304,17 +2347,73 @@ class Mission { position[]={5846.2808,218.43889,20175.215}; azimut=-44.915901; - id=182; + id=184; side="EMPTY"; vehicle="Campfire_burning_F"; skill=0.2; init="[this, true] call A3W_fnc_setupMissionObject"; description="DO NOT MODIFY IN EDITOR"; }; + class Item24 + { + position[]={24678.867,2.3929932,18970.639}; + id=185; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item25 + { + position[]={17484.883,45.786415,16465.258}; + id=186; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item26 + { + position[]={14860.01,8.8866749,11057.159}; + id=187; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item27 + { + position[]={21318.879,5.5621166,10468.235}; + id=188; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item28 + { + position[]={5630.6445,204.18716,19540.102}; + id=189; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item29 + { + position[]={11725.468,54.069294,18284.35}; + id=190; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item30 + { + position[]={5947.2061,101.94163,12468.482}; + id=191; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; }; class Markers { - items=178; + items=188; class Item0 { position[]={3612.1487,12.11851,13020.892}; @@ -2555,7 +2654,7 @@ class Mission }; class Item34 { - position[]={5062.5967,70.270027,13039.418}; + position[]={7042.917,13.922895,11416.329}; name="Mission_1"; type="Empty"; colorName="ColorOrange"; @@ -2569,14 +2668,14 @@ class Mission }; class Item36 { - position[]={12863.644,85.280762,16739.199}; + position[]={12571.198,33.202263,16321.856}; name="Mission_3"; type="Empty"; colorName="ColorOrange"; }; class Item37 { - position[]={14719.545,17.91,16588.41}; + position[]={15903.801,45.815987,18170.334}; name="Mission_4"; type="Empty"; colorName="ColorOrange"; @@ -2590,42 +2689,42 @@ class Mission }; class Item39 { - position[]={22902.482,6.8000588,18832.326}; + position[]={19892.092,64.21077,17829.006}; name="Mission_7"; type="Empty"; colorName="ColorOrange"; }; class Item40 { - position[]={26832.408,27.07863,24353.201}; + position[]={26838.061,26.449696,24341.111}; name="Mission_8"; type="Empty"; colorName="ColorOrange"; }; class Item41 { - position[]={20944.896,25.394508,7337.4028}; + position[]={21197.471,18.571796,7365.332}; name="Mission_9"; type="Empty"; colorName="ColorOrange"; }; class Item42 { - position[]={10481.982,92.54425,8165.8809}; + position[]={12129.411,8.1706009,10499.287}; name="Mission_10"; type="Empty"; colorName="ColorOrange"; }; class Item43 { - position[]={2727.3538,15.386948,10029.145}; + position[]={3607.2749,15.698098,10276.05}; name="Mission_11"; type="Empty"; colorName="ColorOrange"; }; class Item44 { - position[]={9214.7344,16.21249,21595.523}; + position[]={9794.957,5.1698751,22320.566}; name="Mission_12"; type="Empty"; colorName="ColorOrange"; @@ -2646,7 +2745,7 @@ class Mission }; class Item47 { - position[]={14610.646,20.695858,23086.605}; + position[]={14311.896,97.153267,21831.371}; name="Mission_15"; type="Empty"; colorName="ColorOrange"; @@ -2660,21 +2759,21 @@ class Mission }; class Item49 { - position[]={20723.074,29.782133,10239.525}; + position[]={21215.496,1.9212902,10656.045}; name="Mission_17"; type="Empty"; colorName="ColorOrange"; }; class Item50 { - position[]={14253.941,4.9646177,13012.583}; + position[]={16720.473,10.761951,13549.766}; name="Mission_18"; type="Empty"; colorName="ColorOrange"; }; class Item51 { - position[]={8368.5674,13.81883,10719.636}; + position[]={9187.7529,109.82971,11440.142}; name="Mission_19"; type="Empty"; colorName="ColorOrange"; @@ -3453,21 +3552,21 @@ class Mission }; class Item146 { - position[]={18295.152,-6.7252245,8136.5732}; + position[]={13664.722,-0.120299,11892.979}; name="SunkenMission_0"; type="Empty"; colorName="ColorWhite"; }; class Item147 { - position[]={16985.289,-0.27175087,13616.465}; + position[]={15421.785,-0.20875727,14276.165}; name="SunkenMission_1"; type="Empty"; colorName="ColorWhite"; }; class Item148 { - position[]={9866.0479,0.014741103,11111.971}; + position[]={13106.126,-0.24947838,9494.5898}; name="SunkenMission_2"; type="Empty"; colorName="ColorWhite"; @@ -3481,35 +3580,35 @@ class Mission }; class Item150 { - position[]={3505.4102,-0.023277842,11439.938}; + position[]={3000.5508,-0.29678684,13521.053}; name="SunkenMission_4"; type="Empty"; colorName="ColorWhite"; }; class Item151 { - position[]={3849.9155,0.00057628582,15028.444}; + position[]={2357.9688,0.1024858,19374.357}; name="SunkenMission_5"; type="Empty"; colorName="ColorWhite"; }; class Item152 { - position[]={5281.2344,0.23328479,22658.328}; + position[]={6276.0981,0.2718358,22660.088}; name="SunkenMission_6"; type="Empty"; colorName="ColorWhite"; }; class Item153 { - position[]={21207.197,0.20755874,20124.484}; + position[]={17603.389,-0.027867785,18805.65}; name="SunkenMission_7"; type="Empty"; colorName="ColorWhite"; }; class Item154 { - position[]={24573.881,-0.0090859979,16154.248}; + position[]={23156.707,-0.036080703,24039.277}; name="SunkenMission_8"; type="Empty"; colorName="ColorWhite"; @@ -3662,25 +3761,102 @@ class Mission }; class Item175 { - position[]={3968.136,3.2309315,15051.626}; - name="VehStore5_landSpawn"; + position[]={12412.868,24.364281,15579.608}; + name="GunStore5_objSpawn"; type="Empty"; colorName="ColorBlack"; }; class Item176 { - position[]={4001.2522,6.2997766,15050.635}; - name="VehStore5_heliSpawn"; + position[]={5921.7031,224.43871,20139.104}; + name="VehStore6_heliSpawn"; type="Empty"; colorName="ColorBlack"; }; class Item177 { - position[]={3922.1943,0,15060.141}; + position[]={5861.2695,223.71884,20135.684}; + name="VehStore6_landSpawn"; + type="Empty"; + colorName="ColorBlack"; + }; + class Item178 + { + position[]={3630.4226,0,10890.602}; name="VehStore5_seaSpawn"; type="Empty"; colorName="ColorBlack"; }; + class Item179 + { + position[]={3568.3159,39.908432,10713.679}; + name="VehStore5_heliSpawn"; + type="Empty"; + colorName="ColorBlack"; + }; + class Item180 + { + position[]={3620.7668,26.371962,10751.382}; + name="VehStore5_landSpawn"; + type="Empty"; + colorName="ColorBlack"; + }; + class Item181 + { + position[]={24673.639,2.5595996,18967.119}; + name="Sell_Vehicle_Pad_Icon"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item182 + { + position[]={17479.654,45.452381,16461.738}; + name="Sell_Vehicle_Pad_Icon_1"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item183 + { + position[]={14854.781,8.6214705,11053.64}; + name="Sell_Vehicle_Pad_Icon_2"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item184 + { + position[]={21313.65,5.7161169,10464.716}; + name="Sell_Vehicle_Pad_Icon_3"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item185 + { + position[]={5627.0688,204.00546,19542.371}; + name="Sell_Vehicle_Pad_Icon_4"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item186 + { + position[]={11720.239,54.827972,18280.83}; + name="Sell_Vehicle_Pad_Icon_5"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item187 + { + position[]={5941.9775,101.78477,12464.963}; + name="Sell_Vehicle_Pad_Icon_6"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; }; }; class Intro From 3eb696b6b27ba144fcdc4c3c2cac48740a54290c Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 3 Dec 2014 17:20:41 -0800 Subject: [PATCH 127/544] Add blurriness at water's edge --- addons/water_edge/functions.sqf | 57 +++++++++++++++++++++++++++++++++ client/init.sqf | 2 ++ 2 files changed, 59 insertions(+) create mode 100644 addons/water_edge/functions.sqf diff --git a/addons/water_edge/functions.sqf b/addons/water_edge/functions.sqf new file mode 100644 index 000000000..d4aaae764 --- /dev/null +++ b/addons/water_edge/functions.sqf @@ -0,0 +1,57 @@ + +if (not(isNil "water_edge_functions_defined")) exitWith {nil}; +diag_log format["Loading water edged functions ..."]; + +watter_edge_effect = objNull; +water_edge_colorized = false; +water_edge_check_effects = { + private["_z"]; + _z = (positionCameraToWorld [0,0,0] select 2); + + private["_in_water_edge"]; + _in_water_edge = (_z > -0.1 && _z < 0.09); + if (not(water_edge_colorized) && _in_water_edge) then { + 1 setFog 1; + watter_edge_effect = ppEffectCreate ["WetDistortion", 300]; + watter_edge_effect ppEffectEnable true; + watter_edge_effect ppEffectAdjust [ + 0, //blurriness + 1.0, //effect strength top + 1.0, //effect strength bottom + + //Wave Speed + 1.0, + 0.0, + 0.0, + 1.0, + //Wave Amplitues + 0.03, + 0.02, + 0.01, + 0.01, + //Wave Coeficients + 0.08, + 0.08, + 0.0, + 1.0 + ]; + if (sunOrMoon > 0) then { + watter_edge_effect ppEffectCommit 0; + }; + water_edge_colorized = true; + }; + + if (water_edge_colorized) then { + 1 setFog 1; + }; + + if (water_edge_colorized && not(_in_water_edge)) then { + 1 setFog 0; + ppEffectDestroy watter_edge_effect; + water_edge_colorized = false; + }; +}; + +["A3W_water_oneachFrame", "onEachFrame", {[] call water_edge_check_effects }] call BIS_fnc_addStackedEventHandler; +diag_log format["Water edged functions loaded"]; +water_edge_functions_defined = true; \ No newline at end of file diff --git a/client/init.sqf b/client/init.sqf index 567348c5b..d848ab206 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -132,6 +132,8 @@ A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "client\functions\drawPlayerIcons.sqf"; [] execVM "addons\far_revive\FAR_revive_init.sqf"; [] execVM "addons\camera\functions.sqf"; +[] execVM "addons\water_edge\functions.sqf"; + if (["A3W_teamPlayersMap"] call isConfigOn) then { From c5a9d1144d2bccc19a6421d2377a2b842a48d409 Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 3 Dec 2014 20:20:37 -0800 Subject: [PATCH 128/544] Modify view distance at the water's edge as well --- addons/water_edge/functions.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/water_edge/functions.sqf b/addons/water_edge/functions.sqf index d4aaae764..e3530bbcd 100644 --- a/addons/water_edge/functions.sqf +++ b/addons/water_edge/functions.sqf @@ -43,9 +43,11 @@ water_edge_check_effects = { if (water_edge_colorized) then { 1 setFog 1; + setObjectViewDistance 15; }; if (water_edge_colorized && not(_in_water_edge)) then { + setObjectViewDistance viewDistance; 1 setFog 0; ppEffectDestroy watter_edge_effect; water_edge_colorized = false; From 25911ab523241b51b98e7c7d140e0e8d682250be Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 4 Dec 2014 05:18:16 -0800 Subject: [PATCH 129/544] Add drug items LSD Marijuana Cocaine Heroin --- client/icons/cocaine.paa | Bin 0 -> 1522 bytes client/icons/heroin.paa | Bin 0 -> 1522 bytes client/icons/lsd.paa | Bin 0 -> 1522 bytes client/icons/marijuana.paa | Bin 0 -> 1522 bytes client/items/drugs/functions.sqf | 217 +++++++++++++++++++ client/items/drugs/init.sqf | 32 +++ client/items/init.sqf | 1 + client/systems/generalStore/getInventory.sqf | 29 +++ storeConfig.sqf | 6 + stringtable.xml | 12 + 10 files changed, 297 insertions(+) create mode 100644 client/icons/cocaine.paa create mode 100644 client/icons/heroin.paa create mode 100644 client/icons/lsd.paa create mode 100644 client/icons/marijuana.paa create mode 100644 client/items/drugs/functions.sqf create mode 100644 client/items/drugs/init.sqf diff --git a/client/icons/cocaine.paa b/client/icons/cocaine.paa new file mode 100644 index 0000000000000000000000000000000000000000..91fa5d7bfc55da66c5f706518666b95dde443d93 GIT binary patch literal 1522 zcmd^b&)M76VnduKHjnu*hCfm04-HmWYgj0UJs`pMq zIN9MvtZC^!@LXmedbz({Shbwh{UFiP6)c34rI?j;6KrnpNc408Pp{SvMeB-M{U+-E z*Q-9Wj>t8_dM3O95g0GH?bh8(7b`20ZH=gFp-0Qj1LX|3RjogXselb#t#maPGhfoJ zFMGyrOMT?GzPZ0xSzeU8kzN|}f;)b=>?h~dlpe?0wV z(>ibVq|C350w`o4pEdjhqN9%EM5nEuULzEl3l~KeLy~%)`BUEOmB&{^MP6%mJM38> zh1k=XcnwEjet0UF zIk@nQ^*E0$WH8%5l`)IiP0CHT%tRy3 fz`dP|nIG&pDg2`%pEqB)_fvyKDTB*#78893%m#vH literal 0 HcmV?d00001 diff --git a/client/icons/heroin.paa b/client/icons/heroin.paa new file mode 100644 index 0000000000000000000000000000000000000000..4cd07b4530587719b8f4006a58f6d4b355f353d5 GIT binary patch literal 1522 zcmbtUT}TvB6h2csxjn3|(WM8IMs}sBpfHdK!`Y141f|JlM1lz0)`;9Sf~>Gwvj>T& z4PSZ@lwKmDK#_q;=*KYXC84CXwGg)2jeXGEBm`|b=g#ayD-oLq?#%t>oO^!1xuWU! z`?MN=qt5{VnM`IE$4$O^!X^q~zpqXqEZ`!1P*L{FxbMW(jfxv0z&Nh_MFI(cT<0gH zP}}3J?QxhUfUfHdD(L(SCd{$AZp;WBQ^M063xasI(+I@}F2*dqrsfxIskH{RH!;4K z{4q=b()0bju_xFr02$j9=osxofMPZ6#Lw!5Bc@qx=>bk(TV6gpf<_?uHOl=nQ2_Io zlP8HEFd_}k$~lYcZkux>eT%$)kX5yK$kiId6nH)dF#mtZhO`m%C=Z6op2z!4RImtQ zy*cEBpFHU2(fUG+*N1%J%QiJwxr`#HV{N$)6|+ zvg^lSeJnM3hp?u~Fb7wQSBiyITrYs^-PB#WoOp$YjN>IZQu4R=4Qg;Kcx!Y-jKlHnMLs5-=31>RQtO`33rQa}$f zUHu}tK7RN5bB;8(T=gDlZk)vbifGQnHLrX{k1HBlxZdG_hQ`Q+m`y_&`%XScBwXZk z=a=?WeV0X30sB~Y#nqang-q9kEm`|q>;xxX9}ql)qc8#qo(8f(8h1}Rs=tpBMm4~# nsjk7-UJQv%6F_6{F8{%H2i~aI&lTsDRPUDE6PB55UwXd*Elq&w literal 0 HcmV?d00001 diff --git a/client/icons/lsd.paa b/client/icons/lsd.paa new file mode 100644 index 0000000000000000000000000000000000000000..8df065d45e672ff8f0cd8fee07869809b949183e GIT binary patch literal 1522 zcmbtUYe-Z<6h2q?`Y0buwq>TJW?F=x5KCnX_hRh2)wVaQaB~VMHorAeCiQ^fENW9z>SQbk6Lf)gOX%U@r6BGjqN(-#IfPvsh$D zt|edA0YFbr&oYiz$u`0ajj%;tY9=h;AiTnCwo5oK!%>Zn10ujv9Amd+NCwcsA+Xke zupWtL3_vxQ#Q2(``lxbKH(>xpsRbC=V{J_HVuN}HY$56Uc4QJ(6iK30|6_|z8l7`A z=P8OOqRq~}YU;ib&G{W@BV%8Jl*V`GrnU2Y1c7uJW}$eVG;6(%{Hm%N^l_T2TRVQ& zhoxbQ5oDb-Zk}Ou&hYc=>{Ur!Z0^*3;% z_}mDyoc^fK5c-LJ5VoOy6Za=_J`_U=&%YXt`EdOdhpN(=V4Kx!-q2v&)Ihs2e?hm2 z^9S_**f-e0JaqxS)LV?*F8wO``Ai+UkPi>v1pF&sUQg@HjrbDtN!39*$6X zxIQOf{-k?hl_t)Q`Ho+x73OG#QwbZ;vIabz)qC&8`S~&*RSn}~9&gG0{>MY513Vf0 z&^hfduTVZ436Z{;Et+%Z!&km~NJ`9>@=^7PZg2ZkV=SuV(F9R^<@wdb2Aenq#rLxO ztItThy`Oy#k4^0I{+E<-+eYW3n8B7{MKOH!GZ<9W)Qk1_T%6_O5!fGEtxutZXqMQ= zzHjV!!uuPc6zLippC0t|y2NiU+44B%%N+_TA2&QRsX7gt6td2z~Y!2)FD+ literal 0 HcmV?d00001 diff --git a/client/icons/marijuana.paa b/client/icons/marijuana.paa new file mode 100644 index 0000000000000000000000000000000000000000..af30abacda20baf1deb127be9197bd107421175d GIT binary patch literal 1522 zcmbVMO=uHA6n*n^Q2k{()O_mC~ClY@(=A_}!q>7|Or2tgvWsHm}pC`6v`?WQKQn36tblKtk*`@WfZZ$`#Y zD4-t+oeJ0hpjIfH9IW4h8yyj3w%fPX>d7Dt(VpPmtrD4DgnE^QM3Tz|@Ux zbkd0Bjc6w#fDkU%gP(-qhu^{gJ9WZ2d)~sj-k7aMveJhWVj413N^$6W{9o> z!goB>*sqf{uh2N+|N5-BQD1_{geNjV>*MnhN829p`MDRXSZl1d(c2}AXs>ah$nms& zdHFY%y0Ap&UqHx=WjfAg?fI;Gi2byEXZo`-Qk*YP`Oth>g0@M2<>l@(W`0yv-Sm78 zPw{%s^>RGtdnh)4pU6x;EvqtFu#bvXI5U0yMG`{yDuFNF{Og&JwP4!H&x}Oub zeetEy_)>v%x@Eb$rdPlgvKqF&*5j*Bv+jJ(ZR&5O9%kWH>LI0&c@MaRc>J7p`s;h8 zsw1t}+h0QTV`;8Bt~$bW8R!TZ>$(tiTiep7@^SVORQW(6J_XYrVzTsvQ10H^{;cX( z)#mja;ILj7YjuiAjp$u9VozqGhge2Pl4N%q?mShRiR-S}+I%Y-_)RfO!@EksGtoYt zPvMe1$7SmM#8`JaVb3+go=;e561t`xq&;*}rB9bhkFWU^F1A{k^`FO;1%G9M*_z?W|Cm27@n06)adzZesSbhC8P19}kqSATVrgnWjc76Oc KPYXzEtNjbz4tN^? literal 0 HcmV?d00001 diff --git a/client/items/drugs/functions.sqf b/client/items/drugs/functions.sqf new file mode 100644 index 000000000..fe3290bca --- /dev/null +++ b/client/items/drugs/functions.sqf @@ -0,0 +1,217 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +//@file Version: 1.0 +//@file Name: functions.sqf +//@file Author: micovery +//@file Description: Drug effects + +drug_lsd_effects = { _this spawn { + private["_player", "_duration"]; + _player = _this select 0; + _duration = _this select 1; + + + private["_effect1","_effect2"]; + _effect1 = ppEffectCreate ["WetDistortion",300]; + _effect1 ppEffectEnable true; + _effect1 ppEffectAdjust [0.5,1,1,4.1,3.7,2.5,1.85,0.0051,0.0051,0.0051,0.0051,0.5,0.3,10,6.0]; + _effect1 ppEffectCommit 5; + + _effect2 = ppEffectCreate ["chromAberration",200]; + _effect2 ppEffectEnable true; + _effect2 ppEffectAdjust [0.2,0.2,true]; + _effect2 ppEffectCommit 1; + + + private["_ps1"]; + _ps1 = "#particlesource" createVehicleLocal getPos _player; + _ps1 setParticleCircle [0,[0,0,0]]; + + _ps1 setParticleRandom [0,[2,2,2],[0.2,0.2,3],1, 3,[0,0,0,0],0.01,0.03]; + _ps1 setParticleParams ["\a3\animals_f\butterfly","","SpaceObject",1,5,[0,0,-0.5],[0,0,0],0,1.275,1,0,[1,1],[[0,1,0 ,1],[0,1,0 ,1],[0,1,0 ,1]],[0,0],0,0,"","",_player]; + + _ps1 setDropInterval 0.35; + + + playMusic ["LeadTrack03_F_Bootcamp", 0]; + + _duration = _duration/2; + private["_timeout"]; + _timeout = time + _duration; + waitUntil { + private["_position","_weite"]; + _position = getPos _player; + _weite = 100; + + private["_x","_y","_z"]; + _x = _position select 0; + _y = _position select 1; + _z = _position select 2; + + private["_w1","_w2","_w3"]; + _w1 = (random _weite) - (random _weite); + _w2 = (random _weite) - (random _weite); + _w3 = random 7; + + private["_f1","_f2","_f3"]; + _f1 = random 1; + _f2 = random 1; + _f3 = random 1; + + private["_g1","_g2","_g3"]; + _g1 = random 5; + _g2 = random 10; + _g3 = random 5; + + private["_v1","_v2","_v3"]; + _v1 = random 0.05; + _v2 = random 0.05; + _v3 = 0.1 - random 0.075; + private["_index"]; + _index = [1,6,7,8,13] select floor(random 5); + drop [["\A3\data_f\ParticleEffects\Universal\Universal",16,12,_index,0], "","Billboard",1,_duration,[_x + _w1,_y + _w2,_z + _w3],[_v1,_v2,_v3],1,1.275,1,0,[_g1,_g2,_g3],[ [_f1,_f2,_f3,1],[_f2,_f1,_f3,1],[_f3,_f2,_f1,1] ],[1000],3,0.2,"","",""]; + + sleep 0.05; + (time > _timeout) + }; + + sleep _duration; + playMusic ""; + ppEffectDestroy _effect1; + ppEffectDestroy _effect2; + deleteVehicle _ps1; + +};}; + + +drug_marijuana_effects = { _this spawn { + private["_player", "_duration"]; + _player = _this select 0; + _duration = _this select 1; + + + private["_shell"]; + _shell = "SmokeShellGreen" createVehicleLocal position _player; + _shell attachTo [(vehicle _player),[0,0,0]]; + + private["_effect1","_effect2"]; + _effect1 = ppEffectCreate ["colorCorrections",1501]; + _effect1 ppEffectEnable true; + + _effect2 = ppEffectCreate ["chromAberration",200]; + _effect2 ppEffectEnable true; + + + private["_ps1"]; + _ps1 = "#particlesource" createVehicleLocal getPos _player; + _ps1 setParticleCircle [0,[0,0,0]]; + + _ps1 setParticleRandom [0,[2,2,2],[0.2,0.2,3],1, 3,[0,0,0,0],0.01,0.03]; + _ps1 setParticleParams ["\a3\animals_f\butterfly","","SpaceObject",1,5,[0,0,-0.5],[0,0,0],0,1.275,1,0,[1,1],[[0,1,0 ,1],[0,1,0 ,1],[0,1,0 ,1]],[0,0],0,0,"","",_player]; + + _ps1 setDropInterval 0.35; + + playMusic ["defcon", 0]; + enableEnvironment false; + + _player enableFatigue true; + private["_timeout"]; + _timeout = time + _duration; + + waitUntil { + _effect1 ppEffectAdjust [1,1,0,[0,0,0,0.5],[0.9 + (random 10)/100, 0.60 + (random 20)/100, 0.15 + (random 10)/100, random 1], [0.5 +(random 40)/100, 0.75 + (random 10)/100, 0.01 + (random 10)/100, random 1]]; + _effect1 ppEffectCommit 1; + + _effect2 ppEffectAdjust [0.01,0.01,true]; + _effect2 ppEffectCommit 1; + _player setFatigue 1; + + (random 3) fadeMusic (random 1); + sleep 3; + (time > _timeout) + }; + + _player setFatigue 0; + _player enableFatigue false; + enableEnvironment true; + playMusic ""; + deleteVehicle _shell; + ppEffectDestroy _effect1; + ppEffectDestroy _effect2; + deleteVehicle _ps1; +};}; + +drug_cocaine_effects = { _this spawn { + private["_player", "_duration"]; + _player = _this select 0; + _duration = _this select 1; + + + private["_effect1","_force"]; + _effect1 = ppEffectCreate ["chromAberration",200]; + _effect1 ppEffectEnable true; + + playMusic ["BackgroundTrack03_F", 0]; + + + private["_timeout"]; + _timeout = time + _duration; + waitUntil { + _force = random 10; + _effect1 ppEffectAdjust [_force / 24,_force / 24,false]; + _effect1 ppEffectCommit (0.3 + random 0.1); + waituntil {ppEffectCommitted _effect1}; + (time > _timeout) + }; + + playMusic ""; + ppEffectDestroy _effect1; +};}; + + + +drug_heroin_effects = { _this spawn { + private["_player", "_duration"]; + _player = _this select 0; + _duration = _this select 1; + + + + private["_effect1","_effect2"]; + _effect1 = ppEffectCreate ["RadialBlur",37]; + _effect1 ppEffectEnable true; + + _effect2 = ppEffectCreate ["chromAberration",200]; + _effect2 ppEffectEnable true; + + playMusic ["LeadTrack03a_F_EPB", 0]; + _player enableFatigue true; + + private["_timeout"]; + _timeout = time + _duration; + waitUntil { + + _effect2 ppEffectAdjust [random 0.1,random 0.1,true]; + _effect2 ppEffectCommit 3; + _player setFatigue 1; + + 3 setFog (random 1); + if ((random 100) < 5) then { + waituntil { + addCamShake [random 10,random 1,random 3]; + ppEffectCommitted _effect2 + }; + }; + (time > _timeout) + }; + + 3 setFog 0; + playMusic ""; + _player setFatigue 0; + _player enableFatigue false; + ppEffectDestroy _effect1; + ppEffectDestroy _effect2; +};}; + + diff --git a/client/items/drugs/init.sqf b/client/items/drugs/init.sqf new file mode 100644 index 000000000..88a08e20b --- /dev/null +++ b/client/items/drugs/init.sqf @@ -0,0 +1,32 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +//@file Version: 1.0 +//@file Name: init.sqf +//@file Author: micovery +//@file Argument: the path to the directory holding this file. +private ["_path"]; +_path = _this; + +call compile preprocessFileLineNumbers format["%1\functions.sqf", _path]; + +MF_ITEMS_LSD = "lsd"; +MF_ITEMS_LSD_TYPE = "Land_PainKillers_F"; +MF_ITEMS_LSD_ICON = "client\icons\lsd.paa"; +[MF_ITEMS_LSD, "LSD", {[player,60] call drug_lsd_effects; true}, MF_ITEMS_LSD_TYPE, MF_ITEMS_LSD_ICON, 15] call mf_inventory_create; + +MF_ITEMS_MARIJUANA = "marijuana"; +MF_ITEMS_MARIJUANA_TYPE = "Land_PainKillers_F"; +MF_ITEMS_MARIJUANA_ICON = "client\icons\marijuana.paa"; +[MF_ITEMS_MARIJUANA, "Marijuana", {[player,90] call drug_marijuana_effects; true}, MF_ITEMS_MARIJUANA_TYPE, MF_ITEMS_MARIJUANA_ICON, 15] call mf_inventory_create; + + +MF_ITEMS_COCAINE = "cocaine"; +MF_ITEMS_COCAINE_TYPE = "Land_PainKillers_F"; +MF_ITEMS_COCAINE_ICON = "client\icons\cocaine.paa"; +[MF_ITEMS_COCAINE, "Cocaine", {[player,90] call drug_cocaine_effects; true}, MF_ITEMS_COCAINE_TYPE, MF_ITEMS_COCAINE_ICON, 15] call mf_inventory_create; + +MF_ITEMS_HEROIN = "heroin"; +MF_ITEMS_HEROIN_TYPE = "Land_PainKillers_F"; +MF_ITEMS_HEROIN_ICON = "client\icons\heroin.paa"; +[MF_ITEMS_HEROIN, "Heroin", {[player,60] call drug_heroin_effects; true}, MF_ITEMS_HEROIN_TYPE, MF_ITEMS_HEROIN_ICON, 15] call mf_inventory_create; \ No newline at end of file diff --git a/client/items/init.sqf b/client/items/init.sqf index f870ceacc..f51b9ce10 100644 --- a/client/items/init.sqf +++ b/client/items/init.sqf @@ -15,3 +15,4 @@ [_this, "camonet"] call mf_init; [_this, "warchest"] call mf_init; [_this, "cratemoney"] call mf_init; +[_this, "drugs"] call mf_init; diff --git a/client/systems/generalStore/getInventory.sqf b/client/systems/generalStore/getInventory.sqf index 6ed4b5565..8213b2aa7 100644 --- a/client/systems/generalStore/getInventory.sqf +++ b/client/systems/generalStore/getInventory.sqf @@ -102,6 +102,35 @@ for [{_x=1},{_x<=_amount},{_x=_x+1}] do _index = _index + 1; }; +_amount = MF_ITEMS_LSD call mf_inventory_count; +for [{_x=1},{_x<=_amount},{_x=_x+1}] do +{ + playerInventory set [_index, MF_ITEMS_LSD]; + _index = _index + 1; +}; + +_amount = MF_ITEMS_MARIJUANA call mf_inventory_count; +for [{_x=1},{_x<=_amount},{_x=_x+1}] do +{ + playerInventory set [_index, MF_ITEMS_MARIJUANA]; + _index = _index + 1; +}; + +_amount = MF_ITEMS_COCAINE call mf_inventory_count; +for [{_x=1},{_x<=_amount},{_x=_x+1}] do +{ + playerInventory set [_index, MF_ITEMS_COCAINE]; + _index = _index + 1; +}; + +_amount = MF_ITEMS_HEROIN call mf_inventory_count; +for [{_x=1},{_x<=_amount},{_x=_x+1}] do +{ + playerInventory set [_index, MF_ITEMS_HEROIN]; + _index = _index + 1; +}; + + { _class = _x; diff --git a/storeConfig.sqf b/storeConfig.sqf index 755105747..dc894e248 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -798,6 +798,12 @@ customPlayerItems = compileFinal str ["Canned Food", "cannedfood", localize "STR_WL_ShopDescriptions_CanFood", "client\icons\cannedfood.paa", 30, 15], ["Repair Kit", "repairkit", localize "STR_WL_ShopDescriptions_RepairKit", "client\icons\briefcase.paa", 500, 250], ["Jerry Can (Full)", "jerrycanfull", localize "STR_WL_ShopDescriptions_fuelFull", "client\icons\jerrycan.paa", 150, 75], + ["LSD", "lsd", localize "STR_WL_ShopDescriptions_LSD", "client\icons\lsd.paa", 3500, 3000], + ["Marijuana", "marijuana", localize "STR_WL_ShopDescriptions_Marijuana", "client\icons\marijuana.paa", 3500, 3000], + ["Cocaine", "cocaine", localize "STR_WL_ShopDescriptions_Cocaine", "client\icons\cocaine.paa", 3500, 3000], + ["Heroin", "heroin", localize "STR_WL_ShopDescriptions_Heroin", "client\icons\heroin.paa", 3500, 3000], + + ["Jerry Can (Empty)", "jerrycanempty", localize "STR_WL_ShopDescriptions_fuelEmpty", "client\icons\jerrycan.paa", 50, 25], ["Spawn Beacon", "spawnbeacon", localize "STR_WL_ShopDescriptions_spawnBeacon", "client\icons\briefcase.paa", 1500, 750], //["Camo Net", "camonet", localize "STR_WL_ShopDescriptions_Camo", "client\icons\briefcase.paa", 200, 100], diff --git a/stringtable.xml b/stringtable.xml index 6d339ac90..7ef34dcde 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -90,6 +90,18 @@ A safe to store your team's money. + + A synthetic crystalline compound, lysergic acid diethylamide, that is a potent hallucinogenic drug. + + + Often consumed for its psychoactive and physiological effects, which can include heightened mood or euphoria, relaxation, and an increase in appetite. + + + An addictive drug derived from coca or prepared synthetically, used as an illegal stimulant and sometimes medicinally as a local anesthetic. + + + A highly addictive analgesic drug derived from morphine, often used illicitly as a narcotic producing euphoria. + From a11dfb3db568a54f7117393b84dfa055e3c064de Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 4 Dec 2014 16:53:06 -0800 Subject: [PATCH 130/544] Updated mission.sqm for headless client testing. --- mission.sqm | 467 ++++++++++++++++++++++++++-------------------------- 1 file changed, 233 insertions(+), 234 deletions(-) diff --git a/mission.sqm b/mission.sqm index 34921039c..19b7c8d84 100644 --- a/mission.sqm +++ b/mission.sqm @@ -75,11 +75,11 @@ class Mission }; addOnsAuto[]= { - "A3_Characters_F_Civil", - "a3_characters_f", "A3_Characters_F_BLUFOR", + "a3_characters_f", "A3_Characters_F_OPFOR", "A3_Characters_F_INDEP", + "A3_Characters_F_Civil", "A3_Structures_F_Households_House_Big01", "A3_Structures_F_Households_House_Small02", "A3_Structures_F_Mil_Cargo", @@ -113,27 +113,6 @@ class Mission { items=53; class Item0 - { - side="WEST"; - class Vehicles - { - items=1; - class Item0 - { - position[]={14497.367,10.181035,5849.4287}; - id=0; - side="WEST"; - vehicle="C_man_w_worker_F"; - forceHeadlessClient=1; - leader=1; - skill=0.60000002; - text="HeadlessClient"; - init="this hideObject true; this allowDamage false; { this disableAI _x } forEach ['TARGET','AUTOTARGET','MOVE','ANIM','FSM']; this enableSimulation false"; - description="Headless Client"; - }; - }; - }; - class Item1 { side="WEST"; class Vehicles @@ -142,7 +121,7 @@ class Mission class Item0 { position[]={14490.131,11.635155,5865.0859}; - id=1; + id=0; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -152,7 +131,7 @@ class Mission class Item1 { position[]={14491.372,11.51937,5865.0859}; - id=2; + id=1; side="WEST"; vehicle="B_sniper_F"; player="PLAY CDG"; @@ -161,7 +140,7 @@ class Mission class Item2 { position[]={14492.613,11.403502,5865.0859}; - id=3; + id=2; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -170,7 +149,7 @@ class Mission class Item3 { position[]={14493.858,11.28622,5865.0732}; - id=4; + id=3; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -178,7 +157,7 @@ class Mission }; }; }; - class Item2 + class Item1 { side="WEST"; class Vehicles @@ -187,7 +166,7 @@ class Mission class Item0 { position[]={14490.132,11.633256,5863.8828}; - id=5; + id=4; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -197,7 +176,7 @@ class Mission class Item1 { position[]={14491.373,11.481956,5863.8828}; - id=6; + id=5; side="WEST"; vehicle="B_diver_F"; player="PLAY CDG"; @@ -206,7 +185,7 @@ class Mission class Item2 { position[]={14492.613,11.366258,5863.8828}; - id=7; + id=6; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -215,7 +194,7 @@ class Mission class Item3 { position[]={14493.859,11.249619,5863.8701}; - id=8; + id=7; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -223,7 +202,7 @@ class Mission }; }; }; - class Item3 + class Item2 { side="WEST"; class Vehicles @@ -232,7 +211,7 @@ class Mission class Item0 { position[]={14490.132,11.644501,5862.6777}; - id=9; + id=8; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -242,7 +221,7 @@ class Mission class Item1 { position[]={14491.373,11.483939,5862.6777}; - id=10; + id=9; side="WEST"; vehicle="B_sniper_F"; player="PLAY CDG"; @@ -251,7 +230,7 @@ class Mission class Item2 { position[]={14492.614,11.334043,5862.6777}; - id=11; + id=10; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -260,7 +239,7 @@ class Mission class Item3 { position[]={14493.859,11.21749,5862.665}; - id=12; + id=11; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -268,7 +247,7 @@ class Mission }; }; }; - class Item4 + class Item3 { side="WEST"; class Vehicles @@ -277,7 +256,7 @@ class Mission class Item0 { position[]={14490.132,11.656067,5861.439}; - id=13; + id=12; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -287,7 +266,7 @@ class Mission class Item1 { position[]={14491.373,11.495505,5861.439}; - id=14; + id=13; side="WEST"; vehicle="B_diver_F"; player="PLAY CDG"; @@ -296,7 +275,7 @@ class Mission class Item2 { position[]={14492.614,11.335062,5861.439}; - id=15; + id=14; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -305,7 +284,7 @@ class Mission class Item3 { position[]={14493.859,11.184458,5861.4263}; - id=16; + id=15; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -313,7 +292,7 @@ class Mission }; }; }; - class Item5 + class Item4 { side="WEST"; class Vehicles @@ -322,7 +301,7 @@ class Mission class Item0 { position[]={14490.132,11.667312,5860.2339}; - id=17; + id=16; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -332,7 +311,7 @@ class Mission class Item1 { position[]={14491.373,11.50675,5860.2339}; - id=18; + id=17; side="WEST"; vehicle="B_sniper_F"; player="PLAY CDG"; @@ -341,7 +320,7 @@ class Mission class Item2 { position[]={14492.614,11.346307,5860.2339}; - id=19; + id=18; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -350,7 +329,7 @@ class Mission class Item3 { position[]={14493.859,11.185391,5860.2212}; - id=20; + id=19; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -358,7 +337,7 @@ class Mission }; }; }; - class Item6 + class Item5 { side="WEST"; class Vehicles @@ -367,7 +346,7 @@ class Mission class Item0 { position[]={14490.132,11.678506,5859.0347}; - id=21; + id=20; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -377,7 +356,7 @@ class Mission class Item1 { position[]={14491.373,11.517944,5859.0347}; - id=22; + id=21; side="WEST"; vehicle="B_diver_F"; player="PLAY CDG"; @@ -386,7 +365,7 @@ class Mission class Item2 { position[]={14492.614,11.357501,5859.0347}; - id=23; + id=22; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -395,7 +374,7 @@ class Mission class Item3 { position[]={14493.859,11.196585,5859.022}; - id=24; + id=23; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -403,7 +382,7 @@ class Mission }; }; }; - class Item7 + class Item6 { side="WEST"; class Vehicles @@ -412,7 +391,7 @@ class Mission class Item0 { position[]={14490.132,11.689751,5857.8296}; - id=25; + id=24; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -422,7 +401,7 @@ class Mission class Item1 { position[]={14491.373,11.529189,5857.8296}; - id=26; + id=25; side="WEST"; vehicle="B_sniper_F"; player="PLAY CDG"; @@ -431,7 +410,7 @@ class Mission class Item2 { position[]={14492.614,11.368746,5857.8296}; - id=27; + id=26; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -440,7 +419,7 @@ class Mission class Item3 { position[]={14493.859,11.207829,5857.8169}; - id=28; + id=27; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -448,7 +427,7 @@ class Mission }; }; }; - class Item8 + class Item7 { side="WEST"; class Vehicles @@ -457,7 +436,7 @@ class Mission class Item0 { position[]={14490.132,11.560671,5856.5933}; - id=29; + id=28; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -467,7 +446,7 @@ class Mission class Item1 { position[]={14491.373,11.460968,5856.5933}; - id=30; + id=29; side="WEST"; vehicle="B_diver_F"; player="PLAY CDG"; @@ -476,7 +455,7 @@ class Mission class Item2 { position[]={14492.614,11.300525,5856.5933}; - id=31; + id=30; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -485,7 +464,7 @@ class Mission class Item3 { position[]={14493.859,11.138481,5856.5806}; - id=32; + id=31; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -493,7 +472,7 @@ class Mission }; }; }; - class Item9 + class Item8 { side="WEST"; class Vehicles @@ -502,7 +481,7 @@ class Mission class Item0 { position[]={14490.132,11.365132,5855.3506}; - id=33; + id=32; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -512,7 +491,7 @@ class Mission class Item1 { position[]={14491.373,11.302232,5855.3506}; - id=34; + id=33; side="WEST"; vehicle="B_sniper_F"; player="PLAY CDG"; @@ -521,7 +500,7 @@ class Mission class Item2 { position[]={14492.614,11.202756,5855.3506}; - id=35; + id=34; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -530,7 +509,7 @@ class Mission class Item3 { position[]={14493.859,11.040711,5855.3379}; - id=36; + id=35; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -538,7 +517,7 @@ class Mission }; }; }; - class Item10 + class Item9 { side="WEST"; class Vehicles @@ -547,7 +526,7 @@ class Mission class Item0 { position[]={14490.132,11.170386,5854.1128}; - id=37; + id=36; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -557,7 +536,7 @@ class Mission class Item1 { position[]={14491.373,11.107486,5854.1128}; - id=38; + id=37; side="WEST"; vehicle="B_diver_F"; player="PLAY CDG"; @@ -566,7 +545,7 @@ class Mission class Item2 { position[]={14492.614,11.044632,5854.1128}; - id=39; + id=38; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -575,7 +554,7 @@ class Mission class Item3 { position[]={14493.859,10.943338,5854.1001}; - id=40; + id=39; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -583,7 +562,7 @@ class Mission }; }; }; - class Item11 + class Item10 { side="WEST"; class Vehicles @@ -592,7 +571,7 @@ class Mission class Item0 { position[]={14490.132,10.974488,5852.8677}; - id=41; + id=40; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -602,7 +581,7 @@ class Mission class Item1 { position[]={14491.373,10.911588,5852.8677}; - id=42; + id=41; side="WEST"; vehicle="B_sniper_F"; player="PLAY CDG"; @@ -611,7 +590,7 @@ class Mission class Item2 { position[]={14492.614,10.848734,5852.8677}; - id=43; + id=42; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -620,7 +599,7 @@ class Mission class Item3 { position[]={14493.859,10.783631,5852.855}; - id=44; + id=43; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -628,7 +607,7 @@ class Mission }; }; }; - class Item12 + class Item11 { side="WEST"; class Vehicles @@ -637,7 +616,7 @@ class Mission class Item0 { position[]={14490.132,10.779454,5851.6279}; - id=45; + id=44; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -647,7 +626,7 @@ class Mission class Item1 { position[]={14491.373,10.716554,5851.6279}; - id=46; + id=45; side="WEST"; vehicle="B_diver_F"; player="PLAY CDG"; @@ -656,7 +635,7 @@ class Mission class Item2 { position[]={14492.614,10.6537,5851.6279}; - id=47; + id=46; side="WEST"; vehicle="B_medic_F"; player="PLAY CDG"; @@ -665,7 +644,7 @@ class Mission class Item3 { position[]={14493.859,10.588597,5851.6152}; - id=48; + id=47; side="WEST"; vehicle="B_engineer_F"; player="PLAY CDG"; @@ -673,7 +652,7 @@ class Mission }; }; }; - class Item13 + class Item12 { side="EAST"; class Vehicles @@ -682,7 +661,7 @@ class Mission class Item0 { position[]={14495.483,11.135816,5865.0879}; - id=49; + id=48; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -692,7 +671,7 @@ class Mission class Item1 { position[]={14496.725,11.019947,5865.0879}; - id=50; + id=49; side="EAST"; vehicle="O_sniper_F"; player="PLAY CDG"; @@ -701,7 +680,7 @@ class Mission class Item2 { position[]={14497.966,10.755336,5865.0879}; - id=51; + id=50; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -710,7 +689,7 @@ class Mission class Item3 { position[]={14499.211,10.249982,5865.0752}; - id=52; + id=51; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -718,7 +697,7 @@ class Mission }; }; }; - class Item14 + class Item13 { side="EAST"; class Vehicles @@ -727,7 +706,7 @@ class Mission class Item0 { position[]={14495.484,11.098337,5863.8848}; - id=53; + id=52; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -737,7 +716,7 @@ class Mission class Item1 { position[]={14496.726,10.982468,5863.8848}; - id=54; + id=53; side="EAST"; vehicle="O_diver_F"; player="PLAY CDG"; @@ -746,7 +725,7 @@ class Mission class Item2 { position[]={14497.967,10.796111,5863.8848}; - id=55; + id=54; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -755,7 +734,7 @@ class Mission class Item3 { position[]={14499.211,10.397887,5863.8721}; - id=56; + id=55; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -763,7 +742,7 @@ class Mission }; }; }; - class Item15 + class Item14 { side="EAST"; class Vehicles @@ -772,7 +751,7 @@ class Mission class Item0 { position[]={14495.484,11.066209,5862.6797}; - id=57; + id=56; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -782,7 +761,7 @@ class Mission class Item1 { position[]={14496.726,10.950339,5862.6797}; - id=58; + id=57; side="EAST"; vehicle="O_sniper_F"; player="PLAY CDG"; @@ -791,7 +770,7 @@ class Mission class Item2 { position[]={14497.967,10.763983,5862.6797}; - id=59; + id=58; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -800,7 +779,7 @@ class Mission class Item3 { position[]={14499.212,10.459832,5862.667}; - id=60; + id=59; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -808,7 +787,7 @@ class Mission }; }; }; - class Item16 + class Item15 { side="EAST"; class Vehicles @@ -817,7 +796,7 @@ class Mission class Item0 { position[]={14495.484,11.033176,5861.4409}; - id=61; + id=60; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -827,7 +806,7 @@ class Mission class Item1 { position[]={14496.726,10.917307,5861.4409}; - id=62; + id=61; side="EAST"; vehicle="O_diver_F"; player="PLAY CDG"; @@ -836,7 +815,7 @@ class Mission class Item2 { position[]={14497.967,10.73095,5861.4409}; - id=63; + id=62; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -845,7 +824,7 @@ class Mission class Item3 { position[]={14499.212,10.4268,5861.4282}; - id=64; + id=63; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -853,7 +832,7 @@ class Mission }; }; }; - class Item17 + class Item16 { side="EAST"; class Vehicles @@ -862,7 +841,7 @@ class Mission class Item0 { position[]={14495.484,11.001036,5860.2358}; - id=65; + id=64; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -872,7 +851,7 @@ class Mission class Item1 { position[]={14496.726,10.885166,5860.2358}; - id=66; + id=65; side="EAST"; vehicle="O_sniper_F"; player="PLAY CDG"; @@ -881,7 +860,7 @@ class Mission class Item2 { position[]={14497.967,10.69881,5860.2358}; - id=67; + id=66; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -890,7 +869,7 @@ class Mission class Item3 { position[]={14499.212,10.394659,5860.2231}; - id=68; + id=67; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -898,7 +877,7 @@ class Mission }; }; }; - class Item18 + class Item17 { side="EAST"; class Vehicles @@ -907,7 +886,7 @@ class Mission class Item0 { position[]={14495.484,10.986274,5859.0366}; - id=69; + id=68; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -917,7 +896,7 @@ class Mission class Item1 { position[]={14496.726,10.853184,5859.0366}; - id=70; + id=69; side="EAST"; vehicle="O_diver_F"; player="PLAY CDG"; @@ -926,7 +905,7 @@ class Mission class Item2 { position[]={14497.967,10.666827,5859.0366}; - id=71; + id=70; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -935,7 +914,7 @@ class Mission class Item3 { position[]={14499.212,10.362689,5859.0239}; - id=72; + id=71; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -943,7 +922,7 @@ class Mission }; }; }; - class Item19 + class Item18 { side="EAST"; class Vehicles @@ -952,7 +931,7 @@ class Mission class Item0 { position[]={14495.484,10.997519,5857.8315}; - id=73; + id=72; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -962,7 +941,7 @@ class Mission class Item1 { position[]={14496.726,10.836957,5857.8315}; - id=74; + id=73; side="EAST"; vehicle="O_sniper_F"; player="PLAY CDG"; @@ -971,7 +950,7 @@ class Mission class Item2 { position[]={14497.967,10.634698,5857.8315}; - id=75; + id=74; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -980,7 +959,7 @@ class Mission class Item3 { position[]={14499.212,10.330548,5857.8188}; - id=76; + id=75; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -988,7 +967,7 @@ class Mission }; }; }; - class Item20 + class Item19 { side="EAST"; class Vehicles @@ -997,7 +976,7 @@ class Mission class Item0 { position[]={14495.484,10.929459,5856.5952}; - id=77; + id=76; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -1007,7 +986,7 @@ class Mission class Item1 { position[]={14496.726,10.768897,5856.5952}; - id=78; + id=77; side="EAST"; vehicle="O_diver_F"; player="PLAY CDG"; @@ -1016,7 +995,7 @@ class Mission class Item2 { position[]={14497.967,10.565919,5856.5952}; - id=79; + id=78; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -1025,7 +1004,7 @@ class Mission class Item3 { position[]={14499.212,10.271891,5856.5825}; - id=80; + id=79; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -1033,7 +1012,7 @@ class Mission }; }; }; - class Item21 + class Item20 { side="EAST"; class Vehicles @@ -1042,7 +1021,7 @@ class Mission class Item0 { position[]={14495.484,10.83169,5855.3525}; - id=81; + id=80; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -1052,7 +1031,7 @@ class Mission class Item1 { position[]={14496.726,10.671128,5855.3525}; - id=82; + id=81; side="EAST"; vehicle="O_sniper_F"; player="PLAY CDG"; @@ -1061,7 +1040,7 @@ class Mission class Item2 { position[]={14497.967,10.46815,5855.3525}; - id=83; + id=82; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -1070,7 +1049,7 @@ class Mission class Item3 { position[]={14499.212,10.193252,5855.3398}; - id=84; + id=83; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -1078,7 +1057,7 @@ class Mission }; }; }; - class Item22 + class Item21 { side="EAST"; class Vehicles @@ -1087,7 +1066,7 @@ class Mission class Item0 { position[]={14495.484,10.734317,5854.1147}; - id=85; + id=84; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -1097,7 +1076,7 @@ class Mission class Item1 { position[]={14496.726,10.573755,5854.1147}; - id=86; + id=85; side="EAST"; vehicle="O_diver_F"; player="PLAY CDG"; @@ -1106,7 +1085,7 @@ class Mission class Item2 { position[]={14497.967,10.370777,5854.1147}; - id=87; + id=86; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -1115,7 +1094,7 @@ class Mission class Item3 { position[]={14499.212,10.095879,5854.1021}; - id=88; + id=87; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -1123,7 +1102,7 @@ class Mission }; }; }; - class Item23 + class Item22 { side="EAST"; class Vehicles @@ -1132,7 +1111,7 @@ class Mission class Item0 { position[]={14495.482,10.636677,5852.8701}; - id=89; + id=88; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -1142,7 +1121,7 @@ class Mission class Item1 { position[]={14496.724,10.476115,5852.8701}; - id=90; + id=89; side="EAST"; vehicle="O_sniper_F"; player="PLAY CDG"; @@ -1151,7 +1130,7 @@ class Mission class Item2 { position[]={14497.965,10.273302,5852.8701}; - id=91; + id=90; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -1160,7 +1139,7 @@ class Mission class Item3 { position[]={14499.21,9.9983683,5852.8574}; - id=92; + id=91; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -1168,7 +1147,7 @@ class Mission }; }; }; - class Item24 + class Item23 { side="EAST"; class Vehicles @@ -1177,7 +1156,7 @@ class Mission class Item0 { position[]={14495.482,10.50873,5851.6304}; - id=93; + id=92; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -1187,7 +1166,7 @@ class Mission class Item1 { position[]={14496.724,10.378562,5851.6304}; - id=94; + id=93; side="EAST"; vehicle="O_diver_F"; player="PLAY CDG"; @@ -1196,7 +1175,7 @@ class Mission class Item2 { position[]={14497.965,10.175749,5851.6304}; - id=95; + id=94; side="EAST"; vehicle="O_medic_F"; player="PLAY CDG"; @@ -1205,7 +1184,7 @@ class Mission class Item3 { position[]={14499.21,9.9008512,5851.6177}; - id=96; + id=95; side="EAST"; vehicle="O_engineer_F"; player="PLAY CDG"; @@ -1213,7 +1192,7 @@ class Mission }; }; }; - class Item25 + class Item24 { side="GUER"; class Vehicles @@ -1222,7 +1201,7 @@ class Mission class Item0 { position[]={14500.875,9.5762758,5865.0864}; - id=97; + id=96; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1232,7 +1211,7 @@ class Mission class Item1 { position[]={14502.117,9.0727015,5865.0864}; - id=98; + id=97; side="GUER"; vehicle="I_sniper_F"; player="PLAY CDG"; @@ -1241,7 +1220,7 @@ class Mission class Item2 { position[]={14503.357,8.56987,5865.0864}; - id=99; + id=98; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1250,7 +1229,7 @@ class Mission class Item3 { position[]={14504.603,8.0645409,5865.0737}; - id=100; + id=99; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1258,7 +1237,7 @@ class Mission }; }; }; - class Item26 + class Item25 { side="GUER"; class Vehicles @@ -1267,7 +1246,7 @@ class Mission class Item0 { position[]={14500.876,9.7217588,5863.8833}; - id=101; + id=100; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1277,7 +1256,7 @@ class Mission class Item1 { position[]={14502.117,9.2185555,5863.8833}; - id=102; + id=101; side="GUER"; vehicle="I_diver_F"; player="PLAY CDG"; @@ -1286,7 +1265,7 @@ class Mission class Item2 { position[]={14503.358,8.7153521,5863.8833}; - id=103; + id=102; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1295,7 +1274,7 @@ class Mission class Item3 { position[]={14504.604,8.2123909,5863.8706}; - id=104; + id=103; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1303,7 +1282,7 @@ class Mission }; }; }; - class Item27 + class Item26 { side="GUER"; class Vehicles @@ -1312,7 +1291,7 @@ class Mission class Item0 { position[]={14500.877,9.8836393,5862.6782}; - id=105; + id=104; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1322,7 +1301,7 @@ class Mission class Item1 { position[]={14502.117,9.3808069,5862.6782}; - id=106; + id=105; side="GUER"; vehicle="I_sniper_F"; player="PLAY CDG"; @@ -1331,7 +1310,7 @@ class Mission class Item2 { position[]={14503.358,8.8776035,5862.6782}; - id=107; + id=106; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1340,7 +1319,7 @@ class Mission class Item3 { position[]={14504.604,8.3746424,5862.6655}; - id=108; + id=107; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1348,7 +1327,7 @@ class Mission }; }; }; - class Item28 + class Item27 { side="GUER"; class Vehicles @@ -1357,7 +1336,7 @@ class Mission class Item0 { position[]={14500.877,10.020985,5861.4395}; - id=109; + id=108; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1367,7 +1346,7 @@ class Mission class Item1 { position[]={14502.117,9.5476198,5861.4395}; - id=110; + id=109; side="GUER"; vehicle="I_diver_F"; player="PLAY CDG"; @@ -1376,7 +1355,7 @@ class Mission class Item2 { position[]={14503.358,9.0444164,5861.4395}; - id=111; + id=110; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1385,7 +1364,7 @@ class Mission class Item3 { position[]={14504.604,8.5414553,5861.4268}; - id=112; + id=111; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1393,7 +1372,7 @@ class Mission }; }; }; - class Item29 + class Item28 { side="GUER"; class Vehicles @@ -1402,7 +1381,7 @@ class Mission class Item0 { position[]={14500.877,9.9888439,5860.2344}; - id=113; + id=112; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1412,7 +1391,7 @@ class Mission class Item1 { position[]={14502.118,9.6859283,5860.2344}; - id=114; + id=113; side="GUER"; vehicle="I_sniper_F"; player="PLAY CDG"; @@ -1421,7 +1400,7 @@ class Mission class Item2 { position[]={14503.359,9.206358,5860.2344}; - id=115; + id=114; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1430,7 +1409,7 @@ class Mission class Item3 { position[]={14504.604,8.7037678,5860.2217}; - id=116; + id=115; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1438,7 +1417,7 @@ class Mission }; }; }; - class Item30 + class Item29 { side="GUER"; class Vehicles @@ -1447,7 +1426,7 @@ class Mission class Item0 { position[]={14500.877,9.9568615,5859.0352}; - id=117; + id=116; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1457,7 +1436,7 @@ class Mission class Item1 { position[]={14502.117,9.6541691,5859.0352}; - id=118; + id=117; side="GUER"; vehicle="I_diver_F"; player="PLAY CDG"; @@ -1466,7 +1445,7 @@ class Mission class Item2 { position[]={14503.358,9.3512545,5859.0352}; - id=119; + id=118; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1475,7 +1454,7 @@ class Mission class Item3 { position[]={14504.604,8.8652172,5859.0225}; - id=120; + id=119; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1483,7 +1462,7 @@ class Mission }; }; }; - class Item31 + class Item30 { side="GUER"; class Vehicles @@ -1492,7 +1471,7 @@ class Mission class Item0 { position[]={14500.877,9.9247332,5857.8301}; - id=121; + id=120; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1502,7 +1481,7 @@ class Mission class Item1 { position[]={14502.118,9.6218176,5857.8301}; - id=122; + id=121; side="GUER"; vehicle="I_sniper_F"; player="PLAY CDG"; @@ -1511,7 +1490,7 @@ class Mission class Item2 { position[]={14503.359,9.318903,5857.8301}; - id=123; + id=122; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1520,7 +1499,7 @@ class Mission class Item3 { position[]={14504.604,9.0149755,5857.8174}; - id=124; + id=123; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1528,7 +1507,7 @@ class Mission }; }; }; - class Item32 + class Item31 { side="GUER"; class Vehicles @@ -1537,7 +1516,7 @@ class Mission class Item0 { position[]={14500.877,9.866396,5856.5938}; - id=125; + id=124; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1547,7 +1526,7 @@ class Mission class Item1 { position[]={14502.117,9.5637045,5856.5938}; - id=126; + id=125; side="GUER"; vehicle="I_diver_F"; player="PLAY CDG"; @@ -1556,7 +1535,7 @@ class Mission class Item2 { position[]={14503.358,9.2607889,5856.5938}; - id=127; + id=126; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1565,7 +1544,7 @@ class Mission class Item3 { position[]={14504.604,8.9562798,5856.5811}; - id=128; + id=127; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1573,7 +1552,7 @@ class Mission }; }; }; - class Item33 + class Item32 { side="GUER"; class Vehicles @@ -1582,7 +1561,7 @@ class Mission class Item0 { position[]={14500.877,9.7984543,5855.3511}; - id=129; + id=128; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1592,7 +1571,7 @@ class Mission class Item1 { position[]={14502.118,9.4955387,5855.3511}; - id=130; + id=129; side="GUER"; vehicle="I_sniper_F"; player="PLAY CDG"; @@ -1601,7 +1580,7 @@ class Mission class Item2 { position[]={14503.359,9.192625,5855.3511}; - id=131; + id=130; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1610,7 +1589,7 @@ class Mission class Item3 { position[]={14504.604,8.8883638,5855.3384}; - id=132; + id=131; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1618,7 +1597,7 @@ class Mission }; }; }; - class Item34 + class Item33 { side="GUER"; class Vehicles @@ -1627,7 +1606,7 @@ class Mission class Item0 { position[]={14500.877,9.7305679,5854.1133}; - id=133; + id=132; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1637,7 +1616,7 @@ class Mission class Item1 { position[]={14502.117,9.4280977,5854.1133}; - id=134; + id=133; side="GUER"; vehicle="I_diver_F"; player="PLAY CDG"; @@ -1646,7 +1625,7 @@ class Mission class Item2 { position[]={14503.358,9.1251822,5854.1133}; - id=135; + id=134; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1655,7 +1634,7 @@ class Mission class Item3 { position[]={14504.604,8.8206978,5854.1006}; - id=136; + id=135; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1663,7 +1642,7 @@ class Mission }; }; }; - class Item35 + class Item34 { side="GUER"; class Vehicles @@ -1672,7 +1651,7 @@ class Mission class Item0 { position[]={14500.877,9.6331949,5852.8755}; - id=137; + id=136; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1682,7 +1661,7 @@ class Mission class Item1 { position[]={14502.118,9.360075,5852.8755}; - id=138; + id=137; side="GUER"; vehicle="I_sniper_F"; player="PLAY CDG"; @@ -1691,7 +1670,7 @@ class Mission class Item2 { position[]={14503.359,9.0572929,5852.8755}; - id=139; + id=138; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1700,7 +1679,7 @@ class Mission class Item3 { position[]={14504.604,8.7530317,5852.8628}; - id=140; + id=139; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1708,7 +1687,7 @@ class Mission }; }; }; - class Item36 + class Item35 { side="GUER"; class Vehicles @@ -1717,7 +1696,7 @@ class Mission class Item0 { position[]={14500.877,9.5356779,5851.6357}; - id=141; + id=140; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1727,7 +1706,7 @@ class Mission class Item1 { position[]={14502.117,9.2627602,5851.6357}; - id=142; + id=141; side="GUER"; vehicle="I_diver_F"; player="PLAY CDG"; @@ -1736,7 +1715,7 @@ class Mission class Item2 { position[]={14503.358,8.9896393,5851.6357}; - id=143; + id=142; side="GUER"; vehicle="I_medic_F"; player="PLAY CDG"; @@ -1745,7 +1724,7 @@ class Mission class Item3 { position[]={14504.604,8.6852407,5851.623}; - id=144; + id=143; side="GUER"; vehicle="I_engineer_F"; player="PLAY CDG"; @@ -1753,7 +1732,7 @@ class Mission }; }; }; - class Item37 + class Item36 { side="LOGIC"; class Vehicles @@ -1763,7 +1742,7 @@ class Mission { position[]={11533.004,19.738714,9433.5479}; azimut=240; - id=145; + id=144; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -1774,7 +1753,7 @@ class Mission }; }; }; - class Item38 + class Item37 { side="LOGIC"; class Vehicles @@ -1784,7 +1763,7 @@ class Mission { position[]={20786.578,35.678844,6807.8887}; azimut=250; - id=146; + id=145; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -1795,7 +1774,7 @@ class Mission }; }; }; - class Item39 + class Item38 { side="LOGIC"; class Vehicles @@ -1805,7 +1784,7 @@ class Mission { position[]={18087.299,25.083857,15245.804}; azimut=45; - id=147; + id=146; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -1816,7 +1795,7 @@ class Mission }; }; }; - class Item40 + class Item39 { side="LOGIC"; class Vehicles @@ -1826,7 +1805,7 @@ class Mission { position[]={9268.7627,120.79372,15868.939}; azimut=265; - id=148; + id=147; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -1837,7 +1816,7 @@ class Mission }; }; }; - class Item41 + class Item40 { side="LOGIC"; class Vehicles @@ -1847,7 +1826,7 @@ class Mission { position[]={4565.4165,299.69217,21384.393}; azimut=350; - id=149; + id=148; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -1858,7 +1837,7 @@ class Mission }; }; }; - class Item42 + class Item41 { side="LOGIC"; class Vehicles @@ -1867,7 +1846,7 @@ class Mission class Item0 { position[]={3366.886,2.6602368,13206.772}; - id=150; + id=149; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -1878,7 +1857,7 @@ class Mission }; }; }; - class Item43 + class Item42 { side="LOGIC"; class Vehicles @@ -1888,7 +1867,7 @@ class Mission { position[]={16708.83,18.712267,12779.239}; azimut=75; - id=151; + id=150; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -1899,7 +1878,7 @@ class Mission }; }; }; - class Item44 + class Item43 { side="LOGIC"; class Vehicles @@ -1909,7 +1888,7 @@ class Mission { position[]={25786.891,20.233345,21354.854}; azimut=135; - id=152; + id=151; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -1920,7 +1899,7 @@ class Mission }; }; }; - class Item45 + class Item44 { side="LOGIC"; class Vehicles @@ -1930,7 +1909,7 @@ class Mission { position[]={9435.292,125.51097,20267.016}; azimut=65; - id=153; + id=152; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -1941,7 +1920,7 @@ class Mission }; }; }; - class Item46 + class Item45 { side="LOGIC"; class Vehicles @@ -1951,7 +1930,7 @@ class Mission { position[]={26712.592,20.398693,24601.9}; azimut=75; - id=154; + id=153; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -1962,7 +1941,7 @@ class Mission }; }; }; - class Item47 + class Item46 { side="LOGIC"; class Vehicles @@ -1972,7 +1951,7 @@ class Mission { position[]={22958.713,4.9242139,18878.971}; azimut=45; - id=155; + id=154; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -1983,7 +1962,7 @@ class Mission }; }; }; - class Item48 + class Item47 { side="LOGIC"; class Vehicles @@ -1993,7 +1972,7 @@ class Mission { position[]={20761.709,28.229145,7264.2515}; azimut=250; - id=156; + id=155; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -2004,7 +1983,7 @@ class Mission }; }; }; - class Item49 + class Item48 { side="LOGIC"; class Vehicles @@ -2014,7 +1993,7 @@ class Mission { position[]={14482.604,18.864084,16330.667}; azimut=155; - id=157; + id=156; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -2025,7 +2004,7 @@ class Mission }; }; }; - class Item50 + class Item49 { side="LOGIC"; class Vehicles @@ -2035,7 +2014,7 @@ class Mission { position[]={12399.45,24.942524,15565.64}; azimut=83; - id=158; + id=157; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -2046,7 +2025,7 @@ class Mission }; }; }; - class Item51 + class Item50 { side="LOGIC"; class Vehicles @@ -2056,7 +2035,7 @@ class Mission { position[]={5861.8003,225.62582,20106.82}; azimut=282; - id=159; + id=158; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -2067,7 +2046,7 @@ class Mission }; }; }; - class Item52 + class Item51 { side="LOGIC"; class Vehicles @@ -2077,7 +2056,7 @@ class Mission { position[]={3578.8296,26.278221,10781.126}; azimut=69; - id=160; + id=159; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; @@ -2088,6 +2067,26 @@ class Mission }; }; }; + class Item52 + { + side="LOGIC"; + class Vehicles + { + items=1; + class Item0 + { + position[]={14497.299,10.200568,5849.0527}; + special="NONE"; + id=160; + side="LOGIC"; + vehicle="HeadlessClient_F"; + player="PLAY CDG"; + leader=1; + skill=0.60000002; + text="HC1"; + }; + }; + }; }; class Vehicles { From db86a0f6563938b7ce080556f1b0dd5902a4d57f Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 6 Dec 2014 23:11:20 -0800 Subject: [PATCH 131/544] Port takistan life ATM to Wasteland --- addons/bank/atm_functions.sqf | 90 +++++ addons/bank/bank_functions.sqf | 40 +++ addons/bank/bank_menu.hpp | 154 +++++++++ addons/bank/bank_menu_functions.sqf | 345 ++++++++++++++++++++ addons/bank/cash_functions.sqf | 43 +++ addons/bank/config.sqf | 2 + addons/bank/constants.h | 35 ++ addons/bank/defines.h | 1 + addons/bank/functions.sqf | 7 + addons/bank/icons/bank.paa | Bin 0 -> 1522 bytes addons/bank/interact_functions.sqf | 166 ++++++++++ addons/bank/macro.h | 142 ++++++++ addons/bank/misc_functions.sqf | 68 ++++ addons/bank/ui.hpp | 489 ++++++++++++++++++++++++++++ client/init.sqf | 2 + 15 files changed, 1584 insertions(+) create mode 100644 addons/bank/atm_functions.sqf create mode 100644 addons/bank/bank_functions.sqf create mode 100644 addons/bank/bank_menu.hpp create mode 100644 addons/bank/bank_menu_functions.sqf create mode 100644 addons/bank/cash_functions.sqf create mode 100644 addons/bank/config.sqf create mode 100644 addons/bank/constants.h create mode 100644 addons/bank/defines.h create mode 100644 addons/bank/functions.sqf create mode 100644 addons/bank/icons/bank.paa create mode 100644 addons/bank/interact_functions.sqf create mode 100644 addons/bank/macro.h create mode 100644 addons/bank/misc_functions.sqf create mode 100644 addons/bank/ui.hpp diff --git a/addons/bank/atm_functions.sqf b/addons/bank/atm_functions.sqf new file mode 100644 index 000000000..79c36a4b1 --- /dev/null +++ b/addons/bank/atm_functions.sqf @@ -0,0 +1,90 @@ +#include "macro.h" +#include "defines.h" + +if (!undefined(atm_functions_defined)) exitWith {}; +diag_log format["Loading atm functions ..."]; + + +atm_is_object_atm = { + ARGVX4(0,_object,objNull,false); + ([": atm",str(_object)] call BIS_fnc_inString) +}; + + + +atm_is_player_near = { + private["_pos1", "_pos2"]; + _pos1 = (eyePos player); + _pos2 = ([_pos1, call cameraDir] call BIS_fnc_vectorAdd); + + private["_objects"]; + _objects = lineIntersectsWith [_pos1,_pos2,objNull,objNull,true]; + if (isNil "_objects" || {typeName _objects != typeName []}) exitWith {false}; + + + private["_found"]; + _found = false; + { + if ([_x] call atm_is_object_atm) exitWith { + _found = true; + }; + } forEach _objects ; + + (_found) +}; + + +atm_actions = []; + +atm_remove_actions = { + if (count atm_actions == 0) exitWith {}; + + { + private["_action_id"]; + _action_id = _x; + player removeAction _action_id; + } forEach atm_actions; + atm_actions = []; +}; + +atm_add_actions = { + if (count atm_actions > 0) exitWith {}; + private["_player"]; + _player = _this select 0; + + private["_action_id", "_text"]; + _action_id = _player addAction [" Access ATM", {[player] call bank_menu_dialog;}]; + atm_actions = atm_actions + [_action_id]; +}; + + +atm_check_actions = { + private["_player"]; + _player = player; + private["_vehicle", "_in_vehicle"]; + _vehicle = (vehicle _player); + _in_vehicle = (_vehicle != _player); + + if (not(_in_vehicle || {not(alive _player) || {not(call atm_is_player_near)}})) exitWith { + [_player] call atm_add_actions; + }; + + [_player] call atm_remove_actions; +}; + +atm_client_loop = { + private ["_atm_client_loop_i"]; + _atm_client_loop_i = 0; + + while {_atm_client_loop_i < 5000} do { + call atm_check_actions; + sleep 0.5; + _atm_client_loop_i = _atm_client_loop_i + 1; + }; + [] spawn atm_client_loop; +}; + +[] spawn atm_client_loop; + +atm_functions_defined = true; +diag_log format["Loading atm functions complete"]; diff --git a/addons/bank/bank_functions.sqf b/addons/bank/bank_functions.sqf new file mode 100644 index 000000000..bd1152427 --- /dev/null +++ b/addons/bank/bank_functions.sqf @@ -0,0 +1,40 @@ +#include "macro.h" +#include "defines.h" + +if (!undefined(bank_functions_defined)) exitWith {}; +diag_log format["Loading bank functions ..."]; + +bank_get_value = { + ARGVX4(0,_player,objNull,0); + if (not([_player] call player_human)) exitWith {0}; + + private ["_value"]; + _value = _player getVariable ["bmoney", 0]; + _value +}; + +bank_set_value = { + ARGVX4(0,_player,objNull,0); + ARGVX4(1,_value,0,0); + + if (not([_player] call player_human)) exitWith {}; + + _player setVariable ["bmoney",_value, true]; +}; + + +bank_transaction = { + ARGVX4(0,_player,objNull,0); + ARGVX4(1,_value,0,0); + + if (not([_player] call player_human)) exitWith {0}; + + private["_cvalue"]; + _cvalue = [_player] call bank_get_value; + _cvalue = _cvalue + _value; + [_player,_cvalue] call bank_set_value; + _cvalue +}; + +diag_log format["Loading bank functions complete"]; +bank_functions_defined = true; \ No newline at end of file diff --git a/addons/bank/bank_menu.hpp b/addons/bank/bank_menu.hpp new file mode 100644 index 000000000..ace33c8d6 --- /dev/null +++ b/addons/bank/bank_menu.hpp @@ -0,0 +1,154 @@ +#include "constants.h" + +class bank_menu { + idd = bank_dialog_idd; + movingEnable = true; + controlsBackground[] = { + bank_menu_background + }; + + name = "BANK_MENU"; + onUnload = ""; + onLoad="uiNamespace setVariable ['BANK_MENU',_this select 0]"; + + objects[] = {}; + controls[] = { + bank_menu_header, + bank_menu_balance_label, + bank_menu_balance_field, + bank_menu_balance_cash_label, + bank_menu_balance_cash_field, + bank_menu_amount_label, + bank_menu_amount_field, + bank_menu_destination_label, + bank_menu_destination_field, + bank_menu_transaction_fee_label, + bank_menu_transaction_fee_field, + bank_menu_button_deposit, + bank_menu_button_withdraw, + bank_menu_button_close + }; + + class bank_menu_header : ui_RscMenuTitle { + idc = bank_menu_header_idc; + moving = 1; + x = 0.30-10; y = 0.10-10; + w = 0.39; h = 0.63; + text = "Bank Menu"; + }; + + class bank_menu_background: ui_Rscbackground { + idc = bank_menu_background_idc; + moving = 1; + x = 0.30-10; y = 0.10-10; + w = 0.39; h = 0.63; + }; + + //Bank(atm) balance + class bank_menu_balance_label : ui_RscText { + idc = bank_menu_balance_label_idc; + x = 0.32-10; y = 0.47-10; + w = 0.13; h = 0.04; + text = ""; + }; + + class bank_menu_balance_field: ui_RscText { + idc = bank_menu_balance_field_idc; + x = 0.49-10; y = 0.47-10; + w = 0.18; h = 0.04; + colorBackground[] = FIELD_BACKGROUND; + text = "0"; + }; + + //Cash(inventory) balance + class bank_menu_balance_cash_label : ui_RscText { + idc = bank_menu_balance_cash_label_idc; + x = 0.32-10; y = 0.47-10; + w = 0.13; h = 0.04; + text = ""; + }; + + class bank_menu_balance_cash_field: ui_RscText { + idc = bank_menu_balance_cash_field_idc; + x = 0.49-10; y = 0.47-10; + w = 0.18; h = 0.04; + colorBackground[] = FIELD_BACKGROUND; + text = "0"; + }; + + //Transaction amount + class bank_menu_amount_label : ui_RscText { + idc = bank_menu_amount_label_idc; + x = 0.32-10; y = 0.47-10; + w = 0.13; h = 0.04; + text = ""; + }; + + class bank_menu_amount_field: ui_RscEdit { + idc = bank_menu_amount_field_idc; + x = 0.49-10; y = 0.47-10; + w = 0.18; h = 0.04; + colorBackground[] = FIELD_BACKGROUND; + text = "0"; + }; + + //Transaction fee + class bank_menu_transaction_fee_label : ui_RscText { + idc = bank_menu_transaction_fee_label_idc; + x = 0.32-10; y = 0.47-10; + w = 0.13; h = 0.04; + text = ""; + }; + + class bank_menu_transaction_fee_field: ui_RscText { + idc = bank_menu_transaction_fee_field_idc; + x = 0.49-10; y = 0.47-10; + w = 0.18; h = 0.04; + colorBackground[] = FIELD_BACKGROUND; + text = "0"; + }; + + //Destination + class bank_menu_destination_label : ui_RscText { + idc = bank_menu_destination_label_idc; + x = 0.32-10; y = 0.47-10; + w = 0.13; h = 0.04; + text = ""; + }; + + class bank_menu_destination_field : ui_RscCombo { + idc = bank_menu_destination_field_idc; + x = 0.32-10; y = 0.14-10; + w = 0.35; h = 0.30; + onLBSelChanged = ""; + }; + + //Buttons + class bank_menu_button_deposit : ui_RscMenuButton { + idc = bank_menu_button_deposit_idc; + x = 0.32-10; y = 0.62-10; + w = 0.35; h = 0.04; + colorBackgroundDisabled[] = DISABLED_BUTTON_BACKGROUND; + colorDisabled[] = DISABLED_BUTTON_TEXT; + text = ""; + }; + + class bank_menu_button_withdraw : ui_RscMenuButton { + idc = bank_menu_button_withdraw_idc; + x = 0.32-10; y = 0.67-10; + w = 0.35; h = 0.04; + colorBackgroundDisabled[] = DISABLED_BUTTON_BACKGROUND; + colorDisabled[] = DISABLED_BUTTON_TEXT; + text = ""; + }; + + class bank_menu_button_close : ui_RscMenuButton { + idc = bank_menu_button_close_idc; + x = 0.75-10; y = 0.67-10; + w = 0.35; h = 0.04; + colorBackgroundDisabled[] = DISABLED_BUTTON_BACKGROUND; + colorDisabled[] = DISABLED_BUTTON_TEXT; + text = "Close"; + action = "closeDialog 0;"; + }; +}; \ No newline at end of file diff --git a/addons/bank/bank_menu_functions.sqf b/addons/bank/bank_menu_functions.sqf new file mode 100644 index 000000000..638933992 --- /dev/null +++ b/addons/bank/bank_menu_functions.sqf @@ -0,0 +1,345 @@ +#include "constants.h" +#include "macro.h" +#include "defines.h" + +if (not(undefined(bank_menu_functions_defined))) exitWith {}; + + +bank_menu_dialog = { _this spawn { + disableSerialization; + private["_player"]; + _player = _this select 0; + + if (not([_player] call player_human)) exitWith {}; + if (_player != player) exitWith {}; + + + if (not(createDialog "bank_menu")) exitWith { + player groupChat format["ERROR: Could not create bank menu dialog"]; + }; + + private["_list"]; + _list = [] call bank_menu_setup; + [_player] spawn bank_menu_loop; + + private["_my_index"]; + _my_index = 0; + + {if(true)then { + private["_unit"]; + _unit = _x; + if (not([_unit] call player_human)) exitWith {0}; + + + private["_index", "_uid"]; + _index = _list lbAdd (format["%1 - (%2)",(side _unit),(name _unit)]); + _uid = getPlayerUID _unit; + + _variable_name = format["unit_%1",_uid]; + missionNamespace setVariable [_variable_name, _uid]; + + lbSetData [(ctrlIDC _list),_index,_variable_name]; + lbSetValue [(ctrlIDC _list),_index,_variable_name]; + + if (_unit == _player) then { + _my_index = _index; + }; + + }} forEach allUnits; + + if (_my_index >= 0) then { + _list lbSetCurSel _my_index; + }; + + //Deposit button + buttonSetAction [ + bank_menu_button_deposit_idc, + ( + ' private["_variable_name","_amount"];' + + ' _variable_name = (lbData [bank_menu_destination_field_idc,lbCurSel bank_menu_destination_field_idc]);' + + ' _amount = ([ctrlText bank_menu_amount_field_idc] call parse_number);' + + ' [ ( [' + str(getPlayerUID _player) + '] call uid_to_player), ([(missionNamespace getVariable _variable_name)] call uid_to_player),_amount] call interact_deposit;'+ + 'closedialog 0;' + )]; + + //withdraw button + buttonSetAction [ + bank_menu_button_withdraw_idc, + ( + ' private["_amount"];' + + ' _amount = ([ctrlText bank_menu_amount_field_idc] call parse_number);' + + ' [( [' + str(getPlayerUID _player) + '] call uid_to_player),_amount] call interact_withdraw;'+ + 'closedialog 0;' + )]; + +};}; + + +bank_menu_loop = { + ARGVX3(0,_player,objNull); + + private["_bank_tax"]; + _bank_tax = bank_transaction_tax; + + private["_my_variable"]; + _my_variable = format["unit_%1", getPlayerUID _player]; + + waitUntil { + private["_money","_bank"]; + _money = [_player] call cash_get_value; + _bank = [_player] call bank_get_value; + + ctrlSetText [bank_menu_balance_cash_field_idc,format ["$%1",strM(_money)]]; + ctrlSetText [bank_menu_balance_field_idc,format ["$%1",strM(_bank)]]; + + private["_amount"]; + _amount = [ctrlText bank_menu_amount_field_idc] call parse_number; + if (!isSCALAR(_amount) || {_amount < 0}) then {_amount = 0}; + + if ((lbData[bank_menu_destination_field_idc,(lbCurSel bank_menu_destination_field_idc)]) == _my_variable) then { + ctrlSetText [bank_menu_transaction_fee_field_idc,"$0"]; + } + else { + ctrlSetText [bank_menu_transaction_fee_field_idc,format ["$%1",strM(round(_amount * (_bank_tax/100)))]]; + }; + not(ctrlVisible bank_menu_header_idc); + }; +}; +bank_menu_combo_focus = { + ARGVX3(0,_control,controlNull); + _control ctrlSetBackgroundColor [0.1,0.1,0.1,1]; +}; + +bank_menu_combo_blur = { + ARGVX3(0,_control,controlNull); + _control ctrlSetBackgroundColor [1,1,1,0.08]; +}; + +bank_menu_setup = { + disableSerialization; + + private["_display"]; + _display = uiNamespace getVariable "BANK_MENU"; + + _bank_menu_header = _display displayCtrl bank_menu_header_idc; + _bank_menu_background = _display displayCtrl bank_menu_background_idc; + _bank_menu_balance_label = _display displayCtrl bank_menu_balance_label_idc; + _bank_menu_balance_field = _display displayCtrl bank_menu_balance_field_idc; + _bank_menu_balance_cash_label = _display displayCtrl bank_menu_balance_cash_label_idc; + _bank_menu_balance_cash_field = _display displayCtrl bank_menu_balance_cash_field_idc; + _bank_menu_amount_label = _display displayCtrl bank_menu_amount_label_idc; + _bank_menu_amount_field = _display displayCtrl bank_menu_amount_field_idc; + _bank_menu_destination_label = _display displayCtrl bank_menu_destination_label_idc; + _bank_menu_destination_field = _display displayCtrl bank_menu_destination_field_idc; + _bank_menu_transaction_fee_label = _display displayCtrl bank_menu_transaction_fee_label_idc; + _bank_menu_transaction_fee_field = _display displayCtrl bank_menu_transaction_fee_field_idc; + _bank_menu_button_deposit = _display displayCtrl bank_menu_button_deposit_idc; + _bank_menu_button_withdraw = _display displayCtrl bank_menu_button_withdraw_idc; + _bank_menu_button_close = _display displayCtrl bank_menu_button_close_idc; + + + _bank_menu_destination_field ctrlAddEventHandler ["SetFocus","(_this) call bank_menu_combo_focus"]; + _bank_menu_destination_field ctrlAddEventHandler ["KillFocus","(_this) call bank_menu_combo_blur"]; + + private["_x","_y","_ysep","_sep","_bank_title","_w","_h"]; + _x = 0.14; + _y = 0.14; + _w = 0.55; + _h = 0.40; + _ysep = 0.006; + _sep = 0.01; + _bank_title = "BANK MENU"; + + private["_button_font_height","_font_family"]; + _button_font_height = MENU_TITLE_FONT_HEIGHT; + _font_family = "PuristaMedium"; + + //bank header + private["_bhx","_bhy","_bhw","_bhh"]; + _bhx = _x; + _bhy = _y; + _bhw = _w; + _bhh = 0.045; + + _bank_menu_header ctrlSetPosition [_bhx,_bhy,_bhw,_bhh]; + _bank_menu_header ctrlSetFontHeight _button_font_height; + _bank_menu_header ctrlSetText _bank_title; + _bank_menu_header ctrlSetFont _font_family; + _bank_menu_header ctrlCommit 0; + + //bank close button + private["_bcx","_bcy","_bcw","_bch"]; + _bcw = 0.14; + _bch = _bhh; + _bcx = _bhx + _bhw - _bcw; + _bcy = _bhy + _h - _bch; + + _bank_menu_button_close ctrlSetText "Close"; + _bank_menu_button_close ctrlSetPosition [_bcx,_bcy,_bcw,_bch]; + buttonSetAction [(ctrlIDC _bank_menu_button_close),"closeDialog 0"]; + _bank_menu_button_close ctrlCommit 0; + + //bank background + private["_bbx","_bby","_bbw","_bbh"]; + _bbx = _bhx; + _bby = _bhy + _bhh + _ysep; + _bbw = _w; + _bbh = (_bcy ) - (_bhy ) - _bch - _ysep - _ysep; + + _bank_menu_background ctrlSetPosition [_bbx,_bby,_bbw,_bbh]; + _bank_menu_background ctrlSetBackgroundColor [0,0,0,0.65]; + _bank_menu_background ctrlCommit 0; + + //bank deposit button + private["_bdx","_bdy" ,"_bdw","_bdh"]; + _bdx = _bhx; + _bdy = _bby + _bbh + _ysep; + _bdw = 0.11 ; + _bdh = _bch; + + _bank_menu_button_deposit ctrlSetText "Deposit"; + _bank_menu_button_deposit ctrlSetPosition [_bdx,_bdy,_bdw,_bdh]; + _bank_menu_button_deposit ctrlCommit 0; + + //bank withdraw button + private["_bwx","_bwy" ,"_bww","_bwh"]; + _bwx = _bdx + _bdw + _sep; + _bwy = _bdy; + _bbh + _ysep; + _bww = _bcw; + _bwh = _bdh; + + _bank_menu_button_withdraw ctrlSetText "Withdraw"; + _bank_menu_button_withdraw ctrlSetPosition [_bwx,_bwy,_bww,_bwh]; + _bank_menu_button_withdraw ctrlCommit 0; + + //bank balance label + private["_bblx","_bbly","_bblw","_bblh"]; + _bblx = _bbx + _sep * 2; + _bbly = _bby + _sep * 2; + _bblw = (_bbw - _sep *6) / 2; + _bblh = 0.04; + + _bank_menu_balance_label ctrlSetText "Account balance: "; + _bank_menu_balance_label ctrlSetPosition [_bblx,_bbly,_bblw,_bblh]; + _bank_menu_balance_label ctrlSetFontHeight _button_font_height - 0.003; + _bank_menu_balance_label ctrlCommit 0; + + //bank balance field + private["_bbfx","_bbfy","_bbfw","_bbfh"]; + _bbfx = _bblx + _bblw + _sep * 2 ; + _bbfy = _bbly; + _bbfw = _bblw; + _bbfh = _bblh; + + _bank_menu_balance_field ctrlSetFontHeight _button_font_height - 0.003;; + _bank_menu_balance_field ctrlSetFont _font_family; + _bank_menu_balance_field ctrlSetPosition [_bbfx,_bbfy,_bbfw,_bbfh]; + _bank_menu_balance_field ctrlSetBackgroundColor [1,1,1,0.08]; + _bank_menu_balance_field ctrlCommit 0; + + //bank cash balance label + private["_bclx","_bcly","_bclw","_bclh"]; + _bclx = _bblx; + _bcly = _bbly + _bblh + _ysep * 2; + _bclw = _bblw; + _bclh = _bblh; + + _bank_menu_balance_cash_label ctrlSetText "Inventory balance: "; + _bank_menu_balance_cash_label ctrlSetPosition [_bclx,_bcly,_bclw,_bclh]; + _bank_menu_balance_cash_label ctrlSetFontHeight _button_font_height - 0.003; + _bank_menu_balance_cash_label ctrlCommit 0; + + //bank cash balance field + private["_bcfx","_bcfy","_bcfw","_bcfh"]; + _bcfx = _bclx + _bclw + _sep * 2 ; + _bcfy = _bcly; + _bcfw = _bclw; + _bcfh = _bclh; + + _bank_menu_balance_cash_field ctrlSetFontHeight _button_font_height - 0.003;; + _bank_menu_balance_cash_field ctrlSetFont _font_family; + _bank_menu_balance_cash_field ctrlSetPosition [_bcfx,_bcfy,_bcfw,_bcfh]; + _bank_menu_balance_cash_field ctrlSetBackgroundColor [1,1,1,0.08]; + _bank_menu_balance_cash_field ctrlCommit 0; + + + //bank transaction subject label + private["_btlx","_btly","_btlw","_btlh"]; + _btlx = _bclx; + _btly = _bcly + _bclh + _ysep * 2; + _btlw = _bclw; + _btlh = _bclh; + + _bank_menu_destination_label ctrlSetText "Transaction destination: "; + _bank_menu_destination_label ctrlSetPosition [_btlx,_btly,_btlw,_btlh]; + _bank_menu_destination_label ctrlSetFontHeight _button_font_height - 0.003; + _bank_menu_destination_label ctrlCommit 0; + + //bank transaction subject field + private["_btfx","_btfy","_btfw","_btfh"]; + _btfx = _btlx + _btlw + _sep * 2 ; + _btfy = _btly; + _btfw = _btlw; + _btfh = _btlh; + + _bank_menu_destination_field ctrlSetFontHeight _button_font_height - 0.003;; + _bank_menu_destination_field ctrlSetFont _font_family; + _bank_menu_destination_field ctrlSetPosition [_btfx,_btfy,_btfw,_btfh]; + _bank_menu_destination_field ctrlSetBackgroundColor [1,1,1,0.08]; + _bank_menu_destination_field ctrlCommit 0; + + //bank transaction amount label + private["_balx","_baly","_balw","_balh"]; + _balx = _btlx; + _baly = _btly + _btlh + _ysep * 2; + _balw = _btlw; + _balh = _btlh; + + _bank_menu_amount_label ctrlSetText "Transaction amount: "; + _bank_menu_amount_label ctrlSetPosition [_balx,_baly,_balw,_balh]; + _bank_menu_amount_label ctrlSetFontHeight _button_font_height - 0.003; + _bank_menu_amount_label ctrlCommit 0; + + //bank transaction amount field + private["_bafx","_bafy","_bafw","_bafh"]; + _bafx = _balx + _balw + _sep * 2 ; + _bafy = _baly; + _bafw = _balw; + _bafh = _balh; + + _bank_menu_amount_field ctrlSetFontHeight _button_font_height - 0.003;; + _bank_menu_amount_field ctrlSetFont _font_family; + _bank_menu_amount_field ctrlSetPosition [_bafx,_bafy,_bafw,_bafh]; + _bank_menu_amount_field ctrlSetBackgroundColor [1,1,1,0.08]; + _bank_menu_amount_field ctrlCommit 0; + + //bank transaction fee label + private["_bflx","_bfly","_bflw","_bflh"]; + _bflx = _balx; + _bfly = _baly + _balh + _ysep * 2; + _bflw = _balw; + _bflh = _balh; + + //player groupChat format["_bank_menu_transaction_fee_label = %1",_bank_menu_transaction_fee_label]; + _bank_menu_transaction_fee_label ctrlSetText "Transaction fee: "; + _bank_menu_transaction_fee_label ctrlSetPosition [_bflx,_bfly,_bflw,_bflh]; + _bank_menu_transaction_fee_label ctrlSetFontHeight _button_font_height - 0.003; + _bank_menu_transaction_fee_label ctrlCommit 0; + + //bank transaction fee field + private["_bafx","_bafy","_bafw","_bafh"]; + _bffx = _bflx + _bflw + _sep * 2 ; + _bffy = _bfly; + _bffw = _bflw; + _bffh = _bflh; + + _bank_menu_transaction_fee_field ctrlSetFontHeight _button_font_height - 0.003;; + _bank_menu_transaction_fee_field ctrlSetFont _font_family; + _bank_menu_transaction_fee_field ctrlSetPosition [_bffx,_bffy,_bffw,_bffh]; + _bank_menu_transaction_fee_field ctrlSetBackgroundColor [1,1,1,0.08]; + _bank_menu_transaction_fee_field ctrlCommit 0; + + _bank_menu_destination_field +}; + +bank_menu_functions_defined = true; \ No newline at end of file diff --git a/addons/bank/cash_functions.sqf b/addons/bank/cash_functions.sqf new file mode 100644 index 000000000..185c44c82 --- /dev/null +++ b/addons/bank/cash_functions.sqf @@ -0,0 +1,43 @@ +#include "macro.h" +#include "defines.h" + +if (!undefined(cash_functions_defined)) exitWith {}; +diag_log format["Loading cash functions ..."]; + + +cash_get_value = { + ARGVX4(0,_player,objNull,0); + if (not([_player] call player_human)) exitWith {0}; + + private ["_value"]; + _value = _player getVariable ["cmoney", 0]; + _value +}; + +cash_set_value = { + ARGVX4(0,_player,objNull,0); + ARGVX4(1,_value,0,0); + + if (not([_player] call player_human)) exitWith {0}; + + + (_player setVariable ["cmoney",_value, true]) +}; + +cash_transaction = { + ARGVX4(0,_player,objNull,0); + ARGVX4(1,_value,0,0); + + if (not([_player] call player_human)) exitWith {0}; + + private["_cvalue"]; + _cvalue = [_player] call cash_get_value; + _cvalue = _cvalue + _value; + [_player,_cvalue] call cash_set_value; + _cvalue +}; + +diag_log format["Loading cash functions complete"]; + + +cash_functions_defined = true; \ No newline at end of file diff --git a/addons/bank/config.sqf b/addons/bank/config.sqf new file mode 100644 index 000000000..1080bb3da --- /dev/null +++ b/addons/bank/config.sqf @@ -0,0 +1,2 @@ +bank_transaction_tax = 5; // % to tax player for transfering money +bank_maximum_balance = 250000; // maximum amount of money that player can have in bank \ No newline at end of file diff --git a/addons/bank/constants.h b/addons/bank/constants.h new file mode 100644 index 000000000..0770342d8 --- /dev/null +++ b/addons/bank/constants.h @@ -0,0 +1,35 @@ + +#define FIELD_BACKGROUND {1,1,1,0.1} +#define DISABLED_BUTTON_BACKGROUND {1,0,0,0.4} +#define DISABLED_BUTTON_TEXT {1,1,1,1} + + + +#define GUI_BCG_RGB {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"} + + +#define BOX_BACKGROUND {1,1,1,0.1} +#define DISABLED_BUTTON_BACKGROUND {1,0,0,0.4} +#define DISABLED_BUTTON_TEXT {1,1,1,1} + + + +#define bank_menu_dialog_idd 300 +#define bank_menu_header_idc 301 +#define bank_menu_background_idc 302 +#define bank_menu_balance_label_idc 303 +#define bank_menu_balance_field_idc 304 +#define bank_menu_balance_cash_label_idc 305 +#define bank_menu_balance_cash_field_idc 306 +#define bank_menu_amount_label_idc 307 +#define bank_menu_amount_field_idc 308 +#define bank_menu_destination_label_idc 309 +#define bank_menu_destination_field_idc 310 +#define bank_menu_button_deposit_idc 311 +#define bank_menu_button_withdraw_idc 312 +#define bank_menu_button_close_idc 313 +#define bank_menu_transaction_fee_label_idc 314 +#define bank_menu_transaction_fee_field_idc 315 + +#define MENU_TITLE_FONT_HEIGHT (((((safezoneW / safezoneH) min 1.2) / 1.2) / 32) * 1) + diff --git a/addons/bank/defines.h b/addons/bank/defines.h new file mode 100644 index 000000000..4f85ce549 --- /dev/null +++ b/addons/bank/defines.h @@ -0,0 +1 @@ +#define strM(x) ([x, ","] call format_integer) diff --git a/addons/bank/functions.sqf b/addons/bank/functions.sqf new file mode 100644 index 000000000..aee0530ff --- /dev/null +++ b/addons/bank/functions.sqf @@ -0,0 +1,7 @@ +[] execVM "addons\bank\config.sqf"; + +{ + private["_h"]; + _h = [] execVM format["addons\bank\%1_functions.sqf", _x]; + waitUntil {scriptDone _h}; +} forEach ["misc", "bank_menu", "bank", "cash", "interact", "atm"] diff --git a/addons/bank/icons/bank.paa b/addons/bank/icons/bank.paa new file mode 100644 index 0000000000000000000000000000000000000000..690868620b277078c5377fb206e022b0d6850272 GIT binary patch literal 1522 zcmb_cOH5Ny5S=0g6qSOlpCI~xr&SX)5rRR`zJ}1+NU>@ky3>N6g|J~|G{&YH4K4)n z!vY#uxbU+8!MucsmRO_2kZ3drT7iYy;D-tl0z~R{=C)PPL_*^9zPz40Gw00Q`|edU zv)O3RHy0bD0U$6mbb{mkMk`^4M%ZjDG!a(eLwK*rv`fPOPJGUzBsT_bZQlpeo-=f`YAK_Yb4mr<6UAn-u`d)zr724 zm2#i5z|Zq{t3h}g;*PT zona|%<>>ps*LL#jP$1PaiMa{C`BN#p8v6GWTVI@h4VM)TbfV3F}QnpJvK?o zeC0p(Ln%ootWv4eELT|suviFn46vrc@{PekANkSb*>F0KKaw1d*Huiy6>-XIh}56Z zmlJ#$UC8+)NwQ~kWtXJmpm;SJ+X7Jnj);DtUvcCrrMcwSp)LP}^{~-p5x#7Wt8j}# z>$BR`oS1wkk?U*Go{UYLG2n>!kHZd^h=cg-XtU}2KPrx7EFq$wG-3$GvM~=~2^S=G zVzAW^yo~%b1F+hK;&ae{1eKRow(V0ri2bM2e z`&ffGZNL9F-uRZ)YLm)->1jYi2P>_Kj$Jwb3}m@Lof%Xdn?5!0MWti0_H(oQ_31H= zZ4$tWI*L!}r8Z>QX0ry0FP6o9bW@v+jR1*lY(TL@g^v-yl9||<|Dh@`X6TZa@{tal zb&pH)a1h30pt6pcO5Cpw-;ZF;aOLy(_Ud@zzi`3n%zKwp@5RCM@jKQB`qy8xmY`nf zn$QPKt>s)lgaZrryii~m>mL|*qMkmmsBp0*u7l?zj>De>kkyH|!OoU4n#RiwG9I=D zJ1oj!!qm23+N~)#Fvxe)iD`YS;#|VLq86e}69l|ZqiH=))&}ZDU-o>OUU!26$$kP< CUsvz| literal 0 HcmV?d00001 diff --git a/addons/bank/interact_functions.sqf b/addons/bank/interact_functions.sqf new file mode 100644 index 000000000..4b95430c6 --- /dev/null +++ b/addons/bank/interact_functions.sqf @@ -0,0 +1,166 @@ +#include "macro.h" +#include "defines.h" + +if (!undefined(interact_functions_defined)) exitWith {}; +diag_log format["Loading interact functions ..."]; + +interact_deposit_receive = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_sender,objNull); + ARGVX3(2,_amount,0); + + if (not([_player] call player_human)) exitWith {}; + if (not([_sender] call player_human)) exitWith {}; + if (_player != player) exitWith {}; + if (_amount <= 0) exitWith {}; + + [_player,_amount] call bank_transaction; + + player groupChat format["You received $%1 from %2-%3 on your bank account",strM(_amount),_sender,(name _sender)]; +}; + +//setup the bank deposit receive handler +format["bank_deposit_receive_%1", getPlayerUID player] addPublicVariableEventHandler { (_this select 1) call interact_deposit_receive;}; + + +interact_deposit_other = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_target,objNull); + ARGVX3(2,_amount,0); + + if (not([_player] call player_human)) exitWith {}; + if (not([_target] call player_human)) exitWith {}; + if (_player != player) exitWith {}; + + + if (_amount <= 0) exitWith {}; + + + private["_player_variable","_player_variable_name","_bank_amount"]; + private["_tax_fee","_total_due","_bank_tax"]; + _bank_tax = bank_transaction_tax; + _tax_fee = round(_amount * (_bank_tax/100)); + _total_due = _tax_fee + _amount; + _bank_amount = [_player] call bank_get_value; + + if (_bank_amount < _total_due) exitWith { + player groupChat format["You do not have enough money in your account to send $%1, with tax fee $%2",strM(_amount),strM(_tax_fee)]; + }; + + if ([_amount, _bank_amount] call interact_check_trx_maximum) exitWith {}; + + [_player,-(_total_due)] call bank_transaction; + + player groupChat format["You have sent $%1 to %2-%3,your tax fee was $%4",strM(_amount),_target,(name _target),strM(_tax_fee)]; + + _receive_handler_name = format["bank_deposit_receive_%1", getPlayerUID _target]; + missionNamespace setVariable[_receive_handler_name, [_target,_player,_amount]]; + publicVariable _receive_handler_name; +}; + + + +interact_check_trx_minimum = { + ARGV2(0,_amount); + private["_minimum"]; + _minimum = 10; + if (_amount < _minimum) exitWith { + player groupChat format["The minimum about for a bank transaction is $%1",strM(_minimum)]; + true + }; + false +}; + +interact_check_trx_maximum = { + ARGV2(0,_amount); + ARGV2(1,_balance); + private["_max"]; + _max = bank_maximum_balance; + if ((_amount + _blanace) > _max) exitWith { + player groupChat format["This transaction would put the bank account over the $%1 maximum.",strM(_max)]; + true + }; + false +}; + + + +interact_deposit_self ={ + ARGVX3(0,_player,objNull); + ARGVX3(1,_target,objNull); + ARGVX3(2,_amount,0); + + if (not([_player] call player_human)) exitWith {}; + if (not([_target] call player_human)) exitWith {}; + if (_player != player) exitWith {}; + + if (_amount <= 0) exitWith {}; + + if ([_amount] call interact_check_trx_minimum) exitWith {}; + + + private["_money", "_balance"]; + _money = [_player] call cash_get_value; + _balance = [_player] call bank_get_value; + + if ([_amount, _balance] call interact_check_trx_maximum) exitWith {}; + + if (_money < _amount) exitWith { + player groupChat format["You do not have enough money in your inventory to deposit $%1",strM(_amount)]; + }; + + player groupChat format["You have deposited $%1 into your bank account",strM(_amount)]; + [_player,_amount] call bank_transaction; + [_player,-(_amount)] call cash_transaction; + +}; + +interact_deposit = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_target,objNull); + ARGVX3(2,_amount,0); + + if (not([_player] call player_human)) exitWith {}; + if (not([_target] call player_human)) exitWith {}; + + if (_player != player) exitWith {}; + + if (_amount <= 0) exitWith {}; + + if ([_amount] call interact_check_trx_minimum) exitWith {}; + + if (_player == _target) exitWith { + (_this call interact_deposit_self) + }; + + (_this call interact_deposit_other) +}; + +interact_withdraw = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_amount,0); + + if (not([_player] call player_human)) exitWith {}; + if (_player != player) exitWith {}; + + + if (_amount <= 0) exitWith {}; + + if ([_amount] call interact_check_trx_minimum) exitWith {}; + + private["_bank_amount"]; + _bank_amount = [_player] call bank_get_value; + + if (_amount > _bank_amount) exitWith { + player groupChat format["You do not have enough money on your bank account to withdraw $%1",strM(_amount)]; + }; + + [_player,-(_amount)] call bank_transaction; + [_player, _amount] call cash_transaction; + + + player groupChat format["You have withdrawn $%1 from your bank account",strM(_amount)]; +}; + +interact_functions_defined = true; +diag_log format["Loading interact functions complete"]; diff --git a/addons/bank/macro.h b/addons/bank/macro.h new file mode 100644 index 000000000..7cdedd47a --- /dev/null +++ b/addons/bank/macro.h @@ -0,0 +1,142 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} \ No newline at end of file diff --git a/addons/bank/misc_functions.sqf b/addons/bank/misc_functions.sqf new file mode 100644 index 000000000..ac149abfd --- /dev/null +++ b/addons/bank/misc_functions.sqf @@ -0,0 +1,68 @@ +#include "macro.h" + +format_integer = { + private["_value", "_nan", "_separator"]; + _nan = "NotANumber"; + _value = _this select 0; + _separator = _this select 1; + + if (undefined(_value)) exitWith {_nan}; + if (typeName _value != "SCALAR") exitWith {_nan}; + + if (_value == 0) exitWith {"0"}; + + private["_string_value", "_digits", "_remainder", "_sign"]; + _string_value = ""; + _digits = 0; + _sign = if (_value < 0) then {"-"} else {""}; + _value = abs(round(_value)); + while { _value >= 1 } do { + _digits = _digits + 1; + if ( _digits > 1 && ((_digits - 1) % 3) == 0) then { + _string_value = _separator + _string_value; + }; + _remainder = _value % 10; + _string_value = str(_remainder) + _string_value; + _value = floor(_value / 10); + }; + + _sign+_string_value +}; + +cameraDir = { + ([(positionCameraToWorld [0,0,0]), (positionCameraToWorld [0,0,1])] call BIS_fnc_vectorDiff) +}; + +parse_number = { + private ["_number"]; + _number = _this select 0; + if (undefined(_number)) exitWith {0}; + if (typeName _number == "SCALAR") exitWith {_number}; + if (typeName _number != "STRING") exitWith {0}; + _number = parseNumber(_number); + if (undefined(_number)) exitWith {0}; + if (typeName _number != "SCALAR") exitWith {0}; + _number +}; + +uid_to_player = { + private["_uid"]; + _uid = _this select 0; + if (isNil "_uid" || {typeName _uid != typeName "STRING" || {_uid == ""}}) exitWith {objNull}; + + private["_result"]; + _result = objNull; + + { + if ((getPlayerUID _x) == _uid) exitWith { + _result = _x; + }; + } forEach allUnits; + + (_result) +}; + +player_human = { + ARGVX4(0,_player,objNull,false); + (alive _player && {isPlayer _player}) +}; diff --git a/addons/bank/ui.hpp b/addons/bank/ui.hpp new file mode 100644 index 000000000..7786af8fd --- /dev/null +++ b/addons/bank/ui.hpp @@ -0,0 +1,489 @@ +#define FontM "PuristaMedium" +#define FontHTML "PuristaMedium" +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_SLIDER 3 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_SHORTCUT_BUTTON 16 +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define CT_LISTNBOX 102 + +#define ST_LEFT 0 +#define ST_RIGHT 1 +#define ST_CENTER 2 +#define ST_MULTI 16 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_SHADOW 256 +#define ST_NO_RECT 512 + + +// Respawn Dialog additions + +#define FontM_R "PuristaMedium" +#define FontHTML_R "PuristaMedium" +#define Dlg_ROWS 36 +#define Dlg_COLS 90 +#define Dlg_CONTROLHGT ((100/Dlg_ROWS)/100) +#define Dlg_COLWIDTH ((100/Dlg_COLS)/100) +#define Dlg_TEXTHGT_MOD 0.8 +#define Dlg_ROWSPACING_MOD 1.3 +#define Dlg_ROWHGT (Dlg_CONTROLHGT*Dlg_ROWSPACING_MOD) +#define Dlg_TEXTHGT (Dlg_CONTROLHGT*Dlg_TEXTHGT_MOD) +#define Dlg_ICONWIDTH (Dlg_CONTROLHGT*4/5) +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0c +#define ST_TYPE 0xF0 +#define ST_SINGLE 0 +#define ST_TITLE_BAR 32 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX 96 +#define ST_GROUP_BOX2 112 +#define ST_HUD_BACKGROUND 128 +#define ST_TILE_PICTURE 144 +#define ST_WITH_RECT 160 +#define ST_LINE 176 +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 +#define ST_KEEP_ASPECT_RATIO 0x800 +#define ST_TITLE ST_TITLE_BAR + ST_CENTER +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 +#define SL_TEXTURES 0x10 +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 + + + +class ui_RscText { + type = CT_STATIC; + idc = -1; + style = ST_LEFT; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.02; + text = ""; +}; + +class ui_RscBgRahmen { + type = CT_STATIC; + idc = -1; + style = ST_FRAME; + colorBackground[] = {1.0,1.0,1.0,0.75}; + colorText[] = {1,1,1,1}; + font = FontM; + SizeEX = 0.025; + text = ""; +}; + +class ui_RscBackground { + colorBackground[] = {0,0,0,0.75}; + text = ""; + type = CT_STATIC; + idc = -1; + style = ST_LEFT; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.04; +}; + +class ui_RscPicture { + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.02; + text = ""; +}; + +class ui_RscPictureKeepAspect: ui_RscPicture { + style = "0x30 + 0x800"; +}; + +class ui_RscBackgroundPicture { + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.02; + text = "dbg.pac"; +}; + +class ui_RscButton { + type = CT_BUTTON; + idc = -1; + style = ST_CENTER; + colorText[] = {1,1,1,1}; + font = FontHTML; + sizeEx = 0.025; + soundPush[] = {"",0.2,1}; + soundClick[] = {"",0.2,1}; + soundEscape[] = {"",0.2,1}; + default = false; + text = ""; + action = ""; + colorActive[] = {0,0,0,0}; + colorDisabled[] = {0,0,0,0.1}; + colorBackground[] = {0.8,0.8,0.8,0.3}; + colorBackgroundActive[] = {0.7,0.7,0.7,1}; + colorBackgroundDisabled[] = {1,1,1,0.5}; + colorFocused[] = {0.84,1,0.55,1}; + colorShadow[] = {0,0,0,0.1}; + colorBorder[] = {1,1,1,0.1}; + offsetX = 0; + offsetY = 0; + offsetPressedX = 0; + offsetPressedY = 0; + borderSize = 0; + soundEnter[] = {"",0.15,1}; +}; + +class ui_RscMenuButton { + type = CT_SHORTCUT_BUTTON; + style = "0x02 + 0xC0"; + default = 0; + shadow = 0; + x = 0; + y = 0; + w = 0.095589; + h = 0.039216; + animTextureNormal = "#(argb,8,8,3)color(0,0,0,1)"; + animTextureDisabled = "#(argb,8,8,3)color(1,0,0,0.8)"; + animTextureOver = "#(argb,8,8,3)color(0,0,0,0.8)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,1)"; + animTexturePressed = "#(argb,8,8,3)color(0,0,0,1)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,1)"; + textureNoShortcut = ""; + + colorBackground[] = {1,1,1,0.8}; + colorBackground2[] = {1,1,1,0.5}; + color[] = {1,1,1,1}; + color2[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,0,0,0.8}; + + colorFocused[] = {1,1,1,1}; + colorBackgroundFocused[] = {0,0,0,0}; + + period = 1.2; + periodFocus = 1.2; + periodOver = 1.2; + size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + + class HitZone + { + left = 0.0; + top = 0.0; + right = 0.0; + bottom = 0.0; + }; + + class TextPos + { + left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)"; + top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; + right = 0.005; + bottom = 0.0; + }; + class Attributes + { + font = "PuristaLight"; + color = "#E5E5E5"; + align = "left"; + shadow = "false"; + }; + class ShortcutPos + { + left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005"; + top = 0.005; + w = 0.0225; + h = 0.03; + }; + soundEnter[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundPush",0.09,1}; + soundClick[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; +}; + +class ui_RscMenuTitle { + type = CT_STATIC; + idc = -1; + style = ST_CENTER; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + colorText[] = {1,1,1,1}; + font = "PuristaMedium"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + text = ""; + shadow = 1; + colorShadow[] = {0,0,0,0.5}; + linespacing = 1; +}; + + +class ui_RscDummy : ui_RscButton { + x = -1.0; + y = -1.0; + idc = -1; + w = 0.01; + h = 0.01; + default = true; +}; + +class ui_RscEdit { + idc = -1; + type = CT_EDIT; + style = ST_LEFT; + font = FontHTML; + sizeEx = 0.02; + colorText[] = {1,1,1,1}; + colorSelection[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1}; + colorDisabled[] = {1,0,0,0.3}; + autocomplete = false; + text = ""; +}; + +class ui_RscEditMulti : ui_RscEdit { + style = ST_MULTI; + sizeEx = 0.03; + lineSpacing = 1; + colorDisabled[] = {1,1,1,1}; +}; + +class ui_RscLB_C { + style = ST_LEFT; + idc = -1; + colorSelect[] = {0,0,0,1.0}; + colorSelectBackground[] = {0.7,0.7,0.7,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0.8,0.8,0.8,0.3}; + colorScrollbar[] = {Dlg_Color_White,1}; + colorDisabled[] = {1,0,0,0.3}; + font = FontHTML; + sizeEx = 0.025; + rowHeight = 0.04; + period = 1.200000; + maxHistoryDelay = 1.000000; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + + class ScrollBar {}; +}; + +class ui_RscListBox { + type = CT_LISTBOX; + style = ST_MULTI; + lineSpacing = 1; + shadow = 0; + //colorSelect[] = {0,0,0,1}; + colorSelect[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,0.15}; + colorSelectBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + colorScrollbar[] = {Dlg_Color_White,1}; + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + wholeHeight = 0; + color[] = {1,1,1,1}; + colorActive[] = {1,0,0,1}; + colorDisabled[] = {1,0,0,0.3}; + font = "PuristaMedium"; + sizeEx = 0.030; + rowHeight = 0.04; + + + soundEnter[] = {"\A3\ui_f\data\sound\onover",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundClick[] = {"\A3\ui_f\data\sound\onclick",0.07,1}; + soundEscape[] = {"\A3\ui_f\data\sound\onescape",0.09,1}; + soundSelect[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundExpand[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundCollapse[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + maxHistoryDelay = 1; + + class ScrollBar { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; +}; + + + +class ui_RscListNBox : ui_RscListBox { + type = CT_LISTNBOX; + colorSelect[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,0.15}; + colorSelectBackground[] = {0,0,0,0}; + drawSideArrows = 0; + toolTip = ""; + idcLeft = 20010; + idcRight = 20011; +}; + + +class ui_RscCombo { + type = CT_COMBO; + style = ST_MULTI; + lineSpacing = 1; + shadow = 0; + sizeEx = 0.030; + rowHeight = 0.04; + + //colorSelect[] = {0,0,0,1.0}; + colorSelect[] = {1,1,1,1.0}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0.8,0.8,0.8,0.3}; +// colorSelectBackground[] = {0.7,0.7,0.7,1}; + colorSelectBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + colorScrollbar[] = {Dlg_Color_White,1}; + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + wholeHeight = 0.45; + color[] = {1,1,1,1}; + colorActive[] = {1,0,0,1}; + colorDisabled[] = {1,0,0,0.3}; + font = "PuristaMedium"; + + + soundEnter[] = {"\A3\ui_f\data\sound\onover",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundClick[] = {"\A3\ui_f\data\sound\onclick",0.07,1}; + soundEscape[] = {"\A3\ui_f\data\sound\onescape",0.09,1}; + soundSelect[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundExpand[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundCollapse[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + maxHistoryDelay = 1; + + class ScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\a3\ui_f\data\gui\cfg\Scrollbar\thumb_ca.paa"; + arrowEmpty = "\a3\ui_f\data\gui\cfg\Scrollbar\arrowempty_ca.paa"; + arrowFull = "\a3\ui_f\data\gui\cfg\Scrollbar\arrowfull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + + class ComboScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; +}; + +/* +class RscCombo: RscLB_C { + type = CT_COMBO; + wholeHeight = 0.3; + soundSelect[] = {"",0.15,1}; + soundExpand[] = {"",0.15,1}; + soundCollapse[] = {"",0.15,1}; + arrowEmpty = ""; + arrowFull = ""; +}; +*/ + +class ui_RscSliderH { + idc = -1; + access = ReadandWrite; + type = CT_SLIDER; + sizeEx = 0.025; + style = 1024; + + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.2}; + arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; + thumb = "\A3\ui_f\data\gui\cfg\slider\thumb_ca.paa"; +}; + +class ui_RscSliderV { + access = ReadandWrite; + type = CT_SLIDER; + idc = -1; + sizeEx = 0.025; + style = 0; + color[] = {0.2,0.2,0.2,1}; + colorActive[] = {1,1,1,1}; +}; + +class ui_RscCheckBox { + idc = -1; + type = CT_CHECKBOXES; + style = ST_CENTER; + + colorText[] = {1,1,1,1}; + color[] = {0,1,0,1}; + colorTextSelect[] = {0,0.8,0,1}; + colorSelectedBg[] = {1,1,1,0}; + colorSelect[] = {0,0,0,1}; + colorTextDisable[] = {0.4,0.4,0.4,1}; + colorDisable[] = {0.4,0.4,0.4,1}; + font = "PuristaMedium"; + SizeEX=0.025; + rows = 1; + columns = 1; + strings[] = {""}; +}; \ No newline at end of file diff --git a/client/init.sqf b/client/init.sqf index d848ab206..f06fbf5f3 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -133,6 +133,8 @@ A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "addons\far_revive\FAR_revive_init.sqf"; [] execVM "addons\camera\functions.sqf"; [] execVM "addons\water_edge\functions.sqf"; +[] execVM "addons\bank\functions.sqf"; + if (["A3W_teamPlayersMap"] call isConfigOn) then From e18ea9ce3b9d3092107289bd6e3d073f3f30f227 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 6 Dec 2014 23:23:33 -0800 Subject: [PATCH 132/544] Add UI to description.ext --- description.ext | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/description.ext b/description.ext index 78aa5c1a6..a1de4de9c 100644 --- a/description.ext +++ b/description.ext @@ -57,6 +57,10 @@ loadScreen = "mapConfig\Loading.jpg"; #include "addons\outlw_magRepack\MagRepack_Config.hpp" #include "addons\taw_vd\dialog.hpp" +#include "addons\bank\ui.hpp" +#include "addons\bank\bank_menu.hpp" + + class RscTitles { #include "addons\proving_ground\PG_rsctitles.hpp" From 7a322deceb9278a5e609b01f409ce2fcc1394af7 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 6 Dec 2014 23:49:27 -0800 Subject: [PATCH 133/544] Fix issue with max balance check Also make the withdraw button disabled if a different player is selected on the menu --- addons/bank/bank_menu_functions.sqf | 2 ++ addons/bank/interact_functions.sqf | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/bank/bank_menu_functions.sqf b/addons/bank/bank_menu_functions.sqf index 638933992..b388f5e58 100644 --- a/addons/bank/bank_menu_functions.sqf +++ b/addons/bank/bank_menu_functions.sqf @@ -98,9 +98,11 @@ bank_menu_loop = { if ((lbData[bank_menu_destination_field_idc,(lbCurSel bank_menu_destination_field_idc)]) == _my_variable) then { ctrlSetText [bank_menu_transaction_fee_field_idc,"$0"]; + ctrlEnable [bank_menu_button_withdraw_idc, true]; } else { ctrlSetText [bank_menu_transaction_fee_field_idc,format ["$%1",strM(round(_amount * (_bank_tax/100)))]]; + ctrlEnable [bank_menu_button_withdraw_idc, false]; }; not(ctrlVisible bank_menu_header_idc); }; diff --git a/addons/bank/interact_functions.sqf b/addons/bank/interact_functions.sqf index 4b95430c6..dfb1ab52c 100644 --- a/addons/bank/interact_functions.sqf +++ b/addons/bank/interact_functions.sqf @@ -72,11 +72,11 @@ interact_check_trx_minimum = { }; interact_check_trx_maximum = { - ARGV2(0,_amount); - ARGV2(1,_balance); + ARGVX3(0,_amount,0); + ARGVX3(1,_balance,0); private["_max"]; _max = bank_maximum_balance; - if ((_amount + _blanace) > _max) exitWith { + if ((_amount + _balance) > _max) exitWith { player groupChat format["This transaction would put the bank account over the $%1 maximum.",strM(_max)]; true }; From d24a86862e384f0d4df782e8cdece260fdd29ccb Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 7 Dec 2014 00:07:50 -0800 Subject: [PATCH 134/544] Fix names in messages, and max balance check --- addons/bank/interact_functions.sqf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/bank/interact_functions.sqf b/addons/bank/interact_functions.sqf index dfb1ab52c..0d4e5a99a 100644 --- a/addons/bank/interact_functions.sqf +++ b/addons/bank/interact_functions.sqf @@ -16,7 +16,7 @@ interact_deposit_receive = { [_player,_amount] call bank_transaction; - player groupChat format["You received $%1 from %2-%3 on your bank account",strM(_amount),_sender,(name _sender)]; + player groupChat format["You received $%1 from %2 on your bank account",strM(_amount),(name _sender)]; }; //setup the bank deposit receive handler @@ -47,11 +47,13 @@ interact_deposit_other = { player groupChat format["You do not have enough money in your account to send $%1, with tax fee $%2",strM(_amount),strM(_tax_fee)]; }; - if ([_amount, _bank_amount] call interact_check_trx_maximum) exitWith {}; + private["_target_bank_amount"]; + _target_bank_amount = [_target] call bank_get_value; + if ([_amount, _target_bank_amount] call interact_check_trx_maximum) exitWith {}; [_player,-(_total_due)] call bank_transaction; - player groupChat format["You have sent $%1 to %2-%3,your tax fee was $%4",strM(_amount),_target,(name _target),strM(_tax_fee)]; + player groupChat format["You have sent $%1 to %2,your tax fee was $%3",strM(_amount),(name _target),strM(_tax_fee)]; _receive_handler_name = format["bank_deposit_receive_%1", getPlayerUID _target]; missionNamespace setVariable[_receive_handler_name, [_target,_player,_amount]]; From 27f242a53b655a49cc35dd7589e8cb4d629043e8 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 7 Dec 2014 00:45:53 -0800 Subject: [PATCH 135/544] Added Union Jack vehicle texture and raised UAV prices. --- client/images/vehicleTextures/union_ jack.jpg | Bin 0 -> 63094 bytes storeConfig.sqf | 21 +++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) create mode 100644 client/images/vehicleTextures/union_ jack.jpg diff --git a/client/images/vehicleTextures/union_ jack.jpg b/client/images/vehicleTextures/union_ jack.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6fd8ff8fe207a482f1cc6b08a29c9b95c08e842b GIT binary patch literal 63094 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 jzhvKGylpxQ*u7m*R4cr}y88IvYr((I1BWT^|Gx Date: Sun, 7 Dec 2014 00:51:01 -0800 Subject: [PATCH 136/544] Oops. --- .../{union_ jack.jpg => union_jack.jpg} | Bin storeConfig.sqf | 10 +++++----- 2 files changed, 5 insertions(+), 5 deletions(-) rename client/images/vehicleTextures/{union_ jack.jpg => union_jack.jpg} (100%) diff --git a/client/images/vehicleTextures/union_ jack.jpg b/client/images/vehicleTextures/union_jack.jpg similarity index 100% rename from client/images/vehicleTextures/union_ jack.jpg rename to client/images/vehicleTextures/union_jack.jpg diff --git a/storeConfig.sqf b/storeConfig.sqf index 7884a35bb..5add088a9 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -769,7 +769,7 @@ colorsArray = compileFinal str //["Leopard", "client\images\vehicleTextures\leopard.jpg"], ["'Murica", "client\images\vehicleTextures\murica.jpg"], ["Confederate", "client\images\vehicleTextures\confederate.jpg"], - ["Union Jack", "client\images\vehicleTextures\union_ jack.jpg"], + ["Union Jack", "client\images\vehicleTextures\union_jack.jpg"], ["Yellow Camo", "client\images\vehicleTextures\camo_fuel.jpg"], ["Orange Camo", "client\images\vehicleTextures\camo_fack.jpg"], ["Red Camo", "client\images\vehicleTextures\camo_deser.jpg"] @@ -799,10 +799,10 @@ customPlayerItems = compileFinal str ["Canned Food", "cannedfood", localize "STR_WL_ShopDescriptions_CanFood", "client\icons\cannedfood.paa", 30, 15], ["Repair Kit", "repairkit", localize "STR_WL_ShopDescriptions_RepairKit", "client\icons\briefcase.paa", 500, 250], ["Jerry Can (Full)", "jerrycanfull", localize "STR_WL_ShopDescriptions_fuelFull", "client\icons\jerrycan.paa", 150, 75], - ["LSD", "lsd", localize "STR_WL_ShopDescriptions_LSD", "client\icons\lsd.paa", 3500, 3000], - ["Marijuana", "marijuana", localize "STR_WL_ShopDescriptions_Marijuana", "client\icons\marijuana.paa", 3500, 3000], - ["Cocaine", "cocaine", localize "STR_WL_ShopDescriptions_Cocaine", "client\icons\cocaine.paa", 3500, 3000], - ["Heroin", "heroin", localize "STR_WL_ShopDescriptions_Heroin", "client\icons\heroin.paa", 3500, 3000], + ["LSD", "lsd", localize "STR_WL_ShopDescriptions_LSD", "client\icons\lsd.paa", 3500, 3000], + ["Marijuana", "marijuana", localize "STR_WL_ShopDescriptions_Marijuana", "client\icons\marijuana.paa", 3500, 3000], + ["Cocaine", "cocaine", localize "STR_WL_ShopDescriptions_Cocaine", "client\icons\cocaine.paa", 3500, 3000], + ["Heroin", "heroin", localize "STR_WL_ShopDescriptions_Heroin", "client\icons\heroin.paa", 3500, 3000], ["Jerry Can (Empty)", "jerrycanempty", localize "STR_WL_ShopDescriptions_fuelEmpty", "client\icons\jerrycan.paa", 50, 25], From 54a50480996f121511696f2f8d4bc573e0e8e035 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 7 Dec 2014 01:30:25 -0800 Subject: [PATCH 137/544] Added back ammo vehicles with resupply script. --- addons/scripts/fn_resupplytruck.sqf | 2 +- client/functions/playerActions.sqf | 4 ++-- server/functions/spawnStoreObject.sqf | 4 ++-- storeConfig.sqf | 11 +++++------ 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index e23f8ab06..e72a77469 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -104,7 +104,7 @@ _resupplyThread = _vehicle spawn }; // Abort everything if no Tempest Device in proximity - if ({alive _x} count (_vehicle nearEntities ["O_Truck_03_device_F", RESUPPLY_TRUCK_DISTANCE]) == 0) then + if ({alive _x} count (_vehicle nearEntities [["O_Heli_Transport_04_ammo_F", "I_Truck_02_ammo_F", "O_Truck_03_ammo_F", "B_Truck_01_ammo_F"], RESUPPLY_TRUCK_DISTANCE]) == 0) then { if (_started) then { titleText ["Vehicle resupply aborted!", "PLAIN DOWN", 0.5] }; mutexScriptInProgress = false; diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 4a4df0df2..eed58870d 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -11,8 +11,8 @@ ["Holster Weapon", { player action ["SwitchWeapon", player, player, 100] }, [], -11, false, false, "", "vehicle player == player && currentWeapon player != ''"], ["Unholster Primary Weapon", { player action ["SwitchWeapon", player, player, 0] }, [], -11, false, false, "", "vehicle player == player && currentWeapon player == '' && primaryWeapon player != ''"], - ["Heal Self", "addons\scripts\healSelf.sqf",0,0,false,false,"","((damage player)>0.01 && (damage player)<0.25499) && ('FirstAidKit' in (items player)) && (vehicle player == player)"], - ["Resupply", "addons\scripts\fn_resupplytruck.sqf", [], 51, false, false, "", "!(vehicle player == player) and (cursortarget iskindof 'O_Truck_03_device_F') and (player distance cursortarget) < 10"], + ["Heal Self", "addons\scripts\healSelf.sqf",0,0,false,false,"","((damage player)>0.01 && (damage player)<0.25499) && ('FirstAidKit' in (items player)) && (vehicle player == player)"], + ["Resupply", "addons\scripts\fn_resupplytruck.sqf", [], 51, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['O_Heli_Transport_04_ammo_F', 'I_Truck_02_ammo_F', 'O_Truck_03_ammo_F', 'B_Truck_01_ammo_F'] > 0 ;} && !(vehicle player == player) && (player distance cursortarget) < 10"], [format [" [Player Menu]", "#FF8000"], "client\systems\playerMenu\init.sqf", [], -10, false], diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 71e6fd41f..1f3867b3a 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -207,12 +207,12 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore case (_object isKindOf "O_Heli_Transport_04_ammo_F"): { - _object setAmmoCargo 10; + _object setAmmoCargo 0; }; case ({_object isKindOf _x} count ["B_Truck_01_ammo_F", "O_Truck_02_Ammo_F", "O_Truck_03_ammo_F", "I_Truck_02_ammo_F"] > 0): { - _object setAmmoCargo 25; + _object setAmmoCargo 0; }; case ({_object isKindOf _x} count ["C_Van_01_fuel_F", "I_G_Van_01_fuel_F", "O_Heli_Transport_04_fuel_F"] > 0): diff --git a/storeConfig.sqf b/storeConfig.sqf index 5add088a9..87d7fb251 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -593,8 +593,8 @@ landArray = compileFinal str ["Truck Box", "C_Van_01_box_F", 900, "vehicle"], ["Fuel Truck", "C_Van_01_fuel_F", 2000, "vehicle"], ["Fuel Truck (Camo)", "B_G_Van_01_fuel_F", 2100, "vehicle"], - ["Resupply Truck", "O_Truck_03_device_F", 4000, "vehicle"], + ["HEMTT Ammo", "B_Truck_01_ammo_F", 5000, "vehicle"], ["HEMTT Tractor", "B_Truck_01_mover_F", 4000, "vehicle"], ["HEMTT Box", "B_Truck_01_box_F", 5000, "vehicle"], ["HEMTT Transport", "B_Truck_01_transport_F", 6000, "vehicle"], @@ -602,22 +602,21 @@ landArray = compileFinal str ["HEMTT Fuel", "B_Truck_01_fuel_F", 9000, "vehicle"], ["HEMTT Medical", "B_Truck_01_medical_F", 10000, "vehicle"], ["HEMTT Repair", "B_Truck_01_Repair_F", 12500, "vehicle"], - //["HEMTT Ammo", "B_Truck_01_ammo_F", 27500, "vehicle"], - //["Tempest Device", "O_Truck_03_device_F", 4000, "vehicle"], + ["Tempest Ammo", "O_Truck_03_ammo_F", 5000, "vehicle"], + ["Tempest Device", "O_Truck_03_device_F", 4000, "vehicle"], ["Tempest Transport", "O_Truck_03_transport_F", 6000, "vehicle"], ["Tempest Covered", "O_Truck_03_covered_F", 7500, "vehicle"], ["Tempest Fuel", "O_Truck_03_fuel_F", 9000, "vehicle"], ["Tempest Medical", "O_Truck_03_medical_F", 10000, "vehicle"], ["Tempest Repair", "O_Truck_03_repair_F", 12500, "vehicle"], - //["Tempest Ammo", "O_Truck_03_ammo_F", 27500, "vehicle"], + ["Zamak Ammo", "I_Truck_02_ammo_F", 4000, "vehicle"], ["Zamak Transport", "I_Truck_02_transport_F", 4000, "vehicle"], ["Zamak Covered", "I_Truck_02_covered_F", 5000, "vehicle"], ["Zamak Fuel", "I_Truck_02_fuel_F", 7500, "vehicle"], ["Zamak Medical", "I_Truck_02_medical_F", 9000, "vehicle"], ["Zamak Repair", "I_Truck_02_box_F", 10000, "vehicle"], - //["Zamak Ammo", "I_Truck_02_ammo_F", 25000, "vehicle"], ["UGV Stomper (NATO)", "B_UGV_01_F", 2500, "vehicle"], ["UGV Stomper RCWS (NATO)", "B_UGV_01_rcws_F", 15000, "vehicle"], @@ -675,7 +674,7 @@ helicoptersArray = compileFinal str ["Mi-290 Taru (Medical) [DLC]", "O_Heli_Transport_04_medevac_F",12500, "vehicle"], ["Mi-290 Taru (Repair) [DLC]", "O_Heli_Transport_04_repair_F", 15000, "vehicle"], - //["Mi-290 Taru (Ammo) [DLC]", "O_Heli_Transport_04_ammo_F", 25000, "vehicle"], + ["Mi-290 Taru (Ammo) [DLC]", "O_Heli_Transport_04_ammo_F", 12500, "vehicle"], ["UH-80 Ghost Hawk (Black)", "B_Heli_Transport_01_F", 25000, "vehicle"], // UH-60 Stealth with 2 side miniguns ["UH-80 Ghost Hawk (Green)", "B_Heli_Transport_01_camo_F", 25000, "vehicle"], // UH-60 Stealth with 2 side miniguns (green camo) From 445a9312f7958758094d258e12c0ae45b6839228 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 7 Dec 2014 01:36:43 -0800 Subject: [PATCH 138/544] Added back ammo vehicles with resupply script tweak. --- storeConfig.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storeConfig.sqf b/storeConfig.sqf index 87d7fb251..d2259e067 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -664,6 +664,7 @@ helicoptersArray = compileFinal str ["PO-30 Orca (Black)", "O_Heli_Light_02_unarmed_F", 7000, "vehicle"], // Ka-60 ["WY-55 Hellcat (Green)", "I_Heli_light_03_unarmed_F", 7000, "vehicle"], // AW159 + ["Mi-290 Taru (Ammo) [DLC]", "O_Heli_Transport_04_ammo_F", 7500, "vehicle"], ["Mi-290 Taru (Crane) [DLC]", "O_Heli_Transport_04_F", 7500, "vehicle"], // CH-54 ["Mi-290 Taru (Box) [DLC]", "O_Heli_Transport_04_box_F", 8000, "vehicle"], ["Mi-290 Taru (Fuel) [DLC]", "O_Heli_Transport_04_fuel_F", 8500, "vehicle"], @@ -674,7 +675,6 @@ helicoptersArray = compileFinal str ["Mi-290 Taru (Medical) [DLC]", "O_Heli_Transport_04_medevac_F",12500, "vehicle"], ["Mi-290 Taru (Repair) [DLC]", "O_Heli_Transport_04_repair_F", 15000, "vehicle"], - ["Mi-290 Taru (Ammo) [DLC]", "O_Heli_Transport_04_ammo_F", 12500, "vehicle"], ["UH-80 Ghost Hawk (Black)", "B_Heli_Transport_01_F", 25000, "vehicle"], // UH-60 Stealth with 2 side miniguns ["UH-80 Ghost Hawk (Green)", "B_Heli_Transport_01_camo_F", 25000, "vehicle"], // UH-60 Stealth with 2 side miniguns (green camo) From 9d118db934a26514924b0e8971fed46dd5e2443a Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 7 Dec 2014 13:14:41 -0800 Subject: [PATCH 139/544] New sidemission - Town Takeover. --- .../createUnits/customGroup2.sqf | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 server/missions/factoryMethods/createUnits/customGroup2.sqf diff --git a/server/missions/factoryMethods/createUnits/customGroup2.sqf b/server/missions/factoryMethods/createUnits/customGroup2.sqf new file mode 100644 index 000000000..959960e29 --- /dev/null +++ b/server/missions/factoryMethods/createUnits/customGroup2.sqf @@ -0,0 +1,107 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Name: customGroup2.sqf +// @file Author: AgentRev, JoSchaap + +if (!isServer) exitWith {}; + +private ["_group", "_pos", "_nbUnits", "_unitTypes", "_uPos", "_unit"]; + +_group = _this select 0; +_pos = _this select 1; +_nbUnits = [_this, 2, 7, [0]] call BIS_fnc_param; +_radius = [_this, 3, 10, [0]] call BIS_fnc_param; + +_unitTypes = +[ + "C_man_hunter_1_F","C_man_p_beggar_F","C_man_p_beggar_F_afro", + "C_man_p_fugitive_F","C_man_p_shorts_1_F","C_man_polo_1_F", + "C_man_polo_2_F","C_man_polo_3_F","C_man_polo_4_F", + "C_man_p_beggar_F","C_man_p_beggar_F_afro", + "C_man_p_fugitive_F","C_journalist_F","C_Orestes", + "C_man_polo_5_F","C_man_polo_6_F","C_man_shorts_1_F", + "C_man_shorts_2_F","C_man_shorts_3_F","C_man_shorts_4_F", + "C_man_w_worker_F","C_man_p_beggar_F","C_man_p_beggar_F_afro", + "C_man_p_fugitive_F" +]; + +for "_i" from 1 to _nbUnits do +{ + _uPos = _pos vectorAdd ([[random _radius, 0, 0], random 360] call BIS_fnc_rotateVector2D); + _unit = _group createUnit [_unitTypes call BIS_fnc_selectRandom, _uPos, [], 0, "Form"]; + _unit setPosATL _uPos; + + removeAllWeapons _unit; + removeAllAssignedItems _unit; + //removeUniform _unit; + removeVest _unit; + removeBackpack _unit; + removeHeadgear _unit; + removeGoggles _unit; + + _unit addVest "V_PlateCarrier1_rgr"; + _unit addItem "FirstAidKit"; + + switch (true) do + { + // Grenadier every 3 units + case (_i % 3 == 0): + { + _unit addMagazine "1Rnd_HE_Grenade_shell"; + _unit addMagazine "30Rnd_65x39_caseless_mag"; + _unit addWeapon "arifle_MX_GL_F"; + _unit addMagazine "30Rnd_65x39_caseless_mag"; + _unit addMagazine "30Rnd_65x39_caseless_mag"; + _unit addMagazine "1Rnd_HE_Grenade_shell"; + _unit addMagazine "1Rnd_HE_Grenade_shell"; + }; + // RPG every 7 units, starting from second one + case ((_i + 5) % 7 == 0): + { + _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; + _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; + _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; + _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; + _unit addWeapon "arifle_Katiba_ARCO_F"; + _unit addBackpack "B_Carryall_oli"; + _unit addMagazine "Titan_AT"; + _unit addWeapon "launch_Titan_short_F"; + _unit addMagazine "Titan_AT"; + }; + // Rifleman + default + { + if (_unit == leader _group) then + { + _unit addBackpack "B_AssaultPack_rgr"; + _unit addMagazine "30Rnd_45ACP_Mag_SMG_01"; + _unit addMagazine "30Rnd_45ACP_Mag_SMG_01"; + _unit addMagazine "30Rnd_45ACP_Mag_SMG_01"; + _unit addMagazine "30Rnd_45ACP_Mag_SMG_01"; + _unit addWeapon "SMG_01_Holo_pointer_snds_F"; + _unit addItem "ItemGps"; + _unit assignItem "ItemGps"; + _unit addItem "ItemCompass"; + _unit assignItem "ItemCompass"; + _unit setRank "SERGEANT"; + } + else + { + _unit addMagazine "30Rnd_556x45_Stanag_Tracer_Red"; + _unit addWeapon "arifle_TRG20_Holo_F"; + _unit addMagazine "30Rnd_556x45_Stanag_Tracer_Red"; + _unit addMagazine "30Rnd_556x45_Stanag_Tracer_Red"; + _unit addMagazine "30Rnd_556x45_Stanag_Tracer_Red"; + }; + }; + }; + +_unit addPrimaryWeaponItem "acc_flashlight"; +_unit enablegunlights "forceOn"; //set to "forceOn" to force use of lights (during day too default = AUTO) + + _unit addRating 1e11; + _unit spawn refillPrimaryAmmo; + _unit call setMissionSkill; + _unit addEventHandler ["Killed", server_playerDied]; +}; From 6951659065840c1ec4d945bfbfb55e5cecafd7c0 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 7 Dec 2014 13:15:26 -0800 Subject: [PATCH 140/544] New sidemission - Town Takeover. --- server/functions/serverCompile.sqf | 2 + .../factoryMethods/moveIntoBuildings.sqf | 154 ++++++++++++++++++ server/missions/setupMissionArrays.sqf | 3 +- .../sideMissions/mission_HostileInfantry.sqf | 92 +++++++++++ 4 files changed, 250 insertions(+), 1 deletion(-) create mode 100644 server/missions/factoryMethods/moveIntoBuildings.sqf create mode 100644 server/missions/sideMissions/mission_HostileInfantry.sqf diff --git a/server/functions/serverCompile.sqf b/server/functions/serverCompile.sqf index 6dc093033..836191040 100644 --- a/server/functions/serverCompile.sqf +++ b/server/functions/serverCompile.sqf @@ -17,6 +17,7 @@ attemptCompileMissions = [_path, "attemptCompileMissions.sqf"] call mf_compile; checkMissionVehicleLock = [_path, "checkMissionVehicleLock.sqf"] call mf_compile; cleanLocationObjects = [_path, "cleanLocationObjects.sqf"] call mf_compile; createCustomGroup = [_path, "createUnits\customGroup.sqf"] call mf_compile; +createCustomGroup2 = [_path, "createUnits\customGroup2.sqf"] call mf_compile; createLargeDivers = [_path, "createUnits\largeDivers.sqf"] call mf_compile; createMissionLocation = [_path, "createMissionLocation.sqf"] call mf_compile; createMissionMarker = [_path, "createMissionMarker.sqf"] call mf_compile; @@ -29,6 +30,7 @@ createSmallDivers = [_path, "createUnits\smallDivers.sqf"] call mf_compile; generateMissionWeights = [_path, "generateMissionWeights.sqf"] call mf_compile; mission_VehicleCapture = "server\missions\mainMissions\mission_VehicleCapture.sqf" call mf_compile; missionHint = [_path, "missionHint.sqf"] call mf_compile; +moveIntoBuildings = [_path, "moveIntoBuildings.sqf"] call mf_compile; removeDisabledMissions = [_path, "removeDisabledMissions.sqf"] call mf_compile; setLocationObjects = [_path, "setLocationObjects.sqf"] call mf_compile; setLocationState = [_path, "setLocationState.sqf"] call mf_compile; diff --git a/server/missions/factoryMethods/moveIntoBuildings.sqf b/server/missions/factoryMethods/moveIntoBuildings.sqf new file mode 100644 index 000000000..8ba2c593f --- /dev/null +++ b/server/missions/factoryMethods/moveIntoBuildings.sqf @@ -0,0 +1,154 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Name: customGroup2.sqf +// @file Author: Zenophon, JoSchaap +// @file Information: Function called as: [_aiGroup, _missionPos, _buildingRadius, _fillEvenly, _putOnRoof] call moveIntoBuildings; +// @file Information: example call: [_CivGrp1, [333.33,3.33,444.44], 300, true, false] call moveIntoBuildings; + +if (!isServer) exitWith {}; + +#define I(X) X = X + 1; +#define EYE_HEIGHT 1.53 +#define CHECK_DISTANCE 5 +#define FOV_ANGLE 15 +#define ROOF_CHECK 4 +#define ROOF_EDGE 2 + +private ["_unitIndex","_aiGroup","_missionPos","_units","_buildingsArray", "_j", "_building", "_randomIndex", "_housePos", "_startAngle", "_i", "_k", "_hitCount", "_fillEvenly", "_putOnRoof", "_isRoof", "_housePos", "_edge", "_checkPos"]; + +_aiGroup = _this select 0; +_missionPos = _this select 1; +_buildingRadius = _this select 2; +_fillEvenly = _this select 3; +_putOnRoof = _this select 4; +_units = units _aiGroup; +_unitIndex = 0; + +// +_ExtendPosition = +{ + private ["_missionPos", "_dist", "_phi"]; + _missionPos = _this select 0; + _dist = _this select 1; + _phi = _this select 2; + ([(_missionPos select 0) + (_dist * (cos _phi)),(_missionPos select 1) + (_dist * (sin _phi)), (_this select 3)]) +}; + +// find available buildings +_buildingsArray = nearestObjects [_missionPos, ["house"], _buildingRadius]; +_buildingPosArray = []; +{ + _buildingPositions = 0; + for "_i" from 0 to 100 do + { + if ((_x buildingPos _buildingPositions) isEqualTo [0,0,0]) exitWith {}; + I(_buildingPositions) + }; + _posArray = []; + for "_i" from 0 to (_buildingPositions - 1) do + { + _posArray set [_i, _i]; + }; + _buildingPosArray set [_forEachIndex, _posArray]; +} forEach _buildingsArray; + + +// occupy buildings +for [{_j = 0}, {(_unitIndex < count _units) && {(count _buildingPosArray > 0)}}, {I(_j)}] do + { + scopeName "for"; + _building = _buildingsArray select (_j % (count _buildingsArray)); + _posArray = _buildingPosArray select (_j % (count _buildingsArray)); + + if (count _posArray == 0) then + { + _buildingsArray set [(_j % (count _buildingsArray)), 0]; + _buildingPosArray set [(_j % (count _buildingPosArray)), 0]; + _buildingsArray = _buildingsArray - [0]; + _buildingPosArray = _buildingPosArray - [0]; + }; + + while {(count _posArray) > 0} do + { + scopeName "while"; + if (_unitIndex >= count _units) exitWith {}; + + _randomIndex = floor random count _posArray; + _housePos = _building buildingPos (_posArray select _randomIndex); + _housePos = [(_housePos select 0), (_housePos select 1), (_housePos select 2) + (getTerrainHeightASL _housePos) + EYE_HEIGHT]; + + _posArray set [_randomIndex, _posArray select (count _posArray - 1)]; + _posArray resize (count _posArray - 1); + + _startAngle = (round random 10) * (round random 36); + for "_i" from _startAngle to (_startAngle + 350) step 10 do + { + _checkPos = [_housePos, CHECK_DISTANCE, (90 - _i), (_housePos select 2)] call _ExtendPosition; + if !(lineIntersects [_checkPos, [_checkPos select 0, _checkPos select 1, (_checkPos select 2) + 25], objNull, objNull]) then + { + if !(lineIntersects [_housePos, _checkPos, objNull, objNull]) then + { + _checkPos = [_housePos, CHECK_DISTANCE, (90 - _i), (_housePos select 2) + (CHECK_DISTANCE * sin FOV_ANGLE / cos FOV_ANGLE)] call _ExtendPosition; + if !(lineIntersects [_housePos, _checkPos, objNull, objNull]) then + { + _hitCount = 0; + for "_k" from 30 to 360 step 30 do + { + _checkPos = [_housePos, 20, (90 - _k), (_housePos select 2)] call _ExtendPosition; + if (lineIntersects [_housePos, _checkPos, objNull, objNull]) then + { + I(_hitCount) + }; + + if (_hitCount >= ROOF_CHECK) exitWith {}; + }; + + _isRoof = (_hitCount < ROOF_CHECK) && {!(lineIntersects [_housePos, [_housePos select 0, _housePos select 1, (_housePos select 2) + 25], objNull, objNull])}; + if (!(_isRoof) || {((_isRoof) && {(_putOnRoof)})}) then + { + if (_isRoof) then + { + _edge = false; + for "_k" from 30 to 360 step 30 do + { + _checkPos = [_housePos, ROOF_EDGE, (90 - _k), (_housePos select 2)] call _ExtendPosition; + _edge = !(lineIntersects [_checkPos, [(_checkPos select 0), (_checkPos select 1), (_checkPos select 2) - EYE_HEIGHT - 1], objNull, objNull]); + + if (_edge) exitWith + { + _i = _k; + }; + }; + }; + + if (!(_isRoof) || {_edge}) then + { + (_units select _unitIndex) setPosASL [(_housePos select 0), (_housePos select 1), (_housePos select 2) - EYE_HEIGHT]; + (_units select _unitIndex) setDir (_i ); + + if (_isRoof) then + { + (_units select _unitIndex) setUnitPos "MIDDLE"; + } else { + (_units select _unitIndex) setUnitPos "UP"; + }; + + (_units select _unitIndex) lookAt ([_housePos, CHECK_DISTANCE, (90 - _i), (_housePos select 2) - (getTerrainHeightASL _housePos)] call _ExtendPosition); + doStop (_units select _unitIndex); + + I(_unitIndex) + if (_fillEvenly) then + { + breakTo "for"; + } else { + breakTo "while"; + }; + }; + }; + }; + }; + }; + }; + }; + }; \ No newline at end of file diff --git a/server/missions/setupMissionArrays.sqf b/server/missions/setupMissionArrays.sqf index 9d7dd87fa..a7037fd06 100644 --- a/server/missions/setupMissionArrays.sqf +++ b/server/missions/setupMissionArrays.sqf @@ -27,7 +27,8 @@ SideMissions = ["mission_SunkenSupplies", 0.1], //["mission_AirWreck", 1.5], //["mission_WepCache", 1.5], - ["mission_Outpost", 3], + ["mission_Outpost", 2], + ["mission_HostileInfantry", 3], ["mission_Truck", 1] ]; diff --git a/server/missions/sideMissions/mission_HostileInfantry.sqf b/server/missions/sideMissions/mission_HostileInfantry.sqf new file mode 100644 index 000000000..d53ed40a9 --- /dev/null +++ b/server/missions/sideMissions/mission_HostileInfantry.sqf @@ -0,0 +1,92 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Version: 1.0 +// @file Name: mission_HostileInfantry.sqf +// @file Author: [404] Deadbeat, [404] Costlyy, JoSchaap, AgentRev, Zenophon +// @file Created: 08/12/2012 15:19 +// @file Information: JoSchaap's Lite version of 'Infantry Occupy House' Original was made by: Zenophon + +if (!isServer) exitwith {}; + +#include "sideMissionDefines.sqf" + +private ["_nbUnits", "_box1", "_box2", "_box3", "_townName", "_missionPos", "_buildingRadius", "_putOnRoof", "_fillEvenly", "_tent1", "_chair1", "_chair2", "_cFire1"]; + +_setupVars = +{ + _missionType = "Town Invasion"; + _nbUnits = if (missionDifficultyHard) then { AI_GROUP_LARGE } else { AI_GROUP_MEDIUM }; + + // settings for this mission + _locArray = ((call cityList) call BIS_fnc_selectRandom); + _missionPos = markerPos (_locArray select 0); + _buildingRadius = _locArray select 1; + _townName = _locArray select 2; + + //randomize amount of units + _nbUnits = _nbUnits + round(random (_nbUnits*0.5)); + // reduce radius for larger towns. for example to avoid endless hide and seek in kavala ;) + _buildingRadius = if (_buildingRadius > 201) then {(_buildingRadius*0.5)} else {_buildingRadius}; + // 25% change on AI not going on rooftops + if (random 1 < 0.75) then { _putOnRoof = true } else { _putOnRoof = false }; + // 25% chance on AI trying to fit into a single building instead of spreading out + if (random 1 < 0.75) then { _fillEvenly = true } else { _fillEvenly = false }; +}; + +_setupObjects = +{ + // spawn some crates in the middle of town (Town marker position) + _box1 = createVehicle ["Box_NATO_Wps_F", _missionPos, [], 5, "None"]; + _box1 setDir random 360; + [_box1, "mission_USSpecial"] call fn_refillbox; + + _box2 = createVehicle ["Box_East_Wps_F", _missionPos, [], 5, "None"]; + _box2 setDir random 360; + [_box2, "mission_USLaunchers"] call fn_refillbox; + + _box3 = createVehicle ["Box_East_Wps_F", _missionPos, [], 5, "None"]; + _box3 setDir random 360; + [_box3, "mission_USSpecial"] call fn_refillbox; + + // create some atmosphere around the crates 8) + _tent1 = createVehicle ["Land_cargo_addon02_V2_F", _missionPos, [], 3, "None"]; + _tent1 setDir random 360; + _chair1 = createVehicle ["Land_CampingChair_V1_F", _missionPos, [], 2, "None"]; + _chair1 setDir random 90; + _chair2 = createVehicle ["Land_CampingChair_V2_F", _missionPos, [], 2, "None"]; + _chair2 setDir random 180; + _cFire1 = createVehicle ["Campfire_burning_F", _missionPos, [], 2, "None"]; + + { _x setVariable ["R3F_LOG_disabled", true, true] } forEach [_box1, _box2]; + + // spawn some rebels/enemies :) + _aiGroup = createGroup CIVILIAN; + [_aiGroup, _missionPos, _nbUnits] call createCustomGroup2; + + // move them into buildings + [_aiGroup, _missionPos, _buildingRadius, _fillEvenly, _putOnRoof] call moveIntoBuildings; + + _missionHintText = format ["Hostiles have taken over
%2!

There seem to be %3 enemies hiding inside or on top of buildings. Get rid of them all, and take their supplies!.
Watch out for those windows!", sideMissionColor, _townName, _nbUnits]; +}; + +_waitUntilMarkerPos = nil; +_waitUntilExec = nil; +_waitUntilCondition = nil; + +_failedExec = +{ + // Mission failed + { deleteVehicle _x } forEach [_box1, _box2, _box3, _tent1, _chair1, _chair2, _cFire1]; +}; + +_successExec = +{ + // Mission completed + { _x setVariable ["R3F_LOG_disabled", false, true] } forEach [_box1, _box2, _box3]; + + _successHintMessage = format ["Nice work!

%2
is a safe place again!
Their belongings are now yours to take!", sideMissionColor, _townName]; + { deleteVehicle _x } forEach [_tent1, _chair1, _chair2, _cFire1]; +}; + +_this call sideMissionProcessor; \ No newline at end of file From cf261f1f738b9c0ee21b59247d17269b710d523c Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 7 Dec 2014 13:29:24 -0800 Subject: [PATCH 141/544] Set mission skill. --- server/functions/setMissionSkill.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/functions/setMissionSkill.sqf b/server/functions/setMissionSkill.sqf index 2b2db4fc4..4b1c275ec 100644 --- a/server/functions/setMissionSkill.sqf +++ b/server/functions/setMissionSkill.sqf @@ -15,11 +15,11 @@ _unit = _this; if (["A3W_missionsDifficulty"] call isConfigOn) then { _skill = 1; // Default skill for ARMA3 is 0.5 - _accuracy = 0.8; // Relative multiplier; absolute default accuracy for ARMA3 is 0.25 + _accuracy = 0.5; // Relative multiplier; absolute default accuracy for ARMA3 is 0.25 } else { - _skill = 1; + _skill = 0.75; _accuracy = 0.5; }; From cfe7f9acb4d331ca37479022b6477b2efb207c63 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 7 Dec 2014 13:36:44 -0800 Subject: [PATCH 142/544] Adjusted weather. --- addons/scripts/DynamicWeatherEffects.sqf | 851 +++++++++++------------ 1 file changed, 424 insertions(+), 427 deletions(-) diff --git a/addons/scripts/DynamicWeatherEffects.sqf b/addons/scripts/DynamicWeatherEffects.sqf index 4a9202f63..2871d6826 100644 --- a/addons/scripts/DynamicWeatherEffects.sqf +++ b/addons/scripts/DynamicWeatherEffects.sqf @@ -34,18 +34,18 @@ _maxWeatherChangeTimeMin = 40; // Minimum time in minutes that weather (fog and overcast) stays constant between weather changes. Must be less than or equal to 0 and // greater than or equal to _minWeatherChangeTimeMin. (Suggested value: 5). -_minTimeBetweenWeatherChangesMin = 10; +_minTimeBetweenWeatherChangesMin = 5; // Maximum time in minutes that weather (fog and overcast) stays unchanged between weather changes. Must be greater than or equal to // _minWeatherChangeTimeMin. (Suggested value: 10). -_maxTimeBetweenWeatherChangesMin = 20; +_maxTimeBetweenWeatherChangesMin = 10; // Fog intensity never falls below this value. Must be between 0 and 1 and less than or equal to _maximumFog // (0 = no fog, 1 = pea soup). (Suggested value: 0). _minimumFog = 0; // Fog intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumFog -// (0 = no fog, 1 = pea soup). (Suggested value: 0.8). +// (0 = no fog, 1 = pea soup). (Suggested value: 0.1). _maximumFog = 0; // New ArmA3 facilities added by Bewilderbeest @@ -60,11 +60,11 @@ _minimumOvercast = 0; // Overcast intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumOvercast // (0 = no overcast, 1 = maximum overcast). (Suggested value: 1). -_maximumOvercast = 0.75; +_maximumOvercast = 1; // When raining, rain intensity never falls below this value. Must be between 0 and 1 and less than or equal to _maximumRain // (0 = no rain, 1 = maximum rain intensity). (Suggested value: 0); -_minimumRain = 0; +_minimumRain = 0.01; // When raining, rain intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumRain // (0 = no rain, 1 = maximum rain intensity). (Suggested value: 0.8); @@ -89,20 +89,20 @@ _windChangeProbability = 25; // Probability in percent (0-100) for rain to start at every rain interval. Set this to 0 if you don't want rain at all. Set this to 100 // if you want it to rain constantly when overcast is greater than 0.75. In short: if you think that it generally rains to often then // lower this value and vice versa. (Suggested value: 50). -_rainIntervalRainProbability = 20; +_rainIntervalRainProbability = 30; // Minimum time in minutes for rain intervals. Must be greater or equal to 0 and less than or equal to _maxRainIntervalTimeMin. // (Suggested value: 0). -_minRainIntervalTimeMin = 0; +_minRainIntervalTimeMin = 1; // Maximum time in minutes for rain intervals. Must be greater than or equal to _minRainIntervalTimeMin. (Suggested value: // (_maxWeatherChangeTimeMin + _maxTimeBetweenWeatherChangesMin) / 2). -_maxRainIntervalTimeMin = 10; +_maxRainIntervalTimeMin = (_maxWeatherChangeTimeMin + _maxTimeBetweenWeatherChangesMin) / 2; // If set to true, then the rain is forced to stop after one rain interval during which it has rained (use this for example if you only want // small occational cloudbursts ). If set to false, then the rain may stop, but it may also just change intensity for an // immedeate new rain interval. (Suggested value: false). -_forceRainToStopAfterOneRainInterval = true; +_forceRainToStopAfterOneRainInterval = false; /////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -111,7 +111,7 @@ _forceRainToStopAfterOneRainInterval = true; drn_DynamicWeather_DebugTextEventArgs = []; // Empty "drn_DynamicWeather_DebugTextEventArgs" addPublicVariableEventHandler { - drn_DynamicWeather_DebugTextEventArgs call drn_fnc_DynamicWeather_ShowDebugTextLocal; + drn_DynamicWeather_DebugTextEventArgs call drn_fnc_DynamicWeather_ShowDebugTextLocal; }; /* @@ -120,15 +120,15 @@ drn_DynamicWeather_DebugTextEventArgs = []; // Empty * _text: Debug text. */ drn_fnc_DynamicWeather_ShowDebugTextLocal = { - private ["_minutes", "_seconds"]; + private ["_minutes", "_seconds"]; - if (!isNull player) then { - player sideChat (_this select 0); - }; + if (!isNull player) then { + player sideChat (_this select 0); + }; - _minutes = floor (time / 60); - _seconds = floor (time - (_minutes * 60)); - diag_log format["%1:%2 Debug: %3", _minutes, _seconds, (_this select 0)]; + _minutes = floor (time / 60); + _seconds = floor (time - (_minutes * 60)); + diag_log ((str _minutes + ":" + str _seconds) + " Debug: " + (_this select 0)); }; /* @@ -137,13 +137,13 @@ drn_fnc_DynamicWeather_ShowDebugTextLocal = { * _text: Debug text. */ drn_fnc_DynamicWeather_ShowDebugTextAllClients = { - drn_DynamicWeather_DebugTextEventArgs = _this; - publicVariable "drn_DynamicWeather_DebugTextEventArgs"; - drn_DynamicWeather_DebugTextEventArgs call drn_fnc_DynamicWeather_ShowDebugTextLocal; + drn_DynamicWeather_DebugTextEventArgs = _this; + publicVariable "drn_DynamicWeather_DebugTextEventArgs"; + drn_DynamicWeather_DebugTextEventArgs call drn_fnc_DynamicWeather_ShowDebugTextLocal; }; if (_debug) then { - ["Starting script WeatherEffects.sqf..."] call drn_fnc_DynamicWeather_ShowDebugTextLocal; + ["Starting script WeatherEffects.sqf..."] call drn_fnc_DynamicWeather_ShowDebugTextLocal; }; drn_DynamicWeatherEventArgs = []; // [current overcast, current fog, current rain, current weather change ("OVERCAST", "FOG" or ""), target weather value, time until weather completion (in seconds), current wind x, current wind z] @@ -187,16 +187,16 @@ drn_fnc_fogOdds = }; drn_fnc_DynamicWeather_SetWeatherLocal = { - private ["_currentOvercast", "_currentFog", "_currentRain", "_currentWeatherChange", "_targetWeatherValue", "_timeUntilCompletion", "_currentWindX", "_currentWindZ"]; + private ["_currentOvercast", "_currentFog", "_currentRain", "_currentWeatherChange", "_targetWeatherValue", "_timeUntilCompletion", "_currentWindX", "_currentWindZ"]; - _currentOvercast = _this select 0; - _currentFog = _this select 1; - _currentRain = _this select 2; - _currentWeatherChange = _this select 3; - _targetWeatherValue = _this select 4; - _timeUntilCompletion = _this select 5; - _currentWindX = _this select 6; - _currentWindZ = _this select 7; + _currentOvercast = _this select 0; + _currentFog = _this select 1; + _currentRain = _this select 2; + _currentWeatherChange = _this select 3; + _targetWeatherValue = _this select 4; + _timeUntilCompletion = _this select 5; + _currentWindX = _this select 6; + _currentWindZ = _this select 7; if (typeName _currentFog == "ARRAY") then { _currentFog set [0, (_currentFog select 0) max (_currentRain / 4)]; @@ -215,8 +215,8 @@ drn_fnc_DynamicWeather_SetWeatherLocal = { 0 setOvercast (0.1 max _currentOvercast); }; 0 setFog [_currentFog max (_currentRain / 4), 0.001, 1000]; - drn_var_DynamicWeather_Rain = _currentRain; - setWind [_currentWindX, _currentWindZ, true]; + drn_var_DynamicWeather_Rain = _currentRain; + setWind [_currentWindX, _currentWindZ, true]; if (!isNil "drn_JIPWeatherSync") then { @@ -224,8 +224,8 @@ drn_fnc_DynamicWeather_SetWeatherLocal = { drn_JIPWeatherSync = nil; }; - // Set forecast - if (_currentWeatherChange == "OVERCAST") then { + // Set forecast + if (_currentWeatherChange == "OVERCAST") then { if (date select 2 > 4 && date select 2 < 18) then { _timeUntilCompletion setOvercast (_targetWeatherValue call drn_fnc_overcastOdds); @@ -236,16 +236,13 @@ drn_fnc_DynamicWeather_SetWeatherLocal = { }; 5 setFog [_currentRain / 4, 0.001, 1000]; // Quick hack to ensure fog goes away regularly _currentFog - }; - if (_currentWeatherChange == "FOG") then { + }; + if (_currentWeatherChange == "FOG") then { if (typeName _targetWeatherValue == "ARRAY") then { - _targetWeatherValue set [0, (_targetWeatherValue select 0) max (_currentRain / 4)]; - } - else { - _targetWeatherValue = _targetWeatherValue max (_currentRain / 4); + _targetWeatherValue = _targetWeatherValue select 0; }; - _timeUntilCompletion setFog _targetWeatherValue; - }; + _timeUntilCompletion setFog [_targetWeatherValue max (_currentRain / 4), 0.001, 1000];; + }; }; if (!isDedicated) then @@ -254,115 +251,115 @@ if (!isDedicated) then }; if (!isServer) then { - "drn_DynamicWeatherEventArgs" addPublicVariableEventHandler { - drn_DynamicWeatherEventArgs spawn drn_fnc_DynamicWeather_SetWeatherLocal; - }; + "drn_DynamicWeatherEventArgs" addPublicVariableEventHandler { + drn_DynamicWeatherEventArgs spawn drn_fnc_DynamicWeather_SetWeatherLocal; + }; - waitUntil {!isNil "drn_var_DynamicWeather_ServerInitialized"}; + waitUntil {!isNil "drn_var_DynamicWeather_ServerInitialized"}; - drn_AskServerDynamicWeatherEventArgs = [true]; - publicVariable "drn_AskServerDynamicWeatherEventArgs"; + drn_AskServerDynamicWeatherEventArgs = [true]; + publicVariable "drn_AskServerDynamicWeatherEventArgs"; }; if (isServer) then { - drn_fnc_DynamicWeather_SetWeatherAllClients = { - private ["_timeUntilCompletion", "_currentWeatherChange"]; - - _timeUntilCompletion = drn_DynamicWeather_WeatherChangeCompletedTime - drn_DynamicWeather_WeatherChangeStartedTime; - if (_timeUntilCompletion > 0) then { - _currentWeatherChange = drn_DynamicWeather_CurrentWeatherChange; - } - else { - _currentWeatherChange = ""; - }; - - drn_DynamicWeatherEventArgs = [overcast, fog, drn_var_DynamicWeather_Rain, _currentWeatherChange, drn_DynamicWeather_WeatherTargetValue, _timeUntilCompletion, drn_DynamicWeather_WindX, drn_DynamicWeather_WindZ]; - publicVariable "drn_DynamicWeatherEventArgs"; - drn_DynamicWeatherEventArgs spawn drn_fnc_DynamicWeather_SetWeatherLocal; - }; - - "drn_AskServerDynamicWeatherEventArgs" addPublicVariableEventHandler { - [] spawn drn_fnc_DynamicWeather_SetWeatherAllClients; - }; - - drn_DynamicWeather_CurrentWeatherChange = ""; - drn_DynamicWeather_WeatherTargetValue = 0; - drn_DynamicWeather_WeatherChangeStartedTime = time; - drn_DynamicWeather_WeatherChangeCompletedTime = time; - drn_DynamicWeather_WindX = _initialWind select 0; - drn_DynamicWeather_WindZ = _initialWind select 1; - - if (_initialFog == -1) then { - _initialFog = (_minimumFog + random (_maximumFog - _minimumFog)); - } - else { - if (_initialFog < _minimumFog) then { - _initialFog = _minimumFog; - }; - if (_initialFog > _maximumFog) then { - _initialFog = _maximumFog; - }; - }; + drn_fnc_DynamicWeather_SetWeatherAllClients = { + private ["_timeUntilCompletion", "_currentWeatherChange"]; + + _timeUntilCompletion = drn_DynamicWeather_WeatherChangeCompletedTime - drn_DynamicWeather_WeatherChangeStartedTime; + if (_timeUntilCompletion > 0) then { + _currentWeatherChange = drn_DynamicWeather_CurrentWeatherChange; + } + else { + _currentWeatherChange = ""; + }; + + drn_DynamicWeatherEventArgs = [overcast, fog, drn_var_DynamicWeather_Rain, _currentWeatherChange, drn_DynamicWeather_WeatherTargetValue, _timeUntilCompletion, drn_DynamicWeather_WindX, drn_DynamicWeather_WindZ]; + publicVariable "drn_DynamicWeatherEventArgs"; + drn_DynamicWeatherEventArgs spawn drn_fnc_DynamicWeather_SetWeatherLocal; + }; + + "drn_AskServerDynamicWeatherEventArgs" addPublicVariableEventHandler { + [] spawn drn_fnc_DynamicWeather_SetWeatherAllClients; + }; + + drn_DynamicWeather_CurrentWeatherChange = ""; + drn_DynamicWeather_WeatherTargetValue = 0; + drn_DynamicWeather_WeatherChangeStartedTime = time; + drn_DynamicWeather_WeatherChangeCompletedTime = time; + drn_DynamicWeather_WindX = _initialWind select 0; + drn_DynamicWeather_WindZ = _initialWind select 1; + + if (_initialFog == -1) then { + _initialFog = (_minimumFog + random (_maximumFog - _minimumFog)); + } + else { + if (_initialFog < _minimumFog) then { + _initialFog = _minimumFog; + }; + if (_initialFog > _maximumFog) then { + _initialFog = _maximumFog; + }; + }; 0 setFog [(([_initialFog, _maximumFog] call drn_fnc_fogOdds) * _maximumFog) max (rain / 4), 0.001, 1000]; - if (_initialOvercast == -1) then { - _initialOvercast = (_minimumOvercast + random (_maximumOvercast - _minimumOvercast)); - } - else { - if (_initialOvercast < _minimumOvercast) then { - _initialOvercast = _minimumOvercast; - }; - if (_initialOvercast > _maximumOvercast) then { - _initialOvercast = _maximumOvercast; - }; - }; - - 0 setOvercast (_initialOvercast call drn_fnc_overcastOdds); - - if (_initialOvercast >= 0.75) then { - if (_initialRain == -1) then { - _initialRain = (_minimumRain + random (_minimumRain - _minimumRain)); - } - else { - if (_initialRain < _minimumRain) then { - _initialRain = _minimumRain; - }; - if (_initialRain > _maximumRain) then { - _initialRain = _maximumRain; - }; - }; - } - else { - _initialRain = 0; - }; - - drn_var_DynamicWeather_Rain = _initialRain; - 0 setRain drn_var_DynamicWeather_Rain; - 0 setFog [drn_var_DynamicWeather_Rain / 4, 0.001, 1000]; - - - _maxWind = _minimumWind + random (_maximumWind - _minimumWind); - - if (drn_DynamicWeather_WindX == -1) then { - if (random 100 < 50) then { - drn_DynamicWeather_WindX = -_minimumWind - random (_maxWind - _minimumWind); - } - else { - drn_DynamicWeather_WindX = _minimumWind + random (_maxWind - _minimumWind); - }; - }; - - if (drn_DynamicWeather_WindZ == -1) then { - if (random 100 < 50) then { - drn_DynamicWeather_WindZ = -_minimumWind - random (_maxWind - _minimumWind); - } - else { - drn_DynamicWeather_WindZ = _minimumWind + random (_maxWind - _minimumWind); - }; - }; - - setWind [drn_DynamicWeather_WindX, drn_DynamicWeather_WindZ, true]; + if (_initialOvercast == -1) then { + _initialOvercast = (_minimumOvercast + random (_maximumOvercast - _minimumOvercast)); + } + else { + if (_initialOvercast < _minimumOvercast) then { + _initialOvercast = _minimumOvercast; + }; + if (_initialOvercast > _maximumOvercast) then { + _initialOvercast = _maximumOvercast; + }; + }; + + 0 setOvercast (_initialOvercast call drn_fnc_overcastOdds); + + if (_initialOvercast >= 0.75) then { + if (_initialRain == -1) then { + _initialRain = (_minimumRain + random (_minimumRain - _minimumRain)); + } + else { + if (_initialRain < _minimumRain) then { + _initialRain = _minimumRain; + }; + if (_initialRain > _maximumRain) then { + _initialRain = _maximumRain; + }; + }; + } + else { + _initialRain = 0; + }; + + drn_var_DynamicWeather_Rain = _initialRain; + 0 setRain drn_var_DynamicWeather_Rain; + 0 setFog [fog max (drn_var_DynamicWeather_Rain / 4), 0.001, 1000]; + + + _maxWind = _minimumWind + random (_maximumWind - _minimumWind); + + if (drn_DynamicWeather_WindX == -1) then { + if (random 100 < 50) then { + drn_DynamicWeather_WindX = -_minimumWind - random (_maxWind - _minimumWind); + } + else { + drn_DynamicWeather_WindX = _minimumWind + random (_maxWind - _minimumWind); + }; + }; + + if (drn_DynamicWeather_WindZ == -1) then { + if (random 100 < 50) then { + drn_DynamicWeather_WindZ = -_minimumWind - random (_maxWind - _minimumWind); + } + else { + drn_DynamicWeather_WindZ = _minimumWind + random (_maxWind - _minimumWind); + }; + }; + + setWind [drn_DynamicWeather_WindX, drn_DynamicWeather_WindZ, true]; if (!isNil "drn_JIPWeatherSync") then { @@ -370,298 +367,298 @@ if (isServer) then { drn_JIPWeatherSync = nil; }; - sleep 0.05; - - publicVariable "drn_var_DynamicWeather_Rain"; - drn_var_DynamicWeather_ServerInitialized = true; - publicVariable "drn_var_DynamicWeather_ServerInitialized"; - - // Start weather thread - [_minWeatherChangeTimeMin, _maxWeatherChangeTimeMin, _minTimeBetweenWeatherChangesMin, _maxTimeBetweenWeatherChangesMin, _minimumFog, _maximumFog, _minimumFogDecay, _maximumFogDecay, _minimumFogBase, _maximumFogBase, _minimumOvercast, _maximumOvercast, _minimumWind, _maximumWind, _windChangeProbability, _debug] spawn { - private ["_minWeatherChangeTimeMin", "_maxWeatherChangeTimeMin", "_minTimeBetweenWeatherChangesMin", "_maxTimeBetweenWeatherChangesMin", "_minimumFog", "_maximumFog", "_minimumOvercast", "_maximumOvercast", "_minimumWind", "_maximumWind", "_windChangeProbability", "_debug"]; - private ["_weatherType", "_fogLevel", "_overcastLevel", "_oldFogLevel", "_oldOvercastLevel", "_weatherChangeTimeSek"]; - private ["_fogValue", "_fogBase", "_fogDecay"]; - _minWeatherChangeTimeMin = _this select 0; - _maxWeatherChangeTimeMin = _this select 1; - _minTimeBetweenWeatherChangesMin = _this select 2; - _maxTimeBetweenWeatherChangesMin = _this select 3; - _minimumFog = _this select 4; - _maximumFog = _this select 5; - _minimumFogDecay = _this select 6; - _maximumFogDecay = _this select 7; - _minimumFogBase = _this select 8; - _maximumFogBase = _this select 9; - _minimumOvercast = _this select 10; - _maximumOvercast = _this select 11; - _minimumWind = _this select 12; - _maximumWind = _this select 13; - _windChangeProbability = _this select 14; - _debug = _this select 15; - - // Set initial fog level - _fogLevel = 2; - _overcastLevel = 2; - - while {true} do { - // Sleep a while until next weather change - sleep floor (_minTimeBetweenWeatherChangesMin * 60 + random ((_maxTimeBetweenWeatherChangesMin - _minTimeBetweenWeatherChangesMin) * 60)); - - if (_minimumFog == _maximumFog && _minimumOvercast != _maximumOvercast) then { - _weatherType = "OVERCAST"; - }; - if (_minimumFog != _maximumFog && _minimumOvercast == _maximumOvercast) then { - _weatherType = "FOG"; - }; - if (_minimumFog != _maximumFog && _minimumOvercast != _maximumOvercast) then { - - // Select type of weather to change - if ((random 100) < 50) then { - _weatherType = "OVERCAST"; - } - else { - _weatherType = "FOG"; - }; - }; - - // DEBUG - //_weatherType = "OVERCAST"; - - if (_weatherType == "FOG") then { - - drn_DynamicWeather_CurrentWeatherChange = "FOG"; - - // Select a new fog level - _oldFogLevel = _fogLevel; - _fogLevel = floor ((random 100) / 25); - - while {_fogLevel == _oldFogLevel} do { - _fogLevel = floor ((random 100) / 25); - }; - - _fogDecay = _minimumFogDecay + (_maximumFogDecay - _minimumFogDecay) * random 1; - _fogBase = _minimumFogBase + (_maximumFogBase - _minimumFogBase) * random 1; - _fogValue = 0; - - if (_fogLevel == 0) then { - _fogValue = _minimumFog + (_maximumFog - _minimumFog) * random 0.05; - }; - if (_fogLevel == 1) then { - _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.05 + random 0.2); - }; - if (_fogLevel == 2) then { - _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.25 + random 0.3); - }; - if (_fogLevel == 3) then { - _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.55 + random 0.45); - }; + sleep 0.05; + + publicVariable "drn_var_DynamicWeather_Rain"; + drn_var_DynamicWeather_ServerInitialized = true; + publicVariable "drn_var_DynamicWeather_ServerInitialized"; + + // Start weather thread + [_minWeatherChangeTimeMin, _maxWeatherChangeTimeMin, _minTimeBetweenWeatherChangesMin, _maxTimeBetweenWeatherChangesMin, _minimumFog, _maximumFog, _minimumFogDecay, _maximumFogDecay, _minimumFogBase, _maximumFogBase, _minimumOvercast, _maximumOvercast, _minimumWind, _maximumWind, _windChangeProbability, _debug] spawn { + private ["_minWeatherChangeTimeMin", "_maxWeatherChangeTimeMin", "_minTimeBetweenWeatherChangesMin", "_maxTimeBetweenWeatherChangesMin", "_minimumFog", "_maximumFog", "_minimumOvercast", "_maximumOvercast", "_minimumWind", "_maximumWind", "_windChangeProbability", "_debug"]; + private ["_weatherType", "_fogLevel", "_overcastLevel", "_oldFogLevel", "_oldOvercastLevel", "_weatherChangeTimeSek"]; + private ["_fogValue", "_fogBase", "_fogDecay"]; + _minWeatherChangeTimeMin = _this select 0; + _maxWeatherChangeTimeMin = _this select 1; + _minTimeBetweenWeatherChangesMin = _this select 2; + _maxTimeBetweenWeatherChangesMin = _this select 3; + _minimumFog = _this select 4; + _maximumFog = _this select 5; + _minimumFogDecay = _this select 6; + _maximumFogDecay = _this select 7; + _minimumFogBase = _this select 8; + _maximumFogBase = _this select 9; + _minimumOvercast = _this select 10; + _maximumOvercast = _this select 11; + _minimumWind = _this select 12; + _maximumWind = _this select 13; + _windChangeProbability = _this select 14; + _debug = _this select 15; + + // Set initial fog level + _fogLevel = 2; + _overcastLevel = 2; + + while {true} do { + // Sleep a while until next weather change + sleep floor (_minTimeBetweenWeatherChangesMin * 60 + random ((_maxTimeBetweenWeatherChangesMin - _minTimeBetweenWeatherChangesMin) * 60)); + + if (_minimumFog == _maximumFog && _minimumOvercast != _maximumOvercast) then { + _weatherType = "OVERCAST"; + }; + if (_minimumFog != _maximumFog && _minimumOvercast == _maximumOvercast) then { + _weatherType = "FOG"; + }; + if (_minimumFog != _maximumFog && _minimumOvercast != _maximumOvercast) then { + + // Select type of weather to change + if ((random 100) < 50) then { + _weatherType = "OVERCAST"; + } + else { + _weatherType = "FOG"; + }; + }; + + // DEBUG + //_weatherType = "OVERCAST"; + + if (_weatherType == "FOG") then { + + drn_DynamicWeather_CurrentWeatherChange = "FOG"; + + // Select a new fog level + _oldFogLevel = _fogLevel; + _fogLevel = floor ((random 100) / 25); + + while {_fogLevel == _oldFogLevel} do { + _fogLevel = floor ((random 100) / 25); + }; + + _fogDecay = _minimumFogDecay + (_maximumFogDecay - _minimumFogDecay) * random 1; + _fogBase = _minimumFogBase + (_maximumFogBase - _minimumFogBase) * random 1; + _fogValue = 0; + + if (_fogLevel == 0) then { + _fogValue = _minimumFog + (_maximumFog - _minimumFog) * random 0.05; + }; + if (_fogLevel == 1) then { + _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.05 + random 0.2); + }; + if (_fogLevel == 2) then { + _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.25 + random 0.3); + }; + if (_fogLevel == 3) then { + _fogValue = _minimumFog + (_maximumFog - _minimumFog) * (0.55 + random 0.45); + }; drn_DynamicWeather_WeatherTargetValue = [([_fogValue, _maximumFog] call drn_fnc_fogOdds) * _maximumFog, _fogDecay, _fogBase]; - drn_DynamicWeather_WeatherChangeStartedTime = time; - _weatherChangeTimeSek = _minWeatherChangeTimeMin * 60 + random ((_maxWeatherChangeTimeMin - _minWeatherChangeTimeMin) * 60); - drn_DynamicWeather_WeatherChangeCompletedTime = time + _weatherChangeTimeSek; - - if (_debug) then { - ["Weather forecast: Fog " + str drn_DynamicWeather_WeatherTargetValue + " in " + str round (_weatherChangeTimeSek / 60) + " minutes."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; - }; - }; - - if (_weatherType == "OVERCAST") then { - - drn_DynamicWeather_CurrentWeatherChange = "OVERCAST"; - - // Select a new overcast level - _oldOvercastLevel = _overcastLevel; - //_overcastLevel = floor ((random 100) / 25); - _overcastLevel = 3; - - while {_overcastLevel == _oldOvercastLevel} do { - _overcastLevel = floor ((random 100) / 25); - }; - - if (_overcastLevel == 0) then { - drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * random 0.05; - }; - if (_overcastLevel == 1) then { - drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.05 + random 0.3); - }; - if (_overcastLevel == 2) then { - drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.35 + random 0.35); - }; - if (_overcastLevel == 3) then { - drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.7 + random 0.3); - }; - - // DEBUG - /* - if (overcast > 0.8) then { - drn_DynamicWeather_WeatherTargetValue = 0.5; - } - else { - drn_DynamicWeather_WeatherTargetValue = 0.85; - }; - */ - - drn_DynamicWeather_WeatherChangeStartedTime = time; - _weatherChangeTimeSek = _minWeatherChangeTimeMin * 60 + random ((_maxWeatherChangeTimeMin - _minWeatherChangeTimeMin) * 60); - drn_DynamicWeather_WeatherChangeCompletedTime = time + _weatherChangeTimeSek; - - if (_debug) then { - ["Weather forecast: Overcast " + str drn_DynamicWeather_WeatherTargetValue + " in " + str round (_weatherChangeTimeSek / 60) + " minutes."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; - }; - }; - - // On average every one fourth of weather changes, change wind too - if (random 100 < _windChangeProbability) then { - private ["_maxWind"]; - - _maxWind = _minimumWind + random (_maximumWind - _minimumWind); - - if (random 100 < 50) then { - drn_DynamicWeather_WindX = -_minimumWind - random (_maxWind - _minimumWind); - } - else { - drn_DynamicWeather_WindX = _minimumWind + random (_maxWind - _minimumWind); - }; - if (random 100 < 50) then { - drn_DynamicWeather_WindZ = -_minimumWind - random (_maxWind - _minimumWind); - } - else { - drn_DynamicWeather_WindZ = _minimumWind + random (_maxWind - _minimumWind); - }; - - if (_debug) then { - ["Wind changes: [" + str drn_DynamicWeather_WindX + ", " + str drn_DynamicWeather_WindZ + "]."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; - }; - }; - - call drn_fnc_DynamicWeather_SetWeatherAllClients; - - sleep _weatherChangeTimeSek; - }; - }; - - // Start rain thread - if (_rainIntervalRainProbability > 0) then { - [_minimumRain, _maximumRain, _forceRainToStopAfterOneRainInterval, _minRainIntervalTimeMin, _maxRainIntervalTimeMin, _rainIntervalRainProbability, _debug] spawn { - private ["_minimumRain", "_maximumRain", "_forceRainToStopAfterOneRainInterval", "_minRainIntervalTimeMin", "_maxRainIntervalTimeMin", "_rainIntervalRainProbability", "_debug"]; - private ["_nextRainEventTime", "_forceStop"]; - - _minimumRain = _this select 0; - _maximumRain = _this select 1; - _forceRainToStopAfterOneRainInterval = _this select 2; - _minRainIntervalTimeMin = _this select 3; - _maxRainIntervalTimeMin = _this select 4; - _rainIntervalRainProbability = _this select 5; - _debug = _this select 6; - - if (rain > 0) then { - drn_var_DynamicWeather_Rain = rain; - publicVariable "drn_var_DynamicWeather_Rain"; - }; - - _nextRainEventTime = time; - _forceStop = false; - - while {true} do { - - if (overcast > 0.75) then { - - if (time >= _nextRainEventTime) then { - private ["_rainTimeSec"]; - - // At every rain event time, start or stop rain with 50% probability - if (random 100 < _rainIntervalRainProbability && !_forceStop) then { - drn_var_DynamicWeather_rain = _minimumRain + random (_maximumRain - _minimumRain); - publicVariable "drn_var_DynamicWeather_rain"; - - _forceStop = _forceRainToStopAfterOneRainInterval; - } - else { - drn_var_DynamicWeather_rain = 0; - publicVariable "drn_var_DynamicWeather_rain"; - - _forceStop = false; - }; - - // Pick a time for next rain change - _rainTimeSec = _minRainIntervalTimeMin * 60 + random ((_maxRainIntervalTimeMin - _minRainIntervalTimeMin) * 60); - _nextRainEventTime = time + _rainTimeSec; - - if (_debug) then { - ["Rain set to " + str drn_var_DynamicWeather_rain + " for " + str (_rainTimeSec / 60) + " minutes"] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; - }; - }; - } - else { - if (drn_var_DynamicWeather_rain != 0) then { - drn_var_DynamicWeather_rain = 0; - publicVariable "drn_var_DynamicWeather_rain"; - - if (_debug) then { - ["Rain stops due to low overcast."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; - }; - }; - - _nextRainEventTime = time; - _forceStop = false; - }; - - if (_debug) then { - sleep 1; - } - else { - sleep 20; - }; - }; - }; - }; + drn_DynamicWeather_WeatherChangeStartedTime = time; + _weatherChangeTimeSek = _minWeatherChangeTimeMin * 60 + random ((_maxWeatherChangeTimeMin - _minWeatherChangeTimeMin) * 60); + drn_DynamicWeather_WeatherChangeCompletedTime = time + _weatherChangeTimeSek; + + if (_debug) then { + ["Weather forecast: Fog " + str drn_DynamicWeather_WeatherTargetValue + " in " + str round (_weatherChangeTimeSek / 60) + " minutes."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; + }; + }; + + if (_weatherType == "OVERCAST") then { + + drn_DynamicWeather_CurrentWeatherChange = "OVERCAST"; + + // Select a new overcast level + _oldOvercastLevel = _overcastLevel; + //_overcastLevel = floor ((random 100) / 25); + _overcastLevel = 3; + + while {_overcastLevel == _oldOvercastLevel} do { + _overcastLevel = floor ((random 100) / 25); + }; + + if (_overcastLevel == 0) then { + drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * random 0.05; + }; + if (_overcastLevel == 1) then { + drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.05 + random 0.3); + }; + if (_overcastLevel == 2) then { + drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.35 + random 0.35); + }; + if (_overcastLevel == 3) then { + drn_DynamicWeather_WeatherTargetValue = _minimumOvercast + (_maximumOvercast - _minimumOvercast) * (0.7 + random 0.3); + }; + + // DEBUG + /* + if (overcast > 0.8) then { + drn_DynamicWeather_WeatherTargetValue = 0.5; + } + else { + drn_DynamicWeather_WeatherTargetValue = 0.85; + }; + */ + + drn_DynamicWeather_WeatherChangeStartedTime = time; + _weatherChangeTimeSek = _minWeatherChangeTimeMin * 60 + random ((_maxWeatherChangeTimeMin - _minWeatherChangeTimeMin) * 60); + drn_DynamicWeather_WeatherChangeCompletedTime = time + _weatherChangeTimeSek; + + if (_debug) then { + ["Weather forecast: Overcast " + str drn_DynamicWeather_WeatherTargetValue + " in " + str round (_weatherChangeTimeSek / 60) + " minutes."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; + }; + }; + + // On average every one fourth of weather changes, change wind too + if (random 100 < _windChangeProbability) then { + private ["_maxWind"]; + + _maxWind = _minimumWind + random (_maximumWind - _minimumWind); + + if (random 100 < 50) then { + drn_DynamicWeather_WindX = -_minimumWind - random (_maxWind - _minimumWind); + } + else { + drn_DynamicWeather_WindX = _minimumWind + random (_maxWind - _minimumWind); + }; + if (random 100 < 50) then { + drn_DynamicWeather_WindZ = -_minimumWind - random (_maxWind - _minimumWind); + } + else { + drn_DynamicWeather_WindZ = _minimumWind + random (_maxWind - _minimumWind); + }; + + if (_debug) then { + ["Wind changes: [" + str drn_DynamicWeather_WindX + ", " + str drn_DynamicWeather_WindZ + "]."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; + }; + }; + + call drn_fnc_DynamicWeather_SetWeatherAllClients; + + sleep _weatherChangeTimeSek; + }; + }; + + // Start rain thread + if (_rainIntervalRainProbability > 0) then { + [_minimumRain, _maximumRain, _forceRainToStopAfterOneRainInterval, _minRainIntervalTimeMin, _maxRainIntervalTimeMin, _rainIntervalRainProbability, _debug] spawn { + private ["_minimumRain", "_maximumRain", "_forceRainToStopAfterOneRainInterval", "_minRainIntervalTimeMin", "_maxRainIntervalTimeMin", "_rainIntervalRainProbability", "_debug"]; + private ["_nextRainEventTime", "_forceStop"]; + + _minimumRain = _this select 0; + _maximumRain = _this select 1; + _forceRainToStopAfterOneRainInterval = _this select 2; + _minRainIntervalTimeMin = _this select 3; + _maxRainIntervalTimeMin = _this select 4; + _rainIntervalRainProbability = _this select 5; + _debug = _this select 6; + + if (rain > 0) then { + drn_var_DynamicWeather_Rain = rain; + publicVariable "drn_var_DynamicWeather_Rain"; + }; + + _nextRainEventTime = time; + _forceStop = false; + + while {true} do { + + if (overcast > 0.75) then { + + if (time >= _nextRainEventTime) then { + private ["_rainTimeSec"]; + + // At every rain event time, start or stop rain with 50% probability + if (random 100 < _rainIntervalRainProbability && !_forceStop) then { + drn_var_DynamicWeather_rain = _minimumRain + random (_maximumRain - _minimumRain); + publicVariable "drn_var_DynamicWeather_rain"; + + _forceStop = _forceRainToStopAfterOneRainInterval; + } + else { + drn_var_DynamicWeather_rain = 0; + publicVariable "drn_var_DynamicWeather_rain"; + + _forceStop = false; + }; + + // Pick a time for next rain change + _rainTimeSec = _minRainIntervalTimeMin * 60 + random ((_maxRainIntervalTimeMin - _minRainIntervalTimeMin) * 60); + _nextRainEventTime = time + _rainTimeSec; + + if (_debug) then { + ["Rain set to " + str drn_var_DynamicWeather_rain + " for " + str (_rainTimeSec / 60) + " minutes"] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; + }; + }; + } + else { + if (drn_var_DynamicWeather_rain != 0) then { + drn_var_DynamicWeather_rain = 0; + publicVariable "drn_var_DynamicWeather_rain"; + + if (_debug) then { + ["Rain stops due to low overcast."] call drn_fnc_DynamicWeather_ShowDebugTextAllClients; + }; + }; + + _nextRainEventTime = time; + _forceStop = false; + }; + + if (_debug) then { + sleep 1; + } + else { + sleep 20; + }; + }; + }; + }; }; [_rainIntervalRainProbability, _debug] spawn { - private ["_rainIntervalRainProbability", "_debug"]; - private ["_rain", "_rainPerSecond"]; - - _rainIntervalRainProbability = _this select 0; - _debug = _this select 1; - - if (_debug) then { - _rainPerSecond = 0.2; - } - else { - _rainPerSecond = 0.03; - }; - - if (_rainIntervalRainProbability > 0) then { - _rain = drn_var_DynamicWeather_Rain; - } - else { - _rain = 0; - }; - - 0 setRain _rain; + private ["_rainIntervalRainProbability", "_debug"]; + private ["_rain", "_rainPerSecond"]; + + _rainIntervalRainProbability = _this select 0; + _debug = _this select 1; + + if (_debug) then { + _rainPerSecond = 0.2; + } + else { + _rainPerSecond = 0.03; + }; + + if (_rainIntervalRainProbability > 0) then { + _rain = drn_var_DynamicWeather_Rain; + } + else { + _rain = 0; + }; + + 0 setRain _rain; 0 setFog [fog max (_rain / 4), 0.001, 1000]; - sleep 0.1; - - while {true} do { - if (_rainIntervalRainProbability > 0) then { - if (_rain < drn_var_DynamicWeather_Rain) then { - _rain = _rain + _rainPerSecond; - if (_rain > 1) then { _rain = 1; }; - }; - if (_rain > drn_var_DynamicWeather_Rain) then { - _rain = _rain - _rainPerSecond; - if (_rain < 0) then { _rain = 0; }; - }; - } - else { - _rain = 0; - }; - - 3 setRain _rain; + sleep 0.1; + + while {true} do { + if (_rainIntervalRainProbability > 0) then { + if (_rain < drn_var_DynamicWeather_Rain) then { + _rain = _rain + _rainPerSecond; + if (_rain > 1) then { _rain = 1; }; + }; + if (_rain > drn_var_DynamicWeather_Rain) then { + _rain = _rain - _rainPerSecond; + if (_rain < 0) then { _rain = 0; }; + }; + } + else { + _rain = 0; + }; + + 3 setRain _rain; 3 setFog [fog max (_rain / 4), 0.001, 1000]; - sleep 10; - }; + sleep 10; + }; }; From b0fab0e93dad25b7eb5a465a5448f6819de050ed Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 7 Dec 2014 14:18:20 -0800 Subject: [PATCH 143/544] Fix for wasteland sell prices and adjusted vehicle lock. --- client/functions/playerActions.sqf | 6 +++--- client/systems/generalStore/sellItems.sqf | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index eed58870d..dfb8d2372 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -25,9 +25,9 @@ [" Salvage", "client\actions\salvage.sqf", [], 1.1, false, false, "", "!isNull cursorTarget && !alive cursorTarget && {cursorTarget isKindOf 'AllVehicles' && !(cursorTarget isKindOf 'Man') && player distance cursorTarget <= (sizeOf typeOf cursorTarget / 3) max 2}"], - [" Lock", "addons\scripts\lockIn.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'C_Heli_Light_01_civil_F'], 5] > 0 && !(vehicle player == player)"], - [" Unlock", "addons\scripts\unlock.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'C_Heli_Light_01_civil_F'], 5] > 0 && !(vehicle player == player)"], - [" Lock", "addons\scripts\lock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'O_Truck_03_device_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'B_Heli_Light_01_armed_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'C_Heli_Light_01_civil_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget < 2 && cursorTarget distance player < 5"], + [" Lock", "addons\scripts\lockIn.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F'], 5] > 0 && !(vehicle player == player)"], + [" Unlock", "addons\scripts\unlock.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F'], 5] > 0 && !(vehicle player == player)"], + [" Lock", "addons\scripts\lock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'B_Heli_Light_01_armed_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget < 2 && cursorTarget distance player < 5"], [" Unlock", "addons\scripts\unlock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], diff --git a/client/systems/generalStore/sellItems.sqf b/client/systems/generalStore/sellItems.sqf index 0ddfce7de..6b30c0ae4 100644 --- a/client/systems/generalStore/sellItems.sqf +++ b/client/systems/generalStore/sellItems.sqf @@ -41,7 +41,7 @@ storeSellingHandle = [] spawn { if (_itemText == _x select 0 && _itemData == _x select 1) exitWith { - _price = (_x select 5) call _getHalfPrice; + _price = (_x select 5); }; } forEach (call customPlayerItems); From e5f30549e9be4f156cde52e2c49662cb097cb4e9 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 7 Dec 2014 14:23:09 -0800 Subject: [PATCH 144/544] Adjusted default config. --- server/default_config.sqf | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/server/default_config.sqf b/server/default_config.sqf index 6628472d3..928c63254 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -8,13 +8,13 @@ // This file is overriden by the external file "A3Wasteland_settings\main_config.sqf" if present // General settings -A3W_startHour = 11; // In-game hour at mission start (0 to 23) -A3W_timeMultiplierDay = 2.5; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) -A3W_timeMultiplierNight = 2.0; // Sets the speed of time between 8 PM and 5 AM +A3W_startHour = 12; // In-game hour at mission start (0 to 23) +A3W_timeMultiplierDay = 2.0; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) +A3W_timeMultiplierNight = 2.5; // Sets the speed of time between 8 PM and 5 AM A3W_moonLight = 1; // Moon light during night (0 = no, 1 = yes) A3W_teamPlayersMap = 1; // Show all friendly players on the map at all times, regardless of difficulty level (0 = no, 1 = yes) -A3W_globalVoiceWarnTimer = 4; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) -A3W_globalVoiceMaxWarns = 4; // Number of global voice warnings after which the player will be killed and crashed (0 = disabled) +A3W_globalVoiceWarnTimer = 1; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) +A3W_globalVoiceMaxWarns = 3; // Number of global voice warnings after which the player will be killed and crashed (0 = disabled) A3W_antiHackMinRecoil = 1.0; // Mininum recoil coefficient enforced by the antihack (recommended values: default = 1.0, TMR Mod = 0.5, VTS Weapon Resting = 0.25) A3W_spawnBeaconCooldown = 5*60; // Number of seconds to wait between each use of an individual spawn beacon (0 = disabled) A3W_spawnBeaconSpawnHeight = 1500; // Altitude in meters at which players will spawn when using spawn beacons (0 = ground/sea) @@ -26,13 +26,13 @@ A3W_remoteBombStoreRadius = 75; // Prevent players from placing remote explos A3W_vehiclePurchaseCooldown = 45; // Number of seconds to wait before allowing someone to purchase another vehicle, don't bother setting it too high because it can be bypassed by rejoining // Player settings -A3W_startingMoney = 1500; // Amount of money that players start with +A3W_startingMoney = 1500; // Amount of money that players start with A3W_unlimitedStamina = 1; // Allow unlimited sprinting, jumping, etc. (0 = no, 1 = yes) - this also removes energy drinks from the mission A3W_bleedingTime = 60; // Time in seconds for which to allow revive after a critical injury (minimum 10 seconds) A3W_healthTime = 60*5; //seconds till death -A3W_hungerTime = 60*60; //seconds till starving -A3W_thirstTime = 50*60; //seconds till dehydrated +A3W_hungerTime = 80*60; //seconds till starving +A3W_thirstTime = 65*60; //seconds till dehydrated // Persistence settings A3W_playerSaving = 1; // Save player data like position, health, inventory, etc. (0 = no, 1 = yes) @@ -57,7 +57,6 @@ PDB_AdminLogFileID = "A3W_"; // Admin log savefile prefix (change this in PDB_HackerLogFileID = "A3W_"; // Hacker log savefile prefix (change this in case you run multiple servers from the same folder) PDB_PlayersListFileID = "A3W_"; // PlayerList savefile prefix (change this in case you run multiple servers from the same folder) - A3W_vehicle_saveInterval = 1200; // Number of seconds between vehicle saves A3W_object_saveInterval = 1200; // Number of seconds between object saves A3W_player_saveInterval = 1200; // Number of seconds between player saves @@ -66,8 +65,8 @@ A3W_playersList_saveInterval = 120; // Number of seconds between player list sav // List of classes for vehicles that are saveable // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; -A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore -A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "O_Truck_03_device_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought +A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore +A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) @@ -93,7 +92,7 @@ A3W_payrollAmount = 400; // Amount of money rewarded per territory on // Mission settings A3W_serverMissions = 1; // Enable server missions (0 = no, 1 = yes) -A3W_missionsDifficulty = 1; // Missions difficulty (0 = normal, 1 = hard) +A3W_missionsDifficulty = 0; // Missions difficulty (0 = normal, 1 = hard) A3W_missionsQuantity = 4; // Number of missions running at the same time (0 to 6) A3W_heliPatrolMissions = 1; // Enable missions involving flying helicopters piloted by AI (0 = no, 1 = yes) A3W_underWaterMissions = 1; // Enable underwater missions which require diving gear (0 = no, 1 = yes) From ec6fa5903c02711bc5439250573640225aa676b4 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 7 Dec 2014 14:59:52 -0800 Subject: [PATCH 145/544] Adjusted drug list order. --- storeConfig.sqf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/storeConfig.sqf b/storeConfig.sqf index d2259e067..7290b917f 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -798,18 +798,18 @@ customPlayerItems = compileFinal str ["Canned Food", "cannedfood", localize "STR_WL_ShopDescriptions_CanFood", "client\icons\cannedfood.paa", 30, 15], ["Repair Kit", "repairkit", localize "STR_WL_ShopDescriptions_RepairKit", "client\icons\briefcase.paa", 500, 250], ["Jerry Can (Full)", "jerrycanfull", localize "STR_WL_ShopDescriptions_fuelFull", "client\icons\jerrycan.paa", 150, 75], - ["LSD", "lsd", localize "STR_WL_ShopDescriptions_LSD", "client\icons\lsd.paa", 3500, 3000], - ["Marijuana", "marijuana", localize "STR_WL_ShopDescriptions_Marijuana", "client\icons\marijuana.paa", 3500, 3000], - ["Cocaine", "cocaine", localize "STR_WL_ShopDescriptions_Cocaine", "client\icons\cocaine.paa", 3500, 3000], - ["Heroin", "heroin", localize "STR_WL_ShopDescriptions_Heroin", "client\icons\heroin.paa", 3500, 3000], - - ["Jerry Can (Empty)", "jerrycanempty", localize "STR_WL_ShopDescriptions_fuelEmpty", "client\icons\jerrycan.paa", 50, 25], ["Spawn Beacon", "spawnbeacon", localize "STR_WL_ShopDescriptions_spawnBeacon", "client\icons\briefcase.paa", 1500, 750], + ["Syphon Hose", "syphonhose", localize "STR_WL_ShopDescriptions_SyphonHose", "client\icons\jerrycan.paa", 200, 100], + //["Camo Net", "camonet", localize "STR_WL_ShopDescriptions_Camo", "client\icons\briefcase.paa", 200, 100], - ["Syphon Hose", "syphonhose", localize "STR_WL_ShopDescriptions_SyphonHose", "client\icons\jerrycan.paa", 200, 100] //["Energy Drink", "energydrink", localize "STR_WL_ShopDescriptions_Energy_Drink", "client\icons\water.paa", 100, 50], - //["Warchest", "warchest", localize "STR_WL_ShopDescriptions_Warchest", "client\icons\briefcase.paa", 1000, 500] + //["Warchest", "warchest", localize "STR_WL_ShopDescriptions_Warchest", "client\icons\briefcase.paa", 1000, 500], + + ["LSD", "lsd", localize "STR_WL_ShopDescriptions_LSD", "client\icons\lsd.paa", 3500, 3000], + ["Marijuana", "marijuana", localize "STR_WL_ShopDescriptions_Marijuana", "client\icons\marijuana.paa", 3500, 3000], + ["Cocaine", "cocaine", localize "STR_WL_ShopDescriptions_Cocaine", "client\icons\cocaine.paa", 3500, 3000], + ["Heroin", "heroin", localize "STR_WL_ShopDescriptions_Heroin", "client\icons\heroin.paa", 3500, 3000] ]; call compile preprocessFileLineNumbers "mapConfig\storeOwners.sqf"; From 2cb9d690a8ba65b3459d57b1d29523d443f67b63 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 7 Dec 2014 17:34:54 -0800 Subject: [PATCH 146/544] TAW boat fix. --- addons/taw_vd/dialog.hpp | 2 +- addons/taw_vd/fn_updateViewDistance.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/taw_vd/dialog.hpp b/addons/taw_vd/dialog.hpp index 30a5879ab..eb2efc33c 100644 --- a/addons/taw_vd/dialog.hpp +++ b/addons/taw_vd/dialog.hpp @@ -298,7 +298,7 @@ class TAW_VD class VDinCar : TAWVD_RscText { idc = -1; - text = "In Car:"; + text = "On Land:"; x = 0.32; y = 0.305; w = 0.275; h = 0.04; diff --git a/addons/taw_vd/fn_updateViewDistance.sqf b/addons/taw_vd/fn_updateViewDistance.sqf index 57a4190e5..1c06f205d 100644 --- a/addons/taw_vd/fn_updateViewDistance.sqf +++ b/addons/taw_vd/fn_updateViewDistance.sqf @@ -12,7 +12,7 @@ switch (true) do setViewDistance tawvd_foot; _dist = tawvd_foot; }; - case ((vehicle player) isKindOf "LandVehicle"): { + case ((vehicle player) isKindOf "LandVehicle" || {(vehicle player) isKindOf "Ship_F"}): { setViewDistance tawvd_car; _dist = tawvd_car; }; From 558110aafe0597d13e7c7a8788bc342c24a9481c Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 13 Dec 2014 21:08:27 -0800 Subject: [PATCH 147/544] Solve more conflicts --- client/functions/playerActions.sqf | 2 +- client/init.sqf | 2 +- globalCompile.sqf | 1 - persistence/fn_sock_custom.sqf | 157 +---------------------------- persistence/players/pFunctions.sqf | 1 + persistence/players/sFunctions.sqf | 72 ++++++++++++- persistence/world/oFunctions.sqf | 33 +++++- persistence/world/vFunctions.sqf | 16 +++ server/functions/basePartSetup.sqf | 23 +++++ server/functions/fn_addScore.sqf | 8 -- server/functions/serverCompile.sqf | 2 +- server/init.sqf | 40 ++------ 12 files changed, 150 insertions(+), 207 deletions(-) diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 85b9f5520..5b82707fb 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -35,7 +35,7 @@ if !(288520 in getDLCs 1) then [player, ["Get in as Driver", "client\actions\moveInDriver.sqf", [], 6, true, true, "", "cursorTarget isKindOf 'Kart_01_Base_F' && player distance cursorTarget < 3.4 && isNull driver cursorTarget"]] call fn_addManagedAction; }; -if (["A3W_savingMethod", "profile"] call getPublicVar == "extDB" && {["A3W_purchasedVehicleSaving"] call isConfigOn || ["A3W_missionVehicleSaving"] call isConfigOn}) then +if (["A3W_purchasedVehicleSaving"] call isConfigOn || {["A3W_missionVehicleSaving"] call isConfigOn}) then { [player, [" Force Save Vehicle", { pvar_manualVehicleSave = netId cursorTarget; publicVariableServer "pvar_manualVehicleSave" }, [], -9.5, false, true, "", "call canForceSaveVehicle"]] call fn_addManagedAction; }; diff --git a/client/init.sqf b/client/init.sqf index 15d803fa7..a01f3211a 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -67,7 +67,7 @@ player setVariable ["cmoney", _baseMoney, true]; // Player saving - load data if (["A3W_playerSaving"] call isConfigOn) then { - call compile preprocessFileLineNumbers "persistence\client\players\setupPlayerDB.sqf"; + call compile preprocessFileLineNumbers "persistence\players\c_setupPlayerDB.sqf"; call fn_requestPlayerData; waitUntil {!isNil "playerData_loaded"}; diff --git a/globalCompile.sqf b/globalCompile.sqf index 060aea428..37455c9a5 100644 --- a/globalCompile.sqf +++ b/globalCompile.sqf @@ -104,7 +104,6 @@ getFwdVelocity = [_serverFunc, "getFwdVelocity.sqf"] call mf_compile; getHitPoints = [_serverFunc, "getHitPoints.sqf"] call mf_compile; getMagAmmoCount = [_serverFunc, "getMagAmmoCount.sqf"] call mf_compile; getMoveWeapon = [_clientFunc, "getMoveWeapon.sqf"] call mf_compile; -fn_getPlayerData = "persistence\client\players\getPlayerData.sqf" call mf_compile; getPublicVar = [_serverFunc, "getPublicVar.sqf"] call mf_compile; getTeamMarkerColor = "territory\client\getTeamMarkerColor.sqf" call mf_compile; isConfigOn = [_serverFunc, "isConfigOn.sqf"] call mf_compile; diff --git a/persistence/fn_sock_custom.sqf b/persistence/fn_sock_custom.sqf index 10252e0cf..eab8ad721 100644 --- a/persistence/fn_sock_custom.sqf +++ b/persistence/fn_sock_custom.sqf @@ -16,11 +16,6 @@ if (!isServer) exitWith {}; -private ["_savingMethod"]; - -_savingMethod = ["A3W_savingMethod", "profile"] call getPublicVar; - -diag_log format["_savingMethod = %1", _savingMethod]; PDB_ServerID = if (isNil "PDB_ServerID") then {"A3W_"} else {PDB_ServerID}; PDB_PlayerFileID = if (isNil "PDB_PlayerFileID") then {PDB_ServerID} else {PDB_PlayerFileID}; @@ -48,8 +43,6 @@ diag_log format["[INFO] config: PDB_HackerLogFileID = %1", PDB_HackerLogFileID]; diag_log format["[INFO] config: PDB_PlayersListFileID = %1", PDB_PlayersListFileID]; - - PDB_databaseNameCompiler = PDB_objectFileName; @@ -73,149 +66,9 @@ PDB_defaultValue = { } call mf_compile; - // Server-side profileNamespace saving if iniDB is disabled or unavailable - -PDB_exists = if (_savingMethod == "iniDB") then { iniDB_exists } else -{ - { - !isNil {profileNamespace getVariable _this}; - } call mf_compile; -}; - -PDB_read = if (_savingMethod == "iniDB") then { iniDB_read } else -{ - { - private ["_var", "_sec", "_key", "_varSec", "_data", "_type"]; - _var = _this select 0; - _sec = _this select 1; - _key = _this select 2; - - _varSec = _var + "_" + _sec; - _data = profileNamespace getVariable _varSec; - - if (!isNil "_data" && {typeName _data == "ARRAY"}) then - { - _data = [_data, _key] call fn_getFromPairs; - }; - - if (count _this > 3 && {isNil "_data" || {typeName _data != _this select 3}}) then - { - _data = [_this select 3, if (isNil "_data") then { "" } else { _data }] call PDB_defaultValue; - }; - - if (isNil "_data") then { nil } else { _data }; - } call mf_compile; -}; - -PDB_write = if (_savingMethod == "iniDB") then { iniDB_write } else -{ - { - private ["_var", "_sec", "_key", "_val", "_saveSec", "_varSec", "_data", "_setVar"]; - _var = _this select 0; - _sec = _this select 1; - _key = _this select 2; - _val = _this select 3; - _saveSec = if (count _this > 4) then { _this select 4 } else { true }; - - // Save value in section - - _varSec = _var + "_" + _sec; - _data = profileNamespace getVariable _varSec; - _setVar = false; - - if (isNil "_data" || {typeName _data != "ARRAY"}) then - { - _data = []; - _setVar = true; - }; - - [_data, _key, _val] call fn_setToPairs; - - // Since arrays are always passed by reference, we only have to call setVariable if the array itself changes - if (_setVar) then - { - profileNamespace setVariable [_varSec, _data]; - }; - - // Save section name in index - - if (_saveSec) then - { - _indData = profileNamespace getVariable _var; - _setVar = false; - - if (isNil "_indData" || {typeName _indData != "ARRAY"}) then - { - _indData = []; - _setVar = true; - }; - - if ({typeName _x == "STRING" && {_x == _sec}} count _indData == 0) then - { - _indData pushBack _sec; - }; - - if (_setVar) then - { - profileNamespace setVariable [_var, _indData]; - }; - }; - } call mf_compile; -}; - -PDB_delete = if (_savingMethod == "iniDB") then { iniDB_delete } else -{ - { - private ["_var", "_delSec", "_indData"]; - _var = _this select 0; - _delSec = if (count _this > 1) then { _this select 1 } else { true }; - - _indData = profileNamespace getVariable _var; - - if (!isNil "_indData") then - { - if (_delSec && typeName _indData == "ARRAY") then - { - { - if (typeName _x == "STRING") then - { - profileNamespace setVariable [_x, nil]; - }; - } forEach _indData; - }; - - profileNamespace setVariable [_var, nil]; - }; - } call mf_compile; -}; - -PDB_deleteSection = if (_savingMethod == "iniDB") then { iniDB_deleteSection } else -{ - { - private ["_var", "_sec", "_delIndex", "_varSec", "_indData"]; - _var = _this select 0; - _sec = _this select 1; - _delIndex = if (count _this > 2) then { _this select 2 } else { false }; - - _varSec = _var + "_" + _sec; - profileNamespace setVariable [_varSec, nil]; - - if (_delIndex) then - { - _indData = profileNamespace getVariable _var; - - if (!isNil "_indData" && {typeName _indData == "ARRAY"}) then - { - { - if (typeName _x == "STRING" && {_x == _varSec}) then - { - _indData set [_forEachIndex, -1]; - }; - } forEach _indData; - - profileNamespace setVariable [_var, _indData - [-1]]; - }; - }; - } call mf_compile; -}; +PDB_exists = iniDB_exists; +PDB_read = iniDB_read; +PDB_write = iniDB_write; +PDB_delete = iniDB_delete; +PDB_deleteSection = iniDB_deleteSection; diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 3315f3fd1..2a51d7384 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -390,6 +390,7 @@ p_getScope = { (format["%1%2",PDB_PlayerFileID,_id]) }; + fn_requestPlayerData = {[] spawn { init(_player,player); init(_uid,getPlayerUID player); diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 519c8f3a7..30e083cf7 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -1,7 +1,7 @@ -// @file Version: 0.1 -// @file Name: pFunctions.sqf -// @file Author: micovery -// @file Description: server functions +// @file Version: 0.1 +// @file Name: sFunctions.sqf +// @file Author: micovery +// @file Description: server functions diag_log "sFunctions.sqf loading ..."; @@ -284,7 +284,7 @@ p_addPlayerSave = { }; _data pushBack ["Position", _pos]; - _data pushBack ["Direction", direction _player]; + _data pushBack ["Direction", direction _player]; //only save animation, and current weapon if the player is not inside a vehicle @@ -448,6 +448,65 @@ p_disconnectSave = { } forEach _vitals; };}; +fn_getPlayerFlag = { + ARGVX3(0,_uid,""); + + def(_scope); + _scope = "Hackers2" call PDB_hackerLogFileName; + + def(_key); + _key = format["%1.records",_uid]; + + + def(_records); + _records = [_scope, _key, nil] call stats_get; + + if (!isARRAY(_records)) exitWith {}; + + private["_last"]; + _last = _records select (count(_records) -1); + + if (!isCODE(_last)) exitWith {}; + + (call _last) +}; + +fn_kickPlayerIfFlagged = { + ARGVX3(0,_UID,""); + ARGVX3(1,_name,""); + + def(_flag); + _flag = [_UID] call fn_getPlayerFlag; + if (!isARRAY(_flag) || {count(_flag) == 0}) exitWith {}; + + // Super mega awesome dodgy player kick method + "Logic" createUnit [[1,1,1], createGroup sideLogic, + (" + this spawn { + if (isServer) then { + _grp = group _this; + deleteVehicle _this; + deleteGroup _grp; + } + else { + waitUntil {!isNull player}; + if (getPlayerUID player == '" + _UID + "') then { + preprocessFile 'client\functions\quit.sqf'; + }; + }; + } + ")]; + + //_oldName = _flag select 0; // always empty for extDB + def(_hackType); + def(_hackValue); + + _hackType = [_flag, "hackType", "unknown"] call fn_getFromPairs; + _hackValue = [_flag, "hackValue", "unknown"] call fn_getFromPairs; + + diag_log format ["ANTI-HACK: %1 (%2) was kicked due to having been flagged for [%3, %4] in the past", _name, _UID, _hackType, _hackValue]; + +}; active_players_list = []; @@ -545,6 +604,9 @@ p_saveAllPlayers = { + + + p_saveLoop = { while {true} do { sleep A3W_player_saveInterval; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index b9516df62..29d70813d 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -512,6 +512,8 @@ o_trackedObjectsListCleanup = { }; + + tracked_objects_list = []; o_getTrackedObjectIndex = { @@ -521,9 +523,8 @@ o_getTrackedObjectIndex = { (tracked_objects_list find _obj) }; -//event handlers for object tracking, and untracking -"trackObject" addPublicVariableEventHandler { - private["_index","_object"]; +o_trackObject = { + private["_index","_object"]; _object = _this select 1; _index = [OR(_object,nil)] call o_getTrackedObjectIndex; if (_index >= 0) exitWith {}; @@ -532,8 +533,10 @@ o_getTrackedObjectIndex = { tracked_objects_list pushBack _object; }; +//event handlers for object tracking, and untracking +"trackObject" addPublicVariableEventHandler { _this call o_trackObject; }; -"untrackObject" addPublicVariableEventHandler { +o_untrackObject = { private["_index","_object"]; _object = _this select 1; _index = [OR(_object,nil)] call o_getTrackedObjectIndex; @@ -543,6 +546,28 @@ o_getTrackedObjectIndex = { tracked_objects_list deleteAt _index; }; +"untrackObject" addPublicVariableEventHandler { _this call o_untrackObject; }; + +fn_manualObjectSave = { + ARGVX3(0,_netId,""); + + def(_object); + _object = objectFromNetId _netId; + if (!isOBJECT(_object)) exitWith {}; + + [_object] call o_trackObject; +}; + +fn_manualObjectDelete = { + ARGVX3(0,_netId,""); + + def(_object); + _object = objectFromNetId _netId; + if (!isOBJECT(_object)) exitWith {}; + + [_object] call o_untrackObject; +}; + o_saveLoop = { ARGVX3(0,_scope,""); while {true} do { diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index d1d252a93..198fda1f8 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -233,6 +233,22 @@ v_untrackVehicle = { tracked_vehicles_list deleteAt _index; }; +fn_manualVehicleSave = { + ARGVX2(0,_object); + + if (isSTRING(_object)) then { + _object = objectFromNetId _object; + }; + + if (!isOBJECT(_object)) exitWith {}; + if (diag_tickTime - (_object getVariable ["vehSaving_lastSave", 0]) <= MANUAL_VEH_SAVE_COOLDOWN) exitWith {}; + + _object setVariable ["vehSaving_lastUse", diag_tickTime]; + _object setVariable ["vehSaving_lastSave", diag_tickTime]; + [_object] call v_trackVehicle; +}; + + v_trackedVehiclesListCleanup = { //post cleanup the array init(_cleanup_start, diag_tickTime); diff --git a/server/functions/basePartSetup.sqf b/server/functions/basePartSetup.sqf index e69de29bb..402a405da 100644 --- a/server/functions/basePartSetup.sqf +++ b/server/functions/basePartSetup.sqf @@ -0,0 +1,23 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Name: basePartSetup.sqf +// @file Author: AgentRev + +if (!isServer) exitWith {}; + +private "_obj"; +_obj = _this select 0; + +_obj addEventHandler ["Killed", +{ + _obj = _this select 0; + _obj setVariable ["processedDeath", diag_tickTime]; + + /* Not needed for sock-rpc-stats ... since object is not the map, it would not be saved + if (!isNil "fn_manualObjectDelete") then + { + [objNull, _obj getVariable "A3W_objectID"] call fn_manualObjectDelete; + }; + */ +}]; diff --git a/server/functions/fn_addScore.sqf b/server/functions/fn_addScore.sqf index 7a07e2fee..20622de71 100644 --- a/server/functions/fn_addScore.sqf +++ b/server/functions/fn_addScore.sqf @@ -50,12 +50,4 @@ if (isPlayer _player) then // sync Steam scoreboard _player addScore ((([_player, "playerKills"] call fn_getScore) - ([_player, "teamKills"] call fn_getScore)) - score _player); - if (!isNil "_column" && !isNil "_score") then - { - // Log Scores to DB - if (["A3W_savingMethod", "profile"] call getPublicVar == "extDB") then - { - [format ["insertOrUpdatePlayerStats:%1:%2:%3", getPlayerUID _player, _column, _score]] spawn extDB_Database_async; - }; - }; }; diff --git a/server/functions/serverCompile.sqf b/server/functions/serverCompile.sqf index 859bdac79..5cd889482 100644 --- a/server/functions/serverCompile.sqf +++ b/server/functions/serverCompile.sqf @@ -46,7 +46,6 @@ convertTerritoryOwner = "territory\server\convertTerritoryOwner.sqf" call mf_com defendArea = [_path, "defendArea.sqf"] call mf_compile; getMagazineDetailAmmo = [_path, "getMagazineDetailAmmo.sqf"] call mf_compile; findClientPlayer = [_path, "findClientPlayer.sqf"] call mf_compile; -fn_kickPlayerIfFlagged = [_path, "fn_kickPlayerIfFlagged.sqf"] call mf_compile; fn_onPlayerConnected = [_path, "fn_onPlayerConnected.sqf"] call mf_compile; fn_onPlayerDisconnected = [_path, "fn_onPlayerDisconnected.sqf"] call mf_compile; fn_publicVariableAll = [_path, "fn_publicVariableAll.sqf"] call mf_compile; @@ -56,6 +55,7 @@ fn_replaceMagazines = [_path, "fn_replaceMagazines.sqf"] call mf_compile; fn_replaceWeapons = [_path, "fn_replaceWeapons.sqf"] call mf_compile; fn_selectRandomWeighted = [_path, "fn_selectRandomWeighted.sqf"] call mf_compile; fn_updatePlayerScore = [_path, "fn_updatePlayerScore.sqf"] call mf_compile; + hintBroadcast = [_path, "hintBroadcast.sqf"] call mf_compile; parachuteLiftedVehicle = [_path, "parachuteLiftedVehicle.sqf"] call mf_compile; processGroupInvite = [_path, "processGroupInvite.sqf"] call mf_compile; diff --git a/server/init.sqf b/server/init.sqf index 57254a96d..1c6a08802 100644 --- a/server/init.sqf +++ b/server/init.sqf @@ -99,33 +99,14 @@ _setupPlayerDB = scriptNull; // Do we need any persistence? if (_playerSavingOn || _serverSavingOn) then { - _verIniDB = "iniDB" callExtension "version"; - if (_verIniDB == "") then - { - A3W_savingMethod = compileFinal "1"; - A3W_savingMethodName = compileFinal "'profileNamespace'"; - - diag_log "[INFO] ### A3W NOT running with iniDB!"; - diag_log format ["[INFO] ### Saving method = %1", call A3W_savingMethodName]; - } - else - { - A3W_savingMethod = compileFinal "2"; - - if (parseNumber _verIniDB > 1) then - { - A3W_savingMethodName = compileFinal "'iniDBI'"; - } - else - { - A3W_savingMethodName = compileFinal "'iniDB'"; - }; + //pretend to be iniDB + A3W_savingMethod = compileFinal "sock"; + A3W_savingMethodName = compileFinal "'sock'"; - diag_log format ["[INFO] ### A3W running with %1 v%2", call A3W_savingMethodName, _verIniDB]; - }; + diag_log format ["[INFO] ### A3W running with %1", call A3W_savingMethodName]; - call compile preProcessFileLineNumbers "persistence\fn_inidb_custom.sqf"; + call compile preProcessFileLineNumbers "persistence\fn_sock_custom.sqf"; diag_log format ["[INFO] ### Saving method = %1", call A3W_savingMethodName]; @@ -133,6 +114,7 @@ if (_playerSavingOn || _serverSavingOn) then if (_playerSavingOn) then { _setupPlayerDB = [] spawn compile preprocessFileLineNumbers "persistence\players\s_setupPlayerDB.sqf"; // For some reason, scriptDone stays stuck on false on Linux servers when using execVM for this line... + waitUntil {scriptDone _setupPlayerDB}; }; [_playerSavingOn, _serverSavingOn, _vehicleSavingOn] spawn @@ -150,11 +132,6 @@ if (_playerSavingOn || _serverSavingOn) then { call compile preprocessFileLineNumbers "persistence\world\vLoad.sqf"; }; - - if (_serverSavingOn || (_playerSavingOn && ["A3W_savingMethod", 1] call getPublicVar == 1)) then - { - execVM "persistence\world\oSave.sqf"; - }; }; { @@ -173,11 +150,6 @@ if (_playerSavingOn || _serverSavingOn) then ]; }; -if (isNil "A3W_savingMethod") then -{ - A3W_savingMethod = compileFinal "'none'"; - publicVariable "A3W_savingMethod"; -}; call compile preprocessFileLineNumbers "server\missions\setupMissionArrays.sqf"; call compile preprocessFileLineNumbers "server\functions\createTownMarkers.sqf"; From 08baa292c11db18c373f5ed9160a6a6c882aa9dc Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 13 Dec 2014 22:24:37 -0800 Subject: [PATCH 148/544] Fix issue with configs that are compiled --- persistence/lib/normalize_config.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index f1bc31a46..ecc1d482f 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -1,7 +1,6 @@ #include "macro.h" -#define ON_SCALAR(v) (isSCALAR(v) && {v == 1}) - +#define ON_SCALAR(v) (if(isCODE(v)) then { private["_val"]; _val = call v; (isSCALAR(_val) && {_val == 1})} else {(isSCALAR(v) && {v == 1})}) cfg_missionVehicleSaving_on = ON_SCALAR(A3W_missionVehicleSaving); cfg_purchasedVehicleSaving_on = ON_SCALAR(A3W_purchasedVehicleSaving); From 234637a2fd3d4065b17dd3f52ef86bac7c1fe94a Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 13 Dec 2014 22:36:44 -0800 Subject: [PATCH 149/544] Updated some mission locations and mission version. --- mission.sqm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mission.sqm b/mission.sqm index 19b7c8d84..78d4461ec 100644 --- a/mission.sqm +++ b/mission.sqm @@ -92,7 +92,7 @@ class Mission randomSeed=14957468; class Intel { - briefingName="A3Wasteland Altis v1.0b"; + briefingName="A3Wasteland Altis v1.0c"; overviewText="Wasteland survival sandbox by Team Wasteland - visit A3Wasteland.com for more details"; resistanceWest=0; startWeather=0.10000001; @@ -2667,7 +2667,7 @@ class Mission }; class Item36 { - position[]={12571.198,33.202263,16321.856}; + position[]={12574.066,33.292294,16320.846}; name="Mission_3"; type="Empty"; colorName="ColorOrange"; @@ -2688,7 +2688,7 @@ class Mission }; class Item39 { - position[]={19892.092,64.21077,17829.006}; + position[]={19886.855,65.16983,17849.635}; name="Mission_7"; type="Empty"; colorName="ColorOrange"; @@ -2730,7 +2730,7 @@ class Mission }; class Item45 { - position[]={3067.5686,30.175802,18451.545}; + position[]={2998.4082,32.631886,18508.988}; name="Mission_13"; type="Empty"; colorName="ColorOrange"; @@ -2751,14 +2751,14 @@ class Mission }; class Item48 { - position[]={20120.457,15.311475,19884.57}; + position[]={20150.699,15.581096,19873.928}; name="Mission_16"; type="Empty"; colorName="ColorOrange"; }; class Item49 { - position[]={21215.496,1.9212902,10656.045}; + position[]={21236.416,2.4247937,10639.023}; name="Mission_17"; type="Empty"; colorName="ColorOrange"; @@ -2779,7 +2779,7 @@ class Mission }; class Item52 { - position[]={6170.2021,44.518726,16368.712}; + position[]={6171.6982,44.522717,16368.712}; name="Mission_20"; type="Empty"; colorName="ColorOrange"; From ca13e3117b137b4d680a04ac7c93e312d2e101ed Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 13 Dec 2014 22:41:38 -0800 Subject: [PATCH 150/544] Tweak --- server/missions/setupMissionArrays.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/missions/setupMissionArrays.sqf b/server/missions/setupMissionArrays.sqf index a7037fd06..e39afffcc 100644 --- a/server/missions/setupMissionArrays.sqf +++ b/server/missions/setupMissionArrays.sqf @@ -25,10 +25,10 @@ SideMissions = ["mission_HostileHelicopter", 0.1], ["mission_MiniConvoy", 1], ["mission_SunkenSupplies", 0.1], + ["mission_HostileInfantry", 2], //["mission_AirWreck", 1.5], //["mission_WepCache", 1.5], - ["mission_Outpost", 2], - ["mission_HostileInfantry", 3], + ["mission_Outpost", 3], ["mission_Truck", 1] ]; From a6c43bcc204e07d4f99bf3f285bc9a2a6259c060 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 13 Dec 2014 23:18:21 -0800 Subject: [PATCH 151/544] Added O_Heli_Light_02_v2_F to actions and fast rope. --- addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 3 +++ addons/scripts/zlt_fastrope.sqf | 4 ++-- client/functions/playerActions.sqf | 19 +++++++------------ server/default_config.sqf | 4 ++-- storeConfig.sqf | 2 +- 5 files changed, 15 insertions(+), 17 deletions(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index d1fcda4fd..aa9ed7782 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -66,6 +66,7 @@ R3F_LOG_CFG_objets_remorquables = "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "O_Heli_Light_02_F", + "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", @@ -101,6 +102,7 @@ R3F_LOG_CFG_objets_remorquablesH = "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "O_Heli_Light_02_F", + "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", @@ -145,6 +147,7 @@ R3F_LOG_CFG_heliporteurs = "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "O_Heli_Light_02_F", + "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", diff --git a/addons/scripts/zlt_fastrope.sqf b/addons/scripts/zlt_fastrope.sqf index b63f24231..3fa3b6d76 100644 --- a/addons/scripts/zlt_fastrope.sqf +++ b/addons/scripts/zlt_fastrope.sqf @@ -15,11 +15,11 @@ waituntil {player == player}; zlt_rope_ropes = []; zlt_mutexAction = false; -zlt_rope_helis = ["O_Heli_Light_02_unarmed_F","O_Heli_Light_02_F","B_Heli_Transport_01_F","B_Heli_Transport_01_camo_F","O_Heli_Attack_02_F","O_Heli_Attack_02_black_F","I_Heli_Transport_02_F","B_Heli_Light_01_F"]; +zlt_rope_helis = ["O_Heli_Light_02_unarmed_F","O_Heli_Light_02_F","O_Heli_Light_02_v2_F","B_Heli_Transport_01_F","B_Heli_Transport_01_camo_F","O_Heli_Attack_02_F","O_Heli_Attack_02_black_F","I_Heli_Transport_02_F","B_Heli_Light_01_F"]; zlt_rope_helidata = [ [ - ["O_Heli_Light_02_unarmed_F", "O_Heli_Light_02_F"], + ["O_Heli_Light_02_unarmed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F"], [1.35,1.35,-24.95], [-1.45,1.35,-24.95] ], diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 1c5845f22..a0eaa67c8 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -25,17 +25,17 @@ [" Salvage", "client\actions\salvage.sqf", [], 1.1, false, false, "", "!isNull cursorTarget && !alive cursorTarget && {cursorTarget isKindOf 'AllVehicles' && !(cursorTarget isKindOf 'Man') && player distance cursorTarget <= (sizeOf typeOf cursorTarget / 3) max 2}"], - [" Lock", "addons\scripts\lockIn.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F'], 5] > 0 && !(vehicle player == player)"], - [" Unlock", "addons\scripts\unlock.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F'], 5] > 0 && !(vehicle player == player)"], - [" Lock", "addons\scripts\lock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'B_Heli_Light_01_armed_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget < 2 && cursorTarget distance player < 5"], + [" Lock", "addons\scripts\lockIn.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F'], 5] > 0 && !(vehicle player == player)"], + [" Unlock", "addons\scripts\unlock.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F'], 5] > 0 && !(vehicle player == player)"], + [" Lock", "addons\scripts\lock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'B_Heli_Light_01_armed_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget < 2 && cursorTarget distance player < 5"], [" Unlock", "addons\scripts\unlock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], - [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], - [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], + [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], + [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], [" Re\Save Weapon", "addons\scripts\weaponResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && (player distance cursortarget) < 5"], - [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'UGV_01_base_F', 'UAV_02_base_F'] > 0 ;} && (player distance cursortarget) < 5"], + [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'UGV_01_base_F', 'UAV_02_base_F'] > 0 ;} && (player distance cursortarget) < 5"], ["[0]"] call getPushPlaneAction, ["Push vehicle", "server\functions\pushVehicle.sqf", [2.5, true], 1, false, false, "", "[2.5] call canPushVehicleOnFoot"], @@ -51,9 +51,4 @@ if !(288520 in getDLCs 1) then { [player, ["Get in as Driver", "client\actions\moveInDriver.sqf", [], 6, true, true, "", "cursorTarget isKindOf 'Kart_01_Base_F' && player distance cursorTarget < 3.4 && isNull driver cursorTarget"]] call fn_addManagedAction; -}; - -if (["A3W_purchasedVehicleSaving"] call isConfigOn || {["A3W_missionVehicleSaving"] call isConfigOn}) then -{ - [player, [" Force Save Vehicle", { pvar_manualVehicleSave = netId cursorTarget; publicVariableServer "pvar_manualVehicleSave" }, [], -9.5, false, true, "", "call canForceSaveVehicle"]] call fn_addManagedAction; -}; +}; \ No newline at end of file diff --git a/server/default_config.sqf b/server/default_config.sqf index 928c63254..33f602dfa 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -65,8 +65,8 @@ A3W_playersList_saveInterval = 120; // Number of seconds between player list sav // List of classes for vehicles that are saveable // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; -A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore -A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought +A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore +A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) diff --git a/storeConfig.sqf b/storeConfig.sqf index ed18ee540..203465340 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -683,7 +683,7 @@ helicoptersArray = compileFinal str ["UH-80 Ghost Hawk (Green)", "B_Heli_Transport_01_camo_F", 25000, "vehicle"], // UH-60 Stealth with 2 side miniguns (green camo) ["CH-67 Huron (Armed) [DLC]", "B_Heli_Transport_03_F", 30000, "vehicle"], // CH-47 with 2 side miniguns ["AH-9 Pawnee", "B_Heli_Light_01_armed_F", 30000, "vehicle"], // Armed AH-6 - ["PO-30 Orca (Armed, Black)", "O_Heli_Light_02_v2_F", 30000, "vehicle"], // Armed Ka-60 with orca paintjob + ["PO-30 Orca (Armed, Black)", "O_Heli_Light_02_v2_F", 35000, "vehicle"], // Armed Ka-60 with orca paintjob ["PO-30 Orca (Armed, Hex)", "O_Heli_Light_02_F", 35000, "vehicle"], // Armed Ka-60 ["WY-55 Hellcat (Armed)", "I_Heli_light_03_F", 40000, "vehicle"], // Armed AW159 ["AH-99 Blackfoot", "B_Heli_Attack_01_F", 50000, "vehicle"], // RAH-66 with gunner From 2d6225cd17a451f954d67ee1bcbe5fa2e4f301a2 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 13 Dec 2014 23:23:45 -0800 Subject: [PATCH 152/544] Adjusted ai units. --- server/missions/factoryMethods/createUnits/customGroup.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/missions/factoryMethods/createUnits/customGroup.sqf b/server/missions/factoryMethods/createUnits/customGroup.sqf index 78fd8e377..0d3fe8618 100644 --- a/server/missions/factoryMethods/createUnits/customGroup.sqf +++ b/server/missions/factoryMethods/createUnits/customGroup.sqf @@ -142,8 +142,8 @@ weighted_list = [ [1, sniper_loadout], [1.1, aa_loadout], - [1, at_loadout], - [1.2, support_loadout], + [0.8, at_loadout], + [1.1, support_loadout], [1, rifleman_loadout], [1, grenadier_loadout] ]; From e656fe26c2a8dd70247f90d240f1cc8a5a992cd7 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 13 Dec 2014 23:26:53 -0800 Subject: [PATCH 153/544] Turned rain off because it rains when there's clear skys. --- addons/scripts/DynamicWeatherEffects.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/scripts/DynamicWeatherEffects.sqf b/addons/scripts/DynamicWeatherEffects.sqf index 2871d6826..ec6256582 100644 --- a/addons/scripts/DynamicWeatherEffects.sqf +++ b/addons/scripts/DynamicWeatherEffects.sqf @@ -89,7 +89,7 @@ _windChangeProbability = 25; // Probability in percent (0-100) for rain to start at every rain interval. Set this to 0 if you don't want rain at all. Set this to 100 // if you want it to rain constantly when overcast is greater than 0.75. In short: if you think that it generally rains to often then // lower this value and vice versa. (Suggested value: 50). -_rainIntervalRainProbability = 30; +_rainIntervalRainProbability = 0; // Minimum time in minutes for rain intervals. Must be greater or equal to 0 and less than or equal to _maxRainIntervalTimeMin. // (Suggested value: 0). From f957500985b44a634877c36e48631149746a46c3 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 13 Dec 2014 23:29:46 -0800 Subject: [PATCH 154/544] Raised mortar price. --- storeConfig.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/storeConfig.sqf b/storeConfig.sqf index 203465340..5e2a5db81 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -125,9 +125,9 @@ staticGunsArray = compileFinal str ["Mk32 GMG 20mm High tripod (NATO)", "B_GMG_01_high_F", 6000], ["Mk32 GMG 20mm High tripod (CSAT)", "O_GMG_01_high_F", 6000], ["Mk32 GMG 20mm High tripod (AAF)", "I_GMG_01_high_F", 6000], - ["Mk6 Mortar (NATO)", "B_Mortar_01_F", 12500], - ["Mk6 Mortar (CSAT)", "O_Mortar_01_F", 12500], - ["Mk6 Mortar (AAF)", "I_Mortar_01_F", 12500] + ["Mk6 Mortar (NATO)", "B_Mortar_01_F", 15000], + ["Mk6 Mortar (CSAT)", "O_Mortar_01_F", 15000], + ["Mk6 Mortar (AAF)", "I_Mortar_01_F", 15000] ]; throwputArray = compileFinal str From 5937fabe2da8f47b513cd99ae14aef7e255562bf Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 14 Dec 2014 11:13:14 -0800 Subject: [PATCH 155/544] Moved mission because of exploding helicopter bug. --- mission.sqm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mission.sqm b/mission.sqm index 78d4461ec..089909175 100644 --- a/mission.sqm +++ b/mission.sqm @@ -2709,7 +2709,7 @@ class Mission }; class Item42 { - position[]={12129.411,8.1706009,10499.287}; + position[]={12093.65,3.3626416,10467.896}; name="Mission_10"; type="Empty"; colorName="ColorOrange"; From 194f8f1189225abf164df5e614dc2d7da261ffff Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 14 Dec 2014 11:18:29 -0800 Subject: [PATCH 156/544] Reduced TAW view distance. --- addons/taw_vd/fn_openTAWVD.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/taw_vd/fn_openTAWVD.sqf b/addons/taw_vd/fn_openTAWVD.sqf index 9d7cc8dda..c92e833c6 100644 --- a/addons/taw_vd/fn_openTAWVD.sqf +++ b/addons/taw_vd/fn_openTAWVD.sqf @@ -15,7 +15,7 @@ ctrlSetText[2942, format["%1", tawvd_object]]; //Setup the sliders { - slidersetRange [_x select 0,100,3000]; + slidersetRange [_x select 0,100,2800]; ((findDisplay 2900) displayCtrl (_x select 0)) sliderSetSpeed [100,100,100]; sliderSetPosition[_x select 0, _x select 1]; } foreach [[2901,tawvd_foot],[2911,tawvd_car],[2921,tawvd_air],[2941,tawvd_object]]; From df83ac29573eeb84fad6a7369f6c71eb97cc19d1 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 14 Dec 2014 11:24:25 -0800 Subject: [PATCH 157/544] Implement CCTV addon This is an addon that introduces two new items: 1. CCTV Camera 2. CCTV Base Station (Laptop) Players can drop the CCTV Cameras throughout the map and use the CCTV Base Station to remote monitor the cameras. While dropping the cameras, the player can choose who is allowed to access the camera: 1. Player (himself) 2. Group (his group) 3. Team (his team) Config allows admin to set the maximum CCTV range. --- addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 4 +- addons/cctv/cctv_functions.sqf | 261 ++++++++++ addons/cctv/cctv_menu.hpp | 92 ++++ addons/cctv/cctv_menu_functions.sqf | 217 ++++++++ addons/cctv/config.sqf | 1 + addons/cctv/constants.h | 61 +++ addons/cctv/defines.h | 1 + addons/cctv/dikcodes.h | 341 +++++++++++++ addons/cctv/functions.sqf | 7 + addons/cctv/icons/camcorder.paa | Bin 0 -> 1522 bytes addons/cctv/icons/laptop.paa | Bin 0 -> 1522 bytes addons/cctv/images/laptop_flat.paa | Bin 0 -> 73937 bytes addons/cctv/laptop_flat_menu.hpp | 56 +++ addons/cctv/laptop_flat_menu_functions.sqf | 168 +++++++ addons/cctv/macro.h | 142 ++++++ addons/cctv/ui.hpp | 489 +++++++++++++++++++ client/init.sqf | 2 +- client/inventory/drop.sqf | 2 + client/inventory/takeable.sqf | 2 + client/items/cctv/init.sqf | 21 + client/items/init.sqf | 2 + client/systems/generalStore/getInventory.sqf | 15 + description.ext | 5 + storeConfig.sqf | 5 +- stringtable.xml | 6 + 25 files changed, 1897 insertions(+), 3 deletions(-) create mode 100644 addons/cctv/cctv_functions.sqf create mode 100644 addons/cctv/cctv_menu.hpp create mode 100644 addons/cctv/cctv_menu_functions.sqf create mode 100644 addons/cctv/config.sqf create mode 100644 addons/cctv/constants.h create mode 100644 addons/cctv/defines.h create mode 100644 addons/cctv/dikcodes.h create mode 100644 addons/cctv/functions.sqf create mode 100644 addons/cctv/icons/camcorder.paa create mode 100644 addons/cctv/icons/laptop.paa create mode 100644 addons/cctv/images/laptop_flat.paa create mode 100644 addons/cctv/laptop_flat_menu.hpp create mode 100644 addons/cctv/laptop_flat_menu_functions.sqf create mode 100644 addons/cctv/macro.h create mode 100644 addons/cctv/ui.hpp create mode 100644 client/items/cctv/init.sqf diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index aa9ed7782..667156534 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -350,5 +350,7 @@ R3F_LOG_CFG_objets_deplacables = "Land_Shoot_House_Wall_F", "Land_Stone_8m_F", "Land_ToiletBox_F", - "Land_BarrelWater_F" + "Land_BarrelWater_F", + "Land_HandyCam_F", + "Land_Laptop_unfolded_F" ]; diff --git a/addons/cctv/cctv_functions.sqf b/addons/cctv/cctv_functions.sqf new file mode 100644 index 000000000..c3c754c09 --- /dev/null +++ b/addons/cctv/cctv_functions.sqf @@ -0,0 +1,261 @@ +#include "constants.h" +#include "macro.h" +#include "dikcodes.h" + +if (not(undefined(cctv_functions_defined))) exitWith {}; +diag_log format["Loading cctv functions ..."]; + + +cctv_camera_data_get = { + ARGVX3(0,_index,0); + ARGVX3(1,_cameras,[]); + if (_index < 0 || _index > (count(_cameras) -1)) exitWith {[]}; + + (_cameras select _index) +}; + + +cctv_camera_view_last = objNull; +cctv_camera_view_index = -1; +cctv_camera_view_next = { + //player groupChat format["cctv_camera_view_next %1",_this]; + ARGV2(0,_player); + ARGV2(1,_cameras); + + if (typeName _player != "OBJECT") exitWith {}; + + private["_camera_index"]; + _camera_index = cctv_camera_view_index + 1; + + + private["_source"]; + _source = [_camera_index,_cameras] call cctv_camera_data_get; + if (!isOBJECT(_source) || {isNull _source}) exitWith {}; + + private["_camera_name"]; + _camera_name = _source getVariable ["camera_name", nil]; + if (!isSTRING(_camera_name) || {_camera_name == ""}) exitWith {}; + + + if (not(isNull cctv_camera_view_last)) then { + cctv_camera_view_last cameraeffect ["terminate","back"]; + camDestroy cctv_camera_view_last; + }; + + private["_rendertarget"]; + _rendertarget = "cctv_render0"; + + //create the camera,and point it forward + private["_camera"]; + _camera = "camera" camCreate position cameraon; + _camera attachTo [_source,[0,-0.5,1]]; + _camera camPrepareTarget (_source modelToWorld [0,-5,1]); + _camera camPrepareFov 0.7; + _camera camPrepareFocus [-1,-1]; + _camera camCommitPrepared 0; + _camera cameraeffect ["internal","back",_rendertarget]; + cctv_camera_view_last = _camera; + + //update the screen with the camera view + private["_screen"]; + _screen = call laptop_flat_menu_screen_control; + _screen ctrlsettext format ["#(argb,512,512,1)r2t(%1,1.0)",_rendertarget]; + _screen ctrlsettextcolor [1,1,1,1]; + _screen ctrlcommit 0; + + _rendertarget setPiPEffect [0]; + + //set the camera name on the screen + [_camera_name] call laptop_flat_menu_update_text_tl; + + //update the next cell index + if (_camera_index >= (count(_cameras) -1)) then { + _camera_index = -1; + }; + cctv_camera_view_index = _camera_index; + //player groupChat format["cctv_camera_view_index = %1",cctv_camera_view_index]; +}; + + + +cctv_security_laptop_event_handler = { + //player groupChat format["cctv_security_laptop_event_handler %1",_this]; + ARGV2(0,_event); + ARGV2(1,_this); + ARGV2(0,_player); + ARGV2(1,_cameras); + + private["_event_type"]; + _event_type = _event select laptop_flat_event_type; + switch _event_type do { + case LAPTOP_EVENT_ON: { + [_player,_cameras] call cctv_camera_view_next; + }; + case LAPTOP_EVENT_KEY: { + private["_key"]; + _key = _event select laptop_flat_envent_data; + switch _key do { + case DIK_SPACE: { + [_player,_cameras] call cctv_camera_view_next; + }; + }; + }; + case LAPTOP_EVENT_BUTTON: { + private["_button"]; + _button = _event select laptop_flat_envent_data; + switch _button do { + case LAPTOP_EVENT_BUTTON_MOUSE_PAD: { + [_player,_cameras] call cctv_camera_view_next; + }; + }; + }; + }; +}; + + +cctv_cameras = OR(cctv_cameras,[]); + +cctv_get_accessible_cameras = { + ARGVX3(0,_player,objNull); + if (!isARRAY(cctv_cameras) || {count(cctv_cameras) == 0}) then {[]}; + + private["_uid", "_side", "_group_uids"]; + _uid = getPlayerUID _player; + _side = str(side _player); + _group_uids = [_uid]; + + //make a list with the UIDs for the group members + {if (true) then { + private["_member"]; + _member = _x; + if (!isOBJECT(_member) || {isNull _member}) exitWith {}; + + private["_member_uid"]; + _member_uid = getPlayerUID _member; + if (!isSTRING(_member_uid) || {_member_uid == ""}) exitWith {}; + + _group_uids pushBack _member_uid; + };} forEach (units (group _player)); + + //player groupChat format["_uid = %1, _side = %2, _group_uids = %3", _uid, _side, _group_uids]; + + //get the list of cameras that are accessible to this player + private["_cameras"]; + _cameras = []; + {if (true) then { + private["_camera"]; + _camera = _x; + if (!isOBJECT(_camera) || {isNull _camera}) exitWith {}; + + private["_distance"]; + _distance = _player distance _camera; + if (cctv_max_distance > 0 && {_distance > cctv_max_distance}) exitWith {}; + + private["_owner_type"]; + _owner_type = _camera getVariable ["camera_owner_type", nil]; + if (!isSTRING(_owner_type)) exitWith {}; + + private["_owner_value"]; + _owner_value = _camera getVariable ["camera_owner_value", nil]; + if (!isSTRING(_owner_value) || {_owner_value == ""}) exitWith {}; + + //player groupChat format["_owner_type = %1, _owner_value = %2", _owner_type, _owner_value]; + + if (not((_owner_type == "player" && {_owner_value == _uid}) ||{ + (_owner_type == "side" && {_owner_value == _side}) ||{ + (_owner_type == "group" && {_owner_value in _group_uids})}})) exitWith {}; + + _cameras pushBack _camera; + };} forEach cctv_cameras; + + (_cameras) +}; + +cctv_security_laptop_menu = { + ARGV2(0,_player); + + if (typeName _player != "OBJECT") exitWith {}; + + private["_cameras"]; + _cameras = [_player] call cctv_get_accessible_cameras; + //player groupChat format["_cameras = %1", _cameras]; + + if (count(_cameras) == 0) exitWith { + player groupChat format["There are no CCTV cameras currently accessible"]; + }; + + private["_handler"]; + _handler = [[_player, _cameras],"cctv_security_laptop_event_handler"]; + [_handler,_handler,_handler] call laptop_flat_menu_setup; + player groupChat format["Use space key on the laptop keyboard,to cycle between the CCTV cameras."]; +}; + + +#define MUTEX_UNLOCK mutexScriptInProgress = false; doCancelAction = false + +cctv_camera_use = { + //this is needed in order for the mf_inventory_drop call to work (since it's nested inside USE) + MUTEX_UNLOCK ; + + private["_item_type"]; + _item_type = _this; + + private["_player", "_uid"]; + _player = player; + _uid = getPlayerUID _player; + + private["_closesttown", "_town_name", "_town_pos"]; + _closesttown = (nearestLocations [_player,["NameCityCapital","NameCity","NameVillage"],10000]) select 0; + _town_name = text _closesttown; + _town_pos = position _closesttown; + + + private["_cctv_id", "_cctv_name", "_rand"]; + _rand = ceil(random 10000); + _camera_name = format["%1 (%2)", _town_name, _rand]; + + cctv_menu_result = nil; + [_player, _camera_name] call cctv_menu_dialog; + waitUntil {!dialog || {!isNil "cctv_menu_result"}}; + + if (isNil "cctv_menu_result") exitWith {false}; + + //player groupChat format["cctv_menu_result = %1", cctv_menu_result]; + + private["_access_control"]; + _camera_name = cctv_menu_result select cctv_menu_result_camera_name; + _access_control = cctv_menu_result select cctv_menu_result_ac; + + private["_owner_type"]; + _owner_type = _access_control select cctv_menu_result_ac_type; + _owner_value = _access_control select cctv_menu_result_ac_value; + + private["_camera"]; + _camera = _item_type call mf_inventory_drop; + + if (isNil "_camera" || {typeName _camera != typeName objNull || {isNull _camera}}) exitWith {false}; + + _camera setVariable ["camera_name", _camera_name, true]; + _camera setVariable ["camera_owner_type", _owner_type, true]; + _camera setVariable ["camera_owner_value", _owner_value, true]; + _camera setVariable ["camera_on", true, true]; + + if (isNil "cctv_cameras") then { + cctv_cameras = []; + }; + + cctv_cameras pushBack _camera; + publicVariable "cctv_cameras"; + + false +}; + +cctv_base_use = { + [player] call cctv_security_laptop_menu; + false +}; + + +cctv_functions_defined = true; + +diag_log format["Loading cctv functions complete"]; \ No newline at end of file diff --git a/addons/cctv/cctv_menu.hpp b/addons/cctv/cctv_menu.hpp new file mode 100644 index 000000000..3f3895d64 --- /dev/null +++ b/addons/cctv/cctv_menu.hpp @@ -0,0 +1,92 @@ +#include "constants.h" + +class cctv_menu { + idd = bank_dialog_idd; + movingEnable = true; + controlsBackground[] = { + cctv_menu_background + }; + + name = "CCTV_MENU"; + onUnload = ""; + onLoad="uiNamespace setVariable ['CCTV_MENU',_this select 0]"; + + objects[] = {}; + controls[] = { + cctv_menu_header, + cctv_menu_camera_name_label, + cctv_menu_camera_name_field, + cctv_menu_access_control_label, + cctv_menu_access_control_field, + cctv_menu_button_ok, + cctv_menu_button_cancel + }; + + class cctv_menu_header : cctv_ui_RscMenuTitle { + idc = cctv_menu_header_idc; + moving = 1; + x = 0.30-10; y = 0.10-10; + w = 0.39; h = 0.63; + text = "Bank Menu"; + }; + + class cctv_menu_background: cctv_ui_Rscbackground { + idc = cctv_menu_background_idc; + moving = 1; + x = 0.30-10; y = 0.10-10; + w = 0.39; h = 0.63; + }; + + //Camera name + class cctv_menu_camera_name_label : cctv_ui_RscText { + idc = cctv_menu_camera_name_label_idc; + x = 0.32-10; y = 0.47-10; + w = 0.13; h = 0.04; + text = ""; + }; + + class cctv_menu_camera_name_field: cctv_ui_RscText { + idc = cctv_menu_camera_name_field_idc; + x = 0.49-10; y = 0.47-10; + w = 0.18; h = 0.04; + colorBackground[] = FIELD_BACKGROUND; + text = "0"; + }; + + + //Access Type + class cctv_menu_access_control_label : cctv_ui_RscText { + idc = cctv_menu_access_control_label_idc; + x = 0.32-10; y = 0.47-10; + w = 0.13; h = 0.04; + text = ""; + }; + + class cctv_menu_access_control_field : cctv_ui_RscCombo { + idc = cctv_menu_access_control_field_idc; + x = 0.32-10; y = 0.14-10; + w = 0.35; h = 0.30; + onLBSelChanged = ""; + }; + + //Buttons + class cctv_menu_button_ok : cctv_ui_RscMenuButton { + idc = cctv_menu_button_ok_idc; + x = 0.32-10; y = 0.62-10; + w = 0.35; h = 0.04; + colorBackgroundDisabled[] = DISABLED_BUTTON_BACKGROUND; + colorDisabled[] = DISABLED_BUTTON_TEXT; + text = ""; + }; + + + class cctv_menu_button_cancel : cctv_ui_RscMenuButton { + idc = cctv_menu_button_cancel_idc; + x = 0.75-10; y = 0.67-10; + w = 0.35; h = 0.04; + colorBackgroundDisabled[] = DISABLED_BUTTON_BACKGROUND; + colorDisabled[] = DISABLED_BUTTON_TEXT; + text = "Close"; + action = "closeDialog 0;"; + }; +}; \ No newline at end of file diff --git a/addons/cctv/cctv_menu_functions.sqf b/addons/cctv/cctv_menu_functions.sqf new file mode 100644 index 000000000..a10882154 --- /dev/null +++ b/addons/cctv/cctv_menu_functions.sqf @@ -0,0 +1,217 @@ +#include "constants.h" +#include "macro.h" +#include "defines.h" + +if (not(undefined(cctv_menu_functions_defined))) exitWith {}; + +diag_log format["Loading cctv menu functions ..."]; + +cctv_menu_result_camera_name = 0; +cctv_menu_result_ac = 1; +cctv_menu_result_ac_type = 0; +cctv_menu_result_ac_value = 1; + +cctv_menu_dialog = { _this spawn { + disableSerialization; + + ARGVX3(0,_player,objNull); + ARGVX3(1,_camera_name,""); + + if (not(createDialog "cctv_menu")) exitWith { + player groupChat format["ERROR: Could not create CCTV menu dialog"]; + }; + + private["_list"]; + _list = [_camera_name] call cctv_menu_setup; + + private["_my_index"]; + _my_index = 0; + + {if(true)then { + private["_data", "_title", "_value"]; + _data = _x; + _title = _data select 0; + _value = _data select 1; + + private["_index"]; + _index = _list lbAdd _title; + + lbSetData [(ctrlIDC _list),_index,_value]; + lbSetValue [(ctrlIDC _list),_index,_value]; + };} forEach + [ + [format["Player (%1)", (name _player)], str(["player", getPlayerUID _player])], + [format["Group (%1)", str(group _player)], str(["group", getPlayerUID _player])], + [format["Team (%1)", str(side _player)], str(["side", str(side _player)])] + ]; + + _list lbSetCurSel 0; + cctv_menu_result = nil; + + //Ok button + buttonSetAction [ + cctv_menu_button_ok_idc, + ( + ' private["_access_control", "_name"];' + + ' _name = ctrlText cctv_menu_camera_name_field_idc;' + + ' _access_control = call compile (lbData [cctv_menu_access_control_field_idc,lbCurSel cctv_menu_access_control_field_idc]);' + + ' cctv_menu_result = [_name,_access_control];' + + 'closedialog 0;' + )]; + +};}; + + +cctv_menu_combo_focus = { + ARGVX3(0,_control,controlNull); + _control ctrlSetBackgroundColor [0.1,0.1,0.1,1]; +}; + +cctv_menu_combo_blur = { + ARGVX3(0,_control,controlNull); + _control ctrlSetBackgroundColor [1,1,1,0.08]; +}; + +cctv_menu_setup = { + disableSerialization; + ARGVX3(0,_camera_name,""); + + private["_display"]; + _display = uiNamespace getVariable "CCTV_MENU"; + + _cctv_menu_header = _display displayCtrl cctv_menu_header_idc; + _cctv_menu_background = _display displayCtrl cctv_menu_background_idc; + _cctv_menu_camera_name_label = _display displayCtrl cctv_menu_camera_name_label_idc; + _cctv_menu_camera_name_field = _display displayCtrl cctv_menu_camera_name_field_idc; + _cctv_menu_access_control_label = _display displayCtrl cctv_menu_access_control_label_idc; + _cctv_menu_access_control_field = _display displayCtrl cctv_menu_access_control_field_idc; + _cctv_menu_button_ok = _display displayCtrl cctv_menu_button_ok_idc; + _cctv_menu_button_cancel = _display displayCtrl cctv_menu_button_cancel_idc; + + + _cctv_menu_access_control_field ctrlAddEventHandler ["SetFocus","(_this) call cctv_menu_combo_focus"]; + _cctv_menu_access_control_field ctrlAddEventHandler ["KillFocus","(_this) call cctv_menu_combo_blur"]; + + private["_x","_y","_ysep","_sep","_cctv_title","_w","_h"]; + _x = 0.14; + _y = 0.14; + _w = 0.40; + _h = 0.30; + _ysep = 0.006; + _sep = 0.01; + _cctv_title = "CCTV MENU"; + + private["_button_font_height","_font_family"]; + _button_font_height = MENU_TITLE_FONT_HEIGHT; + _font_family = "PuristaMedium"; + + //cctv header + private["_chx","_chy","_chw","_bhh"]; + _chx = _x; + _chy = _y; + _chw = _w; + _chh = 0.045; + + _cctv_menu_header ctrlSetPosition [_chx,_chy,_chw,_chh]; + _cctv_menu_header ctrlSetFontHeight _button_font_height; + _cctv_menu_header ctrlSetText _cctv_title; + _cctv_menu_header ctrlSetFont _font_family; + _cctv_menu_header ctrlCommit 0; + + //cctv close button + private["_ccx","_ccy","_ccw","_cch"]; + _ccw = 0.14; + _cch = _chh; + _ccx = _chx + _chw - _ccw; + _ccy = _chy + _h - _cch; + + _cctv_menu_button_cancel ctrlSetText "Cancel"; + _cctv_menu_button_cancel ctrlSetPosition [_ccx,_ccy,_ccw,_cch]; + buttonSetAction [(ctrlIDC _cctv_menu_button_cancel),"closeDialog 0"]; + _cctv_menu_button_cancel ctrlCommit 0; + + //cctv ok button + private["_cox","_coy" ,"_cow","_coh"]; + _cow = 0.11 ; + _coh = _cch; + _cox = _ccx - _cow - _ysep *2; + _coy = _ccy; + + + _cctv_menu_button_ok ctrlSetText "Ok"; + _cctv_menu_button_ok ctrlSetPosition [_cox,_coy,_cow,_coh]; + _cctv_menu_button_ok ctrlCommit 0; + + //cctv background + private["_cbx","_cby","_cbw","_cbh"]; + _cbx = _chx; + _cby = _chy + _chh + _ysep; + _cbw = _w; + _cbh = (_ccy ) - (_chy ) - _cch - _ysep - _ysep; + + _cctv_menu_background ctrlSetPosition [_cbx,_cby,_cbw,_cbh]; + _cctv_menu_background ctrlSetBackgroundColor [0,0,0,0.65]; + _cctv_menu_background ctrlCommit 0; + + + + + //cctv camera name label + private["_cnlx","_cnly","_cnlw","_cnlh"]; + _cnlx = _cbx + _sep * 2; + _cnly = _cby + _sep * 2; + _cnlw = (_cbw - _sep *6) / 2; + _cnlh = 0.04; + + _cctv_menu_camera_name_label ctrlSetText "Camera name: "; + _cctv_menu_camera_name_label ctrlSetPosition [_cnlx,_cnly,_cnlw,_cnlh]; + _cctv_menu_camera_name_label ctrlSetFontHeight _button_font_height - 0.003; + _cctv_menu_camera_name_label ctrlCommit 0; + + //cctv camera name field + private["_cnfx","_cnfy","_cnfw","_cnfh"]; + _cnfx = _cnlx + _cnlw + _sep * 2 ; + _cnfy = _cnly; + _cnfw = _cnlw; + _cnfh = _cnlh; + + _cctv_menu_camera_name_field ctrlSetText _camera_name; + _cctv_menu_camera_name_field ctrlSetFontHeight _button_font_height - 0.003;; + _cctv_menu_camera_name_field ctrlSetFont _font_family; + _cctv_menu_camera_name_field ctrlSetPosition [_cnfx,_cnfy,_cnfw,_cnfh]; + _cctv_menu_camera_name_field ctrlSetBackgroundColor [1,1,1,0.08]; + _cctv_menu_camera_name_field ctrlCommit 0; + + + //cctv access control label + private["_calx","_caly","_calw","_calh"]; + _calx = _cnlx; + _caly = _cnly + _cnlh + _ysep * 2; + _calw = _cnlw; + _calh = _cnlh; + + _cctv_menu_access_control_label ctrlSetText "Accessible by: "; + _cctv_menu_access_control_label ctrlSetPosition [_calx,_caly,_calw,_calh]; + _cctv_menu_access_control_label ctrlSetFontHeight _button_font_height - 0.003; + _cctv_menu_access_control_label ctrlCommit 0; + + //cctv access control field + private["_cafx","_cafy","_cafw","_cafh"]; + _cafx = _calx + _calw + _sep * 2 ; + _cafy = _caly; + _cafw = _calw; + _cafh = _calh; + + _cctv_menu_access_control_field ctrlSetFontHeight _button_font_height - 0.003;; + _cctv_menu_access_control_field ctrlSetFont _font_family; + _cctv_menu_access_control_field ctrlSetPosition [_cafx,_cafy,_cafw,_cafh]; + _cctv_menu_access_control_field ctrlSetBackgroundColor [1,1,1,0.08]; + _cctv_menu_access_control_field ctrlCommit 0; + + + _cctv_menu_access_control_field +}; + +cctv_menu_functions_defined = true; + +diag_log format["Loading cctv menu functions complete"]; \ No newline at end of file diff --git a/addons/cctv/config.sqf b/addons/cctv/config.sqf new file mode 100644 index 000000000..cb5ec8655 --- /dev/null +++ b/addons/cctv/config.sqf @@ -0,0 +1 @@ +cctv_max_distance = -1; // -1 unlimited \ No newline at end of file diff --git a/addons/cctv/constants.h b/addons/cctv/constants.h new file mode 100644 index 000000000..e10ec10c6 --- /dev/null +++ b/addons/cctv/constants.h @@ -0,0 +1,61 @@ +#define FIELD_BACKGROUND {1,1,1,0.1} +#define DISABLED_BUTTON_BACKGROUND {1,0,0,0.4} +#define DISABLED_BUTTON_TEXT {1,1,1,1} + + + + + +#define GUI_BCG_RGB {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"} + + +#define BOX_BACKGROUND {1,1,1,0.1} +#define DISABLED_BUTTON_BACKGROUND {1,0,0,0.4} +#define DISABLED_BUTTON_TEXT {1,1,1,1} + + + + +#define MENU_TITLE_FONT_HEIGHT (((((safezoneW / safezoneH) min 1.2) / 1.2) / 32) * 1) + + + + +#define cctv_menu_idd 3000 +#define cctv_menu_header_idc 3001 +#define cctv_menu_background_idc 3002 +#define cctv_menu_pay_button_idc 3004 +#define cctv_menu_close_button_idc 3005 +#define cctv_menu_bail_label_idc 3006 +#define cctv_menu_bail_field_idc 3007 + + + + +#define laptop_flat_menu_dialog_idd 10000 +#define laptop_flat_menu_background_idc 10001 +#define laptop_flat_menu_screen_idc 10002 +#define laptop_flat_menu_button_mouse_idc 10003 +#define laptop_flat_menu_button_space_idc 10004 +#define laptop_flat_menu_screen_text_tl_idc 10005 + +#define LAPTOP_EVENT_ON 0 +#define LAPTOP_EVENT_OFF 1 +#define LAPTOP_EVENT_KEY 2 +#define LAPTOP_EVENT_BUTTON 3 +#define LAPTOP_EVENT_BUTTON_MOUSE_PAD 0 +#define LAPTOP_EVENT_BUTTON_MOUSE_LEFT 1 +#define LAPTOP_EVENT_BUTTON_MOUSE_RIGHT 2 + + + +#define cctv_menu_dialog_idd 300 +#define cctv_menu_header_idc 301 +#define cctv_menu_background_idc 302 +#define cctv_menu_camera_name_label_idc 303 +#define cctv_menu_camera_name_field_idc 304 +#define cctv_menu_access_control_label_idc 309 +#define cctv_menu_access_control_field_idc 310 +#define cctv_menu_button_ok_idc 311 +#define cctv_menu_button_cancel_idc 313 + diff --git a/addons/cctv/defines.h b/addons/cctv/defines.h new file mode 100644 index 000000000..4f85ce549 --- /dev/null +++ b/addons/cctv/defines.h @@ -0,0 +1 @@ +#define strM(x) ([x, ","] call format_integer) diff --git a/addons/cctv/dikcodes.h b/addons/cctv/dikcodes.h new file mode 100644 index 000000000..18d691fc0 --- /dev/null +++ b/addons/cctv/dikcodes.h @@ -0,0 +1,341 @@ +/* F1 ... F15 */ +#define DIK_F1 0x3B +#define DIK_F2 0x3C +#define DIK_F3 0x3D +#define DIK_F4 0x3E +#define DIK_F5 0x3F +#define DIK_F6 0x40 +#define DIK_F7 0x41 +#define DIK_F8 0x42 +#define DIK_F9 0x43 +#define DIK_F10 0x44 +#define DIK_F11 0x57 +#define DIK_F12 0x58 +#define DIK_F13 0x64 +#define DIK_F14 0x65 +#define DIK_F15 0x66 + +/* 0..9 */ +#define DIK_0 0x0B +#define DIK_1 0x02 +#define DIK_2 0x03 +#define DIK_3 0x04 +#define DIK_4 0x05 +#define DIK_5 0x06 +#define DIK_6 0x07 +#define DIK_7 0x08 +#define DIK_8 0x09 +#define DIK_9 0x0A +#define DIK_NUMPAD0 0x52 +#define DIK_NUMPAD1 0x4F +#define DIK_NUMPAD2 0x50 +#define DIK_NUMPAD3 0x51 +#define DIK_NUMPAD4 0x4B +#define DIK_NUMPAD5 0x4C +#define DIK_NUMPAD6 0x4D +#define DIK_NUMPAD7 0x47 +#define DIK_NUMPAD8 0x48 +#define DIK_NUMPAD9 0x49 + +/* alpha */ +#define DIK_A 0x1E +#define DIK_B 0x30 +#define DIK_C 0x2E +#define DIK_D 0x20 +#define DIK_E 0x12 +#define DIK_F 0x21 +#define DIK_G 0x22 +#define DIK_H 0x23 +#define DIK_I 0x17 +#define DIK_J 0x24 +#define DIK_K 0x25 +#define DIK_L 0x26 +#define DIK_M 0x32 +#define DIK_N 0x31 +#define DIK_O 0x18 +#define DIK_P 0x19 +#define DIK_Q 0x10 +#define DIK_R 0x13 +#define DIK_S 0x1F +#define DIK_T 0x14 +#define DIK_U 0x16 +#define DIK_V 0x2F +#define DIK_W 0x11 +#define DIK_X 0x2D +#define DIK_Y 0x15 +#define DIK_Z 0x2C + +/* Controls */ +#define DIK_ESCAPE 0x01 +#define DIK_TAB 0x0F +#define DIK_LSHIFT 0x2A +#define DIK_RSHIFT 0x36 +#define DIK_LCONTROL 0x1D +#define DIK_RCONTROL 0x9D +#define DIK_BACK 0x0E /* backspace */ +#define DIK_BACKSPACE DIK_BACK +#define DIK_RETURN 0x1C /* Enter on main keyboard */ +#define DIK_NUMPADENTER 0x9C /* Enter on numeric keypad */ +#define DIK_LMENU 0x38 /* left Alt */ +#define DIK_LALT DIK_LMENU +#define DIK_SPACE 0x39 +#define DIK_CAPITAL 0x3A /* capslock */ +#define DIK_CAPSLOCK DIK_CAPITAL +#define DIK_NUMLOCK 0x45 +#define DIK_SCROLL 0x46 /* Scroll Lock */ +#define DIK_RMENU 0xB8 /* right Alt */ +#define DIK_RALT DIK_RMENU /* right Alt */ +#define Graphics +#define DIK_AT 0x91 /* (NEC PC98) */ +#define DIK_COLON 0x92 /* (NEC PC98) */ +#define DIK_UNDERLINE 0x93 /* (NEC PC98) */ +#define DIK_MINUS 0x0C /* - on main keyboard */ +#define DIK_EQUALS 0x0D +#define DIK_LBRACKET 0x1A +#define DIK_RBRACKET 0x1B +#define DIK_SEMICOLON 0x27 +#define DIK_APOSTROPHE 0x28 +#define DIK_GRAVE 0x29 /* accent grave */ +#define DIK_BACKSLASH 0x2B +#define DIK_COMMA 0x33 +#define DIK_PERIOD 0x34 /* . on main keyboard */ +#define DIK_SLASH 0x35 /* / on main keyboard */ +#define DIK_MULTIPLY 0x37 /* * on numeric keypad */ +#define DIK_NUMPADSTAR DIK_MULTIPLY +#define DIK_SUBTRACT 0x4A /* - on numeric keypad */ +#define DIK_ADD 0x4E /* + on numeric keypad */ +#define DIK_DECIMAL 0x53 /* . on numeric keypad */ +#define DIK_NUMPADEQUALS 0x8D /* = on numeric keypad (NEC PC98) */ +#define DIK_NUMPADMINUS DIK_SUBTRACT /* - on numeric keypad */ +#define DIK_NUMPADPLUS DIK_ADD /* + on numeric keypad */ +#define DIK_NUMPADPERIOD DIK_DECIMAL /* . on numeric keypad */ +#define DIK_NUMPADSLASH DIK_DIVIDE /* / on numeric keypad */ + +/* KataKana */ +#define DIK_KANA 0x70 /* (Japanese keyboard) */ +#define DIK_ABNT_C1 0x73 /* / ? on Portugese (Brazilian) keyboards */ +#define DIK_CONVERT 0x79 /* (Japanese keyboard) */ +#define DIK_NOCONVERT 0x7B /* (Japanese keyboard) */ +#define DIK_YEN 0x7D /* (Japanese keyboard) */ +#define DIK_OEM_102 0x56 /* < > | on UK/Germany keyboards */ +#define DIK_ABNT_C2 0x7E /* Numpad . on Portugese (Brazilian) keyboards */ +#define DIK_PREVTRACK 0x90 /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */ +#define DIK_KANJI 0x94 /* (Japanese keyboard) */ +#define DIK_STOP 0x95 /* (NEC PC98) */ +#define DIK_AX 0x96 /* (Japan AX) */ +#define DIK_UNLABELED 0x97 /* (J3100) */ +#define DIK_NUMPADCOMMA 0xB3 /* ,on numeric keypad (NEC PC98) */ + +/* Alternate names for keys originally not used on US keyboards. */ +#define DIK_CIRCUMFLEX DIK_PREVTRACK /* Japanese keyboard */ +#define Apps +#define DIK_NEXTTRACK 0x99 /* Next Track */ +#define DIK_MUTE 0xA0 /* Mute */ +#define DIK_CALCULATOR 0xA1 /* Calculator */ +#define DIK_PLAYPAUSE 0xA2 /* Play / Pause */ +#define DIK_MEDIASTOP 0xA4 /* Media Stop */ +#define DIK_VOLUMEDOWN 0xAE /* Volume - */ +#define DIK_VOLUMEUP 0xB0 /* Volume + */ +#define DIK_WEBHOME 0xB2 /* Web home */ +#define DIK_SYSRQ 0xB7 +#define DIK_PAUSE 0xC5 /* Pause */ +#define DIK_APPS 0xDD /* AppMenu key */ +#define DIK_POWER 0xDE /* System Power */ +#define DIK_SLEEP 0xDF /* System Sleep */ +#define DIK_WAKE 0xE3 /* System Wake */ +#define DIK_WEBSEARCH 0xE5 /* Web Search */ +#define DIK_WEBFAVORITES 0xE6 /* Web Favorites */ +#define DIK_WEBREFRESH 0xE7 /* Web Refresh */ +#define DIK_WEBSTOP 0xE8 /* Web Stop */ +#define DIK_WEBFORWARD 0xE9 /* Web Forward */ +#define DIK_WEBBACK 0xEA /* Web Back */ +#define DIK_MYCOMPUTER 0xEB /* My Computer */ +#define DIK_MAIL 0xEC /* Mail */ +#define DIK_MEDIASELECT 0xED /* Media Select */ + +/* ArrowKeypad */ +#define DIK_HOME 0xC7 /* Home on arrow keypad */ +#define DIK_UP 0xC8 /* UpArrow on arrow keypad */ +#define DIK_PRIOR 0xC9 /* PgUp on arrow keypad */ +#define DIK_LEFT 0xCB /* LeftArrow on arrow keypad */ +#define DIK_RIGHT 0xCD /* RightArrow on arrow keypad */ +#define DIK_END 0xCF /* End on arrow keypad */ +#define DIK_DOWN 0xD0 /* DownArrow on arrow keypad */ +#define DIK_NEXT 0xD1 /* PgDn on arrow keypad */ +#define DIK_INSERT 0xD2 /* Insert on arrow keypad */ +#define DIK_DELETE 0xD3 /* Delete on arrow keypad */ +#define DIK_UPARROW DIK_UP /* UpArrow on arrow keypad */ +#define DIK_PGUP DIK_PRIOR /* PgUp on arrow keypad */ +#define DIK_LEFTARROW DIK_LEFT /* LeftArrow on arrow keypad */ +#define DIK_RIGHTARROW DIK_RIGHT /* RightArrow on arrow keypad */ +#define DIK_DOWNARROW DIK_DOWN /* DownArrow on arrow keypad */ +#define DIK_PGDN DIK_NEXT /* PgDn on arrow keypad */ +#define other +#define DIK_LWIN 0xDB /* Left Windows key */ +#define DIK_RWIN 0xDC /* Right Windows key */ + +/* Numeric sort */ +#define DIK_ESCAPE 0x01 +#define DIK_1 0x02 +#define DIK_2 0x03 +#define DIK_3 0x04 +#define DIK_4 0x05 +#define DIK_5 0x06 +#define DIK_6 0x07 +#define DIK_7 0x08 +#define DIK_8 0x09 +#define DIK_9 0x0A +#define DIK_0 0x0B +#define DIK_MINUS 0x0C /* - on main keyboard */ +#define DIK_EQUALS 0x0D +#define DIK_BACK 0x0E /* backspace */ +#define DIK_TAB 0x0F +#define DIK_Q 0x10 +#define DIK_W 0x11 +#define DIK_E 0x12 +#define DIK_R 0x13 +#define DIK_T 0x14 +#define DIK_Y 0x15 +#define DIK_U 0x16 +#define DIK_I 0x17 +#define DIK_O 0x18 +#define DIK_P 0x19 +#define DIK_LBRACKET 0x1A +#define DIK_RBRACKET 0x1B +#define DIK_RETURN 0x1C /* Enter on main keyboard */ +#define DIK_LCONTROL 0x1D +#define DIK_A 0x1E +#define DIK_S 0x1F +#define DIK_D 0x20 +#define DIK_F 0x21 +#define DIK_G 0x22 +#define DIK_H 0x23 +#define DIK_J 0x24 +#define DIK_K 0x25 +#define DIK_L 0x26 +#define DIK_SEMICOLON 0x27 +#define DIK_APOSTROPHE 0x28 +#define DIK_GRAVE 0x29 /* accent grave */ +#define DIK_LSHIFT 0x2A +#define DIK_BACKSLASH 0x2B +#define DIK_Z 0x2C +#define DIK_X 0x2D +#define DIK_C 0x2E +#define DIK_V 0x2F +#define DIK_B 0x30 +#define DIK_N 0x31 +#define DIK_M 0x32 +#define DIK_COMMA 0x33 +#define DIK_PERIOD 0x34 /* . on main keyboard */ +#define DIK_SLASH 0x35 /* / on main keyboard */ +#define DIK_RSHIFT 0x36 +#define DIK_MULTIPLY 0x37 /* * on numeric keypad */ +#define DIK_LMENU 0x38 /* left Alt */ +#define DIK_SPACE 0x39 +#define DIK_CAPITAL 0x3A +#define DIK_F1 0x3B +#define DIK_F2 0x3C +#define DIK_F3 0x3D +#define DIK_F4 0x3E +#define DIK_F5 0x3F +#define DIK_F6 0x40 +#define DIK_F7 0x41 +#define DIK_F8 0x42 +#define DIK_F9 0x43 +#define DIK_F10 0x44 +#define DIK_NUMLOCK 0x45 +#define DIK_SCROLL 0x46 /* Scroll Lock */ +#define DIK_NUMPAD7 0x47 +#define DIK_NUMPAD8 0x48 +#define DIK_NUMPAD9 0x49 +#define DIK_SUBTRACT 0x4A /* - on numeric keypad */ +#define DIK_NUMPAD4 0x4B +#define DIK_NUMPAD5 0x4C +#define DIK_NUMPAD6 0x4D +#define DIK_ADD 0x4E /* + on numeric keypad */ +#define DIK_NUMPAD1 0x4F +#define DIK_NUMPAD2 0x50 +#define DIK_NUMPAD3 0x51 +#define DIK_NUMPAD0 0x52 +#define DIK_DECIMAL 0x53 /* . on numeric keypad */ +#define DIK_OEM_102 0x56 /* < > | on UK/Germany keyboards */ +#define DIK_F11 0x57 +#define DIK_F12 0x58 +#define DIK_F13 0x64 /* (NEC PC98) */ +#define DIK_F14 0x65 /* (NEC PC98) */ +#define DIK_F15 0x66 /* (NEC PC98) */ +#define DIK_KANA 0x70 /* (Japanese keyboard) */ +#define DIK_ABNT_C1 0x73 /* / ? on Portugese (Brazilian) keyboards */ +#define DIK_CONVERT 0x79 /* (Japanese keyboard) */ +#define DIK_NOCONVERT 0x7B /* (Japanese keyboard) */ +#define DIK_YEN 0x7D /* (Japanese keyboard) */ +#define DIK_ABNT_C2 0x7E /* Numpad . on Portugese (Brazilian) keyboards */ +#define DIK_NUMPADEQUALS 0x8D /* = on numeric keypad (NEC PC98) */ +#define DIK_PREVTRACK 0x90 /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */ +#define DIK_AT 0x91 /* (NEC PC98) */ +#define DIK_COLON 0x92 /* (NEC PC98) */ +#define DIK_UNDERLINE 0x93 /* (NEC PC98) */ +#define DIK_KANJI 0x94 /* (Japanese keyboard) */ +#define DIK_STOP 0x95 /* (NEC PC98) */ +#define DIK_AX 0x96 /* (Japan AX) */ +#define DIK_UNLABELED 0x97 /* (J3100) */ +#define DIK_NEXTTRACK 0x99 /* Next Track */ +#define DIK_NUMPADENTER 0x9C /* Enter on numeric keypad */ +#define DIK_RCONTROL 0x9D +#define DIK_MUTE 0xA0 /* Mute */ +#define DIK_CALCULATOR 0xA1 /* Calculator */ +#define DIK_PLAYPAUSE 0xA2 /* Play / Pause */ +#define DIK_MEDIASTOP 0xA4 /* Media Stop */ +#define DIK_VOLUMEDOWN 0xAE /* Volume - */ +#define DIK_VOLUMEUP 0xB0 /* Volume + */ +#define DIK_WEBHOME 0xB2 /* Web home */ +#define DIK_NUMPADCOMMA 0xB3 /* ,on numeric keypad (NEC PC98) */ +#define DIK_DIVIDE 0xB5 /* / on numeric keypad */ +#define DIK_SYSRQ 0xB7 +#define DIK_RMENU 0xB8 /* right Alt */ +#define DIK_PAUSE 0xC5 /* Pause */ +#define DIK_HOME 0xC7 /* Home on arrow keypad */ +#define DIK_UP 0xC8 /* UpArrow on arrow keypad */ +#define DIK_PRIOR 0xC9 /* PgUp on arrow keypad */ +#define DIK_LEFT 0xCB /* LeftArrow on arrow keypad */ +#define DIK_RIGHT 0xCD /* RightArrow on arrow keypad */ +#define DIK_END 0xCF /* End on arrow keypad */ +#define DIK_DOWN 0xD0 /* DownArrow on arrow keypad */ +#define DIK_NEXT 0xD1 /* PgDn on arrow keypad */ +#define DIK_INSERT 0xD2 /* Insert on arrow keypad */ +#define DIK_DELETE 0xD3 /* Delete on arrow keypad */ +#define DIK_LWIN 0xDB /* Left Windows key */ +#define DIK_RWIN 0xDC /* Right Windows key */ +#define DIK_APPS 0xDD /* AppMenu key */ +#define DIK_POWER 0xDE /* System Power */ +#define DIK_SLEEP 0xDF /* System Sleep */ +#define DIK_WAKE 0xE3 /* System Wake */ +#define DIK_WEBSEARCH 0xE5 /* Web Search */ +#define DIK_WEBFAVORITES 0xE6 /* Web Favorites */ +#define DIK_WEBREFRESH 0xE7 /* Web Refresh */ +#define DIK_WEBSTOP 0xE8 /* Web Stop */ +#define DIK_WEBFORWARD 0xE9 /* Web Forward */ +#define DIK_WEBBACK 0xEA /* Web Back */ +#define DIK_MYCOMPUTER 0xEB /* My Computer */ +#define DIK_MAIL 0xEC /* Mail */ +#define DIK_MEDIASELECT 0xED /* Media Select */ + +/* Alternate names for keys,to facilitate transition from DOS. */ +#define DIK_BACKSPACE DIK_BACK /* backspace */ +#define DIK_NUMPADSTAR DIK_MULTIPLY /* * on numeric keypad */ +#define DIK_LALT DIK_LMENU /* left Alt */ +#define DIK_CAPSLOCK DIK_CAPITAL /* CapsLock */ +#define DIK_NUMPADMINUS DIK_SUBTRACT /* - on numeric keypad */ +#define DIK_NUMPADPLUS DIK_ADD /* + on numeric keypad */ +#define DIK_NUMPADPERIOD DIK_DECIMAL /* . on numeric keypad */ +#define DIK_NUMPADSLASH DIK_DIVIDE /* / on numeric keypad */ +#define DIK_RALT DIK_RMENU /* right Alt */ +#define DIK_UPARROW DIK_UP /* UpArrow on arrow keypad */ +#define DIK_PGUP DIK_PRIOR /* PgUp on arrow keypad */ +#define DIK_LEFTARROW DIK_LEFT /* LeftArrow on arrow keypad */ +#define DIK_RIGHTARROW DIK_RIGHT /* RightArrow on arrow keypad */ +#define DIK_DOWNARROW DIK_DOWN /* DownArrow on arrow keypad */ +#define DIK_PGDN DIK_NEXT /* PgDn on arrow keypad */ + +/* Alternate names for keys originally not used on US keyboards. */ +#define DIK_CIRCUMFLEX DIK_PREVTRACK /* Japanese keyboard */ \ No newline at end of file diff --git a/addons/cctv/functions.sqf b/addons/cctv/functions.sqf new file mode 100644 index 000000000..b7f338f88 --- /dev/null +++ b/addons/cctv/functions.sqf @@ -0,0 +1,7 @@ +[] execVM "addons\cctv\config.sqf"; + +{ + private["_h"]; + _h = [] execVM format["addons\cctv\%1_functions.sqf", _x]; + waitUntil {scriptDone _h}; +} forEach ["laptop_flat_menu", "cctv_menu", "cctv"] diff --git a/addons/cctv/icons/camcorder.paa b/addons/cctv/icons/camcorder.paa new file mode 100644 index 0000000000000000000000000000000000000000..42be8e9b2a78b969983405d013f452283b880533 GIT binary patch literal 1522 zcmZSm@9ypx;_M#g$il$D@bTlva4*!$GnRK=U-Sw&mX5ma7cnhlYx>YG2%z>l`u39>f;~#%lDg`VW`w|6T^0 z=HTEE&j7UFa}v;gpytrf(2ESZ6Jt(JjREsnSy{m}Pzq*0I-h@M{Reg+g2~GrjX3xJ z?|l##WFo`=qYO+6Km_AgpVKIx7*D!E2FwAI#+5gc1Xx}zoxPK_-vmW?ozn1w8%zTiSkOBLu zfMjQ2lz`pC8X79R{3pLBj1LTO1}k9X12sV0OFEykq<+Ien0XFB{ev6`FbF_O7l=C* zfE04j5z9B|^ZE2&z2GJ^IRxnUd4Br;BL5$h&nVUB`CccKeSp7+t;W>vE^NHj9AhE~t@NCIXv2p^bj z=AvaI<++{-$np^1GJwiJuzxuiI6%o?;t$=smV}l1p-1@fF&w0JQ=nyTv+0%!3ov|%~uQz0Ik-Lxc~qF literal 0 HcmV?d00001 diff --git a/addons/cctv/icons/laptop.paa b/addons/cctv/icons/laptop.paa new file mode 100644 index 0000000000000000000000000000000000000000..dfd2dbe64bd55af1c656c2f9bbb25f34a3f3cdbf GIT binary patch literal 1522 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 literal 0 HcmV?d00001 diff --git a/addons/cctv/laptop_flat_menu.hpp b/addons/cctv/laptop_flat_menu.hpp new file mode 100644 index 000000000..85669f0cb --- /dev/null +++ b/addons/cctv/laptop_flat_menu.hpp @@ -0,0 +1,56 @@ +#include "constants.h" + +class laptop_flat_menu { + idd = laptop_flat_menu_dialog_idd; + movingEnable = true; + controlsBackground[] = {laptop_flat_menu_background}; + objects[] = { }; + + name = "LAPTOP_FLAT_MENU"; + onUnload = ""; + onLoad="uiNamespace setVariable ['LAPTOP_FLAT_MENU',_this select 0]"; + + controls[] = { + laptop_flat_menu_background, + laptop_flat_menu_screen, + laptop_flat_menu_screen_text_tl, + laptop_flat_menu_button_mouse, + laptop_flat_menu_button_space + }; + + class laptop_flat_menu_screen_text_tl : cctv_ui_RscText { + idc = laptop_flat_menu_screen_text_tl_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + style = ST_LEFT; + text = "Sample Text"; + }; + + class laptop_flat_menu_background : cctv_ui_RscPictureKeepAspect { + idc = laptop_flat_menu_background_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + moving = 1; + }; + + class laptop_flat_menu_screen : cctv_ui_RscPicture { + idc = laptop_flat_menu_screen_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + moving = 1; + }; + + class laptop_flat_menu_button_mouse : cctv_ui_RscMenuButton { + idc = laptop_flat_menu_button_mouse_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + text = ""; + }; + + class laptop_flat_menu_button_space : cctv_ui_RscMenuButton { + idc = laptop_flat_menu_button_space_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + text = ""; + }; +}; \ No newline at end of file diff --git a/addons/cctv/laptop_flat_menu_functions.sqf b/addons/cctv/laptop_flat_menu_functions.sqf new file mode 100644 index 000000000..b99c19c49 --- /dev/null +++ b/addons/cctv/laptop_flat_menu_functions.sqf @@ -0,0 +1,168 @@ +#include "constants.h" +#include "macro.h" +#include "dikcodes.h" + +if (not(undefined(laptop_flat_menu_functions))) exitWith {}; +diag_log format["Loading laptop flat menu functions ..."]; + +laptop_flat_event_type = 0; +laptop_flat_envent_data = 1; + +laptop_flat_key_event_cb = []; +laptop_flat_on_event_cb = []; +laptop_flat_off_event_cb = []; + +laptop_flat_data_cb_args = 0; +laptop_flat_data_cb_name = 1; + +laptop_flat_activate_key = { + //player groupChat format["laptop_flat_activate_key %1",_this]; + disableSerialization; + ARGV2(0,_type); + ARGV2(1,_value); + [[_type,_value],laptop_flat_key_event_cb] call laptop_flat_invoke_event_callback; +}; + + +laptop_flat_invoke_event_callback = { + disableSerialization; + ARGV2(0,_event); + ARGV2(1,_callback) + + if (isNil "_callback" || {typeName _callback != "ARRAY" || {count(_callback) < 2}}) exitWith {}; + + private["_args","_name"]; + _args = _callback select laptop_flat_data_cb_args; + _name = _callback select laptop_flat_data_cb_name; + + if (typeName "_name" != "STRING") exitWith {}; + + private["_method"]; + _method = missionNamespace getVariable [_name,{}]; + [_event,_args] call _method; +}; + +laptop_flat_menu_screen_control = { + private["_display"]; + _display = (uiNamespace getVariable 'LAPTOP_FLAT_MENU'); + (_display displayCtrl laptop_flat_menu_screen_idc) +}; + + + +laptop_flat_menu_update_text_tl = { + disableSerialization; + ARGV2(0,_text); + private["_display"]; + _display = (uiNamespace getVariable 'LAPTOP_FLAT_MENU'); + + _laptop_flat_menu_screen_text_tl = _display displayCtrl laptop_flat_menu_screen_text_tl_idc; + _laptop_flat_menu_screen_text_tl ctrlSetText _text; + _laptop_flat_menu_screen_text_tl ctrlCommit 0; +}; + +laptop_flat_menu_setup = {_this spawn { + disableSerialization; + ARGV2(0,_key_event_cb); + ARGV2(1,_on_event_cb); + ARGV2(2,_off_event_cb); + + laptop_flat_key_event_cb = _key_event_cb; + laptop_flat_on_event_cb = _on_event_cb; + laptop_flat_off_event_cb = _off_event_cb; + + if (!(createDialog "laptop_flat_menu")) exitWith { + player groupChat format["ERROR: Could not create lock panel menu dialog"]; + }; + + private["_display"]; + _display = (uiNamespace getVariable 'LAPTOP_FLAT_MENU'); + + _laptop_flat_menu_background = _display displayCtrl laptop_flat_menu_background_idc; + _laptop_flat_menu_screen = _display displayCtrl laptop_flat_menu_screen_idc; + _laptop_flat_menu_button_mouse = _display displayCtrl laptop_flat_menu_button_mouse_idc; + _laptop_flat_menu_button_space = _display displayCtrl laptop_flat_menu_button_space_idc; + _laptop_flat_menu_screen_text_tl = _display displayCtrl laptop_flat_menu_screen_text_tl_idc; + + + + private["_x","_y","_w","_h"]; + _w = 1; + _h = 1; + _x = 0.5 - (_w /2); + _y = 0.5 - (_h /2); + + _laptop_flat_menu_background ctrlSetPosition [_x,_y,_w,_h]; + _laptop_flat_menu_background ctrlSetText "addons\cctv\images\laptop_flat.paa"; + _laptop_flat_menu_background ctrlCommit 0; + + + private["_bspx","_bspy","_bspw","_bsph"]; + _bspw = _w * 0.126; + _bsph = _h * 0.025; + _bspx = _x + _bspw * 2.85; + _bspy = _y + _bsph * 30.2; + + + _laptop_flat_menu_button_space ctrlSetText ""; + _laptop_flat_menu_button_space ctrlSetPosition [_bspx,_bspy,_bspw,_bsph]; + _laptop_flat_menu_button_space ctrlSetBackgroundColor [0,0,0,0]; + _laptop_flat_menu_button_space ctrlCommit 0; + //_laptop_flat_menu_button_space ctrlEnable false; + buttonSetAction [(ctrlIDC _laptop_flat_menu_button_space),'[LAPTOP_EVENT_KEY,DIK_SPACE] call laptop_flat_activate_key;']; + + + private["_bxsep","_bysep"]; + _bxsep = _bsph; + _bysep = _bsph; + + private["_bmsx","_bmsy","_bmsw","_bmsh"]; + _bmsw = _bspw; + _bmsh = _bsph * 4; + _bmsx = _bspx + _bxsep * 0.5; + _bmsy = _bspy + _bysep * 2.5; + + _laptop_flat_menu_button_mouse ctrlSetText ""; + _laptop_flat_menu_button_mouse ctrlSetPosition [_bmsx,_bmsy,_bmsw,_bmsh]; + _laptop_flat_menu_button_mouse ctrlSetBackgroundColor [0,0,0,0]; + _laptop_flat_menu_button_mouse ctrlCommit 0; + //_laptop_flat_menu_button_mouse ctrlEnable false; + buttonSetAction [(ctrlIDC _laptop_flat_menu_button_mouse),'[LAPTOP_EVENT_BUTTON,LAPTOP_EVENT_BUTTON_MOUSE_PAD] call laptop_flat_activate_key;']; + + + private["_lsx","_lsy","_lsw","_lsh"]; + _lsw = _bspw * 4.1; + _lsh = _bsph * 15.7; + _lsx = _bspx - _bspw * 0.97; + _lsy = _bspy - _bsph * 27.9; + + + _laptop_flat_menu_screen ctrlSetPosition [_lsx,_lsy,_lsw,_lsh]; + //_laptop_flat_menu_screen ctrlSetTextColor [0,0,0,0.15]; + _laptop_flat_menu_screen ctrlSetText "#(argb,8,8,3)color(1,0,0,1)"; + _laptop_flat_menu_screen ctrlCommit 0; + + + private["_lstx","_lsty","_lstw","_lsth"]; + _lstw = _bspw * 2; + _lsth = _bsph * 1.5; + _lstx = _bspx - _bspw * 0.97; + _lsty = _bspy - _bsph * 27.9; + + _laptop_flat_menu_screen_text_tl ctrlSetPosition [_lstx,_lsty,_lstw,_lsth]; + _laptop_flat_menu_screen_text_tl ctrlSetBackgroundColor [0,0,0,0.6]; + _laptop_flat_menu_screen_text_tl ctrlSetFontHeight 0.03; + _laptop_flat_menu_screen_text_tl ctrlSetFont "PuristaMedium"; + _laptop_flat_menu_screen_text_tl ctrlSetTextColor [1,1,1,1]; + _laptop_flat_menu_screen_text_tl ctrlSetText ""; + _laptop_flat_menu_screen_text_tl ctrlCommit 0; + + + [[LAPTOP_EVENT_ON],laptop_flat_on_event_cb] call laptop_flat_invoke_event_callback; + waitUntil {not(ctrlShown _laptop_flat_menu_background)}; + [[LAPTOP_EVENT_OFF],laptop_flat_off_event_cb] call laptop_flat_invoke_event_callback; +};}; + +laptop_flat_menu_functions = true; + +diag_log format["Loading laptop flat menu functions complete"]; \ No newline at end of file diff --git a/addons/cctv/macro.h b/addons/cctv/macro.h new file mode 100644 index 000000000..7cdedd47a --- /dev/null +++ b/addons/cctv/macro.h @@ -0,0 +1,142 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} \ No newline at end of file diff --git a/addons/cctv/ui.hpp b/addons/cctv/ui.hpp new file mode 100644 index 000000000..437ca58e2 --- /dev/null +++ b/addons/cctv/ui.hpp @@ -0,0 +1,489 @@ +#define FontM "PuristaMedium" +#define FontHTML "PuristaMedium" +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_SLIDER 3 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_SHORTCUT_BUTTON 16 +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define CT_LISTNBOX 102 + +#define ST_LEFT 0 +#define ST_RIGHT 1 +#define ST_CENTER 2 +#define ST_MULTI 16 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_SHADOW 256 +#define ST_NO_RECT 512 + + +// Respawn Dialog additions + +#define FontM_R "PuristaMedium" +#define FontHTML_R "PuristaMedium" +#define Dlg_ROWS 36 +#define Dlg_COLS 90 +#define Dlg_CONTROLHGT ((100/Dlg_ROWS)/100) +#define Dlg_COLWIDTH ((100/Dlg_COLS)/100) +#define Dlg_TEXTHGT_MOD 0.8 +#define Dlg_ROWSPACING_MOD 1.3 +#define Dlg_ROWHGT (Dlg_CONTROLHGT*Dlg_ROWSPACING_MOD) +#define Dlg_TEXTHGT (Dlg_CONTROLHGT*Dlg_TEXTHGT_MOD) +#define Dlg_ICONWIDTH (Dlg_CONTROLHGT*4/5) +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0c +#define ST_TYPE 0xF0 +#define ST_SINGLE 0 +#define ST_TITLE_BAR 32 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX 96 +#define ST_GROUP_BOX2 112 +#define ST_HUD_BACKGROUND 128 +#define ST_TILE_PICTURE 144 +#define ST_WITH_RECT 160 +#define ST_LINE 176 +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 +#define ST_KEEP_ASPECT_RATIO 0x800 +#define ST_TITLE ST_TITLE_BAR + ST_CENTER +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 +#define SL_TEXTURES 0x10 +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 + + + +class cctv_ui_RscText { + type = CT_STATIC; + idc = -1; + style = ST_LEFT; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.02; + text = ""; +}; + +class cctv_ui_RscBgRahmen { + type = CT_STATIC; + idc = -1; + style = ST_FRAME; + colorBackground[] = {1.0,1.0,1.0,0.75}; + colorText[] = {1,1,1,1}; + font = FontM; + SizeEX = 0.025; + text = ""; +}; + +class cctv_ui_RscBackground { + colorBackground[] = {0,0,0,0.75}; + text = ""; + type = CT_STATIC; + idc = -1; + style = ST_LEFT; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.04; +}; + +class cctv_ui_RscPicture { + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.02; + text = ""; +}; + +class cctv_ui_RscPictureKeepAspect: cctv_ui_RscPicture { + style = "0x30 + 0x800"; +}; + +class cctv_ui_RscBackgroundPicture { + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.02; + text = "dbg.pac"; +}; + +class cctv_ui_RscButton { + type = CT_BUTTON; + idc = -1; + style = ST_CENTER; + colorText[] = {1,1,1,1}; + font = FontHTML; + sizeEx = 0.025; + soundPush[] = {"",0.2,1}; + soundClick[] = {"",0.2,1}; + soundEscape[] = {"",0.2,1}; + default = false; + text = ""; + action = ""; + colorActive[] = {0,0,0,0}; + colorDisabled[] = {0,0,0,0.1}; + colorBackground[] = {0.8,0.8,0.8,0.3}; + colorBackgroundActive[] = {0.7,0.7,0.7,1}; + colorBackgroundDisabled[] = {1,1,1,0.5}; + colorFocused[] = {0.84,1,0.55,1}; + colorShadow[] = {0,0,0,0.1}; + colorBorder[] = {1,1,1,0.1}; + offsetX = 0; + offsetY = 0; + offsetPressedX = 0; + offsetPressedY = 0; + borderSize = 0; + soundEnter[] = {"",0.15,1}; +}; + +class cctv_ui_RscMenuButton { + type = CT_SHORTCUT_BUTTON; + style = "0x02 + 0xC0"; + default = 0; + shadow = 0; + x = 0; + y = 0; + w = 0.095589; + h = 0.039216; + animTextureNormal = "#(argb,8,8,3)color(0,0,0,1)"; + animTextureDisabled = "#(argb,8,8,3)color(1,0,0,0.8)"; + animTextureOver = "#(argb,8,8,3)color(0,0,0,0.8)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,1)"; + animTexturePressed = "#(argb,8,8,3)color(0,0,0,1)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,1)"; + textureNoShortcut = ""; + + colorBackground[] = {1,1,1,0.8}; + colorBackground2[] = {1,1,1,0.5}; + color[] = {1,1,1,1}; + color2[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,0,0,0.8}; + + colorFocused[] = {1,1,1,1}; + colorBackgroundFocused[] = {0,0,0,0}; + + period = 1.2; + periodFocus = 1.2; + periodOver = 1.2; + size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + + class HitZone + { + left = 0.0; + top = 0.0; + right = 0.0; + bottom = 0.0; + }; + + class TextPos + { + left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)"; + top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; + right = 0.005; + bottom = 0.0; + }; + class Attributes + { + font = "PuristaLight"; + color = "#E5E5E5"; + align = "left"; + shadow = "false"; + }; + class ShortcutPos + { + left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005"; + top = 0.005; + w = 0.0225; + h = 0.03; + }; + soundEnter[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundPush",0.09,1}; + soundClick[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; +}; + +class cctv_ui_RscMenuTitle { + type = CT_STATIC; + idc = -1; + style = ST_CENTER; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + colorText[] = {1,1,1,1}; + font = "PuristaMedium"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + text = ""; + shadow = 1; + colorShadow[] = {0,0,0,0.5}; + linespacing = 1; +}; + + +class cctv_ui_RscDummy : cctv_ui_RscButton { + x = -1.0; + y = -1.0; + idc = -1; + w = 0.01; + h = 0.01; + default = true; +}; + +class cctv_ui_RscEdit { + idc = -1; + type = CT_EDIT; + style = ST_LEFT; + font = FontHTML; + sizeEx = 0.02; + colorText[] = {1,1,1,1}; + colorSelection[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1}; + colorDisabled[] = {1,0,0,0.3}; + autocomplete = false; + text = ""; +}; + +class cctv_ui_RscEditMulti : cctv_ui_RscEdit { + style = ST_MULTI; + sizeEx = 0.03; + lineSpacing = 1; + colorDisabled[] = {1,1,1,1}; +}; + +class cctv_ui_RscLB_C { + style = ST_LEFT; + idc = -1; + colorSelect[] = {0,0,0,1.0}; + colorSelectBackground[] = {0.7,0.7,0.7,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0.8,0.8,0.8,0.3}; + colorScrollbar[] = {Dlg_Color_White,1}; + colorDisabled[] = {1,0,0,0.3}; + font = FontHTML; + sizeEx = 0.025; + rowHeight = 0.04; + period = 1.200000; + maxHistoryDelay = 1.000000; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + + class ScrollBar {}; +}; + +class cctv_ui_RscListBox { + type = CT_LISTBOX; + style = ST_MULTI; + lineSpacing = 1; + shadow = 0; + //colorSelect[] = {0,0,0,1}; + colorSelect[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,0.15}; + colorSelectBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + colorScrollbar[] = {Dlg_Color_White,1}; + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + wholeHeight = 0; + color[] = {1,1,1,1}; + colorActive[] = {1,0,0,1}; + colorDisabled[] = {1,0,0,0.3}; + font = "PuristaMedium"; + sizeEx = 0.030; + rowHeight = 0.04; + + + soundEnter[] = {"\A3\ui_f\data\sound\onover",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundClick[] = {"\A3\ui_f\data\sound\onclick",0.07,1}; + soundEscape[] = {"\A3\ui_f\data\sound\onescape",0.09,1}; + soundSelect[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundExpand[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundCollapse[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + maxHistoryDelay = 1; + + class ScrollBar { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; +}; + + + +class cctv_ui_RscListNBox : cctv_ui_RscListBox { + type = CT_LISTNBOX; + colorSelect[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,0.15}; + colorSelectBackground[] = {0,0,0,0}; + drawSideArrows = 0; + toolTip = ""; + idcLeft = 20010; + idcRight = 20011; +}; + + +class cctv_ui_RscCombo { + type = CT_COMBO; + style = ST_MULTI; + lineSpacing = 1; + shadow = 0; + sizeEx = 0.030; + rowHeight = 0.04; + + //colorSelect[] = {0,0,0,1.0}; + colorSelect[] = {1,1,1,1.0}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0.8,0.8,0.8,0.3}; +// colorSelectBackground[] = {0.7,0.7,0.7,1}; + colorSelectBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + colorScrollbar[] = {Dlg_Color_White,1}; + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + wholeHeight = 0.45; + color[] = {1,1,1,1}; + colorActive[] = {1,0,0,1}; + colorDisabled[] = {1,0,0,0.3}; + font = "PuristaMedium"; + + + soundEnter[] = {"\A3\ui_f\data\sound\onover",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundClick[] = {"\A3\ui_f\data\sound\onclick",0.07,1}; + soundEscape[] = {"\A3\ui_f\data\sound\onescape",0.09,1}; + soundSelect[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundExpand[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundCollapse[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + maxHistoryDelay = 1; + + class ScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\a3\ui_f\data\gui\cfg\Scrollbar\thumb_ca.paa"; + arrowEmpty = "\a3\ui_f\data\gui\cfg\Scrollbar\arrowempty_ca.paa"; + arrowFull = "\a3\ui_f\data\gui\cfg\Scrollbar\arrowfull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + + class ComboScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; +}; + +/* +class RscCombo: RscLB_C { + type = CT_COMBO; + wholeHeight = 0.3; + soundSelect[] = {"",0.15,1}; + soundExpand[] = {"",0.15,1}; + soundCollapse[] = {"",0.15,1}; + arrowEmpty = ""; + arrowFull = ""; +}; +*/ + +class cctv_ui_RscSliderH { + idc = -1; + access = ReadandWrite; + type = CT_SLIDER; + sizeEx = 0.025; + style = 1024; + + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.2}; + arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; + thumb = "\A3\ui_f\data\gui\cfg\slider\thumb_ca.paa"; +}; + +class cctv_ui_RscSliderV { + access = ReadandWrite; + type = CT_SLIDER; + idc = -1; + sizeEx = 0.025; + style = 0; + color[] = {0.2,0.2,0.2,1}; + colorActive[] = {1,1,1,1}; +}; + +class cctv_ui_RscCheckBox { + idc = -1; + type = CT_CHECKBOXES; + style = ST_CENTER; + + colorText[] = {1,1,1,1}; + color[] = {0,1,0,1}; + colorTextSelect[] = {0,0.8,0,1}; + colorSelectedBg[] = {1,1,1,0}; + colorSelect[] = {0,0,0,1}; + colorTextDisable[] = {0.4,0.4,0.4,1}; + colorDisable[] = {0.4,0.4,0.4,1}; + font = "PuristaMedium"; + SizeEX=0.025; + rows = 1; + columns = 1; + strings[] = {""}; +}; \ No newline at end of file diff --git a/client/init.sqf b/client/init.sqf index 13c7de491..56f38f2e4 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -136,7 +136,7 @@ A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "addons\camera\functions.sqf"; [] execVM "addons\water_edge\functions.sqf"; [] execVM "addons\bank\functions.sqf"; - +[] execVM "addons\cctv\functions.sqf"; if (["A3W_teamPlayersMap"] call isConfigOn) then diff --git a/client/inventory/drop.sqf b/client/inventory/drop.sqf index 821605e06..07a03810b 100644 --- a/client/inventory/drop.sqf +++ b/client/inventory/drop.sqf @@ -57,3 +57,5 @@ else [_id, 1] call mf_inventory_remove; _obj }; + +_obj \ No newline at end of file diff --git a/client/inventory/takeable.sqf b/client/inventory/takeable.sqf index 2cdf4e554..b707a1b74 100644 --- a/client/inventory/takeable.sqf +++ b/client/inventory/takeable.sqf @@ -30,9 +30,11 @@ _takeable = objNull; switch (true) do { case (_lineOfSightBroken): {}; + case (_x getVariable ["objectLocked", false]): {}; case (_id call mf_inventory_is_full): {}; case (_x getVariable ["mf_item_id", ""] != _id): {}; default {_takeable = _x}; }; + } forEach (nearestObjects [player, [_type], MF_INVENTORY_TAKE_DISTANCE]); _takeable; diff --git a/client/items/cctv/init.sqf b/client/items/cctv/init.sqf new file mode 100644 index 000000000..a882d7485 --- /dev/null +++ b/client/items/cctv/init.sqf @@ -0,0 +1,21 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +//@file Version: 1.0 +//@file Name: init.sqf +//@file Author: micovery +//@file Argument: the path to the directory holding this file. + +private ["_path"]; +_path = _this; + + +MF_ITEMS_CCTV_CAMERA = "cctv_camera"; +MF_ITEMS_CCTV_CAMERA_TYPE = "Land_HandyCam_F"; +MF_ITEMS_CCTV_CAMERA_ICON = "addons\cctv\icons\camcorder.paa"; +[MF_ITEMS_CCTV_CAMERA, "CCTV Camera",{_this call cctv_camera_use},MF_ITEMS_CCTV_CAMERA_TYPE, MF_ITEMS_CCTV_CAMERA_ICON, 5] call mf_inventory_create; + +MF_ITEMS_CCTV_BASE = "cctv_base"; +MF_ITEMS_CCTV_BASE_TYPE = "Land_Laptop_unfolded_F"; +MF_ITEMS_CCTV_BASE_ICON = "addons\cctv\icons\laptop.paa"; +[MF_ITEMS_CCTV_BASE, "CCTV Station", {_this call cctv_base_use}, MF_ITEMS_CCTV_BASE_TYPE, MF_ITEMS_CCTV_BASE_ICON, 1] call mf_inventory_create; \ No newline at end of file diff --git a/client/items/init.sqf b/client/items/init.sqf index f51b9ce10..a6ee51412 100644 --- a/client/items/init.sqf +++ b/client/items/init.sqf @@ -16,3 +16,5 @@ [_this, "warchest"] call mf_init; [_this, "cratemoney"] call mf_init; [_this, "drugs"] call mf_init; +[_this, "cctv"] call mf_init; + diff --git a/client/systems/generalStore/getInventory.sqf b/client/systems/generalStore/getInventory.sqf index 8213b2aa7..8bcb50d53 100644 --- a/client/systems/generalStore/getInventory.sqf +++ b/client/systems/generalStore/getInventory.sqf @@ -131,6 +131,21 @@ for [{_x=1},{_x<=_amount},{_x=_x+1}] do }; +_amount = MF_ITEMS_CCTV_CAMERA call mf_inventory_count; +for [{_x=1},{_x<=_amount},{_x=_x+1}] do +{ + playerInventory set [_index, MF_ITEMS_CCTV_CAMERA]; + _index = _index + 1; +}; + +_amount = MF_ITEMS_CCTV_BASE call mf_inventory_count; +for [{_x=1},{_x<=_amount},{_x=_x+1}] do +{ + playerInventory set [_index, MF_ITEMS_CCTV_BASE]; + _index = _index + 1; +}; + + { _class = _x; diff --git a/description.ext b/description.ext index a1de4de9c..ae877a798 100644 --- a/description.ext +++ b/description.ext @@ -60,6 +60,11 @@ loadScreen = "mapConfig\Loading.jpg"; #include "addons\bank\ui.hpp" #include "addons\bank\bank_menu.hpp" +#include "addons\cctv\ui.hpp" +#include "addons\cctv\laptop_flat_menu.hpp" +#include "addons\cctv\cctv_menu.hpp" + + class RscTitles { diff --git a/storeConfig.sqf b/storeConfig.sqf index 5e2a5db81..0f7fb48ab 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -812,7 +812,10 @@ customPlayerItems = compileFinal str ["LSD", "lsd", localize "STR_WL_ShopDescriptions_LSD", "client\icons\lsd.paa", 3500, 3000], ["Marijuana", "marijuana", localize "STR_WL_ShopDescriptions_Marijuana", "client\icons\marijuana.paa", 3500, 3000], ["Cocaine", "cocaine", localize "STR_WL_ShopDescriptions_Cocaine", "client\icons\cocaine.paa", 3500, 3000], - ["Heroin", "heroin", localize "STR_WL_ShopDescriptions_Heroin", "client\icons\heroin.paa", 3500, 3000] + ["Heroin", "heroin", localize "STR_WL_ShopDescriptions_Heroin", "client\icons\heroin.paa", 3500, 3000], + + ["CCTV Camera", "cctv_camera", localize "STR_WL_ShopDescriptions_CCTV_Camera", "addons\cctv\icons\camcorder.paa", 850, 500], + ["CCTV Base Station", "cctv_base", localize "STR_WL_ShopDescriptions_CCTV_Base", "addons\cctv\icons\laptop.paa", 500, 300] ]; call compile preprocessFileLineNumbers "mapConfig\storeOwners.sqf"; diff --git a/stringtable.xml b/stringtable.xml index 60ae2af9c..82a7e9360 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -102,6 +102,12 @@ A highly addictive analgesic drug derived from morphine, often used illicitly as a narcotic producing euphoria. + + This is the remote camera for a television system in which the video signals are transmitted from one or more cameras via Wifi to a restricted set of base stations. + + + This is the base station for a television system in which the video signals are transmitted from one or more cameras via Wifi. + From e607f34b79c8927ce6b360115f132e03b8cdf740 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 14 Dec 2014 13:44:28 -0800 Subject: [PATCH 158/544] CCTV NV Mode + Custom camera names Also add extra config options for inventory --- addons/cctv/cctv_functions.sqf | 8 +- addons/cctv/cctv_menu.hpp | 2 +- addons/cctv/cctv_menu_functions.sqf | 125 +++++++++++++++++++-- addons/cctv/config.sqf | 4 +- addons/cctv/laptop_flat_menu_functions.sqf | 4 +- client/items/cctv/init.sqf | 7 +- 6 files changed, 134 insertions(+), 16 deletions(-) diff --git a/addons/cctv/cctv_functions.sqf b/addons/cctv/cctv_functions.sqf index c3c754c09..81abcda84 100644 --- a/addons/cctv/cctv_functions.sqf +++ b/addons/cctv/cctv_functions.sqf @@ -54,17 +54,20 @@ cctv_camera_view_next = { _camera camPrepareFocus [-1,-1]; _camera camCommitPrepared 0; _camera cameraeffect ["internal","back",_rendertarget]; + cctv_camera_view_last = _camera; //update the screen with the camera view + private["_screen"]; _screen = call laptop_flat_menu_screen_control; + if (not(sunOrMoon > 0)) then { + _rendertarget setPiPEffect [1]; + }; _screen ctrlsettext format ["#(argb,512,512,1)r2t(%1,1.0)",_rendertarget]; _screen ctrlsettextcolor [1,1,1,1]; _screen ctrlcommit 0; - _rendertarget setPiPEffect [0]; - //set the camera name on the screen [_camera_name] call laptop_flat_menu_update_text_tl; @@ -256,6 +259,7 @@ cctv_base_use = { }; + cctv_functions_defined = true; diag_log format["Loading cctv functions complete"]; \ No newline at end of file diff --git a/addons/cctv/cctv_menu.hpp b/addons/cctv/cctv_menu.hpp index 3f3895d64..73c37cd72 100644 --- a/addons/cctv/cctv_menu.hpp +++ b/addons/cctv/cctv_menu.hpp @@ -45,7 +45,7 @@ class cctv_menu { text = ""; }; - class cctv_menu_camera_name_field: cctv_ui_RscText { + class cctv_menu_camera_name_field: cctv_ui_RscEdit { idc = cctv_menu_camera_name_field_idc; x = 0.49-10; y = 0.47-10; w = 0.18; h = 0.04; diff --git a/addons/cctv/cctv_menu_functions.sqf b/addons/cctv/cctv_menu_functions.sqf index a10882154..a89a526ed 100644 --- a/addons/cctv/cctv_menu_functions.sqf +++ b/addons/cctv/cctv_menu_functions.sqf @@ -11,6 +11,48 @@ cctv_menu_result_ac = 1; cctv_menu_result_ac_type = 0; cctv_menu_result_ac_value = 1; +strlen = { + private["_text"]; + _text = _this select 0; + if (undefined(_text)) exitWith {0}; + if (typeName _text != "STRING") exitWith {null}; + (count (toArray _text)) +}; + +substr = { + private["_string", "_start", "_length"]; + _string = _this select 0; + _start = _this select 1; + _length = _this select 2; + + if (undefined(_string)) exitWith {""}; + if (undefined(_start)) exitWith {""}; + + if (typeName _string != "STRING") exitWith {""}; + if (typeName _start != "SCALAR") exitWith {""}; + + + private["_string_data", "_string_out_data"]; + _string_data = toArray _string; + _string_out_data = []; + + if (undefined(_length)) then { + _length = count(_string_data) - _start; + }; + + private["_i", "_count"]; + _i = _start; + _count = 0; + while {(_i < (count _string_data)) && (_count < _length)} do { + _string_out_data set [_count, (_string_data select _i)]; + _count = _count + 1; + _i = _i + 1; + }; + + (toString _string_out_data) +}; + + cctv_menu_dialog = { _this spawn { disableSerialization; @@ -46,21 +88,87 @@ cctv_menu_dialog = { _this spawn { ]; _list lbSetCurSel 0; - cctv_menu_result = nil; //Ok button buttonSetAction [ cctv_menu_button_ok_idc, ( - ' private["_access_control", "_name"];' + + ' cctv_menu_result = nil; ' + + ' private["_access_control", "_name"];' + ' _name = ctrlText cctv_menu_camera_name_field_idc;' + ' _access_control = call compile (lbData [cctv_menu_access_control_field_idc,lbCurSel cctv_menu_access_control_field_idc]);' + - ' cctv_menu_result = [_name,_access_control];' + - 'closedialog 0;' + ' if ([_name] call cctv_camera_name_valid) then {' + + ' cctv_menu_result = [_name,_access_control];' + + ' closedialog 0;' + + ' };' )]; };}; +cctv_camera_name_valid = { + ARGV3(0,_name,""); + + + if (isNil "_name") exitWith { + player groupChat format["The specified camera name is not valid", _min_length]; + false + }; + + def(_len); + _len = [_name] call strlen; + + def(_min_length); + _min_length = 5; + if (_len < _min_length) exitWith { + player groupChat format["The camera name must be at least %1 characters(s) long", _min_length]; + false + }; + + def(_max_length); + _max_length = 30; + if (_len > 30) exitWith { + player groupChat format["The camera name length %1 exceeds the maximum of %2 characters(s)", _len, _max_length]; + false + }; + + private["_other_camera"]; + _other_camera = [_name] call cctv_get_camera_by_name; + + if (!(isNil "_other_camera")) exitWith { + player groupChat format["The camera name %1, is already in use", _name]; + false + }; + + true +}; + +cctv_get_camera_by_name = { + ARGVX3(0,_name, ""); + + if (isNil "cctv_cameras") exitWith {}; + + private["_result"]; + + {if (true) then { + private["_camera"]; + _camera = _x; + if (!isOBJECT(_camera) || {isNull _camera}) exitWith {}; + + private["_cname"]; + _cname = _camera getVariable "camera_name"; + if (!isSTRING(_cname) || {_cname == ""}) exitWith {}; + + if (_cname == _name) exitWith { + _result = _camera; + }; + }; + + if (!isNil "_result") exitWith {}; + } forEach cctv_cameras; + + (OR(_result,nil)) + +}; cctv_menu_combo_focus = { ARGVX3(0,_control,controlNull); @@ -154,13 +262,11 @@ cctv_menu_setup = { _cctv_menu_background ctrlCommit 0; - - //cctv camera name label private["_cnlx","_cnly","_cnlw","_cnlh"]; _cnlx = _cbx + _sep * 2; _cnly = _cby + _sep * 2; - _cnlw = (_cbw - _sep *6) / 2; + _cnlw = (_cbw - _sep *6) / 2 - (_sep * 3); _cnlh = 0.04; _cctv_menu_camera_name_label ctrlSetText "Camera name: "; @@ -168,11 +274,12 @@ cctv_menu_setup = { _cctv_menu_camera_name_label ctrlSetFontHeight _button_font_height - 0.003; _cctv_menu_camera_name_label ctrlCommit 0; + //cctv camera name field private["_cnfx","_cnfy","_cnfw","_cnfh"]; _cnfx = _cnlx + _cnlw + _sep * 2 ; _cnfy = _cnly; - _cnfw = _cnlw; + _cnfw = _cnlw + (_sep * 5); _cnfh = _cnlh; _cctv_menu_camera_name_field ctrlSetText _camera_name; @@ -199,7 +306,7 @@ cctv_menu_setup = { private["_cafx","_cafy","_cafw","_cafh"]; _cafx = _calx + _calw + _sep * 2 ; _cafy = _caly; - _cafw = _calw; + _cafw = _calw + (_sep * 5); _cafh = _calh; _cctv_menu_access_control_field ctrlSetFontHeight _button_font_height - 0.003;; diff --git a/addons/cctv/config.sqf b/addons/cctv/config.sqf index cb5ec8655..473778b44 100644 --- a/addons/cctv/config.sqf +++ b/addons/cctv/config.sqf @@ -1 +1,3 @@ -cctv_max_distance = -1; // -1 unlimited \ No newline at end of file +cctv_max_distance = -1; // -1 unlimited +cctv_max_inventory_cameras = 2; +cctv_max_inventory_base_stations = 1; \ No newline at end of file diff --git a/addons/cctv/laptop_flat_menu_functions.sqf b/addons/cctv/laptop_flat_menu_functions.sqf index b99c19c49..93b17cc96 100644 --- a/addons/cctv/laptop_flat_menu_functions.sqf +++ b/addons/cctv/laptop_flat_menu_functions.sqf @@ -3,6 +3,7 @@ #include "dikcodes.h" if (not(undefined(laptop_flat_menu_functions))) exitWith {}; + diag_log format["Loading laptop flat menu functions ..."]; laptop_flat_event_type = 0; @@ -144,7 +145,7 @@ laptop_flat_menu_setup = {_this spawn { private["_lstx","_lsty","_lstw","_lsth"]; - _lstw = _bspw * 2; + _lstw = _bspw * 3; _lsth = _bsph * 1.5; _lstx = _bspx - _bspw * 0.97; _lsty = _bspy - _bsph * 27.9; @@ -163,6 +164,7 @@ laptop_flat_menu_setup = {_this spawn { [[LAPTOP_EVENT_OFF],laptop_flat_off_event_cb] call laptop_flat_invoke_event_callback; };}; + laptop_flat_menu_functions = true; diag_log format["Loading laptop flat menu functions complete"]; \ No newline at end of file diff --git a/client/items/cctv/init.sqf b/client/items/cctv/init.sqf index a882d7485..9f1ffb043 100644 --- a/client/items/cctv/init.sqf +++ b/client/items/cctv/init.sqf @@ -9,13 +9,16 @@ private ["_path"]; _path = _this; +private["_h"]; +_h = [] execVM "addons\cctv\config.sqf"; +waitUntil {scriptDone _h;}; MF_ITEMS_CCTV_CAMERA = "cctv_camera"; MF_ITEMS_CCTV_CAMERA_TYPE = "Land_HandyCam_F"; MF_ITEMS_CCTV_CAMERA_ICON = "addons\cctv\icons\camcorder.paa"; -[MF_ITEMS_CCTV_CAMERA, "CCTV Camera",{_this call cctv_camera_use},MF_ITEMS_CCTV_CAMERA_TYPE, MF_ITEMS_CCTV_CAMERA_ICON, 5] call mf_inventory_create; +[MF_ITEMS_CCTV_CAMERA, "CCTV Camera",{_this call cctv_camera_use},MF_ITEMS_CCTV_CAMERA_TYPE, MF_ITEMS_CCTV_CAMERA_ICON, cctv_max_inventory_cameras] call mf_inventory_create; MF_ITEMS_CCTV_BASE = "cctv_base"; MF_ITEMS_CCTV_BASE_TYPE = "Land_Laptop_unfolded_F"; MF_ITEMS_CCTV_BASE_ICON = "addons\cctv\icons\laptop.paa"; -[MF_ITEMS_CCTV_BASE, "CCTV Station", {_this call cctv_base_use}, MF_ITEMS_CCTV_BASE_TYPE, MF_ITEMS_CCTV_BASE_ICON, 1] call mf_inventory_create; \ No newline at end of file +[MF_ITEMS_CCTV_BASE, "CCTV Station", {_this call cctv_base_use}, MF_ITEMS_CCTV_BASE_TYPE, MF_ITEMS_CCTV_BASE_ICON, cctv_max_inventory_base_stations] call mf_inventory_create; \ No newline at end of file From 6c83e6b12d8f79b8ff06d70fbc7f1db278c2b7fc Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 14 Dec 2014 14:27:05 -0800 Subject: [PATCH 159/544] Add saving for CCTV cameras This persistence is specific to the Node.js (sock-rpc-stats) method. If you are trying to add persistence for iniDB, or extDB you need to make sure that the followin variables are saving with the camera object ( and restored as well). a3w_cctv_camera camera_name camera_owner_type camera_owner_value --- addons/cctv/cctv_functions.sqf | 3 ++- client/inventory/drop.sqf | 2 +- persistence/lib/normalize_config.sqf | 3 +++ persistence/lib/shFunctions.sqf | 5 +++++ persistence/world/oFunctions.sqf | 18 ++++++++++++++++++ server/default_config.sqf | 1 + 6 files changed, 30 insertions(+), 2 deletions(-) diff --git a/addons/cctv/cctv_functions.sqf b/addons/cctv/cctv_functions.sqf index 81abcda84..93d0c8b06 100644 --- a/addons/cctv/cctv_functions.sqf +++ b/addons/cctv/cctv_functions.sqf @@ -238,10 +238,11 @@ cctv_camera_use = { if (isNil "_camera" || {typeName _camera != typeName objNull || {isNull _camera}}) exitWith {false}; + _camera setVariable ["a3w_cctv_camera", true, true]; _camera setVariable ["camera_name", _camera_name, true]; _camera setVariable ["camera_owner_type", _owner_type, true]; _camera setVariable ["camera_owner_value", _owner_value, true]; - _camera setVariable ["camera_on", true, true]; + if (isNil "cctv_cameras") then { cctv_cameras = []; diff --git a/client/inventory/drop.sqf b/client/inventory/drop.sqf index 07a03810b..4064009b3 100644 --- a/client/inventory/drop.sqf +++ b/client/inventory/drop.sqf @@ -55,7 +55,7 @@ else _obj setDir random 360; _obj setVariable ["mf_item_id", _id, true]; [_id, 1] call mf_inventory_remove; - _obj }; +if (isNil "_obj") exitWith {nil}; _obj \ No newline at end of file diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index ecc1d482f..b9c833cbc 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -7,6 +7,8 @@ cfg_purchasedVehicleSaving_on = ON_SCALAR(A3W_purchasedVehicleSaving); cfg_townVehicleSaving_on = ON_SCALAR(A3W_townVehicleSaving); cfg_staticWeaponSaving_on = ON_SCALAR(A3W_staticWeaponSaving); cfg_spawnBeaconSaving_on = ON_SCALAR(A3W_spawnBeaconSaving); +cfg_cctvCameraSaving_on = ON_SCALAR(A3W_cctvCameraSaving); + cfg_boxSaving_on = ON_SCALAR(A3W_boxSaving); cfg_warchestSaving_on = ON_SCALAR(A3W_warchestSaving); cfg_warchestMoneySaving_on = ON_SCALAR(A3W_warchestMoneySaving); @@ -40,6 +42,7 @@ diag_log format["[INFO] config: A3W_missionVehicleSaving = %1", cfg_missionVehic diag_log format["[INFO] config: A3W_townVehicleSaving = %1", cfg_townVehicleSaving_on]; diag_log format["[INFO] config: A3W_staticWeaponSaving = %1", cfg_staticWeaponSaving_on]; diag_log format["[INFO] config: A3W_spawnBeaconSaving = %1", cfg_spawnBeaconSaving_on]; +diag_log format["[INFO] config: A3W_cctvCameraSaving = %1", cfg_cctvCameraSaving_on]; diag_log format["[INFO] config: A3W_boxSaving = %1", cfg_boxSaving_on]; diag_log format["[INFO] config: A3W_warchestSaving = %1", cfg_warchestSaving_on]; diag_log format["[INFO] config: A3W_warchestMoneySaving = %1", cfg_warchestMoneySaving_on]; diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 9eb678d15..a44d5f6c0 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -72,6 +72,11 @@ sh_isBeacon = { (_obj getVariable ["a3w_spawnBeacon", false]) }; +sh_isCamera = { + ARGVX4(0,_obj,objNull,false); + (_obj getVariable ["a3w_cctv_camera", false]) +}; + sh_isBox = { ARGVX4(0,_obj,objNull,false); init(_class,typeOf _obj); diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 29d70813d..8b7af71d2 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -58,6 +58,11 @@ o_isSaveable = { (cfg_staticWeaponSaving_on) }; + if ([_obj] call sh_isCamera) exitWith { + (cfg_cctvCameraSaving_on) + }; + + def(_locked); _locked = _obj getVariable ["objectLocked", false]; @@ -204,6 +209,12 @@ o_restoreObject = {_this spawn { pvar_spawn_beacons pushBack _obj; publicVariable "pvar_spawn_beacons"; }; + + cctv_cameras = OR(cctv_cameras,[]); + if ([_obj] call sh_isCamera) then { + cctv_cameras pushBack _obj; + publicVariable "cctv_cameras"; + }; //restore the stuff inside the object clearWeaponCargoGlobal _obj; @@ -324,6 +335,13 @@ o_fillVariables = { _variables pushBack ["ownerName", _obj getVariable ["ownerName", "[Beacon]"]]; }; + if ([_obj] call sh_isCamera) then { + _variables pushBack ["a3w_cctv_camera", (_obj getVariable ["a3w_cctv_camera", nil])]; + _variables pushBack ["camera_name", (_obj getVariable ["camera_name", nil])]; + _variables pushBack ["camera_owner_type", (_obj getVariable ["camera_owner_type", nil])]; + _variables pushBack ["camera_owner_value", (_obj getVariable ["camera_owner_value", nil])]; + }; + def(_r3fSide); _r3fSide = _obj getVariable "R3F_Side"; if (!isNil "_r3fSide" && {typeName _r3fSide == typeName sideUnknown}) then { diff --git a/server/default_config.sqf b/server/default_config.sqf index 33f602dfa..0bb4d066d 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -47,6 +47,7 @@ A3W_staticWeaponSaving = 1; // Save locked static weapons and their magaz A3W_warchestSaving = 0; // Save warchest objects deployed by players between server restarts (0 = no, 1 = yes) A3W_warchestMoneySaving = 0; // Save warchest team money between server restarts (0 = no, 1 = yes) A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts (0 = no, 1 = yes) +A3W_cctvCameraSaving = 1; // Save cctv cameras between restarts (0 = no, 1 = yes) A3W_objectLifetime = 7*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) A3W_vehicleMaxUnusedTime = 36; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) From 1a963a91fb305b9eeb73240842d3d6e4587887c4 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 14 Dec 2014 14:39:16 -0800 Subject: [PATCH 160/544] Modified drug models. --- client/items/drugs/init.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/items/drugs/init.sqf b/client/items/drugs/init.sqf index 88a08e20b..c691246e9 100644 --- a/client/items/drugs/init.sqf +++ b/client/items/drugs/init.sqf @@ -11,18 +11,18 @@ _path = _this; call compile preprocessFileLineNumbers format["%1\functions.sqf", _path]; MF_ITEMS_LSD = "lsd"; -MF_ITEMS_LSD_TYPE = "Land_PainKillers_F"; +MF_ITEMS_LSD_TYPE = "Land_WaterPurificationTablets_F"; MF_ITEMS_LSD_ICON = "client\icons\lsd.paa"; [MF_ITEMS_LSD, "LSD", {[player,60] call drug_lsd_effects; true}, MF_ITEMS_LSD_TYPE, MF_ITEMS_LSD_ICON, 15] call mf_inventory_create; MF_ITEMS_MARIJUANA = "marijuana"; -MF_ITEMS_MARIJUANA_TYPE = "Land_PainKillers_F"; +MF_ITEMS_MARIJUANA_TYPE = "Land_VitaminBottle_F"; MF_ITEMS_MARIJUANA_ICON = "client\icons\marijuana.paa"; [MF_ITEMS_MARIJUANA, "Marijuana", {[player,90] call drug_marijuana_effects; true}, MF_ITEMS_MARIJUANA_TYPE, MF_ITEMS_MARIJUANA_ICON, 15] call mf_inventory_create; MF_ITEMS_COCAINE = "cocaine"; -MF_ITEMS_COCAINE_TYPE = "Land_PainKillers_F"; +MF_ITEMS_COCAINE_TYPE = "Land_PowderedMilk_F"; MF_ITEMS_COCAINE_ICON = "client\icons\cocaine.paa"; [MF_ITEMS_COCAINE, "Cocaine", {[player,90] call drug_cocaine_effects; true}, MF_ITEMS_COCAINE_TYPE, MF_ITEMS_COCAINE_ICON, 15] call mf_inventory_create; From 831d74b5af9d5fbeaf0225312fe28823c4a58d61 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 14 Dec 2014 15:50:36 -0800 Subject: [PATCH 161/544] Add configs for limiting deployed CCTV cameras --- addons/cctv/cctv_functions.sqf | 116 +++++++++++++++++---- addons/cctv/config.sqf | 9 +- addons/cctv/laptop_flat_menu_functions.sqf | 2 +- 3 files changed, 102 insertions(+), 25 deletions(-) diff --git a/addons/cctv/cctv_functions.sqf b/addons/cctv/cctv_functions.sqf index 93d0c8b06..0d63a6604 100644 --- a/addons/cctv/cctv_functions.sqf +++ b/addons/cctv/cctv_functions.sqf @@ -32,10 +32,13 @@ cctv_camera_view_next = { _source = [_camera_index,_cameras] call cctv_camera_data_get; if (!isOBJECT(_source) || {isNull _source}) exitWith {}; - private["_camera_name"]; + private["_camera_name", "_camera_owner_type"]; _camera_name = _source getVariable ["camera_name", nil]; if (!isSTRING(_camera_name) || {_camera_name == ""}) exitWith {}; + _camera_owner_type = _source getVariable ["camera_owner_type", nil]; + if (!isSTRING(_camera_owner_type) || {_camera_owner_type == ""}) exitWith {}; + if (not(isNull cctv_camera_view_last)) then { cctv_camera_view_last cameraeffect ["terminate","back"]; @@ -69,7 +72,7 @@ cctv_camera_view_next = { _screen ctrlcommit 0; //set the camera name on the screen - [_camera_name] call laptop_flat_menu_update_text_tl; + [format["%1: %2", (toUpper _camera_owner_type), _camera_name]] call laptop_flat_menu_update_text_tl; //update the next cell index if (_camera_index >= (count(_cameras) -1)) then { @@ -118,16 +121,11 @@ cctv_security_laptop_event_handler = { cctv_cameras = OR(cctv_cameras,[]); -cctv_get_accessible_cameras = { - ARGVX3(0,_player,objNull); - if (!isARRAY(cctv_cameras) || {count(cctv_cameras) == 0}) then {[]}; +cctv_get_group_uids = { + ARGVX4(0,_player,objNull,[]); - private["_uid", "_side", "_group_uids"]; - _uid = getPlayerUID _player; - _side = str(side _player); - _group_uids = [_uid]; - - //make a list with the UIDs for the group members + private["_group_uids"]; + _group_uids = [getPlayerUID _player]; {if (true) then { private["_member"]; _member = _x; @@ -140,6 +138,21 @@ cctv_get_accessible_cameras = { _group_uids pushBack _member_uid; };} forEach (units (group _player)); + (_group_uids) +}; + +cctv_get_accessible_cameras = { + ARGVX3(0,_player,objNull); + if (!isARRAY(cctv_cameras) || {count(cctv_cameras) == 0}) then {[]}; + + private["_uid", "_side", "_group_uids"]; + _uid = getPlayerUID _player; + _side = str(side _player); + _group_uids = [_player] call cctv_get_group_uids; + + //make a list with the UIDs for the group members + + //player groupChat format["_uid = %1, _side = %2, _group_uids = %3", _uid, _side, _group_uids]; //get the list of cameras that are accessible to this player @@ -162,11 +175,11 @@ cctv_get_accessible_cameras = { _owner_value = _camera getVariable ["camera_owner_value", nil]; if (!isSTRING(_owner_value) || {_owner_value == ""}) exitWith {}; - //player groupChat format["_owner_type = %1, _owner_value = %2", _owner_type, _owner_value]; + //player groupChat format["_owner_type = %1, _owner_value = %2", _owner_type, _owner_value]; - if (not((_owner_type == "player" && {_owner_value == _uid}) ||{ - (_owner_type == "side" && {_owner_value == _side}) ||{ - (_owner_type == "group" && {_owner_value in _group_uids})}})) exitWith {}; + if (!((_owner_type == "player" && {_owner_value == _uid}) ||{ + (_owner_type == "side" && {_owner_value == _side}) ||{ + (_owner_type == "group" && {_owner_value in _group_uids})}})) exitWith {}; _cameras pushBack _camera; };} forEach cctv_cameras; @@ -184,7 +197,7 @@ cctv_security_laptop_menu = { //player groupChat format["_cameras = %1", _cameras]; if (count(_cameras) == 0) exitWith { - player groupChat format["There are no CCTV cameras currently accessible"]; + player groupChat format["There are no CCTV cameras currently accessible."]; }; private["_handler"]; @@ -196,6 +209,71 @@ cctv_security_laptop_menu = { #define MUTEX_UNLOCK mutexScriptInProgress = false; doCancelAction = false +cctv_get_cameras_by_type = { + ARGVX4(0,_player,objNull,[]); + ARGVX4(1,_type,"",[]); + + private["_uid", "_side", "_group_uids"]; + _uid = getPlayerUID _player; + _side = str(side _player); + _group_uids = [_player] call cctv_get_group_uids; + + cctv_cameras = OR(cctv_cameras,[]); + + private["_result"]; + _result = []; + {if (true) then { + private["_camera"]; + _camera = _x; + if (!isOBJECT(_camera) || {isNull _camera}) exitWith {}; + + private["_ctype", "_cvalue"]; + _ctype = _camera getVariable "camera_owner_type"; + _cvalue = _camera getVariable "camera_owner_value"; + if (!isSTRING(_ctype) || {_ctype == ""}) exitWith {}; + if (!isSTRING(_cvalue) || {_cvalue == ""}) exitWith {}; + if (_type != _ctype) exitWith {}; + + if ((_type == "group" && {_cvalue in _group_uids}) || { + (_type == "side" && {_cvalue == _side}) || { + (_type == "player" && {_cvalue == _uid})}}) exitWith { + _result pushBack _camera; + }; + };} forEach cctv_cameras; + + (_result) +}; + +cctv_enforce_limits = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_owner_type,""); + + cctv_cameras = OR(cctv_cameras,[]); + + private["_old_cameras", "_count"]; + _old_cameras = [_player,_owner_type] call cctv_get_cameras_by_type; + _count = count(_old_cameras); + + if(!((_owner_type == "player" && {_count >= cctv_max_deployed_player_cameras}) || { + (_owner_type == "group" && {_count >= cctv_max_deployed_group_cameras}) || { + (_owner_type == "side" && {_count >= cctv_max_deployed_side_cameras})}})) exitWith {}; + + + if (_owner_type == "player") then { + player groupChat format["You already have %1 personal CCTV camera(s) deployed.", _count]; + } + else { + player groupChat format["There are already %1 %2 CCTV camera(s) deployed.", _count, toUpper _owner_type]; + }; + + private["_camera_to_delete"]; + _camera_to_delete = _old_cameras select 0; + player groupChat format["Camera ""%1"" was deleted.", (_camera_to_delete getVariable "camera_name")]; + deleteVehicle _camera_to_delete; + cctv_cameras = cctv_cameras - [objNull]; +}; + + cctv_camera_use = { //this is needed in order for the mf_inventory_drop call to work (since it's nested inside USE) MUTEX_UNLOCK ; @@ -243,11 +321,7 @@ cctv_camera_use = { _camera setVariable ["camera_owner_type", _owner_type, true]; _camera setVariable ["camera_owner_value", _owner_value, true]; - - if (isNil "cctv_cameras") then { - cctv_cameras = []; - }; - + [_player, _owner_type] call cctv_enforce_limits; cctv_cameras pushBack _camera; publicVariable "cctv_cameras"; diff --git a/addons/cctv/config.sqf b/addons/cctv/config.sqf index 473778b44..4f3782379 100644 --- a/addons/cctv/config.sqf +++ b/addons/cctv/config.sqf @@ -1,3 +1,6 @@ -cctv_max_distance = -1; // -1 unlimited -cctv_max_inventory_cameras = 2; -cctv_max_inventory_base_stations = 1; \ No newline at end of file +cctv_max_distance = -1; // -1 unlimited +cctv_max_inventory_cameras = 2; //maximum number of cameras that player can carry in his inventory +cctv_max_inventory_base_stations = 1; //maximum number of base stations that player can carry in his inventory +cctv_max_deployed_player_cameras = 3; //maximum number of personal cameras that a player can have deployed +cctv_max_deployed_group_cameras = 2; //maximum number of group cameras that could be deployed in a group +cctv_max_deployed_side_cameras = 10; //maxmumum number of team cameras that could be deployed in a team (WEST, EAST, INDEPENDENT) diff --git a/addons/cctv/laptop_flat_menu_functions.sqf b/addons/cctv/laptop_flat_menu_functions.sqf index 93b17cc96..d2b2d477f 100644 --- a/addons/cctv/laptop_flat_menu_functions.sqf +++ b/addons/cctv/laptop_flat_menu_functions.sqf @@ -145,7 +145,7 @@ laptop_flat_menu_setup = {_this spawn { private["_lstx","_lsty","_lstw","_lsth"]; - _lstw = _bspw * 3; + _lstw = _bspw * 3.5; _lsth = _bsph * 1.5; _lstx = _bspx - _bspw * 0.97; _lsty = _bspy - _bsph * 27.9; From a9faff4ee4aeedfd6c1e23ce4746865a9d6108f4 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 14 Dec 2014 16:50:11 -0800 Subject: [PATCH 162/544] Fixed town vehicles delete when saved. --- server/functions/vehicle.sqf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/functions/vehicle.sqf b/server/functions/vehicle.sqf index c510c37e1..eb2d1b15a 100644 --- a/server/functions/vehicle.sqf +++ b/server/functions/vehicle.sqf @@ -180,6 +180,10 @@ while {_run} do }; }; + if ((alive _veh) && {not(isNil {_veh getVariable "ownerUID"})}) then { + _dead = false; + }; + // Respawn vehicle if (_dead) then { From c1e3cc6be865e33c8ad766e5489041a7793fa1d6 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 14 Dec 2014 17:28:53 -0800 Subject: [PATCH 163/544] Save the item id for CCTV camera as well Without this, you cannot pick-up the camera using the "Take" action after a restart. --- persistence/world/oFunctions.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 8b7af71d2..c68aeb66f 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -340,6 +340,7 @@ o_fillVariables = { _variables pushBack ["camera_name", (_obj getVariable ["camera_name", nil])]; _variables pushBack ["camera_owner_type", (_obj getVariable ["camera_owner_type", nil])]; _variables pushBack ["camera_owner_value", (_obj getVariable ["camera_owner_value", nil])]; + _variables pushBack ["mf_item_id", (_obj getVariable ["mf_item_id", nil])]; }; def(_r3fSide); From 476fef6ac208dc0cc8c97d61ca9c9e4d99da07bb Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 14 Dec 2014 17:36:52 -0800 Subject: [PATCH 164/544] Give more modern names to cam, and terminal items IP/Net Camera Camera Terminal --- client/items/cctv/init.sqf | 4 ++-- storeConfig.sqf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client/items/cctv/init.sqf b/client/items/cctv/init.sqf index 9f1ffb043..dee648e0f 100644 --- a/client/items/cctv/init.sqf +++ b/client/items/cctv/init.sqf @@ -16,9 +16,9 @@ waitUntil {scriptDone _h;}; MF_ITEMS_CCTV_CAMERA = "cctv_camera"; MF_ITEMS_CCTV_CAMERA_TYPE = "Land_HandyCam_F"; MF_ITEMS_CCTV_CAMERA_ICON = "addons\cctv\icons\camcorder.paa"; -[MF_ITEMS_CCTV_CAMERA, "CCTV Camera",{_this call cctv_camera_use},MF_ITEMS_CCTV_CAMERA_TYPE, MF_ITEMS_CCTV_CAMERA_ICON, cctv_max_inventory_cameras] call mf_inventory_create; +[MF_ITEMS_CCTV_CAMERA, "IP/Net Camera",{_this call cctv_camera_use},MF_ITEMS_CCTV_CAMERA_TYPE, MF_ITEMS_CCTV_CAMERA_ICON, cctv_max_inventory_cameras] call mf_inventory_create; MF_ITEMS_CCTV_BASE = "cctv_base"; MF_ITEMS_CCTV_BASE_TYPE = "Land_Laptop_unfolded_F"; MF_ITEMS_CCTV_BASE_ICON = "addons\cctv\icons\laptop.paa"; -[MF_ITEMS_CCTV_BASE, "CCTV Station", {_this call cctv_base_use}, MF_ITEMS_CCTV_BASE_TYPE, MF_ITEMS_CCTV_BASE_ICON, cctv_max_inventory_base_stations] call mf_inventory_create; \ No newline at end of file +[MF_ITEMS_CCTV_BASE, "Camera Terminal", {_this call cctv_base_use}, MF_ITEMS_CCTV_BASE_TYPE, MF_ITEMS_CCTV_BASE_ICON, cctv_max_inventory_base_stations] call mf_inventory_create; \ No newline at end of file diff --git a/storeConfig.sqf b/storeConfig.sqf index 0f7fb48ab..7b07553f9 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -814,8 +814,8 @@ customPlayerItems = compileFinal str ["Cocaine", "cocaine", localize "STR_WL_ShopDescriptions_Cocaine", "client\icons\cocaine.paa", 3500, 3000], ["Heroin", "heroin", localize "STR_WL_ShopDescriptions_Heroin", "client\icons\heroin.paa", 3500, 3000], - ["CCTV Camera", "cctv_camera", localize "STR_WL_ShopDescriptions_CCTV_Camera", "addons\cctv\icons\camcorder.paa", 850, 500], - ["CCTV Base Station", "cctv_base", localize "STR_WL_ShopDescriptions_CCTV_Base", "addons\cctv\icons\laptop.paa", 500, 300] + ["IP/Net Camera", "cctv_camera", localize "STR_WL_ShopDescriptions_CCTV_Camera", "addons\cctv\icons\camcorder.paa", 850, 500], + ["Camera Terminal", "cctv_base", localize "STR_WL_ShopDescriptions_CCTV_Base", "addons\cctv\icons\laptop.paa", 500, 300] ]; call compile preprocessFileLineNumbers "mapConfig\storeOwners.sqf"; From 00e6da0d21cb319987580dcbbeaa41d8951f0b65 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 14 Dec 2014 17:47:56 -0800 Subject: [PATCH 165/544] Update camera and terminal shop descriptions --- stringtable.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stringtable.xml b/stringtable.xml index 82a7e9360..0edc04b9d 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -103,10 +103,10 @@ A highly addictive analgesic drug derived from morphine, often used illicitly as a narcotic producing euphoria. - This is the remote camera for a television system in which the video signals are transmitted from one or more cameras via Wifi to a restricted set of base stations. + This is a remote networked camera that transmits the video signal via Internet Protocol (IP). - This is the base station for a television system in which the video signals are transmitted from one or more cameras via Wifi. + This is a computer terminal that receives video signals from one or more remote networked cameras via Internet Protocol (IP). From 7535509c5af5da3a43ba4298adecedb60227d2b8 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 15 Dec 2014 20:14:17 -0800 Subject: [PATCH 166/544] Add multi-map stats support (saved position) Make position be saved based on the map. Position_Altis Position_Stratis Still support legacy "Position" for Altis. If "Position_Altis" is not available, but "Position" is available, use it. Also, if there is no position available at all for any of the maps, then put the player in a random safe position (so that he does not stay in spawn island) --- persistence/lib/macro.h | 4 +++ persistence/players/macro.h | 4 +++ persistence/players/pFunctions.sqf | 45 ++++++++++++++++++++++++++++-- persistence/players/sFunctions.sqf | 3 +- persistence/sock/macro.h | 4 +++ persistence/world/macro.h | 4 +++ 6 files changed, 60 insertions(+), 4 deletions(-) diff --git a/persistence/lib/macro.h b/persistence/lib/macro.h index 7cdedd47a..39b52e5ef 100644 --- a/persistence/lib/macro.h +++ b/persistence/lib/macro.h @@ -22,6 +22,10 @@ #define isSIDE(x) \ (not(isNil {x}) && {typeName x == typeName sideUnknown}) +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ diff --git a/persistence/players/macro.h b/persistence/players/macro.h index 7cdedd47a..39b52e5ef 100644 --- a/persistence/players/macro.h +++ b/persistence/players/macro.h @@ -22,6 +22,10 @@ #define isSIDE(x) \ (not(isNil {x}) && {typeName x == typeName sideUnknown}) +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 2a51d7384..fc81c1de3 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -129,6 +129,40 @@ p_copy_pairs = { } forEach _source; }; +p_restorePosition = { + ARGV3(0,_position,[]); + ARGV3(1,_position_altis,[]); + ARGV3(2,_position_stratis,[]); + + def(_position_world); + if (worldName == "Altis") then { + _position_world = OR(_position_altis,nil); + } + else { if (worldName == "Stratis") then { + _position_world = OR(_position_stratis,nil); + };}; + + + if (isPOS(_position_world)) exitWith { + diag_log format["Setting player position: %1 for world: %2", worldName]; + player setPosATL _position_world; + }; + + diag_log format["WARNING: No %1 position available", worldName]; + + if (worldName == "Altis" && isPOS(_position)) exitWith { + diag_log format["WARNING: using legacy position for Altis (possition = %1)", _position]; + player setPosATL _position; + }; + + //at this point there is really no position that could be used ... get a random position + private["_msg"]; + _msg = format["WARNING: could not find a %1 position. Putting you at a random safe location.", worldName]; + player groupChat _msg; + diag_log _msg; + [nil,false] spawn spawnRandom; +}; + fn_applyPlayerData = { @@ -147,6 +181,9 @@ fn_applyPlayerData = { def(_uniform_class); def(_vest_class); def(_vehicle_key); + def(_position); + def(_position_altis); + def(_position_stratis); //iterate through the data, and extract the hash variables into local variables { @@ -165,10 +202,13 @@ fn_applyPlayerData = { case "Uniform":{ _uniform_class = _value}; case "Vest": { _vest_class = _value}; case "InVehicle": { _vehicle_key = _value}; - + case "Position": {if (isPOS(_value)) then {_position = _value;}}; + case "Position_Altis": {if (isPOS(_value)) then {_position_altis = _value;}}; + case "Position_Stratis": {if (isPOS(_value)) then {_position_stratis = _value;}}; }; } forEach _data; + //Restore the weapons, backpack, uniform, and vest in correct order player addBackpack "B_Carryall_Base"; // add a temporary backpack for holding loaded weapon magazines [OR(_loaded_magazines,nil)] call p_restoreLoadedMagazines; @@ -191,6 +231,8 @@ fn_applyPlayerData = { [OR(_uniform_class,nil)] call p_restoreUniform; [OR(_vest_class,nil)] call p_restoreVest; + [OR(_position,nil), OR(_position_altis,nil), OR(_position_stratis,nil)] call p_restorePosition; + //restore other stuff that is not order-dependent def(_name); def(_value); @@ -204,7 +246,6 @@ fn_applyPlayerData = { case "Hunger": { hungerLevel = OR(_value,nil); }; case "Thirst": { thirstLevel = OR(_value,nil); }; case "Money": { player setVariable ["cmoney", OR(_value,0), true] }; - case "Position": { if (isARRAY(_value) && {count _value == 3}) then { player setPosATL _value } }; case "Direction": { if (defined(_value)) then {player setDir _value} }; case "Goggles": { if (isSTRING(_value) && {_value != ""}) then { player addGoggles _value } }; case "Headgear": { diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 30e083cf7..1e91387e9 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -283,10 +283,9 @@ p_addPlayerSave = { }; }; - _data pushBack ["Position", _pos]; + _data pushBack [format["Position_%1", worldName], _pos]; _data pushBack ["Direction", direction _player]; - //only save animation, and current weapon if the player is not inside a vehicle if (vehicle _player == _player) then { _data pushBack ["CurrentWeapon", format ["%1", currentMuzzle _player]]; // currentMuzzle returns a number sometimes, hence the format diff --git a/persistence/sock/macro.h b/persistence/sock/macro.h index 7cdedd47a..39b52e5ef 100644 --- a/persistence/sock/macro.h +++ b/persistence/sock/macro.h @@ -22,6 +22,10 @@ #define isSIDE(x) \ (not(isNil {x}) && {typeName x == typeName sideUnknown}) +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ diff --git a/persistence/world/macro.h b/persistence/world/macro.h index 7cdedd47a..39b52e5ef 100644 --- a/persistence/world/macro.h +++ b/persistence/world/macro.h @@ -22,6 +22,10 @@ #define isSIDE(x) \ (not(isNil {x}) && {typeName x == typeName sideUnknown}) +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ From ed7ecfe0a1a30234a15d248326065464cdfd9560 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 15 Dec 2014 20:14:17 -0800 Subject: [PATCH 167/544] Add multi-map stats support (saved position) Make position be saved based on the map. Position_Altis Position_Stratis Still support legacy "Position" for Altis. If "Position_Altis" is not available, but "Position" is available, use it. Also, if there is no position available at all for any of the maps, then put the player in a random safe position (so that he does not stay in spawn island) Conflicts: persistence/players/sFunctions.sqf --- persistence/lib/macro.h | 4 +++ persistence/players/macro.h | 4 +++ persistence/players/pFunctions.sqf | 45 ++++++++++++++++++++++++++++-- persistence/players/sFunctions.sqf | 13 ++++----- persistence/sock/macro.h | 4 +++ persistence/world/macro.h | 4 +++ 6 files changed, 65 insertions(+), 9 deletions(-) diff --git a/persistence/lib/macro.h b/persistence/lib/macro.h index 7cdedd47a..39b52e5ef 100644 --- a/persistence/lib/macro.h +++ b/persistence/lib/macro.h @@ -22,6 +22,10 @@ #define isSIDE(x) \ (not(isNil {x}) && {typeName x == typeName sideUnknown}) +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ diff --git a/persistence/players/macro.h b/persistence/players/macro.h index 7cdedd47a..39b52e5ef 100644 --- a/persistence/players/macro.h +++ b/persistence/players/macro.h @@ -22,6 +22,10 @@ #define isSIDE(x) \ (not(isNil {x}) && {typeName x == typeName sideUnknown}) +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 3315f3fd1..39d589078 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -129,6 +129,40 @@ p_copy_pairs = { } forEach _source; }; +p_restorePosition = { + ARGV3(0,_position,[]); + ARGV3(1,_position_altis,[]); + ARGV3(2,_position_stratis,[]); + + def(_position_world); + if (worldName == "Altis") then { + _position_world = OR(_position_altis,nil); + } + else { if (worldName == "Stratis") then { + _position_world = OR(_position_stratis,nil); + };}; + + + if (isPOS(_position_world)) exitWith { + diag_log format["Setting player position: %1 for world: %2", worldName]; + player setPosATL _position_world; + }; + + diag_log format["WARNING: No %1 position available", worldName]; + + if (worldName == "Altis" && isPOS(_position)) exitWith { + diag_log format["WARNING: using legacy position for Altis (possition = %1)", _position]; + player setPosATL _position; + }; + + //at this point there is really no position that could be used ... get a random position + private["_msg"]; + _msg = format["WARNING: could not find a %1 position. Putting you at a random safe location.", worldName]; + player groupChat _msg; + diag_log _msg; + [nil,false] spawn spawnRandom; +}; + fn_applyPlayerData = { @@ -147,6 +181,9 @@ fn_applyPlayerData = { def(_uniform_class); def(_vest_class); def(_vehicle_key); + def(_position); + def(_position_altis); + def(_position_stratis); //iterate through the data, and extract the hash variables into local variables { @@ -165,10 +202,13 @@ fn_applyPlayerData = { case "Uniform":{ _uniform_class = _value}; case "Vest": { _vest_class = _value}; case "InVehicle": { _vehicle_key = _value}; - + case "Position": {if (isPOS(_value)) then {_position = _value;}}; + case "Position_Altis": {if (isPOS(_value)) then {_position_altis = _value;}}; + case "Position_Stratis": {if (isPOS(_value)) then {_position_stratis = _value;}}; }; } forEach _data; + //Restore the weapons, backpack, uniform, and vest in correct order player addBackpack "B_Carryall_Base"; // add a temporary backpack for holding loaded weapon magazines [OR(_loaded_magazines,nil)] call p_restoreLoadedMagazines; @@ -191,6 +231,8 @@ fn_applyPlayerData = { [OR(_uniform_class,nil)] call p_restoreUniform; [OR(_vest_class,nil)] call p_restoreVest; + [OR(_position,nil), OR(_position_altis,nil), OR(_position_stratis,nil)] call p_restorePosition; + //restore other stuff that is not order-dependent def(_name); def(_value); @@ -204,7 +246,6 @@ fn_applyPlayerData = { case "Hunger": { hungerLevel = OR(_value,nil); }; case "Thirst": { thirstLevel = OR(_value,nil); }; case "Money": { player setVariable ["cmoney", OR(_value,0), true] }; - case "Position": { if (isARRAY(_value) && {count _value == 3}) then { player setPosATL _value } }; case "Direction": { if (defined(_value)) then {player setDir _value} }; case "Goggles": { if (isSTRING(_value) && {_value != ""}) then { player addGoggles _value } }; case "Headgear": { diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 519c8f3a7..f8d6633c8 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -1,7 +1,7 @@ -// @file Version: 0.1 -// @file Name: pFunctions.sqf -// @file Author: micovery -// @file Description: server functions +// @file Version: 0.1 +// @file Name: sFunctions.sqf +// @file Author: micovery +// @file Description: server functions diag_log "sFunctions.sqf loading ..."; @@ -283,9 +283,8 @@ p_addPlayerSave = { }; }; - _data pushBack ["Position", _pos]; - _data pushBack ["Direction", direction _player]; - + _data pushBack [format["Position_%1", worldName], _pos]; + _data pushBack ["Direction", direction _player]; //only save animation, and current weapon if the player is not inside a vehicle if (vehicle _player == _player) then { diff --git a/persistence/sock/macro.h b/persistence/sock/macro.h index 7cdedd47a..39b52e5ef 100644 --- a/persistence/sock/macro.h +++ b/persistence/sock/macro.h @@ -22,6 +22,10 @@ #define isSIDE(x) \ (not(isNil {x}) && {typeName x == typeName sideUnknown}) +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ diff --git a/persistence/world/macro.h b/persistence/world/macro.h index 7cdedd47a..39b52e5ef 100644 --- a/persistence/world/macro.h +++ b/persistence/world/macro.h @@ -22,6 +22,10 @@ #define isSIDE(x) \ (not(isNil {x}) && {typeName x == typeName sideUnknown}) +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ private["_t"]; \ From d4fdf2d7b2e76246b530438d40fae7a628b1b224 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 16 Dec 2014 00:01:53 -0800 Subject: [PATCH 168/544] Use more generic way of saving world-specific data This allows for saving of world-specific data in under a separate structure under the the player scope. In addition to the usual PlayerSave section, there is now: PlayerSave_Altis PlayerSave_Stratis At restore time, the world specific data is merged with the generic data before being re-applied. --- persistence/lib/hash.sqf | 116 ++++++++++++++++++++++++ persistence/players/c_setupPlayerDB.sqf | 8 +- persistence/players/pFunctions.sqf | 60 ++++++------ persistence/players/sFunctions.sqf | 15 ++- persistence/players/s_setupPlayerDB.sqf | 4 +- 5 files changed, 160 insertions(+), 43 deletions(-) create mode 100644 persistence/lib/hash.sqf diff --git a/persistence/lib/hash.sqf b/persistence/lib/hash.sqf new file mode 100644 index 000000000..8e8bc6731 --- /dev/null +++ b/persistence/lib/hash.sqf @@ -0,0 +1,116 @@ +if (!isNil "hash_loaded") exitWith {}; +diag_log "hash loading ..."; + +#include "macro.h" + +/** + * Gets the key-value pair from the specified hash. + * + * e.g. + * [_hash, _key] call hash_get_key_value; + * + * This is useful if you need to pass the key-value pair by reference to another function + * + */ +hash_get_key_value = { + ARGVX3(0,_hash,[]); + ARGVX3(1,_key,""); + + def(_result); + def(_ckey); + + { + if(true) then { + if(!isARRAY(_x)) exitWith {}; + _ckey = _x select 0; + if (!isSTRING(_ckey)) exitWith {}; + if (_ckey != _key) exitWith {}; + _result = _x; + }; + if (!isNil "_result") exitWith {}; + } forEach _hash; + + OR(_result,nil) +}; + +/** + * Gets the value for the given key within the specified hash + * + * e.g. + * [_hash, _key] call hash_get_key; + * + */ + +hash_get_key = { + ARGVX2(0,_hash); + ARGVX3(1,_key,""); + + def(_key_value); + _key_value = [_hash, _key] call hash_get_key_value; + + if (!isARRAY(_key_value)) exitWith {}; + if (count(_key_value) < 2) exitWith {}; + + (_key_value select 1) +}; + +/** + * Puts the given key-value pair into the target hash + * + * e.g. + * [_hash, _key, _value] call hash_set_key; + * + * Note that value may be nil + * + */ +hash_set_key = { + ARGVX3(0,_hash,[]); + ARGVX3(1,_key,""); + ARGV2(2,_value); + + //diag_log format["_key = %1, _value = %2", _key, OR(_value,nil)]; + + def(_key_value); + _key_value = [_hash, _key] call hash_get_key_value; + + if (!isARRAY(_key_value)) then { + _key_value = [_key, OR(_value,nil)]; + _hash pushBack _key_value; + } + else { + _key_value set [1, OR(_value,nil)]; + }; + + (_key_value) +}; + +/** + * Merges all the key-value pairs from source to target + * + * e.g. + * [_target, _source] call hash_set_all; + * + */ +hash_set_all = { + ARGVX3(0,_target,[]); + ARGVX3(1,_source,[]); + + def(_key); + def(_value); + {if (true) then { + if (isNil "_x") exitWith {}; + if (!isARRAY(_x)) exitWith {}; + + _key = _x select 0; + _value = if (count(_x) > 1) then {_x select 1} else {nil}; + + [_target,_key, OR(_value,nil)] call hash_set_key; + };} forEach _source; + + (_target) +}; + + + +hash_loaded = true; +diag_log "hash loading complete"; \ No newline at end of file diff --git a/persistence/players/c_setupPlayerDB.sqf b/persistence/players/c_setupPlayerDB.sqf index 541858004..ff00f843f 100644 --- a/persistence/players/c_setupPlayerDB.sqf +++ b/persistence/players/c_setupPlayerDB.sqf @@ -3,8 +3,8 @@ if (isDedicated) exitWith {}; -call compile preProcessFileLineNumbers "persistence\sock\main.sqf"; -#include "pFunctions.sqf" - - +#include "macro.h" +call compile preProcessFileLineNumbers "persistence\sock\main.sqf"; +call compile preProcessFileLineNumbers "persistence\lib\hash.sqf"; +call compile preProcessFileLineNumbers "persistence\players\pFunctions.sqf"; diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 39d589078..eda2b73e2 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -131,35 +131,13 @@ p_copy_pairs = { p_restorePosition = { ARGV3(0,_position,[]); - ARGV3(1,_position_altis,[]); - ARGV3(2,_position_stratis,[]); - def(_position_world); - if (worldName == "Altis") then { - _position_world = OR(_position_altis,nil); - } - else { if (worldName == "Stratis") then { - _position_world = OR(_position_stratis,nil); - };}; - - - if (isPOS(_position_world)) exitWith { - diag_log format["Setting player position: %1 for world: %2", worldName]; - player setPosATL _position_world; - }; - - diag_log format["WARNING: No %1 position available", worldName]; - - if (worldName == "Altis" && isPOS(_position)) exitWith { - diag_log format["WARNING: using legacy position for Altis (possition = %1)", _position]; + if (isPOS(_position)) exitWith { player setPosATL _position; }; - //at this point there is really no position that could be used ... get a random position - private["_msg"]; - _msg = format["WARNING: could not find a %1 position. Putting you at a random safe location.", worldName]; - player groupChat _msg; - diag_log _msg; + diag_log format["WARNING: No position available. Putting player at a random safe location."]; + player groupChat format["WARNING: No position available. Putting you at a random safe location."]; [nil,false] spawn spawnRandom; }; @@ -397,7 +375,7 @@ p_firstSpawn = { p_restoreData = { diag_log format["%1 call p_restoreData",_this]; - ARGV2(0,_hash); + ARGV2(0,_data); format["%1 call p_restoreData;", _this] call p_log_finest; def(_exit); @@ -407,9 +385,6 @@ p_restoreData = { playerData_loaded = true; }; - def(_data); - _data = getIf(isCODE(_hash),call _hash,nil); - def(_dataValid); _dataValid = (isARRAY(_data) && {count(_data) > 0}); @@ -441,33 +416,50 @@ fn_requestPlayerData = {[] spawn { playerData_alive = nil; playerData_loaded = nil; playerData_resetPos = nil; - init(_dataKey, "PlayerSave"); + init(_genericDataKey, "PlayerSave"); init(_infoKey, "PlayerInfo"); init(_scoreKey, "PlayerScore"); + def(_worldDataKey); + _worldDataKey = format["%1_%2", _genericDataKey, worldName]; def(_pData); - _pData = [_scope, [_dataKey, nil], [_infoKey, nil],[_scoreKey, nil]] call stats_get; + _pData = [_scope, [_genericDataKey, nil], [_worldDataKey, nil], [_infoKey, nil], [_scoreKey, nil]] call stats_get; if (not(isARRAY(_pData))) exitWith { //player data did not load, force him back to lobby endMission "LOSER"; }; + def(_worldData); + def(_genericData); + def(_key); { _key = xGet(_x,0); switch(_key) do { - case _dataKey: { - [xGet(_x,1)] call p_restoreData; + case _genericDataKey: { + _genericData = xGet(_x,1); + }; + case _worldDataKey: { + _worldData = xGet(_x,1); }; case _infoKey: { - [xGet(_x,1)] call p_restoreInfo; + [] call p_restoreInfo; }; case _scoreKey: { [xGet(_x,1)] call p_restoreScore; }; }; } forEach _pData; + + //merge the world specific data, with the generic data + def(_allData); + diag_log format["_genericData = %1", OR(_genericData,nil)]; + diag_log format["_worldData = %1", OR(_worldData,nil)]; + _allData = [OR(call _genericData,[]), OR(call _worldData,[])] call hash_set_all; + + [_allData] call p_restoreData; + };}; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index f8d6633c8..23b60ab30 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -263,6 +263,12 @@ p_addPlayerSave = { _hitPoints pushBack [_hitPoint, _player getHitPointDamage _hitPoint]; } forEach (_player call getHitPoints); + + def(_data); + def(_world_data); + + _world_data = []; + _data = [ ["Damage", damage _player], @@ -272,7 +278,6 @@ p_addPlayerSave = { ["Money", _player getVariable ["cmoney", 0]] // Money is always saved, but only restored if A3W_moneySaving = 1 ]; - def(_pos); _pos = ASLtoATL getPosWorld _player; //force the Z-axis if the player is high above ground, or deep underwater @@ -283,13 +288,13 @@ p_addPlayerSave = { }; }; - _data pushBack [format["Position_%1", worldName], _pos]; - _data pushBack ["Direction", direction _player]; + _world_data pushBack ["Position", _pos]; + _world_data pushBack ["Direction", direction _player]; //only save animation, and current weapon if the player is not inside a vehicle if (vehicle _player == _player) then { _data pushBack ["CurrentWeapon", format ["%1", currentMuzzle _player]]; // currentMuzzle returns a number sometimes, hence the format - _data pushBack ["Animation", (animationState _player)]; + _world_data pushBack ["Animation", (animationState _player)]; }; @@ -395,6 +400,8 @@ p_addPlayerSave = { { _data pushBack _x } forEach _gear; _request pushBack ["PlayerSave", (_data call sock_hash)]; + _request pushBack [format["PlayerSave_%1", worldName], (_world_data call sock_hash)]; + true }; diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index 0cef60ca6..de6783e32 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -6,9 +6,11 @@ if (!isServer) exitWith {}; +#include "macro.h" + diag_log "Loading s_setupPlayerDB ..."; -#include "sFunctions.sqf" +call compile preProcessFileLineNumbers "persistence\players\sFunctions.sqf"; fn_deletePlayerSave = { init(_scope,_this call PDB_playerFileName); From 937c6434f68bbcc11523b8c702f6fee84ae7a1ad Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 16 Dec 2014 00:13:08 -0800 Subject: [PATCH 169/544] Cleanup old way of doing world-specific position --- persistence/players/pFunctions.sqf | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index eda2b73e2..02634932c 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -160,8 +160,6 @@ fn_applyPlayerData = { def(_vest_class); def(_vehicle_key); def(_position); - def(_position_altis); - def(_position_stratis); //iterate through the data, and extract the hash variables into local variables { @@ -181,8 +179,6 @@ fn_applyPlayerData = { case "Vest": { _vest_class = _value}; case "InVehicle": { _vehicle_key = _value}; case "Position": {if (isPOS(_value)) then {_position = _value;}}; - case "Position_Altis": {if (isPOS(_value)) then {_position_altis = _value;}}; - case "Position_Stratis": {if (isPOS(_value)) then {_position_stratis = _value;}}; }; } forEach _data; @@ -209,7 +205,7 @@ fn_applyPlayerData = { [OR(_uniform_class,nil)] call p_restoreUniform; [OR(_vest_class,nil)] call p_restoreVest; - [OR(_position,nil), OR(_position_altis,nil), OR(_position_stratis,nil)] call p_restorePosition; + [OR(_position,nil)] call p_restorePosition; //restore other stuff that is not order-dependent def(_name); From 16dc167d08d21c6ea24e2fddf4751daf45777ded Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 16 Dec 2014 00:21:45 -0800 Subject: [PATCH 170/544] Fix merged booboo --- persistence/players/pFunctions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 02634932c..26255be61 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -440,7 +440,7 @@ fn_requestPlayerData = {[] spawn { _worldData = xGet(_x,1); }; case _infoKey: { - [] call p_restoreInfo; + [xGet(_x,1)] call p_restoreInfo; }; case _scoreKey: { [xGet(_x,1)] call p_restoreScore; From 7f0a7dc4dae435d487e5fcc14803aaac0b9f4a3e Mon Sep 17 00:00:00 2001 From: Ivan Date: Tue, 16 Dec 2014 13:58:24 +0300 Subject: [PATCH 171/544] Basic functions and properties --- persistence/lib/normalize_config.sqf | 4 ++++ persistence/lib/shFunctions.sqf | 6 ++++++ persistence/world/functions.sqf | 2 ++ persistence/world/oFunctions.sqf | 6 +++++- server/default_config.sqf | 2 ++ server/functions/serverVars.sqf | 12 ++++++++++++ 6 files changed, 31 insertions(+), 1 deletion(-) diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index f1bc31a46..32167721f 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -12,10 +12,12 @@ cfg_boxSaving_on = ON_SCALAR(A3W_boxSaving); cfg_warchestSaving_on = ON_SCALAR(A3W_warchestSaving); cfg_warchestMoneySaving_on = ON_SCALAR(A3W_warchestMoneySaving); cfg_baseSaving_on = ON_SCALAR(A3W_baseSaving); +cfg_MineSaving_on = ON_SCALAR(A3W_mineSaving); A3W_saveable_vehicles_list = OR_ARRAY(A3W_saveable_vehicles_list,[]); A3W_objectLifetime = OR_SCALAR(A3W_objectLifetime,0); +A3W_mineLifetime = OR_SCALAR(A3W_mineLifetime,0); A3W_object_saveInterval = OR_POSITIVE(A3W_object_saveInterval,60); A3W_player_saveInterval = OR_POSITIVE(A3W_player_saveInterval,60); A3W_playersList_saveInterval = OR_POSITIVE(A3W_playersList_saveInterval,60); @@ -45,9 +47,11 @@ diag_log format["[INFO] config: A3W_boxSaving = %1", cfg_boxSaving_on]; diag_log format["[INFO] config: A3W_warchestSaving = %1", cfg_warchestSaving_on]; diag_log format["[INFO] config: A3W_warchestMoneySaving = %1", cfg_warchestMoneySaving_on]; diag_log format["[INFO] config: A3W_baseSaving = %1", cfg_baseSaving_on]; +diag_log format["[INFO] config: A3W_mineSaving = %1", cfg_MineSaving_on]; diag_log format["[INFO] config: A3W_objectLifetime = %1", A3W_objectLifetime]; +diag_log format["[INFO] config: A3W_mineLifetime = %1", A3W_mineLifetime]; diag_log format["[INFO] config: A3W_object_saveInterval = %1", A3W_object_saveInterval]; diag_log format["[INFO] config: A3W_player_saveInterval = %1", A3W_player_saveInterval]; diag_log format["[INFO] config: A3W_playersList_saveInterval = %1", A3W_playersList_saveInterval]; diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 9eb678d15..b44a39d88 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -86,6 +86,12 @@ sh_isWarchest = { ) }; +sh_isMine = { + ARGVX4(0,_obj,objNull,false); + init(_class,typeOf _obj); + (_class isKindOf "MineBase") +}; + sh_isAMissionVehicle = { ARGVX4(0,_obj,objNull,false); def(_mission); diff --git a/persistence/world/functions.sqf b/persistence/world/functions.sqf index 92220adb7..68548d1b4 100644 --- a/persistence/world/functions.sqf +++ b/persistence/world/functions.sqf @@ -10,11 +10,13 @@ _staticWeaponSavingOn = ["A3W_staticWeaponSaving"] call isConfigOn; _warchestSavingOn = ["A3W_warchestSaving"] call isConfigOn; _warchestMoneySavingOn = ["A3W_warchestMoneySaving"] call isConfigOn; _beaconSavingOn = ["A3W_spawnBeaconSaving"] call isConfigOn; +_mineSavingOn = ["A3W_mineSaving"] call isConfigOn; _isBox = { _this isKindOf "ReammoBox_F" }; _isStaticWeapon = { _this isKindOf "StaticWeapon" }; _isWarchest = { _this getVariable ["a3w_warchest", false] && {(_this getVariable ["side", sideUnknown]) in [WEST,EAST]} }; _isBeacon = { _this getVariable ["a3w_spawnBeacon", false] }; +_isMine = { _this isKindOf "MineBase" }; _hasInventory = { diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index b9516df62..013183dde 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -57,6 +57,10 @@ o_isSaveable = { if ([_obj] call sh_isStaticWeapon) exitWith { (cfg_staticWeaponSaving_on) }; + + if ([_obj] call sh_isMine) exitWith { + (cfg_MineSaving_on) + }; def(_locked); _locked = _obj getVariable ["objectLocked", false]; @@ -273,7 +277,7 @@ o_saveList = []; if ((o_saveList find _obj) >= 0) exitWith {}; o_saveList pushBack _obj; -};} forEach [objectList, call genObjectsArray]; +};} forEach [objectList, call genObjectsArray, minesList]; o_isInSaveList = { diff --git a/server/default_config.sqf b/server/default_config.sqf index 928c63254..4fc52a403 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -47,6 +47,8 @@ A3W_staticWeaponSaving = 1; // Save locked static weapons and their magaz A3W_warchestSaving = 0; // Save warchest objects deployed by players between server restarts (0 = no, 1 = yes) A3W_warchestMoneySaving = 0; // Save warchest team money between server restarts (0 = no, 1 = yes) A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts (0 = no, 1 = yes) +A3W_mineSaving = 1; // Save mines between server restarts (0 = no, 1 = yes) +A3W_mineLifetime = 2*24; // Maximum lifetime in hours for mines across server restarts (0 = no time limit) A3W_objectLifetime = 7*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) A3W_vehicleMaxUnusedTime = 36; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) diff --git a/server/functions/serverVars.sqf b/server/functions/serverVars.sqf index 8fd9712ba..10fb5213a 100644 --- a/server/functions/serverVars.sqf +++ b/server/functions/serverVars.sqf @@ -204,3 +204,15 @@ vehicleAddition2 = "Chemlight_yellow", "Chemlight_red" ]; + +minesList = +[ + "DemoCharge_Remote_Mag", + "SatchelCharge_Remote_Mag", + "ATMine_Range_Mag", + "ClaymoreDirectionalMine_Remote_Mag", + "APERSMine_Range_Mag", + "APERSBoundingMine_Range_Mag", + "SLAMDirectionalMine_Wire_Mag", + "APERSTripMine_Wire_Mag" +] From c4cad1346c2514b4e6aee8970a718241166ca967 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 16 Dec 2014 04:17:50 -0800 Subject: [PATCH 172/544] More code for saving mines --- persistence/lib/shFunctions.sqf | 5 +++++ persistence/world/oFunctions.sqf | 35 ++++++++++++++++++++++++++++---- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index f3123e278..a24266776 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -91,6 +91,11 @@ sh_isWarchest = { ) }; +sh_isMineClass = { + ARGVX3(0,_class,"",false); + (_class isKindOf "MineBase") +}; + sh_isMine = { ARGVX4(0,_obj,objNull,false); init(_class,typeOf _obj); diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index c5142dd8a..00a915950 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -85,6 +85,15 @@ o_isLockableObject = { +o_getMaxLifeTime = { + ARGV3(0,_class,""); + + if (isNil "_class") exitWith {A3W_objectLifeTime}; + if ([_class] call sh_isMineClass) exitWith {A3W_mineLifeTime}; + + A3W_objectLifeTime +}; + o_restoreObject = {_this spawn { //diag_log format["%1 call o_restoreObject", _this]; ARGVX3(0,_data_pair,[]); @@ -153,13 +162,22 @@ o_restoreObject = {_this spawn { diag_log format["%1(%2) is being restored.", _object_key, _class]; - if (isSCALAR(_hours_alive) && {A3W_objectLifetime > 0 && {_hours_alive > A3W_objectLifetime}}) exitWith { - diag_log format["object %1(%2) has been alive for %3 (max=%4), skipping it", _object_key, _class, _hours_alive, A3W_objectLifetime]; + def(_max_life_time); + _max_life_time = [_class] call o_getMaxLifeTime; + + if (isSCALAR(_hours_alive) && {_max_life_time > 0 && {_hours_alive > _max_life_time}}) exitWith { + diag_log format["object %1(%2) has been alive for %3 (max=%4), skipping it", _object_key, _class, _hours_alive, _max_life_time]; }; def(_obj); - _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; - _obj allowDamage false; //set damage to false immediately to avoid taking fall damage + if ([_class] call sh_isMineClass) then { + //need to create the mine here + } + else { + _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; + _obj allowDamage false; //set damage to false immediately to avoid taking fall damage + }; + if (!isOBJECT(_obj)) exitWith { diag_log format["object %1(%2) could not be created.", _object_key, _class]; }; @@ -347,6 +365,13 @@ o_fillVariables = { _variables pushBack ["mf_item_id", (_obj getVariable ["mf_item_id", nil])]; }; + if ([_obj] call sh_isMine) then { + _variables pushBack ["a3w_mine", (_obj getVariable ["a3w_mine", nil])]; + _variables pushBack ["mine_owner_uid", (_obj getVariable ["mine_owner_uid", nil])]; + _variables pushBack ["mine_owner_name", (_obj getVariable ["mine_owner_name", nil])]; + _variables pushBack ["mine_owner_side", (_obj getVariable ["mine_owner_side", nil])]; + }; + def(_r3fSide); _r3fSide = _obj getVariable "R3F_Side"; if (!isNil "_r3fSide" && {typeName _r3fSide == typeName sideUnknown}) then { @@ -489,6 +514,8 @@ o_saveAllObjects = { init(_start_time, diag_tickTime); init(_last_save, diag_tickTime); + private["_all_objects"]; + _all_objects = tracked_objects_list + allMines; { if (!isNil{[_request, _x] call o_addSaveObject}) then { From 4733fe8fad8ea4f58b8de3b9077b1b9e088878fb Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 16 Dec 2014 04:28:03 -0800 Subject: [PATCH 173/544] Fix loop, forgot to use new variable --- persistence/world/oFunctions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 00a915950..aea9eb6b8 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -531,7 +531,7 @@ o_saveAllObjects = { diag_log format["o_saveLoop: %1 objects saved in %2 ticks, save call took %3 ticks", (_bulk_size), (diag_tickTime - _start_time), (_save_end - _save_start)]; _last_save = _save_end; }; - } forEach (tracked_objects_list); + } forEach (_all_objects); if (count(_request) > 1) then { init(_save_start, diag_tickTime); From 4b8c2f8cb3681372907a675f32abe2ec61490253 Mon Sep 17 00:00:00 2001 From: Ivan Date: Tue, 16 Dec 2014 16:11:14 +0300 Subject: [PATCH 174/544] Creating mine and restoring its visibility to sides. --- persistence/world/oFunctions.sqf | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index aea9eb6b8..035a8dc26 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -171,7 +171,7 @@ o_restoreObject = {_this spawn { def(_obj); if ([_class] call sh_isMineClass) then { - //need to create the mine here + _obj = createMine[_class, _pos, [], 0]; } else { _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; @@ -192,6 +192,15 @@ o_restoreObject = {_this spawn { if (!isBOOLEAN(_objectLocked) && {[_obj] call o_isLockableObject}) then { _obj setVariable ["objectLocked", true, true]; }; + + //Mine is revealed for all players in a side. Should do sth with independent side when it's possible. + def(_mineVisibility); + _mineVisibility = _obj getVariable "mineVisibility"; + { + _side = _x call sh_strToSide; + _side revealMine _obj; + + } forEach _mineVisibility if (not([_obj] call o_isSaveable)) exitWith { From a78b69e666c45699fa58720dfab0c8353c4a9524 Mon Sep 17 00:00:00 2001 From: Ivan Date: Tue, 16 Dec 2014 16:24:08 +0300 Subject: [PATCH 175/544] Saving mine visible state to variables --- persistence/world/oFunctions.sqf | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 035a8dc26..0ea37cffc 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -197,10 +197,10 @@ o_restoreObject = {_this spawn { def(_mineVisibility); _mineVisibility = _obj getVariable "mineVisibility"; { - _side = _x call sh_strToSide; - _side revealMine _obj; + _side = _x call sh_strToSide; + _side revealMine _obj; - } forEach _mineVisibility + } forEach _mineVisibility; if (not([_obj] call o_isSaveable)) exitWith { @@ -375,10 +375,16 @@ o_fillVariables = { }; if ([_obj] call sh_isMine) then { - _variables pushBack ["a3w_mine", (_obj getVariable ["a3w_mine", nil])]; - _variables pushBack ["mine_owner_uid", (_obj getVariable ["mine_owner_uid", nil])]; - _variables pushBack ["mine_owner_name", (_obj getVariable ["mine_owner_name", nil])]; - _variables pushBack ["mine_owner_side", (_obj getVariable ["mine_owner_side", nil])]; + init(_mineVisilitiy,[]); + { + if (_obj mineDetectedBy _x) then { + _mineVisilitiy pushBack str(_x); + } + } forEach [EAST,WEST,INDEPENDENT]; + + _variables pushBack ["a3w_mine", (_obj getVariable ["a3w_mine", nil])]; + _variables pushBack ["mineVisibility", _mineVisilitiy]; + }; def(_r3fSide); From 56b69563a4dc45f420edda2bb62db0951c564c07 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 16 Dec 2014 05:35:34 -0800 Subject: [PATCH 176/544] Add safety check during restore of mineVisibility --- persistence/world/oFunctions.sqf | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 0ea37cffc..3f330a3f1 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -196,11 +196,13 @@ o_restoreObject = {_this spawn { //Mine is revealed for all players in a side. Should do sth with independent side when it's possible. def(_mineVisibility); _mineVisibility = _obj getVariable "mineVisibility"; - { - _side = _x call sh_strToSide; - _side revealMine _obj; + if (isARRAY(_mineVisibility)) then { + { + _side = _x call sh_strToSide; + _side revealMine _obj; - } forEach _mineVisibility; + } forEach _mineVisibility; + }; if (not([_obj] call o_isSaveable)) exitWith { @@ -375,15 +377,15 @@ o_fillVariables = { }; if ([_obj] call sh_isMine) then { - init(_mineVisilitiy,[]); + init(_mineVisibility,[]); { if (_obj mineDetectedBy _x) then { - _mineVisilitiy pushBack str(_x); + _mineVisibility pushBack str(_x); } } forEach [EAST,WEST,INDEPENDENT]; _variables pushBack ["a3w_mine", (_obj getVariable ["a3w_mine", nil])]; - _variables pushBack ["mineVisibility", _mineVisilitiy]; + _variables pushBack ["mineVisibility", _mineVisibility]; }; From 8a5321c7cb6b446a8e3a4c1f733bd637d4afdf94 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 16 Dec 2014 07:39:12 -0800 Subject: [PATCH 177/544] Allow sh_isMine to work with veh/ammo class names --- persistence/lib/shFunctions.sqf | 31 ++++++++++++++++++++++++++----- persistence/world/oFunctions.sqf | 30 +++++++++++++++++++++--------- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index a24266776..d27e3a208 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -91,14 +91,35 @@ sh_isWarchest = { ) }; -sh_isMineClass = { - ARGVX3(0,_class,"",false); - (_class isKindOf "MineBase") +sh_mineAmmo2Vehicle = { + ARGVX3(0,_class,""); + + if (_class isKindOf "MineBase") exitWith {_class}; + _class = (([_class, "_"] call BIS_fnc_splitString) select 0); + + //hopefully after splitting, and taking the first part, we have the actual vehicle class name + (_class) }; + sh_isMine = { - ARGVX4(0,_obj,objNull,false); - init(_class,typeOf _obj); + ARGVX2(0,_arg); + + def(_class); + if (isOBJECT(_arg)) then { + _class = typeOf _arg; + } + else { if(isSTRING(_arg)) then { + _class = _arg; + };}; + + if (isNil "_class") exitWith {false}; + + if (_class isKindOf "MineBase") exitWith {true}; + + //try conveting to the vehicle class + _class = [_class] call sh_mineAmmo2Vehicle; + (_class isKindOf "MineBase") }; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 3f330a3f1..275473558 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -41,23 +41,24 @@ o_isSaveable = { init(_class, typeOf _obj); + //diag_log format["_class = %1", _class]; + if (!(alive _obj)) exitWith {false}; if ([_obj] call sh_isSaveableVehicle) exitWith {false}; //already being saved as a vehicle, don't save it if ([_obj] call o_isInSaveList) exitWith {true}; //not sure what this "saveList" thing is ... - if ([_obj] call sh_isBeacon) exitWith { (cfg_spawnBeaconSaving_on) }; - + if ([_obj] call sh_isWarchest) exitWith { (cfg_warchestSaving_on) }; - + if ([_obj] call sh_isStaticWeapon) exitWith { (cfg_staticWeaponSaving_on) }; - + if ([_obj] call sh_isMine) exitWith { (cfg_MineSaving_on) }; @@ -66,7 +67,6 @@ o_isSaveable = { (cfg_cctvCameraSaving_on) }; - def(_locked); _locked = _obj getVariable ["objectLocked", false]; @@ -89,7 +89,7 @@ o_getMaxLifeTime = { ARGV3(0,_class,""); if (isNil "_class") exitWith {A3W_objectLifeTime}; - if ([_class] call sh_isMineClass) exitWith {A3W_mineLifeTime}; + if ([_class] call sh_isMine) exitWith {A3W_mineLifeTime}; A3W_objectLifeTime }; @@ -170,7 +170,7 @@ o_restoreObject = {_this spawn { }; def(_obj); - if ([_class] call sh_isMineClass) then { + if ([_class] call sh_isMine) then { _obj = createMine[_class, _pos, [], 0]; } else { @@ -398,11 +398,23 @@ o_fillVariables = { _variables pushBack ["objectLocked", _obj getVariable "objectLocked"]; }; +o_getVehClass = { + ARGVX3(0,_obj,objNull); + + def(_class); + _class = typeOf _obj; + + if ([_class] call sh_isMine) exitWith { + ([_class] call sh_mineAmmo2Vehicle) + }; + + _class +}; + o_addSaveObject = { ARGVX3(0,_list,[]); ARGVX3(1,_obj,objNull); - if (not([_obj] call o_isSaveable)) exitWith {}; //diag_log format["will save %1", _obj]; @@ -413,7 +425,7 @@ o_addSaveObject = { def(_damage); def(_allowDamage); - _class = typeOf _obj; + _class = [_obj] call o_getVehClass; _netId = netId _obj; _pos = ASLtoATL getPosWorld _obj; _dir = [vectorDir _obj, vectorUp _obj]; From 0e76d8bb2d62f2e6535dd7d29c4f1a9fff8bf255 Mon Sep 17 00:00:00 2001 From: Ivan Date: Tue, 16 Dec 2014 19:25:09 +0300 Subject: [PATCH 178/544] Additional check for saving only mines in minesList --- persistence/lib/shFunctions.sqf | 16 ++++++++++++++++ persistence/world/oFunctions.sqf | 2 +- server/functions/serverVars.sqf | 16 ++++++++-------- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index d27e3a208..6417647aa 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -101,6 +101,22 @@ sh_mineAmmo2Vehicle = { (_class) }; +sh_isSaveableMine ={ + ARGVX2(0,_arg); + + def(_class); + if (isOBJECT(_arg)) then { + _class = typeOf _arg; + } + else { if(isSTRING(_arg)) then { + _class = _arg; + };}; + + if (isNil "_class") exitWith {false}; + + if (_class in minesList) exitWith {true}; +}; + sh_isMine = { ARGVX2(0,_arg); diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 275473558..617f47d78 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -59,7 +59,7 @@ o_isSaveable = { (cfg_staticWeaponSaving_on) }; - if ([_obj] call sh_isMine) exitWith { + if (([_obj] call sh_isMine)&&([_obj] call sh_isSaveableMine)) exitWith { (cfg_MineSaving_on) }; diff --git a/server/functions/serverVars.sqf b/server/functions/serverVars.sqf index 10fb5213a..45676328f 100644 --- a/server/functions/serverVars.sqf +++ b/server/functions/serverVars.sqf @@ -207,12 +207,12 @@ vehicleAddition2 = minesList = [ - "DemoCharge_Remote_Mag", - "SatchelCharge_Remote_Mag", - "ATMine_Range_Mag", - "ClaymoreDirectionalMine_Remote_Mag", - "APERSMine_Range_Mag", - "APERSBoundingMine_Range_Mag", - "SLAMDirectionalMine_Wire_Mag", - "APERSTripMine_Wire_Mag" + "APERSTripMine_Wire_Ammo", + "APERSBoundingMine_Range_Ammo", + "APERSMine_Range_Ammo", + "ATMine_Range_Ammo", + "ClaymoreDirectionalMine_Remote_Ammo", + "SLAMDirectionalMine_Wire_Ammo", + "DemoCharge_Remote_Ammo", + "SatchelCharge_Remote_Ammo" ] From a3fbb3b7f59ae839214cc10d10c3397e59753c2e Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 16 Dec 2014 09:41:50 -0800 Subject: [PATCH 179/544] Set the mine dir using JIP framework --- globalCompile.sqf | 9 +++++++++ persistence/world/oFunctions.sqf | 8 +++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/globalCompile.sqf b/globalCompile.sqf index 95622d4c6..5d269effc 100644 --- a/globalCompile.sqf +++ b/globalCompile.sqf @@ -117,6 +117,15 @@ vehicleDammagedEvent = [_serverFunc, "vehicleDammagedEvent.sqf"] call mf_compile vehicleEngineEvent = [_serverFunc, "vehicleEngineEvent.sqf"] call mf_compile; vehicleHandleDamage = [_serverFunc, "vehicleHandleDamage.sqf"] call mf_compile; vehicleHitTracking = [_serverFunc, "vehicleHitTracking.sqf"] call mf_compile; +A3W_fnc_setVectorUpAndDir = { + private["_left", "_right"]; + _left = _this select 0; + _right = _this select 1; + if (isNil "_left" || {typeName _left != typeName objNull || {isNull _left}}) exitWith {}; + if (isNil "_right" || {typeName _right != typeName []}) exitWith {}; + + _left setVectorDirAndUp _right; +} call mf_compile; "pvar_switchMoveGlobal" addPublicVariableEventHandler { ((_this select 1) select 0) switchMove ((_this select 1) select 1) }; "pvar_detachTowedObject" addPublicVariableEventHandler { (_this select 1) spawn detachTowedObject }; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 617f47d78..4905c2ac8 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -214,7 +214,13 @@ o_restoreObject = {_this spawn { _obj setPosWorld ATLtoASL _pos; if (isARRAY(_dir)) then { - _obj setVectorDirAndUp _dir; + if ([_obj] call sh_isMine) then { + //special handling for mines, because setVectorUpAndDir has local effects only ... on mines + [[_obj,_dir], "A3W_fnc_setVectorUpAndDir",true, true] call BIS_fnc_MP; + } + else { + _obj setVectorDirAndUp _dir; + }; }; _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; From b7b69742016064bd53fa75a1a04b14791e70dd85 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 16 Dec 2014 12:49:32 -0800 Subject: [PATCH 180/544] Add support for town whitelist for ATMs --- addons/bank/atm_functions.sqf | 69 +++++++++++++++++++++++++++++++++- addons/bank/config.sqf | 20 +++++++++- addons/bank/misc_functions.sqf | 21 +++++++++++ 3 files changed, 108 insertions(+), 2 deletions(-) diff --git a/addons/bank/atm_functions.sqf b/addons/bank/atm_functions.sqf index 79c36a4b1..de2b2abf7 100644 --- a/addons/bank/atm_functions.sqf +++ b/addons/bank/atm_functions.sqf @@ -47,13 +47,80 @@ atm_remove_actions = { atm_actions = []; }; +atm_is_out_of_service = { + ARGVX4(0,_player,objNull,false); + + if (!isARRAY(bank_towns_whitelist)) exitWith {false}; + if (count(bank_towns_whitelist) == 0) exitWith {false}; + + def(_town); + _town = ((nearestLocations [_player,["NameCityCapital","NameCity","NameVillage"],10000]) select 0); + if (isNil "_town") exitWith {false}; + + def(_town_name); + _town_name = text _town; + if (_town_name in bank_towns_whitelist) exitWith {false}; + + (not(_town_name in bank_towns_whitelist)) +}; + +atm_nearest_town = { + ARGVX3(0,_player,objNull); + + if (!isARRAY(bank_towns_whitelist)) exitWith {}; + if (count(bank_towns_whitelist) == 0) exitWith {}; + + def(_nearest); + init(_dist,1000000); + + {if(true) then { + if (!isSTRING(_x)) exitWith {}; + + def(_loc); + _loc = [_x] call name2location; + if (isNil "_loc") exitWith {}; + + def(_pos); + _pos = (locationPosition _loc); + if (!isARRAY(_pos) || {count(_pos) < 2}) exitWith {}; + _pos set [2, 0]; + + def(_cdist); + _cdist = _player distance _pos; + if (_cdist < _dist) then { + _dist = _cdist; + _nearest = text(_loc); + }; + };} forEach bank_towns_whitelist; + + (OR(_nearest,nil)) +}; + +atm_access = { + init(_player, player); + + if ([_player] call atm_is_out_of_service) exitWith { + //find the nearest city to the player + def(_nearest_town); + _nearest_town = [_player] call atm_nearest_town; + + if (!isSTRING(_nearest_town)) exitWith { + player groupChat format ["%1, this ATM is out of service, and there is no ATM near, sorry.", (name _player)]; + }; + + player groupChat format["%1, this ATM is out of service, the nearest working ATM is in ""%2"" city", (name _player), _nearest_town]; + }; + + [player] call bank_menu_dialog; +}; + atm_add_actions = { if (count atm_actions > 0) exitWith {}; private["_player"]; _player = _this select 0; private["_action_id", "_text"]; - _action_id = _player addAction [" Access ATM", {[player] call bank_menu_dialog;}]; + _action_id = _player addAction [" Access ATM", {call atm_access}]; atm_actions = atm_actions + [_action_id]; }; diff --git a/addons/bank/config.sqf b/addons/bank/config.sqf index 1080bb3da..1c70a711a 100644 --- a/addons/bank/config.sqf +++ b/addons/bank/config.sqf @@ -1,2 +1,20 @@ bank_transaction_tax = 5; // % to tax player for transfering money -bank_maximum_balance = 250000; // maximum amount of money that player can have in bank \ No newline at end of file +bank_maximum_balance = 250000; // maximum amount of money that player can have in bank +bank_towns_whitelist = []; //list of town names that ATMs should work (empty means all towns) + +/* + For reference, here is the full list of town names in Altis/ + + There is a notification that tells the player which one is the nearest city that has an ATM. + + Note that not all cities have ATMs ... be sure to verify that the cities you put in the white-list actually have ATMs. + +["Lakka", "Stavros", "Neochori", "Alikampos", "Katalaki", "Orino", "Koroni", +"Gravia", "Poliakko", "Sagonisi", "Athira", "Agios Dionysios", "Ifestiona", +"Galati", "Telos", "Therisa", "Anthrakia", "Syrta", "Topolia", "Zaros", "Abdera", +"Frini", "Kore", "Pyrgos", "Charkia", "Kalithea", "Agia Triada", "Rodopoli", "Nifi", +"Agios Petros", "Dorida", "Ekali", "Negades", "Paros", "Agios Konstantinos", "Panochori", +"Chalkeia", "Kalochori", "Aggelochori", "Neri", "Kavala", "Oreokastro", "Panagia", "Ioannina", +"Delfinaki", "Selakano", "Feres", "Sofia", "Molos"] + +*/ diff --git a/addons/bank/misc_functions.sqf b/addons/bank/misc_functions.sqf index ac149abfd..68bf3cba7 100644 --- a/addons/bank/misc_functions.sqf +++ b/addons/bank/misc_functions.sqf @@ -66,3 +66,24 @@ player_human = { ARGVX4(0,_player,objNull,false); (alive _player && {isPlayer _player}) }; + + +name2location = { + ARGVX3(0,_name,""); + _name = toLower _name; + + def(_all); + _all = (nearestLocations [player,["NameCityCapital","NameCity","NameVillage"],1000000]); + + + def(_location); + def(_cname); + { + _cname = text(_x); + if ((toLower _cname) == _name) exitWith { + _location = _x; + } + } forEach _all; + + OR(_location,nil) +}; From 38dc7d44e8bf44b8f50025687da245a11fb6f682 Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 17 Dec 2014 16:38:17 -0800 Subject: [PATCH 181/544] Ignore legacy "Position" if world is Stratis --- persistence/players/pFunctions.sqf | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 26255be61..50197e192 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -449,11 +449,23 @@ fn_requestPlayerData = {[] spawn { } forEach _pData; //merge the world specific data, with the generic data - def(_allData); - diag_log format["_genericData = %1", OR(_genericData,nil)]; - diag_log format["_worldData = %1", OR(_worldData,nil)]; - _allData = [OR(call _genericData,[]), OR(call _worldData,[])] call hash_set_all; + _genericData = OR(call _genericData,[]); + _worldData = OR(call _worldData,[]); + + diag_log ("_genericData = " + str(_genericData)); + diag_log ("_worldData = " + str(_worldData)); + + /** + * If the world is Stratis, ignore the legacy generic "Position". + * The legacy "Position" field should only be used for "Altis" + */ + if (worldName == "Stratis") then { + [_genericData, "Position", nil] call hash_set_key; + }; + def(_allData); + _allData = [_genericData, _worldData] call hash_set_all; + diag_log ("_allData = " + str(_allData)); [_allData] call p_restoreData; };}; From a7d2c380d683450cf8b70078fa02adbb0b27adca Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Wed, 17 Dec 2014 16:54:43 -0800 Subject: [PATCH 182/544] Update spawnStoreObject.sqf setAmmoCargo --- server/functions/spawnStoreObject.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 41e88ea65..314e468be 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -207,12 +207,12 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore case (_object isKindOf "O_Heli_Transport_04_ammo_F"): { - _object setAmmoCargo 10; + _object setAmmoCargo 0; }; case ({_object isKindOf _x} count ["B_Truck_01_ammo_F", "O_Truck_02_Ammo_F", "O_Truck_03_ammo_F", "I_Truck_02_ammo_F"] > 0): { - _object setAmmoCargo 25; + _object setAmmoCargo 0; }; case ({_object isKindOf _x} count ["C_Van_01_fuel_F", "I_G_Van_01_fuel_F", "O_Heli_Transport_04_fuel_F"] > 0): From 4564a9a9257d9999a1aa5a1b91ab464b810f78dd Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 17 Dec 2014 17:54:25 -0800 Subject: [PATCH 183/544] Fix defect with APERSMine, and ATMine The ammo class names for these mines was for some reason returning true for the: isKindOf "MineBase" which caused the function for converting mine ammo to vehicle name to work incorrectly. --- persistence/lib/shFunctions.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 6417647aa..862ff5e2b 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -94,7 +94,6 @@ sh_isWarchest = { sh_mineAmmo2Vehicle = { ARGVX3(0,_class,""); - if (_class isKindOf "MineBase") exitWith {_class}; _class = (([_class, "_"] call BIS_fnc_splitString) select 0); //hopefully after splitting, and taking the first part, we have the actual vehicle class name From 7504612189c98c5e19658f6b3ee1e98894663a4b Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 17 Dec 2014 18:59:31 -0800 Subject: [PATCH 184/544] Fix issue with DemoCharge, and Satchels, and Clays --- persistence/lib/shFunctions.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 862ff5e2b..05073c660 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -130,12 +130,12 @@ sh_isMine = { if (isNil "_class") exitWith {false}; - if (_class isKindOf "MineBase") exitWith {true}; - - //try conveting to the vehicle class _class = [_class] call sh_mineAmmo2Vehicle; - (_class isKindOf "MineBase") + if (_class isKindOf "MineBase") exitWith {true}; + + //try checking on the mines list + (isARRAY(minesList) && {({(_class == ([_x] call sh_mineAmmo2Vehicle))} count minesList) > 0}) }; sh_isAMissionVehicle = { From f464148d3487cad41093d92560589adb6ac44deb Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 17 Dec 2014 20:35:21 -0800 Subject: [PATCH 185/544] Remove satchels, claymores, and demo charges Even though we can detect these, and save them to the database there is no easy way to re-create them. I added function there for re-creating them based on a KillZoneKid's article. However, it's super hacky ... so I am reluctant to do it that way. Maybe in the future, BIS will make an easier way for creating those. --- persistence/lib/shFunctions.sqf | 67 +++++++++++++++++++++++++++++---- server/functions/serverVars.sqf | 5 +-- 2 files changed, 61 insertions(+), 11 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 05073c660..5e7e03733 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -100,9 +100,10 @@ sh_mineAmmo2Vehicle = { (_class) }; + sh_isSaveableMine ={ ARGVX2(0,_arg); - + def(_class); if (isOBJECT(_arg)) then { _class = typeOf _arg; @@ -110,13 +111,68 @@ sh_isSaveableMine ={ else { if(isSTRING(_arg)) then { _class = _arg; };}; - + if (isNil "_class") exitWith {false}; - + if (_class in minesList) exitWith {true}; }; + + +/** + * KillzoneKid's way for creating Charges, and Claymores ... very hacky + */ +sh_placeCharge = { + ARGVX3(0,_charge,""); + ARGVX3(1,_position,[]); + ARGV2(2,_vectors_or_dir); + + def(_unit); + def(_group); + _group = createGroup sideLogic; + _unit = _group createUnit ["B_Soldier_F", _position,[], 0, "CAN_COLLIDE"]; + _unit hideObjectGlobal true; + if (isARRAY(_vectors_or_dir)) then { + _unit setVectorDirAndUp _vectors; + } + else { if (isSCALAR(_vectors_or_dir)) then { + _unit setDir _vectors; + };}; + + def(_muzzle); + def(_mag); + _mag = format["%1_Remote_Mag", _charge]; + _muzzle = if (["directional", _charge, true] call BIS_fnc_inString) then {"DirectionalMineRemoteMuzzle"} else {"DemoChargeMuzzle"}; + + _unit playActionNow "PutDown"; + _unit addMagazine format["%1_Remote_Mag", _charge]; + _unit selectWeapon _muzzle; + _unit fire [_muzzle, _muzzle, _mag]; + _unit setWeaponReloadingTime [_unit, _muzzle, 0]; + + + [_unit,_group] spawn { + sleep 3; + deleteVehicle (_this select 0); + deleteGroup (_this select 1); + }; +}; + +sh_isCharge = { + ARGVX2(0,_arg); + + def(_class); + if (isOBJECT(_arg)) then { + _class = typeOf _arg; + } + else { if(isSTRING(_arg)) then { + _class = _arg; + };}; + + ((["charge", _class, true] call BIS_fnc_inString) || {(["claymore", _class, true] call BIS_fnc_inString)}) +}; + sh_isMine = { ARGVX2(0,_arg); @@ -132,10 +188,7 @@ sh_isMine = { _class = [_class] call sh_mineAmmo2Vehicle; - if (_class isKindOf "MineBase") exitWith {true}; - - //try checking on the mines list - (isARRAY(minesList) && {({(_class == ([_x] call sh_mineAmmo2Vehicle))} count minesList) > 0}) + (_class isKindOf "MineBase") }; sh_isAMissionVehicle = { diff --git a/server/functions/serverVars.sqf b/server/functions/serverVars.sqf index 45676328f..eea545ff3 100644 --- a/server/functions/serverVars.sqf +++ b/server/functions/serverVars.sqf @@ -211,8 +211,5 @@ minesList = "APERSBoundingMine_Range_Ammo", "APERSMine_Range_Ammo", "ATMine_Range_Ammo", - "ClaymoreDirectionalMine_Remote_Ammo", - "SLAMDirectionalMine_Wire_Ammo", - "DemoCharge_Remote_Ammo", - "SatchelCharge_Remote_Ammo" + "SLAMDirectionalMine_Wire_Ammo" ] From fbd9e5a04829478b2bc358c89a4bf82d7e90bfa7 Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 17 Dec 2014 21:19:47 -0800 Subject: [PATCH 186/544] Minor fix for checking saveable mines --- persistence/lib/shFunctions.sqf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 5e7e03733..d8b04d093 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -112,9 +112,7 @@ sh_isSaveableMine ={ _class = _arg; };}; - if (isNil "_class") exitWith {false}; - - if (_class in minesList) exitWith {true}; + (!(isNil "_class") && {_class in minesList}) }; From baf0d11175c54f546aa62ff12070b31e3d4acd26 Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 18 Dec 2014 00:57:36 -0800 Subject: [PATCH 187/544] Don't add mines to tracked list after a restore --- persistence/world/oFunctions.sqf | 33 ++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 4905c2ac8..f2d973cbb 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -94,6 +94,18 @@ o_getMaxLifeTime = { A3W_objectLifeTime }; +o_restoreDirection = { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_vectors,[]); + + if ([_obj] call sh_isMine) exitWith { + //special handling for mines, because setVectorUpAndDir has local effects only ... on mines + [[_obj,_vectors], "A3W_fnc_setVectorUpAndDir",true, true] call BIS_fnc_MP; + }; + + _obj setVectorDirAndUp _vectors; +}; + o_restoreObject = {_this spawn { //diag_log format["%1 call o_restoreObject", _this]; ARGVX3(0,_data_pair,[]); @@ -210,19 +222,9 @@ o_restoreObject = {_this spawn { deleteVehicle _obj; }; - - _obj setPosWorld ATLtoASL _pos; - if (isARRAY(_dir)) then { - if ([_obj] call sh_isMine) then { - //special handling for mines, because setVectorUpAndDir has local effects only ... on mines - [[_obj,_dir], "A3W_fnc_setVectorUpAndDir",true, true] call BIS_fnc_MP; - } - else { - _obj setVectorDirAndUp _dir; - }; - }; - + [_obj, OR(_dir,nil)] call o_restoreDirection; + _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; if (isSCALAR(_hours_alive)) then { _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; @@ -303,8 +305,11 @@ o_restoreObject = {_this spawn { createVehicleCrew _obj; }; - //objects, warchests, and beacons - tracked_objects_list pushBack _obj; + if (not([_obj] call sh_isMine)) exitWith { //don't put mines in the tracked objects list (we use allMines) + //objects, warchests, and beacons + tracked_objects_list pushBack _obj; + }; + };}; From 74e13431e64779a1f1aef13f396ffea188015ccc Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 18 Dec 2014 02:23:03 -0800 Subject: [PATCH 188/544] Adjusted TAW view distance again. --- addons/taw_vd/fn_openTAWVD.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/taw_vd/fn_openTAWVD.sqf b/addons/taw_vd/fn_openTAWVD.sqf index c92e833c6..b8fb8d998 100644 --- a/addons/taw_vd/fn_openTAWVD.sqf +++ b/addons/taw_vd/fn_openTAWVD.sqf @@ -15,7 +15,7 @@ ctrlSetText[2942, format["%1", tawvd_object]]; //Setup the sliders { - slidersetRange [_x select 0,100,2800]; + slidersetRange [_x select 0,100,3200]; ((findDisplay 2900) displayCtrl (_x select 0)) sliderSetSpeed [100,100,100]; sliderSetPosition[_x select 0, _x select 1]; } foreach [[2901,tawvd_foot],[2911,tawvd_car],[2921,tawvd_air],[2941,tawvd_object]]; From 5912dc18944447815f1d1b5bec4de578e9b7cc5b Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 18 Dec 2014 02:29:46 -0800 Subject: [PATCH 189/544] Fix the saving of HoursAlive for mines --- persistence/world/oFunctions.sqf | 136 ++++++++++++++++++++++++------- 1 file changed, 108 insertions(+), 28 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index f2d973cbb..773b48752 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -106,6 +106,43 @@ o_restoreDirection = { _obj setVectorDirAndUp _vectors; }; + +o_restoreHoursAlive_withVars = { + ARGVX3(0,_obj,objNull); + ARGVX2(1,_hours_alive,0); + + _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; + if (!isNil "_hours_alive") then { + _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; + }; +}; + +o_restoreHoursAlive_withGlobals = { + ARGVX3(0,_obj,objNull); + ARGVX2(1,_hours_alive,0); + + def(_netId); + _netId = netId _obj; + //diag_log format["_netId = %1", _netId]; + + missionNamespace setVariable [format["%1_spawningTime",_netId], diag_tickTime]; + if (!isNil "_hours_alive") then { + missionNamespace setVariable [format["%1_hoursAlive",_netId], _hours_alive]; + }; +}; + +o_restoreHoursAlive = { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_hours_alive,0); + + if ([_obj] call sh_isMine) exitWith { + [_obj, OR(_hours_alive,nil)] call o_restoreHoursAlive_withGlobals; + }; + + [_obj, OR(_hours_alive,nil)] call o_restoreHoursAlive_withVars; + +}; + o_restoreObject = {_this spawn { //diag_log format["%1 call o_restoreObject", _this]; ARGVX3(0,_data_pair,[]); @@ -224,12 +261,8 @@ o_restoreObject = {_this spawn { _obj setPosWorld ATLtoASL _pos; [_obj, OR(_dir,nil)] call o_restoreDirection; + [_obj, OR(_hours_alive,nil)] call o_restoreHoursAlive; - _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; - if (isSCALAR(_hours_alive)) then { - _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; - }; - if (isSCALAR(_damage)) then { _obj setDamage _damage; @@ -395,9 +428,7 @@ o_fillVariables = { } } forEach [EAST,WEST,INDEPENDENT]; - _variables pushBack ["a3w_mine", (_obj getVariable ["a3w_mine", nil])]; _variables pushBack ["mineVisibility", _mineVisibility]; - }; def(_r3fSide); @@ -422,6 +453,73 @@ o_getVehClass = { _class }; +o_getHoursAlive_withVars = { + ARGVX4(0,_obj,objNull,0); + + def(_spawnTime); + def(_hoursAlive); + _spawnTime = _obj getVariable "baseSaving_spawningTime"; + _hoursAlive = _obj getVariable "baseSaving_hoursAlive"; + + if (!isSCALAR(_spawnTime)) then { + _spawnTime = diag_tickTime; + _obj setVariable ["baseSaving_spawningTime", _spawnTime, true]; + }; + + if (!isSCALAR(_hoursAlive)) then { + _hoursAlive = 0; + _obj setVariable ["baseSaving_hoursAlive", _hoursAlive, true]; + }; + + def(_totalHours); + _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; + + //diag_log format["_obj = %1, _totalHours = %2, _spawnTime = %3, _hoursAlive = %4",_obj, _totalHours, _spawnTime, _hoursAlive]; + + (_totalHours) +}; + +o_getHoursAlive_withGlobals = { + ARGVX4(0,_obj,objNull,0); + + def(_spawnTime); + def(_hoursAlive); + def(_netId); + + _netId = netId _obj; + //diag_log format["_netId = %1", _netId]; + + _spawnTime = missionNamespace getVariable format["%1_spawningTime", _netId]; + _hoursAlive = missionNamespace getVariable format["%1_hoursAlive", _netId]; + + if (!isSCALAR(_spawnTime)) then { + _spawnTime = diag_tickTime; + missionNamespace setVariable [format["%1_spawningTime", _netId], _spawnTime]; + }; + + if (!isSCALAR(_hoursAlive)) then { + _hoursAlive = 0; + missionNamespace setVariable [format["%1_hoursAlive", _netId], _hoursAlive]; + }; + + def(_totalHours); + _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; + + //diag_log format["_obj = %1, _totalHours = %2, _spawnTime = %3, _hoursAlive = %4",_obj, _totalHours, _spawnTime, _hoursAlive]; + + (_totalHours) +}; + +o_getHoursAlive = { + ARGVX4(0,_obj,objNull,0); + + if ([_obj] call sh_isMine) exitWith { + ([_obj] call o_getHoursAlive_withGlobals) + }; + + ([_obj] call o_getHoursAlive_withVars) +}; + o_addSaveObject = { ARGVX3(0,_list,[]); ARGVX3(1,_obj,objNull); @@ -435,6 +533,7 @@ o_addSaveObject = { def(_dir); def(_damage); def(_allowDamage); + def(_totalHours); _class = [_obj] call o_getVehClass; _netId = netId _obj; @@ -442,27 +541,8 @@ o_addSaveObject = { _dir = [vectorDir _obj, vectorUp _obj]; _damage = damage _obj; _allowDamage = if (_obj getVariable ["allowDamage", false]) then { 1 } else { 0 }; - - - def(_spawnTime); - def(_hoursAlive); - _spawnTime = _obj getVariable "baseSaving_spawningTime"; - _hoursAlive = _obj getVariable "baseSaving_hoursAlive"; - - if (isNil "_spawnTime") then { - _spawnTime = diag_tickTime; - _obj setVariable ["baseSaving_spawningTime", _spawnTime, true]; - }; - - if (isNil "_hoursAlive") then { - _hoursAlive = 0; - _obj setVariable ["baseSaving_hoursAlive", _hoursAlive, true]; - }; - - def(_totalHours); - _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; - - + _totalHours = [_obj] call o_getHoursAlive; + init(_variables,[]); [_obj,_variables] call o_fillVariables; From 9258936c10df3505a53c6cde636279d0a41fade8 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 18 Dec 2014 03:06:27 -0800 Subject: [PATCH 190/544] Adjusted some spelling and fixed errors. --- addons/camera/functions.sqf | 10 +++++----- addons/cctv/cctv_functions.sqf | 8 ++++---- addons/cctv/cctv_menu_functions.sqf | 6 +++--- stringtable.xml | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/addons/camera/functions.sqf b/addons/camera/functions.sqf index dd71fa295..f8fd8fffd 100644 --- a/addons/camera/functions.sqf +++ b/addons/camera/functions.sqf @@ -603,7 +603,7 @@ camera_update_nightvision = { false SetCamUseTi 0; }; case 1: { - camera_unit commandChat format["Setting camera NV "]; + camera_unit commandChat format["Setting camera NV"]; camUseNVG true; false SetCamUseTi 0; }; @@ -628,22 +628,22 @@ camera_update_nightvision = { true SetCamUseTi 3; }; case 6: { - camera_unit commandChat format["Setting camera light-orange-hot "]; + camera_unit commandChat format["Setting camera light-orange-hot"]; camUseNVG false; true SetCamUseTi 4; }; case 7: { - camera_unit commandChat format["Setting camera dark-orange-hot "]; + camera_unit commandChat format["Setting camera dark-orange-hot"]; camUseNVG false; true SetCamUseTi 5; }; case 8: { - camera_unit commandChat format["Setting camera orange body-heat "]; + camera_unit commandChat format["Setting camera orange body-heat"]; camUseNVG false; true SetCamUseTi 6; }; case 9: { - camera_unit commandChat format["Setting camera colored body-heat "]; + camera_unit commandChat format["Setting camera colored body-heat"]; camUseNVG false; true SetCamUseTi 7; }; diff --git a/addons/cctv/cctv_functions.sqf b/addons/cctv/cctv_functions.sqf index 0d63a6604..beb2e1f1a 100644 --- a/addons/cctv/cctv_functions.sqf +++ b/addons/cctv/cctv_functions.sqf @@ -3,7 +3,7 @@ #include "dikcodes.h" if (not(undefined(cctv_functions_defined))) exitWith {}; -diag_log format["Loading cctv functions ..."]; +diag_log format["Loading camera functions ..."]; cctv_camera_data_get = { @@ -197,13 +197,13 @@ cctv_security_laptop_menu = { //player groupChat format["_cameras = %1", _cameras]; if (count(_cameras) == 0) exitWith { - player groupChat format["There are no CCTV cameras currently accessible."]; + player groupChat format["There are no cameras currently accessible."]; }; private["_handler"]; _handler = [[_player, _cameras],"cctv_security_laptop_event_handler"]; [_handler,_handler,_handler] call laptop_flat_menu_setup; - player groupChat format["Use space key on the laptop keyboard,to cycle between the CCTV cameras."]; + player groupChat format["Use space-bar on laptop to cycle between cameras."]; }; @@ -337,4 +337,4 @@ cctv_base_use = { cctv_functions_defined = true; -diag_log format["Loading cctv functions complete"]; \ No newline at end of file +diag_log format["Loading camera functions complete"]; \ No newline at end of file diff --git a/addons/cctv/cctv_menu_functions.sqf b/addons/cctv/cctv_menu_functions.sqf index a89a526ed..c20bdba95 100644 --- a/addons/cctv/cctv_menu_functions.sqf +++ b/addons/cctv/cctv_menu_functions.sqf @@ -4,7 +4,7 @@ if (not(undefined(cctv_menu_functions_defined))) exitWith {}; -diag_log format["Loading cctv menu functions ..."]; +diag_log format["Loading camera menu functions ..."]; cctv_menu_result_camera_name = 0; cctv_menu_result_ac = 1; @@ -207,7 +207,7 @@ cctv_menu_setup = { _h = 0.30; _ysep = 0.006; _sep = 0.01; - _cctv_title = "CCTV MENU"; + _cctv_title = "CAMERA MENU"; private["_button_font_height","_font_family"]; _button_font_height = MENU_TITLE_FONT_HEIGHT; @@ -321,4 +321,4 @@ cctv_menu_setup = { cctv_menu_functions_defined = true; -diag_log format["Loading cctv menu functions complete"]; \ No newline at end of file +diag_log format["Loading camera menu functions complete"]; \ No newline at end of file diff --git a/stringtable.xml b/stringtable.xml index 0edc04b9d..1d530b4d4 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -103,7 +103,7 @@ A highly addictive analgesic drug derived from morphine, often used illicitly as a narcotic producing euphoria. - This is a remote networked camera that transmits the video signal via Internet Protocol (IP). + This is a remote networked camera that transmits a video signal via Internet Protocol (IP). This is a computer terminal that receives video signals from one or more remote networked cameras via Internet Protocol (IP). From 4a27506b46f3c54e55879fd8b39deccc805cafd6 Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 18 Dec 2014 03:17:23 -0800 Subject: [PATCH 191/544] Fix issue with restoring mine visibility --- persistence/world/oFunctions.sqf | 35 ++++++++++++++++++++++---------- persistence/world/oLoad.sqf | 7 +++++-- persistence/world/vLoad.sqf | 7 +++++-- 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 773b48752..c5f9e4dbe 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -143,6 +143,23 @@ o_restoreHoursAlive = { }; +o_restoreMineVisibility = { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_variables,[]); + + + def(_mineVisibility); + _mineVisibility = [_variables, "mineVisibility"] call hash_get_key; + if (!isARRAY(_mineVisibility)) exitWith {}; + + def(_side); + { + _side = _x call sh_strToSide; + _side revealMine _obj; + //diag_log format["Revealing mine %1 to %2", _obj, _side]; + } forEach _mineVisibility; +}; + o_restoreObject = {_this spawn { //diag_log format["%1 call o_restoreObject", _this]; ARGVX3(0,_data_pair,[]); @@ -173,6 +190,7 @@ o_restoreObject = {_this spawn { def(_cargo_fuel); def(_cargo_repair); def(_turret_magazines); + def(_mineVisibility); def(_key); def(_value); @@ -217,9 +235,11 @@ o_restoreObject = {_this spawn { if (isSCALAR(_hours_alive) && {_max_life_time > 0 && {_hours_alive > _max_life_time}}) exitWith { diag_log format["object %1(%2) has been alive for %3 (max=%4), skipping it", _object_key, _class, _hours_alive, _max_life_time]; }; - + + def(_isMine); + _isMine = [_class] call sh_isMine; def(_obj); - if ([_class] call sh_isMine) then { + if (_isMine) then { _obj = createMine[_class, _pos, [], 0]; } else { @@ -243,17 +263,10 @@ o_restoreObject = {_this spawn { }; //Mine is revealed for all players in a side. Should do sth with independent side when it's possible. - def(_mineVisibility); - _mineVisibility = _obj getVariable "mineVisibility"; - if (isARRAY(_mineVisibility)) then { - { - _side = _x call sh_strToSide; - _side revealMine _obj; - - } forEach _mineVisibility; + if (_isMine) then { + [_obj,_variables] call o_restoreMineVisibility; }; - if (not([_obj] call o_isSaveable)) exitWith { diag_log format["%1(%2) has been deleted, it is not saveable", _object_key, _class]; deleteVehicle _obj; diff --git a/persistence/world/oLoad.sqf b/persistence/world/oLoad.sqf index 60ba3260a..cc60eb1e8 100644 --- a/persistence/world/oLoad.sqf +++ b/persistence/world/oLoad.sqf @@ -6,11 +6,14 @@ // @file Author: micovery // @file Description: object loading -diag_log "oLoad.sqf loading ..."; if (!isServer) exitWith {}; +diag_log "oLoad.sqf loading ..."; + +#include "macro.h" +call compile preProcessFileLineNumbers "persistence\lib\hash.sqf"; +call compile preProcessFileLineNumbers "persistence\world\oFunctions.sqf"; -#include "oFunctions.sqf" init(_oScope, "Objects" call PDB_objectFileName); diff --git a/persistence/world/vLoad.sqf b/persistence/world/vLoad.sqf index 647d68984..2e697d4c3 100644 --- a/persistence/world/vLoad.sqf +++ b/persistence/world/vLoad.sqf @@ -9,8 +9,11 @@ diag_log "vLoad.sqf loading ..."; if (!isServer) exitWith {}; -#include "vFunctions.sqf" - +#include "macro.h" +call compile preProcessFileLineNumbers "persistence\lib\hash.sqf"; +call compile preProcessFileLineNumbers "persistence\world\vFunctions.sqf"; + + init(_vScope, "Vehicles" call PDB_objectFileName); def(_vIds); From d259684b614ff8cff09ed0b1e8f6664ec412cd1c Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 18 Dec 2014 18:23:09 -0800 Subject: [PATCH 192/544] Reset map-specific data as well when player dies --- persistence/players/sFunctions.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 23b60ab30..e03d56f76 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -254,6 +254,8 @@ p_addPlayerSave = { if (_reset_save) exitWith { diag_log format["Resetting stats for %1(%2), unconscious = %3, respawning = %4, alive = %5",_name,_uid,_FAR_isUnconscious, _respawnDialogActive, _alive]; _request pushBack ["PlayerSave",nil]; + _request pushBack ["PlayerSave_Stratis",nil]; + _request pushBack ["PlayerSave_Altis",nil]; true }; From 87b4039a7d8d3ab950bf9f4997f9a1d02ff08974 Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 18 Dec 2014 18:46:03 -0800 Subject: [PATCH 193/544] One mroe place to reset multi-map stats when dying --- persistence/players/s_setupPlayerDB.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index de6783e32..53346c01c 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -14,7 +14,7 @@ call compile preProcessFileLineNumbers "persistence\players\sFunctions.sqf"; fn_deletePlayerSave = { init(_scope,_this call PDB_playerFileName); - [_scope, "PlayerSave", nil] call stats_set; + [_scope, ["PlayerSave", nil], ["PlayerSave_Altis", nil], ["PlayerSave_Stratis", nil]] call stats_set; }; From aafdb92b17d9a13d2d4818b4b9504c590f65b030 Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 18 Dec 2014 19:26:46 -0800 Subject: [PATCH 194/544] Fix issue with player object on disconnect Change from "spawn" to "call" so that the player object stays valid until the disconnect event has been fully handled --- server/init.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/init.sqf b/server/init.sqf index cf165a7d5..375ccdcad 100644 --- a/server/init.sqf +++ b/server/init.sqf @@ -36,7 +36,7 @@ addMissionEventHandler ["HandleDisconnect", if (!isNil "fn_onPlayerDisconnected") then { - [_id, _uid, _name, _unit] spawn fn_onPlayerDisconnected; + [_id, _uid, _name, _unit] call fn_onPlayerDisconnected; }; false From 728f6f9c6bab5a90fcebb97c6e4f4fd67e021273 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 19 Dec 2014 00:54:16 -0800 Subject: [PATCH 195/544] Fix for new spawn beacon. --- client/items/beacon/init.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/items/beacon/init.sqf b/client/items/beacon/init.sqf index 393d4a64e..2d71bb3d6 100644 --- a/client/items/beacon/init.sqf +++ b/client/items/beacon/init.sqf @@ -13,7 +13,7 @@ MF_ITEMS_SPAWN_BEACON_PATH = _this; MF_ITEMS_SPAWN_BEACON = "spawnbeacon"; -MF_ITEMS_SPAWN_BEACON_DEPLOYED_TYPE = "Land_TentDome_F"; +MF_ITEMS_SPAWN_BEACON_DEPLOYED_TYPE = "Land_Sleeping_bag_folded_F"; MF_ITEMS_SPAWN_BEACON_STEAL_DURATION = 60; MF_ITEMS_SPAWN_BEACON_DURATION = 30; _deploy = build("deploy.sqf"); From 468ca772b901de13a299b619300c932713d5f354 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 19 Dec 2014 01:36:37 -0800 Subject: [PATCH 196/544] Fix issue on stratis, when spawing for first time --- persistence/lib/hash.sqf | 23 +++++++++++++++++++++++ persistence/players/pFunctions.sqf | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/persistence/lib/hash.sqf b/persistence/lib/hash.sqf index 8e8bc6731..5973338a1 100644 --- a/persistence/lib/hash.sqf +++ b/persistence/lib/hash.sqf @@ -110,6 +110,29 @@ hash_set_all = { (_target) }; +/** + * Delete a key from the hash (does not set it to nil), it actually removes it + */ +hash_remove_key = { + ARGVX3(0,_hash,[]); + ARGVX3(1,_key,""); + + def(_ckey); + def(_index); + { + if(true) then { + if(!isARRAY(_x)) exitWith {}; + _ckey = _x select 0; + if (!isSTRING(_ckey)) exitWith {}; + if (_ckey != _key) exitWith {}; + _index = _forEachIndex; + }; + if (!isNil "_index") exitWith {}; + } forEach _hash; + + if (isNil "_index") exitWith {}; + _hash deleteAt _index; +}; hash_loaded = true; diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 50197e192..bf0d48c67 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -460,7 +460,7 @@ fn_requestPlayerData = {[] spawn { * The legacy "Position" field should only be used for "Altis" */ if (worldName == "Stratis") then { - [_genericData, "Position", nil] call hash_set_key; + [_genericData, "Position"] call hash_remove_key; }; def(_allData); From 5c22f3744ef7a199b6042a9d4c21f7728e5c1313 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 19 Dec 2014 02:59:14 -0800 Subject: [PATCH 197/544] Fix for new spawn beacon. --- addons/beacondetector/beacondetector.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/beacondetector/beacondetector.sqf b/addons/beacondetector/beacondetector.sqf index 59d57651b..a0a3c9302 100644 --- a/addons/beacondetector/beacondetector.sqf +++ b/addons/beacondetector/beacondetector.sqf @@ -9,7 +9,7 @@ if (BeaconScanInProgress) exitWith ["You are already performing another beacon scan.", 5] call mf_notify_client; }; -_beaconsnear = nearestObjects [player, ["Land_Tentdome_F"], 100]; +_beaconsnear = nearestObjects [player, ["Land_Sleeping_bag_folded_F"], 100]; if ((count _beaconsnear) > 0 ) then { @@ -22,7 +22,7 @@ if ((count _beaconsnear) > 0 ) then while {_distance < 100} do { - _beaconsnear = nearestObjects [player, ["Land_Tentdome_F"], 100]; + _beaconsnear = nearestObjects [player, ["Land_Sleeping_bag_folded_F"], 100]; if (Beaconscanstop) exitwith { From 6fe6e640f19a297535ef694e94f226424c30d1b2 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 20 Dec 2014 17:36:22 -0800 Subject: [PATCH 198/544] Add safety check for unknown inventory items When adding/removing features, without migration, there are sometimes items (in the database) with IDs that are not valid anymore. This fix makes it so that unknown items are simply ignored. --- client/inventory/add.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/client/inventory/add.sqf b/client/inventory/add.sqf index 01528e830..600383577 100644 --- a/client/inventory/add.sqf +++ b/client/inventory/add.sqf @@ -33,6 +33,11 @@ if (count _this > 2) then { }; private ["_item", "_current"]; _item = _id call mf_inventory_get; + +if (isNil "_item" || {typeName _item != typeName []}) exitWith { + diag_log format["WARNING: Item ID ""%1"" is unknown, not adding to inventory", _id]; +}; + _current = _item select QTY; if (_abs) then { _item set [QTY, _qty]; From f0b9c5e50fb128b92b8da8484e7a4afbbfc28d7f Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 21 Dec 2014 01:39:08 -0800 Subject: [PATCH 199/544] Do not let player stay in spawn island This is safety check to make sure that if the saved location is near the spawn island, it would move the player to a new random location. Conflicts: persistence/players/pFunctions.sqf --- persistence/players/pFunctions.sqf | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index bf0d48c67..74eba6760 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -132,12 +132,22 @@ p_copy_pairs = { p_restorePosition = { ARGV3(0,_position,[]); - if (isPOS(_position)) exitWith { + def(_nearSpawn); + _nearSpawn = (isPOS(_position) && {(player distance _position) < 100}); + + if (isPOS(_position) && {not(_nearSpawn)}) exitWith { player setPosATL _position; }; - diag_log format["WARNING: No position available. Putting player at a random safe location."]; - player groupChat format["WARNING: No position available. Putting you at a random safe location."]; + if (_nearSpawn) then { + diag_log format["WARNING: Saved position is too near the spawn. Putting player at a random safe location."]; + player groupChat format["WARNING: Saved position is too near the spawn. Putting you at a random safe location."]; + } + else { + diag_log format["WARNING: No position available. Putting player at a random safe location."]; + player groupChat format["WARNING: No position available. Putting you at a random safe location."]; + }; + [nil,false] spawn spawnRandom; }; @@ -385,7 +395,7 @@ p_restoreData = { _dataValid = (isARRAY(_data) && {count(_data) > 0}); if (!_dataValid) exitWith { - format["saved data for %1 is not valid;", player] call p_log_finest; + format["Saved data for %1 is not valid;", player] call p_log_finest; playerData_resetPos = true; call _exit; }; From 028041fcb57c973b278c111ac562c84f542eb91e Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 21 Dec 2014 20:19:50 -0800 Subject: [PATCH 200/544] Make ammo saving, and restore same as vanilla --- persistence/lib/shFunctions.sqf | 87 ++++++++++++++++++++++++++++++++ persistence/world/macro.h | 19 ++++++- persistence/world/oFunctions.sqf | 29 +++++++---- persistence/world/vFunctions.sqf | 34 ++++++++----- 4 files changed, 144 insertions(+), 25 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 9eb678d15..98e30d63e 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -108,5 +108,92 @@ sh_isUAV = { +sh_getVehicleTurrets = { + def(_default); + _default = [nil,nil,nil]; + ARGVX4(0,_veh,objNull,_default); + + def(_all_turrets); + _all_turrets = [magazinesAmmo _veh, [], []]; + + def(_class); + _class = typeOf _veh; + + def(_turretMags); + def(_turretMags2); + def(_turretMags3); + + _turretMags = _all_turrets select 0; + _turretMags2 = _all_turrets select 1; + _turretMags3 = _all_turrets select 2; + + def(_hasDoorGuns); + _hasDoorGuns = isClass (configFile >> "CfgVehicles" >> _class >> "Turrets" >> "RightDoorGun"); + + def(_turrets); + _turrets = allTurrets [_veh, false]; + + if !(_class isKindOf "B_Heli_Transport_03_unarmed_F") then { + _turrets = [[-1]] + _turrets; // only add driver turret if not unarmed Huron, otherwise flares get saved twice + }; + + if (_hasDoorGuns) then { + // remove left door turret, because its mags are already returned by magazinesAmmo + { + if (_x isEqualTo [1]) exitWith { + _turrets set [_forEachIndex, 1]; + }; + } forEach _turrets; + + _turrets = _turrets - [1]; + }; + + { + _path = _x; + { + if (([_turretMags, _x, -1] call fn_getFromPairs == -1) || {_hasDoorGuns}) then { + if (_veh currentMagazineTurret _path == _x && {count _turretMags3 == 0}) then { + _turretMags3 pushBack [_x, _path, [_veh currentMagazineDetailTurret _path] call getMagazineDetailAmmo]; + } + else { + _turretMags2 pushBack [_x, _path]; + }; + }; + } forEach (_veh magazinesTurret _path); + } forEach _turrets; + + (_all_turrets) +}; + + +sh_restoreVehicleTurrets = { + ARGVX3(0,_veh,objNull); + ARGV3(1,_turret0,[]); + ARGV3(2,_turret1,[]); + ARGV3(3,_turret2,[]); + + //legacy data did not contain turret information, in that case, don't attempt to restore them + if (isNil "_turret0" && {isNil "_turret1" && {isNil "_turret3"}}) exitWith {}; + + _veh setVehicleAmmo 0; + + if (!isNil "_turret2") then { + { + _veh addMagazineTurret [_x select 0, _x select 1]; + _veh setVehicleAmmo (_x select 2); + } forEach _turret2; + }; + + if (!isNil "_turret0") then { + { _veh addMagazine _x } forEach _turret0; + }; + + if (!isNil "_turret1") then { + { _veh addMagazineTurret _x } forEach _turret1; + }; + +}; + + shFunctions_loased = true; diag_log "shFunctions loading complete"; \ No newline at end of file diff --git a/persistence/world/macro.h b/persistence/world/macro.h index 39b52e5ef..f6929bfb5 100644 --- a/persistence/world/macro.h +++ b/persistence/world/macro.h @@ -143,4 +143,21 @@ if (undefined(_this) ||{ \ #define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) -#define isClient not(isServer) || {isServer && not(isDedicated)} \ No newline at end of file +#define isClient not(isServer) || {isServer && not(isDedicated)} + +#define IMPORT_FINALIZER if (isNil "finalize") then { \ + finalizer = { \ + if (isNil "_this" || {typeName _this != typeName {}}) exitWith {}; \ + \ + private["_str_data"]; \ + _str_data = toArray str(_this); \ + \ + private["_space"]; \ + _space = (toArray " ") select 0;\ + _str_data set [0, _space]; \ + _str_data set [((count _str_data)-1), _space]; \ + \ + (compileFinal (toString _str_data)) \ + }; \ + finalizer = finalizer call finalizer; \ +}; \ No newline at end of file diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index b9516df62..a57714841 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -105,7 +105,9 @@ o_restoreObject = {_this spawn { def(_cargo_ammo); def(_cargo_fuel); def(_cargo_repair); - def(_turret_magazines); + def(_turret0); + def(_turret1); + def(_turret2); def(_key); def(_value); @@ -129,7 +131,9 @@ o_restoreObject = {_this spawn { case "RepairCargo": { _cargo_repair = OR(_value,nil);}; case "HoursAlive": { _hours_alive = OR(_value,nil);}; case "Variables": { _variables = OR(_value,nil);}; - case "TurretMagazines": { _turret_magazines = OR(_value,nil);}; + case "TurretMagazines": { _turret0 = OR_ARRAY(_value,nil);}; + case "TurretMagazines2": { _turret1 = OR_ARRAY(_value,nil);}; + case "TurretMagazines3": { _turret2 = OR_ARRAY(_value,nil);}; }; } forEach _object_data; @@ -232,10 +236,8 @@ o_restoreObject = {_this spawn { { _obj addMagazineCargoGlobal _x } forEach _cargo_magazines; }; - if (isARRAY(_turret_magazines)) then { - { _obj addMagazine _x } forEach _turret_magazines; - }; - + [_obj, OR(_turret0,nil), OR(_turret1,nil), OR(_turret2,nil)] call sh_restoreVehicleTurrets; + if (isSCALAR(_cargo_ammo)) then { _obj setAmmoCargo _cargo_ammo; }; @@ -391,11 +393,16 @@ o_addSaveObject = { _items = (getItemCargo _obj) call cargoToPairs; _backpacks = (getBackpackCargo _obj) call cargoToPairs; }; - - init(_turretMags,[]); + + def(_all_turrets); + _all_turrets = [nil,nil,nil]; if ((cfg_staticWeaponSaving_on) && {[_obj] call sh_isStaticWeapon}) then { - _turretMags = magazinesAmmo _obj; + _all_turrets = [_obj] call sh_getVehicleTurrets; }; + init(_turret0,_all_turrets select 0); + init(_turret1,_all_turrets select 1); + init(_turret2,_all_turrets select 2); + init(_ammoCargo,getAmmoCargo _obj); init(_fuelCargo,getFuelCargo _obj); @@ -423,7 +430,9 @@ o_addSaveObject = { ["Magazines", _magazines], ["Items", _items], ["Backpacks", _backpacks], - ["TurretMagazines", _turretMags], + ["TurretMagazines", OR(_turret0,nil)], + ["TurretMagazines2", OR(_turret1,nil)], + ["TurretMagazines3", OR(_turret2,nil)], ["AmmoCargo", _ammoCargo], ["FuelCargo", _fuelCargo], ["RepairCargo", _repairCargo] diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index d1d252a93..8056cf3d1 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -5,7 +5,6 @@ diag_log "vFunctions.sqf loading ..."; call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; - v_restoreVehicle = {_this spawn { //diag_log format["%1 call v_restoreVehicle", _this]; ARGVX3(0,_data_pair,[]); @@ -33,13 +32,14 @@ v_restoreVehicle = {_this spawn { def(_cargo_magazines); def(_cargo_backpacks); def(_cargo_items); - def(_turret_magazines); def(_cargo_ammo); def(_cargo_fuel); def(_cargo_repair); def(_fuel); def(_hitPoints); - + def(_turret0); + def(_turret1); + def(_turret2); def(_key); @@ -63,7 +63,9 @@ v_restoreVehicle = {_this spawn { case "AmmoCargo": { _cargo_ammo = OR(_value,nil);}; case "FuelCargo": { _cargo_fuel = OR(_value,nil);}; case "RepairCargo": { _cargo_repair = OR(_value,nil);}; - //case "TurretMagazines": { _turret_magazines = OR(_value,nil);}; + case "TurretMagazines": { _turret0 = OR_ARRAY(_value,nil);}; + case "TurretMagazines2": { _turret1 = OR_ARRAY(_value,nil);}; + case "TurretMagazines3": { _turret2 = OR_ARRAY(_value,nil);}; case "Fuel": { _fuel = OR(_value,nil);}; case "Hitpoints": { _hitPoints = OR(_value,nil);}; }; @@ -160,7 +162,8 @@ v_restoreVehicle = {_this spawn { clearMagazineCargoGlobal _obj; clearItemCargoGlobal _obj; clearBackpackCargoGlobal _obj; - //_obj setVehicleAmmo 0; + + [_obj, OR(_turret0,nil), OR(_turret1,nil), OR(_turret2,nil)] call sh_restoreVehicleTurrets; if (isARRAY(_cargo_weapons)) then { { _obj addWeaponCargoGlobal _x } forEach _cargo_weapons; @@ -182,10 +185,6 @@ v_restoreVehicle = {_this spawn { { _obj addMagazineCargoGlobal _x } forEach _cargo_magazines; }; - if (isARRAY(_turret_magazines)) then { - { _obj addMagazine _x } forEach _turret_magazines; - }; - if (isSCALAR(_cargo_ammo)) then { _obj setAmmoCargo _cargo_ammo; }; @@ -408,6 +407,7 @@ v_setupVehicleSavedVariables = { }; + v_addSaveVehicle = { ARGVX3(0,_list,[]); ARGVX3(1,_obj,objNull); @@ -449,10 +449,14 @@ v_addSaveVehicle = { _items = (getItemCargo _obj) call cargoToPairs; _backpacks = (getBackpackCargo _obj) call cargoToPairs; - init(_turretMags,[]); - if (cfg_staticWeaponSaving_on && {[_obj] call sh_isStaticWeapon}) then { - _turretMags = magazinesAmmo _obj; - }; + + + def(_all_turrets); + _all_turrets = [_obj] call sh_getVehicleTurrets; + init(_turret0,_all_turrets select 0); + init(_turret1,_all_turrets select 1); + init(_turret2,_all_turrets select 2); + init(_hitPoints,[]); { @@ -496,7 +500,9 @@ v_addSaveVehicle = { ["Magazines", _magazines], ["Items", _items], ["Backpacks", _backpacks], - ["TurretMagazines", _turretMags], + ["TurretMagazines", OR(_turret0,nil)], + ["TurretMagazines2", OR(_turret1,nil)], + ["TurretMagazines3", OR(_turret2,nil)], ["AmmoCargo", _ammoCargo], ["FuelCargo", _fuelCargo], ["RepairCargo", _repairCargo], From 89caadcb1eec505e91ded0d92842e3d962d148d6 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 21 Dec 2014 23:08:52 -0800 Subject: [PATCH 201/544] Added mines to store radius block. --- client/functions/firstSpawn.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/functions/firstSpawn.sqf b/client/functions/firstSpawn.sqf index 1a31d8bc5..f5ef06b7a 100644 --- a/client/functions/firstSpawn.sqf +++ b/client/functions/firstSpawn.sqf @@ -125,7 +125,7 @@ if (["A3W_combatAbortDelay", 0] call getPublicVar > 0) then { _ammo = _this select 4; - if ({_ammo isKindOf _x} count ["PipeBombBase", "ClaymoreDirectionalMine_Remote_Ammo"] > 0) then + if ({_ammo isKindOf _x} count ["PipeBombBase", "ClaymoreDirectionalMine_Remote_Ammo", "APERSTripMine_Wire_Ammo", "APERSBoundingMine_Range_Ammo", "APERSMine_Range_Ammo", "SLAMDirectionalMine_Wire_Ammo", "ATMine_Range_Ammo"] > 0) then { _mag = _this select 5; _bomb = _this select 6; @@ -137,7 +137,7 @@ if (["A3W_combatAbortDelay", 0] call getPublicVar > 0) then deleteVehicle _bomb; player addMagazine _mag; playSound "FD_CP_Not_Clear_F"; - titleText [format ["You are not allowed to place remote explosives within %1m of a store.\nThe explosive has been re-added to your inventory.", _minDist], "PLAIN DOWN", 0.5]; + titleText [format ["You are not allowed to place explosives within %1m of a store.\nThe explosive has been re-added to your inventory.", _minDist], "PLAIN DOWN", 0.5]; }; } forEach entities "CAManBase"; }; From 9694a42a48cb74de24f792a0e9f4dc797b708674 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 21 Dec 2014 23:57:35 -0800 Subject: [PATCH 202/544] Drop drugs around camp-fire when completing town invasion --- .../sideMissions/mission_TownInvasion.sqf | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/server/missions/sideMissions/mission_TownInvasion.sqf b/server/missions/sideMissions/mission_TownInvasion.sqf index 21596363d..127d9bccb 100644 --- a/server/missions/sideMissions/mission_TownInvasion.sqf +++ b/server/missions/sideMissions/mission_TownInvasion.sqf @@ -32,6 +32,7 @@ _setupVars = if (random 1 < 0.75) then { _fillEvenly = true } else { _fillEvenly = false }; }; + _setupObjects = { // spawn some crates in the middle of town (Town marker position) @@ -39,6 +40,7 @@ _setupObjects = _box1 setDir random 360; [_box1, "mission_USSpecial"] call fn_refillbox; + _box2 = createVehicle ["Box_East_Wps_F", _missionPos, [], 5, "None"]; _box2 setDir random 360; [_box2, "mission_USLaunchers"] call fn_refillbox; @@ -52,6 +54,7 @@ _setupObjects = _chair2 setDir random 180; _cFire1 = createVehicle ["Campfire_burning_F", _missionPos, [], 2, "None"]; + townInvasionDrugPos = getPos _cFire1; { _x setVariable ["R3F_LOG_disabled", true, true] } forEach [_box1, _box2]; @@ -69,6 +72,24 @@ _waitUntilMarkerPos = nil; _waitUntilExec = nil; _waitUntilCondition = nil; +_drop_item = { + private["_item", "_pos"]; + _item = _this select 0; + _pos = _this select 1; + + if (isNil "_item" || {typeName _item != typeName [] || {count(_item) != 2}}) exitWith {}; + if (isNil "_pos" || {typeName _pos != typeName [] || {count(_pos) != 3}}) exitWith {}; + + private["_id", "_class"]; + _id = _item select 0; + _class = _item select 1; + + private["_obj"]; + _obj = createVehicle [_class, _pos, [], 5, "None"]; + _obj setPos ([_pos, [[2 + random 3,0,0], random 360] call BIS_fnc_rotateVector2D] call BIS_fnc_vectorAdd); + _obj setVariable ["mf_item_id", _id, true]; +}; + _failedExec = { // Mission failed @@ -80,7 +101,18 @@ _successExec = // Mission completed { _x setVariable ["R3F_LOG_disabled", false, true] } forEach [_box1, _box2]; - _successHintMessage = format ["Nice work!

%2
is a safe place again!
Their belongings are now yours to take!", sideMissionColor, _townName]; + for "_i" from 1 to 8 do { + private["_item"]; + _item = [ + ["lsd", "Land_WaterPurificationTablets_F"], + ["marijuana", "Land_VitaminBottle_F"], + ["cocaine","Land_PowderedMilk_F"], + ["heroin", "Land_PainKillers_F"] + ] call BIS_fnc_selectRandom; + [_item, townInvasionDrugPos] call _drop_item; + }; + + _successHintMessage = format ["Nice work!

%2
is a safe place again!
Their belongings, and drugs are now yours to take!", sideMissionColor, _townName]; { deleteVehicle _x } forEach [_tent1, _chair1, _chair2, _cFire1]; }; From 46c2e9bb34dc9f1bf17edc6298f25248275c00b0 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 23 Dec 2014 00:47:42 -0800 Subject: [PATCH 203/544] Modify order in which weapon items are restored Sometimes when player has a lot of gear, and weapon items are restored last ... the items do not get added to the weapon. This causes grief for players who buy expensive items like the night stalker scope. This fix makes it so that weapon items are added as early as possible. Also changed some logging calls so that the RPT shows all data that came from the database for player information. --- persistence/players/pFunctions.sqf | 64 ++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 8 deletions(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 74eba6760..58374cbe2 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -151,7 +151,33 @@ p_restorePosition = { [nil,false] spawn spawnRandom; }; +p_restorePrimaryWeaponItems = { + ARGVX3(0,_items,[]); + { + if (_x != "") then { + player addPrimaryWeaponItem _x; + }; + } forEach _items +}; + +p_restoreSecondaryWeaponItems = { + ARGVX3(0,_items,[]); + { + if (_x != "") then { + player addSecondaryWeaponItem _x; + }; + } forEach _items; +}; +p_restoreHandgunWeaponItems = { + ARGVX3(0,_items,[]); + + { + if (_x != "") then { + player addHandgunItem _x; + }; + } forEach _items; +}; fn_applyPlayerData = { ARGVX3(0,_data,[]); @@ -170,6 +196,10 @@ fn_applyPlayerData = { def(_vest_class); def(_vehicle_key); def(_position); + def(_primary_weapon_items); + def(_secondary_weapon_items); + def(_handgun_weapon_items); + //iterate through the data, and extract the hash variables into local variables { @@ -189,16 +219,21 @@ fn_applyPlayerData = { case "Vest": { _vest_class = _value}; case "InVehicle": { _vehicle_key = _value}; case "Position": {if (isPOS(_value)) then {_position = _value;}}; + case "PrimaryWeaponItems": {_primary_weapon_items = OR_ARRAY(_value,nil)}; + case "SecondaryWeaponItems": {_secondary_weapon_items = OR_ARRAY(_value,nil)}; + case "HandgunItems": {_handgun_weapon_items = OR_ARRAY(_value,nil)}; }; } forEach _data; - //Restore the weapons, backpack, uniform, and vest in correct order player addBackpack "B_Carryall_Base"; // add a temporary backpack for holding loaded weapon magazines [OR(_loaded_magazines,nil)] call p_restoreLoadedMagazines; [OR(_primary_weapon,nil)] call p_restorePrimaryWeapon; [OR(_secondary_weapon,nil)] call p_restoreSecondaryWeapon; [OR(_handgun_weapon,nil)] call p_restoreHandgunWeapon; + [OR(_primary_weapon_items,nil)] call p_restorePrimaryWeaponItems; + [OR(_secondary_weapon_items,nil)] call p_restoreSecondaryWeaponItems; + [OR(_handgun_weapon_items,nil)] call p_restoreSecondaryWeaponItems; removeBackpack player; //remove the temporary backpack //Restore backpack, and stuff inside @@ -251,9 +286,6 @@ fn_applyPlayerData = { }; }; }; - case "PrimaryWeaponItems": { { if (_x != "") then { player addPrimaryWeaponItem _x } } forEach (OR(_value,[])) }; - case "SecondaryWeaponItems": { { if (_x != "") then { player addSecondaryWeaponItem _x } } forEach (OR(_value,[])) }; - case "HandgunItems": { { if (_x != "") then { player addHandgunItem _x } } forEach (OR(_value,[])) }; case "AssignedItems": { { if ([player, _x] call isAssignableBinocular) then { @@ -412,6 +444,18 @@ p_getScope = { (format["%1%2",PDB_PlayerFileID,_id]) }; +p_dumpHash = { + ARGVX3(0,_data,[]); + + def(_key); + def(_value); + { + _key = _x select 0; + _value = _x select 1; + diag_log (_key + " = " + str(OR(_value,nil))); + } forEach _data; +}; + fn_requestPlayerData = {[] spawn { init(_player,player); init(_uid,getPlayerUID player); @@ -462,9 +506,6 @@ fn_requestPlayerData = {[] spawn { _genericData = OR(call _genericData,[]); _worldData = OR(call _worldData,[]); - diag_log ("_genericData = " + str(_genericData)); - diag_log ("_worldData = " + str(_worldData)); - /** * If the world is Stratis, ignore the legacy generic "Position". * The legacy "Position" field should only be used for "Altis" @@ -473,9 +514,16 @@ fn_requestPlayerData = {[] spawn { [_genericData, "Position"] call hash_remove_key; }; + diag_log "#############################################"; + diag_log "Dumping _genericData"; + [_genericData] call p_dumpHash; + + diag_log "#############################################"; + diag_log "Dumping _worldData"; + [_worldData] call p_dumpHash; + def(_allData); _allData = [_genericData, _worldData] call hash_set_all; - diag_log ("_allData = " + str(_allData)); [_allData] call p_restoreData; };}; From f04ea7e5163e223f8e3ef5dcc36a8d4b9ca972f1 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 23 Dec 2014 01:05:42 -0800 Subject: [PATCH 204/544] Fix booboo, call the correct function --- persistence/players/pFunctions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 58374cbe2..7e1207559 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -233,7 +233,7 @@ fn_applyPlayerData = { [OR(_handgun_weapon,nil)] call p_restoreHandgunWeapon; [OR(_primary_weapon_items,nil)] call p_restorePrimaryWeaponItems; [OR(_secondary_weapon_items,nil)] call p_restoreSecondaryWeaponItems; - [OR(_handgun_weapon_items,nil)] call p_restoreSecondaryWeaponItems; + [OR(_handgun_weapon_items,nil)] call p_restoreHandgunWeaponItems; removeBackpack player; //remove the temporary backpack //Restore backpack, and stuff inside From 964c0ec1f530d309e4cbb20a4f578190391350ea Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 23 Dec 2014 14:02:38 -0800 Subject: [PATCH 205/544] FIx issue with fully empty first turret If the first turet is fully empty (on mortars), then the magazines appear under TurretMagazines2, and when it's restored, the mortar is fully re-stocked. --- persistence/lib/shFunctions.sqf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 98e30d63e..0850110b6 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -148,8 +148,11 @@ sh_getVehicleTurrets = { _turrets = _turrets - [1]; }; - { + + {if (true) then { _path = _x; + if (str(_path) == "[0]") exitWith {}; //don't look at the mags from the first turret again + { if (([_turretMags, _x, -1] call fn_getFromPairs == -1) || {_hasDoorGuns}) then { if (_veh currentMagazineTurret _path == _x && {count _turretMags3 == 0}) then { @@ -160,7 +163,7 @@ sh_getVehicleTurrets = { }; }; } forEach (_veh magazinesTurret _path); - } forEach _turrets; + }} forEach _turrets; (_all_turrets) }; From 148fbe404cd1e6bd128e43f62af39dd3dccb51b1 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 23 Dec 2014 16:03:40 -0800 Subject: [PATCH 206/544] Adjusted the AI load out. --- .../createUnits/customGroup.sqf | 30 ++++++++++++------- .../createUnits/customGroup2.sqf | 5 ---- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/server/missions/factoryMethods/createUnits/customGroup.sqf b/server/missions/factoryMethods/createUnits/customGroup.sqf index 0d3fe8618..36795bfa7 100644 --- a/server/missions/factoryMethods/createUnits/customGroup.sqf +++ b/server/missions/factoryMethods/createUnits/customGroup.sqf @@ -34,6 +34,8 @@ grenadier_loadout = { _unit addMagazine "30Rnd_65x39_caseless_mag"; _unit addMagazine "1Rnd_HE_Grenade_shell"; _unit addMagazine "1Rnd_HE_Grenade_shell"; + _unit addItem "NVGoggles"; + _unit assignItem "NVGoggles"; }; support_loadout = { @@ -48,6 +50,8 @@ support_loadout = { _unit addUniform "U_IG_Guerilla1_1"; _unit addMagazine "200Rnd_65x39_cased_Box"; _unit addItem "FirstAidKit"; + _unit addItem "NVGoggles"; + _unit assignItem "NVGoggles"; }; sniper_loadout = { @@ -69,6 +73,8 @@ sniper_loadout = { _unit assignItem "ItemGps"; _unit addItem "ItemCompass"; _unit assignItem "ItemCompass"; + _unit addItem "NVGoggles"; + _unit assignItem "NVGoggles"; }; aa_loadout = { @@ -85,6 +91,8 @@ aa_loadout = { _unit addMagazine "Titan_AA"; _unit addWeapon "launch_Titan_F"; _unit addMagazine "Titan_AA"; + _unit addItem "NVGoggles"; + _unit assignItem "NVGoggles"; }; at_loadout = { @@ -102,6 +110,8 @@ at_loadout = { _unit addWeapon "launch_Titan_short_F"; _unit addMagazine "Titan_AT"; _unit addMagazine "Titan_AT"; + _unit addItem "NVGoggles"; + _unit assignItem "NVGoggles"; }; leader_loadout = { @@ -122,6 +132,8 @@ leader_loadout = { _unit assignItem "ItemGps"; _unit addItem "ItemCompass"; _unit assignItem "ItemCompass"; + _unit addItem "NVGoggles"; + _unit assignItem "NVGoggles"; }; rifleman_loadout = { @@ -129,13 +141,14 @@ rifleman_loadout = { _unit = _this; _unit addUniform "U_IG_Guerilla2_3"; - _unit addMagazine "20Rnd_762x51_Mag"; - _unit addMagazine "20Rnd_762x51_Mag"; + _unit addMagazine "30Rnd_65x39_caseless_mag_Tracer"; _unit addBackpack "B_AssaultPack_rgr"; - _unit addMagazine "20Rnd_762x51_Mag"; - _unit addMagazine "20Rnd_762x51_Mag"; - _unit addWeapon "srifle_EBR_ARCO_pointer_snds_F"; - _unit addMagazine "20Rnd_762x51_Mag"; + _unit addMagazine "30Rnd_65x39_caseless_mag_Tracer"; + _unit addMagazine "30Rnd_65x39_caseless_mag_Tracer"; + _unit addWeapon "arifle_MX_ACO_F"; + _unit addMagazine "30Rnd_65x39_caseless_mag_Tracer"; + _unit addPrimaryWeaponItem "acc_flashlight"; + _unit enablegunlights "forceOn"; }; weighted_list = @@ -191,8 +204,6 @@ for "_i" from 1 to _nbUnits do removeGoggles _unit; _unit addVest "V_PlateCarrier1_rgr"; - _unit addItem "NVGoggles"; - _unit assignItem "NVGoggles"; _unit addItem "FirstAidKit"; if (_unit == leader _group) then { @@ -204,9 +215,6 @@ for "_i" from 1 to _nbUnits do _loadout = call get_weighted_loadout; _unit call _loadout; }; - - _unit addPrimaryWeaponItem "acc_flashlight"; - _unit enablegunlights "forceOn"; _unit addRating 1e11; _unit spawn addMilCap; diff --git a/server/missions/factoryMethods/createUnits/customGroup2.sqf b/server/missions/factoryMethods/createUnits/customGroup2.sqf index 0547e106a..476ea75f7 100644 --- a/server/missions/factoryMethods/createUnits/customGroup2.sqf +++ b/server/missions/factoryMethods/createUnits/customGroup2.sqf @@ -40,11 +40,6 @@ for "_i" from 1 to _nbUnits do removeHeadgear _unit; removeGoggles _unit; - _unit addVest "V_HarnessOSpec_gry"; - _unit addMagazine "30Rnd_556x45_Stanag"; - _unit addMagazine "30Rnd_556x45_Stanag"; - _unit addMagazine "30Rnd_556x45_Stanag"; - _unit addVest "V_PlateCarrier1_rgr"; _unit addItem "FirstAidKit"; From 68ca9920d3a5744885d6707a84185622246cbc83 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 23 Dec 2014 16:25:34 -0800 Subject: [PATCH 207/544] Small changes. --- server/default_config.sqf | 2 +- server/missions/setupMissionArrays.sqf | 16 ++++++++-------- storeConfig.sqf | 12 ++++++------ 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/server/default_config.sqf b/server/default_config.sqf index e4425f181..2d0015502 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -68,7 +68,7 @@ A3W_playersList_saveInterval = 120; // Number of seconds between player list sav // List of classes for vehicles that are saveable // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; -A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore +A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings diff --git a/server/missions/setupMissionArrays.sqf b/server/missions/setupMissionArrays.sqf index f438dbffd..b22fbbe07 100644 --- a/server/missions/setupMissionArrays.sqf +++ b/server/missions/setupMissionArrays.sqf @@ -9,10 +9,10 @@ if (!isServer) exitWith {}; MainMissions = [ // Mission filename, weight - ["mission_ArmedDiversquad", 1], - ["mission_Coastal_Convoy", 1], + ["mission_ArmedDiversquad", 0.1], + ["mission_Coastal_Convoy", 0.5], ["mission_Convoy", 1], - ["mission_HostileHeliFormation", 0.5], + ["mission_HostileHeliFormation", 0.1], ["mission_APC", 1], ["mission_MBT", 1], ["mission_LightArmVeh", 1], @@ -22,20 +22,20 @@ MainMissions = SideMissions = [ - ["mission_HostileHelicopter", 0.5], - ["mission_MiniConvoy", 1], + ["mission_HostileHelicopter", 0.1], + ["mission_MiniConvoy", 0.5], ["mission_SunkenSupplies", 0.1], ["mission_TownInvasion", 2], //["mission_AirWreck", 1.5], //["mission_WepCache", 1.5], - ["mission_Outpost", 3], - ["mission_Truck", 1] + ["mission_Outpost", 2], + ["mission_Truck", 0.5] ]; MoneyMissions = [ ["mission_MoneyShipment", 1], - ["mission_SunkenTreasure", 1] + ["mission_SunkenTreasure", 0.5] ]; MainMissions = [MainMissions, [["A3W_heliPatrolMissions", ["mission_Coastal_Convoy", "mission_HostileHeliFormation"]], ["A3W_underWaterMissions", ["mission_ArmedDiversquad"]]]] call removeDisabledMissions; diff --git a/storeConfig.sqf b/storeConfig.sqf index 042dcb03c..bc35e76ff 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -634,12 +634,12 @@ armoredArray = compileFinal str ["Hunter", "B_MRAP_01_F", 4000, "vehicle"], ["Hunter HMG", "B_MRAP_01_hmg_F", 15000, "vehicle"], ["Hunter GMG", "B_MRAP_01_gmg_F", 17500, "vehicle"], - ["Ifrit", "O_MRAP_02_F", 4000, "vehicle"], - ["Ifrit HMG", "O_MRAP_02_hmg_F", 15000, "vehicle"], - ["Ifrit GMG", "O_MRAP_02_gmg_F", 17500, "vehicle"], - ["Strider", "I_MRAP_03_F", 4000, "vehicle"], - ["Strider HMG", "I_MRAP_03_hmg_F", 15000, "vehicle"], - ["Strider GMG", "I_MRAP_03_gmg_F", 17500, "vehicle"], + ["Ifrit", "O_MRAP_02_F", 4500, "vehicle"], + ["Ifrit HMG", "O_MRAP_02_hmg_F", 15500, "vehicle"], + ["Ifrit GMG", "O_MRAP_02_gmg_F", 18000, "vehicle"], + ["Strider", "I_MRAP_03_F", 5000, "vehicle"], + ["Strider HMG", "I_MRAP_03_hmg_F", 16000, "vehicle"], + ["Strider GMG", "I_MRAP_03_gmg_F", 18500, "vehicle"], ["MSE-3 Marid", "O_APC_Wheeled_02_rcws_F", 22500, "vehicle"], ["AMV-7 Marshall", "B_APC_Wheeled_01_cannon_F", 27500, "vehicle"], ["AFV-4 Gorgon", "I_APC_Wheeled_03_cannon_F", 30000, "vehicle"] From 2ff7b8522115b2758205991d2d7bd058f60a01d2 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 23 Dec 2014 18:31:28 -0800 Subject: [PATCH 208/544] Small changes to default config. --- server/default_config.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/default_config.sqf b/server/default_config.sqf index 2d0015502..dafa79585 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -69,7 +69,7 @@ A3W_playersList_saveInterval = 120; // Number of seconds between player list sav // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore -A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "I_Heli_Transport_02_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought +A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) From f63de703a2010fc54cf592356f09318806fc569e Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 23 Dec 2014 18:34:49 -0800 Subject: [PATCH 209/544] Removed all but 2 missiles on UAVs. --- server/functions/spawnStoreObject.sqf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 314e468be..cad3e340c 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -239,6 +239,12 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore { _object setRepairCargo 25; }; + + case ({_object isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0): + { + _object removeMagazineTurret ["6Rnd_LG_scalpel",[0]]; + _object addMagazineTurret ["2Rnd_LG_scalpel",[0]]; + }; }; if (_object getVariable ["A3W_purchasedVehicle", false] && !isNil "fn_manualVehicleSave") then From 7e92296954ac7e39757f5462cef10c238d236263 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 27 Dec 2014 04:53:25 -0800 Subject: [PATCH 210/544] Add private storage system Supports: - Markers (on/off) - City whitelist - Customizable box models - Customizable container capacity --- addons/storage/config.sqf | 22 +++ addons/storage/functions.sqf | 2 + addons/storage/futura.h | 90 ++++++++++ addons/storage/icons/storage.paa | Bin 0 -> 1522 bytes addons/storage/macro.h | 146 ++++++++++++++++ addons/storage/ps_functions.sqf | 276 +++++++++++++++++++++++++++++++ init.sqf | 1 + 7 files changed, 537 insertions(+) create mode 100644 addons/storage/config.sqf create mode 100644 addons/storage/functions.sqf create mode 100644 addons/storage/futura.h create mode 100644 addons/storage/icons/storage.paa create mode 100644 addons/storage/macro.h create mode 100644 addons/storage/ps_functions.sqf diff --git a/addons/storage/config.sqf b/addons/storage/config.sqf new file mode 100644 index 000000000..cf208ab96 --- /dev/null +++ b/addons/storage/config.sqf @@ -0,0 +1,22 @@ + +//List of cities where private storage boxes are available (empty or unset means all cities) +ps_cities_whitelist = ["Lakka", "Kavala", "Athira", "Paros", "Chalkeia"]; + +//List of models to use for private storage boxes (must have at least one) +ps_box_models = ["Land_PaperBox_open_full_F", "Land_Pallet_MilBoxes_F", "Land_PaperBox_open_empty_F", "Land_PaperBox_closed_F"]; + +//whether or not to show map markers for private storage boxes +ps_markers_enabled = true; + +//shape, type, color, size, text (for map markers, if enabled) +ps_markers_properties = ["ICON", "mil_dot", "ColorUNKNOWN", [1.2,1.2], "Storage"]; + + +//Arma 3 Storage container class (see list below) +/* + * Supply0, Supply1, Supply2, Supply3, Supply4, Supply5, Supply6, Supply7, Supply8, Supply9, Supply10, Supply20 + * Supply30, Supply40, Supply50, Supply60, Supply70, Supply80, Supply90, Supply100, Supply110, Supply120, Supply130 + * Supply140, Supply150, Supply160, Supply170, Supply180, Supply190, Supply200, Supply210, Supply220, Supply230, Supply240 + * Supply250, Supply300, Supply350, Supply380, Supply400, Supply420, Supply440, Supply450, Supply480 + */ +ps_container_class = "Supply200"; \ No newline at end of file diff --git a/addons/storage/functions.sqf b/addons/storage/functions.sqf new file mode 100644 index 000000000..a81e2a46f --- /dev/null +++ b/addons/storage/functions.sqf @@ -0,0 +1,2 @@ +call compile preprocessFileLineNumbers "addons\storage\config.sqf"; +call compile preprocessFileLineNumbers "addons\storage\ps_functions.sqf"; diff --git a/addons/storage/futura.h b/addons/storage/futura.h new file mode 100644 index 000000000..463b78cb7 --- /dev/null +++ b/addons/storage/futura.h @@ -0,0 +1,90 @@ +// Futura ui +#define IDD_FUTURAGEAR 602 +// FUTURA GEAR controls +#define IDC_FG_PRIMARY 610 +#define IDC_FG_SECONDARY 611 +#define IDC_FG_HANDGUN 612 + +// prefix 620 means slot items +//--- +#define IDC_FG_MAP 6211 +#define IDC_FG_COMPASS 6212 +#define IDC_FG_WATCH 6213 +#define IDC_FG_RADIO 6214 +#define IDC_FG_GPS 6215 + +#define IDC_FG_GOGGLES 6216 +#define IDC_FG_HMD 6217 +#define IDC_FG_BINOC 6238 + +#define IDC_FG_BACKPACK2 6239 +#define IDC_FG_HEADGEAR 6240 + +// prefix 630 means slot container items(uniform, vest, backpack) +#define IDC_FG_UNIFORM_SLOT 6301 +#define IDC_FG_VEST_SLOT 6302 +#define IDC_FG_BACKPACK_SLOT 6303 +/// containers load +#define IDC_FG_UNIFORM_LOAD 6304 +#define IDC_FG_VEST_LOAD 6305 +#define IDC_FG_BACKPACK_LOAD 6306 +#define IDC_FG_GROUND_LOAD 6307 +#define IDC_FG_TOTAL_LOAD 6308 +//--- +#define IDC_FG_MAGAZINES 618 +// primary +#define IDC_FG_PW_MUZZLE 620 +#define IDC_FG_PW_OPTICS 621 +#define IDC_FG_PW_FLASHLIGHT 622 +#define IDC_FG_PW_MAGAZINE 623 +// secondary +#define IDC_FG_SW_MUZZLE 624 +#define IDC_FG_SW_OPTICS 625 +#define IDC_FG_SW_FLASHLIGHT 626 +#define IDC_FG_SW_MAGAZINE 627 +// handgun +#define IDC_FG_HG_MUZZLE 628 +#define IDC_FG_HG_OPTICS 629 +#define IDC_FG_HG_FLASHLIGHT 630 +#define IDC_FG_HG_MAGAZINE 631 + +#define IDC_FG_GROUND_ITEMS 632 +#define IDC_FG_CHOSEN_CONTAINER 640 +// #define IDC_FG_BACKPACK_ITEMS 633 +// #define IDC_FG_ITEMS 619 + +// new inventory + +// filter +#define IDC_FG_GROUND_FILTER 6554 + +// images which will painted over containers during DnD state +#define IDC_FG_GROUND_MARKER 6385 +#define IDC_FG_CONTAINER_MARKER 6325 +#define IDC_FG_CHOSEN_MARKER 6405 + +#define IDC_FG_VEST_CONTAINER 638 +#define IDC_FG_UNIFORM_CONTAINER 633 +#define IDC_FG_BACKPACK_CONTAINER 619 + +#define IDC_FG_VEST_TAB 6381 +#define IDC_FG_VEST_TEXT 6382 +#define IDC_FG_UNIFORM_TAB 6331 +#define IDC_FG_UNIFORM_TEXT 6332 +#define IDC_FG_BACKPACK_TAB 6191 +#define IDC_FG_BACKPACK_TEXT 6192 + +#define IDC_FG_CHOSEN_TAB 6401 +#define IDC_FG_CHOSEN_TEXT 6402 +#define IDC_FG_GROUND_TAB 6321 +#define IDC_FG_GROUND_TEXT 6322 +/////////////// + +/// weight info +#define IDC_FG_GROUND_WEIGHT 634 +#define IDC_FG_BACKPACK_WEIGHT 635 +#define IDC_FG_ITEMS_WEIGHT 636 + +/// player info +#define IDC_FG_TOTAL_WEIGHT 637 +////// \ No newline at end of file diff --git a/addons/storage/icons/storage.paa b/addons/storage/icons/storage.paa new file mode 100644 index 0000000000000000000000000000000000000000..5db5180c45d307f499bd7fbe11f9505e15c7ffd7 GIT binary patch literal 1522 zcmb7EO=uHQ5T3+c+WOOkBGiz=23oWpt272|-2^c)Qt1{G@h0|S5hRj}$JUl26*R4( zdMW`)L3)tlA=d;E{JE40E&TyoiBPDAuEuJfcKe)pn_X(aN@m|~^6i_M@0&MopUfkX zQ0#oEeVlkC11#WOyZOKeK&kh) zGb_2SD1^Uk#Z%luBv%lS8=${+5^Y?!d zWOjbaLuNA4Z*91lk50v+kJ~6t!_d21$al|BOnn+GEV2|Yrz#cHp1)Q->z{Z@;a`#8 zjN}UrH{h_aC!l^?%^Ry?R@1Zqz<66lKQtr>(OA7 zrMLG3FR9Vo5evtLNY6vjU(#1?wer`eiT}6F@99K7-cYdkJd1=6+5Ku>WEpO_Y}^jm ztY}iyEA$*JxONJP*xy*bR9%0zXsmG~h5D&tY&IX8I5sxFQmJ3-K>iHBVeSWP!Q2ur z4er77%Ph~!348v+B{sJg4{Yczt|v}VK1q_~*&^vrV?RwkH@L;=vX0z^m-c7a_1Zs! zKseE7?#+%GkqV~I=;AUiyLd(0LW855xD0G!%}feGXhG+wQ!E3z$E$IRjxx$cwc_t+ z-DFb=n^Xt~F(5FV>+adgOcSQ2cB-PyO9B(2ULH|#5O$#XHZhn@+GX+H_RnP;r~*9z z`m*`%mBDkvgh;z*8Lx|Qv-+%OZ`AM(;NhyVZp literal 0 HcmV?d00001 diff --git a/addons/storage/macro.h b/addons/storage/macro.h new file mode 100644 index 000000000..39b52e5ef --- /dev/null +++ b/addons/storage/macro.h @@ -0,0 +1,146 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} \ No newline at end of file diff --git a/addons/storage/ps_functions.sqf b/addons/storage/ps_functions.sqf new file mode 100644 index 000000000..ee12c8712 --- /dev/null +++ b/addons/storage/ps_functions.sqf @@ -0,0 +1,276 @@ +if (!isNil "storage_functions_defined") exitWith {}; +diag_log format["Loading storage functions ..."]; + +#include "macro.h" +#include "futura.h" + +ps_marker_create = { + ARGVX3(0,_name,""); + ARGVX3(1,_location,[]); + ARGVX3(2,_this,[]); + + ARGVX3(0,_shape,""); + ARGVX3(1,_type,""); + ARGVX3(2,_color,""); + ARGVX3(3,_size,[]); + ARGVX3(4,_text,""); + + private["_marker"]; + _marker = createMarker [_name,_location]; + + _marker setMarkerShapeLocal _shape; + _marker setMarkerTypeLocal _type; + _marker setMarkerColorLocal _color; + _marker setMarkerSizeLocal _size; + _marker setMarkerTextLocal _text; + (_marker) +}; + +ps_get_all_cities = { + if (isARRAY(ps_all_cities)) exitWith {ps_get_all_cities}; + ps_get_all_cities = (nearestLocations [[0,0,0],["NameCityCapital","NameCity","NameVillage"],1000000]); + (ps_get_all_cities) +}; + + +ps_create_boxes = { + def(_town); + def(_town_pos); + def(_town_name); + def(_garage); + def(_box); + def(_model); + def(_pos); + def(_name); + def(_marker); + init(_i,0); + + + {if (true) then { + _town = _x; + _town_name = text(_town); + _town_pos = position _town; + if (isARRAY(ps_cities_whitelist) && {count(ps_cities_whitelist) > 0 && {not(_town_name in ps_cities_whitelist)}}) exitWith {}; + + _garage = (nearestObjects [_town_pos, ["Land_i_Garage_V2_F"], 300]) select 0; + if (!isOBJECT(_garage)) exitWith { + diag_log format["No garage in %1", _town_name]; + }; + + _name = format["storage_box_%1", _i]; + _i = _i + 1; + + + _pos = _garage modelToWorld [0,0,0]; + + _model = ps_box_models call BIS_fnc_selectRandom; + + _box = createVehicle [_model, _pos, [], 0, ""]; + _box setPos _pos; + _box setVectorDirAndUp [vectorDir _garage, vectorUp _garage]; + _box allowDamage false; + _box enableSimulation false; + _box setVariable ["is_storage", true, true]; + _box setVariable ["R3F_LOG_disabled", true]; //don't allow players to move the boxes + + if (ps_markers_enabled) then { + _marker = [_name, _pos, ps_markers_properties] call ps_marker_create; + }; + + diag_log format["Creating Storage at: %1 (%2)", _town_name, _pos]; + }} foreach (call ps_get_all_cities); +}; + + +ps_get_box = { + def(_box); + init(_player,player); + _box = _player getVariable ["storage_box", objNull]; + if (isOBJECT(_box) && {not(isNull _box)}) exitWith {_box}; + + _box = ps_container_class createVehicle [0,0, 1000]; + _player setVariable ["storage_box", _box, true]; + (_box) +}; + + +ps_inventory_ui_mod = { + disableSerialization; + waitUntil {!(isNull (findDisplay IDD_FUTURAGEAR))}; + def(_display); + _display = findDisplay IDD_FUTURAGEAR; + + + def(_outside); + _outside = [-1,-1,0.1,0.1]; + + def(_filter); + _filter = _display displayCtrl IDC_FG_GROUND_FILTER; + + def(_pos); + def(_ground_tab); + _ground_tab = _display displayCtrl IDC_FG_GROUND_TAB; + _pos = (ctrlPosition _ground_tab); + _ground_tab ctrlSetPosition _outside; + _ground_tab ctrlCommit 0; + + def(_custom_text); + _custom_text = _display ctrlCreate ["RscText", -1]; + _pos set [2, (ctrlPosition _filter) select 2]; + _custom_text ctrlSetPosition _pos; + _custom_text ctrlSetText "Private Storage"; + _custom_text ctrlSetBackgroundColor [0,0,0,1]; + _custom_text ctrlSetTextColor [1,1,1,1]; + _custom_text ctrlSetActiveColor [1,1,1,1]; + _custom_text ctrlSetTooltip "This storage is visible to you only.
It's automatically saved in the database,
and can be accessed across maps."; + _custom_text ctrlCommit 0; + + def(_chosen_tab); + _chosen_tab = _display displayCtrl IDC_FG_CHOSEN_TAB; + _chosen_tab ctrlSetPosition _outside; + _chosen_tab ctrlCommit 0; + + + waitUntil { + isNull (findDisplay IDD_FUTURAGEAR) + }; + + private["_box"]; + _box = (call ps_get_box); + detach _box; + _box setPos [0,0,1000]; +}; + +ps_access = { + private["_box"]; + _box = (call ps_get_box); + _box attachTo [player, [0,0,3]]; + player removeAllEventHandlers "InventoryOpened"; + player addEventHandler ["InventoryOpened", { + if ((call ps_get_box) == (_this select 1)) exitWith { + true + }; + false + }]; + player action ["Gear", (call ps_get_box)]; + player removeAllEventHandlers "InventoryOpened"; + [] spawn ps_inventory_ui_mod; +}; + +ps_cameraDir = { + ([(positionCameraToWorld [0,0,0]), (positionCameraToWorld [0,0,1])] call BIS_fnc_vectorDiff) +}; + +ps_is_object_storage = { + ARGVX4(0,_obj,objNull,false); + (_obj getVariable ["is_storage", false]) +}; + +ps_is_player_near = { + private["_pos1", "_pos2"]; + _pos1 = (eyePos player); + _pos2 = ([_pos1, call ps_cameraDir] call BIS_fnc_vectorAdd); + + private["_objects"]; + _objects = lineIntersectsWith [_pos1,_pos2,objNull,objNull,true]; + if (isNil "_objects" || {typeName _objects != typeName []}) exitWith {false}; + + + private["_found"]; + _found = false; + { + if ([_x] call ps_is_object_storage) exitWith { + _found = true; + }; + } forEach _objects ; + + (_found) +}; + +ps_actions = OR(ps_actions,[]); + +ps_remove_actions = { + if (count ps_actions == 0) exitWith {}; + + { + private["_action_id"]; + _action_id = _x; + player removeAction _action_id; + } forEach ps_actions; + ps_actions = []; +}; + +ps_add_actions = { + if (count ps_actions > 0) exitWith {}; + private["_player"]; + _player = _this select 0; + + private["_action_id", "_text"]; + _action_id = _player addAction [" Access Storage", {call ps_access}]; + ps_actions = ps_actions + [_action_id]; +}; + +ps_check_actions = { + private["_player"]; + _player = player; + private["_vehicle", "_in_vehicle"]; + _vehicle = (vehicle _player); + _in_vehicle = (_vehicle != _player); + + if (not(_in_vehicle || {not(alive _player) || {not(call ps_is_player_near)}})) exitWith { + [_player] call ps_add_actions; + }; + + [_player] call ps_remove_actions; +}; + +//this is a hack so that markers sync for JIP (Join in Progress) players +ps_sync_markers = { + { + _x setMarkerColor markerColor _x ; + } forEach allMapMarkers; +}; + + +ps_client_loop_stop = false; +ps_client_loop = { + if (not(isClient)) exitWith {}; + private ["_ps_client_loop_i"]; + _ps_client_loop_i = 0; + + while {_ps_client_loop_i < 5000 && not(ps_client_loop_stop)} do { + call ps_check_actions; + sleep 0.5; + _ps_client_loop_i = _ps_client_loop_i + 1; + }; + [] spawn ps_client_loop; +}; + + +ps_setup_boxes = { + if (isServer) then { + diag_log format["Setting up storage boxes ... "]; + [] call ps_create_boxes; + ps_setup_boxes_complete = true; + publicVariable "ps_setup_boxes_complete"; + diag_log format["Setting up storage boxes complete"]; + + ["ps_sync_markers", "onPlayerConnected", { [] spawn ps_sync_markers}] call BIS_fnc_addStackedEventHandler; + }; + + if (isClient) then { + diag_log format["Waiting for storage boxes setup to complete ..."]; + waitUntil {not(isNil "ps_setup_boxes_complete")}; + diag_log format["Waiting for storage boxes setup to complete ... done"]; + [] call ps_get_box; //create the storage box if it does not already exist + }; +}; + +[] call ps_setup_boxes; +[] spawn ps_client_loop; + +storage_functions_defined = true; +diag_log format["Loading storage functions complete"]; + + + diff --git a/init.sqf b/init.sqf index 49444d7fc..dd4d8938a 100644 --- a/init.sqf +++ b/init.sqf @@ -58,6 +58,7 @@ if (isServer) then }; //init 3rd Party Scripts +[] execVM "addons\storage\functions.sqf"; [] execVM "addons\R3F_ARTY_AND_LOG\init.sqf"; [] execVM "addons\proving_ground\init.sqf"; [] execVM "addons\scripts\DynamicWeatherEffects.sqf"; From 9e0ae793d44475d5e8f74f65abb5f1bdf532dbf4 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 27 Dec 2014 05:51:04 -0800 Subject: [PATCH 211/544] Add support for persisting storage --- persistence/lib/normalize_config.sqf | 6 +- persistence/players/pFunctions.sqf | 101 ++++++++++++++++++++++++++- persistence/players/sFunctions.sqf | 68 ++++++++++++++++++ server/default_config.sqf | 1 + 4 files changed, 173 insertions(+), 3 deletions(-) diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index f1bc31a46..3b9f3f191 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -25,15 +25,18 @@ A3W_vehicleLifetime = OR_SCALAR(A3W_vehicleLifetime,0); A3W_vehicleMaxUnusedTime = OR_SCALAR(A3W_vehicleMaxUnusedTime,0); A3W_vehicle_saveInterval = OR_POSITIVE(A3W_vehicle_saveInterval,60); A3W_locked_vehicles_list = OR_ARRAY(A3W_locked_vehicles_list,[]); +A3W_storageLifetime = OR_SCALAR(A3W_storageLifetime,0); + A3W_healthTime = OR_POSITIVE(A3W_healthTime,60*5); A3W_hungerTime = OR_POSITIVE(A3W_hungerTime,60*60); A3W_thirstTime = OR_POSITIVE(A3W_thirstTime,60*50); + publicVariable "A3W_healthTime"; publicVariable "A3W_hungerTime"; publicVariable "A3W_thirstTime"; - +publicVariable "A3W_storageLifetime"; diag_log format["[INFO] config: A3W_purchasedVehicleSaving = %1", cfg_purchasedVehicleSaving_on]; @@ -56,6 +59,7 @@ diag_log format["[INFO] config: A3W_playersList_saveInterval = %1", A3W_playersL diag_log format["[INFO] config: A3W_vehicle_saveInterval = %1", A3W_vehicle_saveInterval]; diag_log format["[INFO] config: A3W_vehicleMaxUnusedTime = %1", A3W_vehicleMaxUnusedTime]; diag_log format["[INFO] config: A3W_vehicleLifetime = %1", A3W_vehicleLifetime]; +diag_log format["[INFO] config: A3W_storageLifetime = %1", A3W_storageLifetime]; diag_log ("[INFO] config: A3W_locked_vehicles_list = " + str(A3W_locked_vehicles_list)); diag_log ("[INFO] config: A3W_saveable_vehicles_list = " + str(A3W_saveable_vehicles_list)); diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 7e1207559..9a64c64e3 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -351,6 +351,87 @@ fn_applyPlayerInfo = { } forEach _data; }; +fn_applyPlayerStorage = { + if (!isARRAY(_this)) exitWith { + diag_log format["WARNING: No player private storage data"]; + }; + init(_data,_this); + + + + diag_log "#############################################"; + diag_log "Dumping _storageData"; + [_data] call p_dumpHash; + + def(_class); + def(_cargo_backpacks); + def(_cargo_magazines); + def(_cargo_items); + def(_cargo_weapons); + def(_hours_alive); + + def(_name); + def(_value); + { + _name = _x select 0; + _value = _x select 1; + + switch (_name) do + { + case "Class": {_class = OR(_value,nil)}; + case "HoursAlive": { _hours_alive = OR(_value,nil);}; + case "Weapons": { _cargo_weapons = OR(_value,nil);}; + case "Items": { _cargo_items = OR(_value,nil);}; + case "Magazines": { _cargo_magazines = OR(_value,nil);}; + case "Backpacks": { _cargo_backpacks = OR(_value,nil);}; + case "HoursAlive": { _hours_alive = OR(_value,nil);}; + }; + } forEach _data; + + if (!isSTRING(_class)) exitWith { + diag_log format["WARNING: There is no container class for private storage"]; + }; + + if (isSCALAR(_hours_alive) && {A3W_storageLifetime > 0 && {_hours_alive > A3W_storageLifetime}}) exitWith { + player commandChat format["WARNING: Your private storage is over %1 hours, it has been reset"]; + diag_log format["Private storage for %1 (%2) has been alive for %3 (max=%4), resetting it", (name player), (getPlayerUID player), _hours_alive, A3W_storageLifetime]; + }; + + def(_obj); + _obj = _class createVehicle [0,0,1000]; + if (!isOBJECT(_obj)) exitWith { + diag_log format["WARNING: Could not create storage container of class ""%1""", _class]; + }; + + player setVariable ["storage_box", _obj, true]; + + _obj setVariable ["storage_spawningTime", diag_tickTime]; + if (isSCALAR(_hours_alive)) then { + _obj setVariable ["storage_hoursAlive", _hours_alive]; + }; + + if (isARRAY(_cargo_weapons)) then { + { _obj addWeaponCargoGlobal _x } forEach _cargo_weapons; + }; + + if (isARRAY(_cargo_backpacks)) then { + { + if (not((_x select 0) isKindOf "Weapon_Bag_Base")) then { + _obj addBackpackCargoGlobal _x + }; + } forEach _cargo_backpacks; + }; + + if (isARRAY(_cargo_items)) then { + { _obj addItemCargoGlobal _x } forEach _cargo_items; + }; + + if (isARRAY(_cargo_magazines)) then { + { _obj addMagazineCargoGlobal _x } forEach _cargo_magazines; + }; + +}; + p_restoreInfo = { ARGVX2(0,_hash); @@ -359,9 +440,20 @@ p_restoreInfo = { def(_data); _data = call _hash; - _data call fn_applyPlayerInfo; + OR(_data,nil) call fn_applyPlayerInfo; +}; + +p_restoreStorage = { + ARGVX2(0,_hash); + if (!isCODE(_hash)) exitWith {}; + format["%1 call p_restoreStorage;", _this] call p_log_finest; + def(_data); + _data = call _hash; + + OR(_data,nil) call fn_applyPlayerStorage; }; + p_restoreScore = { ARGVX2(0,_hash); if (!isCODE(_hash)) exitWith {}; @@ -469,12 +561,14 @@ fn_requestPlayerData = {[] spawn { init(_genericDataKey, "PlayerSave"); init(_infoKey, "PlayerInfo"); init(_scoreKey, "PlayerScore"); + init(_storageKey, "PlayerStorage"); + def(_worldDataKey); _worldDataKey = format["%1_%2", _genericDataKey, worldName]; def(_pData); - _pData = [_scope, [_genericDataKey, nil], [_worldDataKey, nil], [_infoKey, nil], [_scoreKey, nil]] call stats_get; + _pData = [_scope, [_genericDataKey, nil], [_worldDataKey, nil], [_infoKey, nil], [_storageKey, nil], [_scoreKey, nil]] call stats_get; if (not(isARRAY(_pData))) exitWith { //player data did not load, force him back to lobby endMission "LOSER"; @@ -493,6 +587,9 @@ fn_requestPlayerData = {[] spawn { case _worldDataKey: { _worldData = xGet(_x,1); }; + case _storageKey: { + [xGet(_x,1)] call p_restoreStorage; + }; case _infoKey: { [xGet(_x,1)] call p_restoreInfo; }; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index e03d56f76..5c3a6ba7e 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -207,6 +207,68 @@ p_getPlayerInfo = { (_info) }; +p_trackStorageHoursAlive = { + ARGVX3(0,_obj,objNull); + + def(_spawnTime); + def(_hoursAlive); + + _spawnTime = _obj getVariable "storage_spawningTime"; + _hoursAlive = _obj getVariable "storage_hoursAlive"; + + if (isNil "_spawnTime") then { + _spawnTime = diag_tickTime; + _obj setVariable ["storage_spawningTime", _spawnTime, true]; + }; + + if (isNil "_hoursAlive") then { + _hoursAlive = 0; + _obj setVariable ["storage_hoursAlive", _hoursAlive, true]; + }; + + def(_totalHours); + _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; + + (_totalHours) +}; + +p_getPlayerStorage = { + //diag_log format["%1 call p_getPlayerInfo", _this]; + ARGVX3(0,_player,objNull); + + def(_obj); + _obj = _player getVariable ["storage_box", objNull]; + + if (!isOBJECT(_obj)) exitWith {nil}; + + def(_hours_alive); + _hours_alive = [_obj] call p_trackStorageHoursAlive; + + init(_weapons,[]); + init(_magazines,[]); + init(_items,[]); + init(_backpacks,[]); + + // Save weapons & ammo + _weapons = (getWeaponCargo _obj) call cargoToPairs; + _magazines = (getMagazineCargo _obj) call cargoToPairs; + _items = (getItemCargo _obj) call cargoToPairs; + _backpacks = (getBackpackCargo _obj) call cargoToPairs; + + def(_storage); + _storage = + [ + ["Class", typeOf _obj], + ["HoursAlive", _hours_alive], + ["Weapons", _weapons], + ["Magazines", _magazines], + ["Items", _items], + ["Backpacks", _backpacks] + ] call sock_hash; + + (_storage) +}; + p_addPlayerSave = { //diag_log format["%1 call p_addPlayerSave", _this]; ARGVX3(0,_request,[]); @@ -243,6 +305,12 @@ p_addPlayerSave = { _request pushBack ["PlayerInfo", _playerInfo]; }; + def(_playerStorage); + _playerStorage = [_player] call p_getPlayerStorage; + + if (isARRAY(_playerStorage)) then { + _request pushBack ["PlayerStorage", _playerStorage]; + }; def(_scoreInfo); _scoreInfo = [_uid] call p_getScoreInfo; diff --git a/server/default_config.sqf b/server/default_config.sqf index 351e92944..7c3fde510 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -50,6 +50,7 @@ A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts A3W_objectLifetime = 5*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) +A3W_storageLifetime = 0; // Maximum lifetime in horus for player's private storage (0 = no time limit) PDB_PlayerFileID = "A3W_"; // Player savefile prefix (change this in case you run multiple servers from the same folder) PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in case you run multiple servers from the same folder) PDB_MessagesFileID = "A3W_"; // Messages savefile prefix (change this in case you run multiple servers from the same folder) From 6f3fb87b5dadc4db67c90c63a40b0d5b198cff76 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 27 Dec 2014 06:11:33 -0800 Subject: [PATCH 212/544] Bump private storage capacity --- addons/storage/config.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/storage/config.sqf b/addons/storage/config.sqf index cf208ab96..822764be5 100644 --- a/addons/storage/config.sqf +++ b/addons/storage/config.sqf @@ -17,6 +17,6 @@ ps_markers_properties = ["ICON", "mil_dot", "ColorUNKNOWN", [1.2,1.2], "Storage" * Supply0, Supply1, Supply2, Supply3, Supply4, Supply5, Supply6, Supply7, Supply8, Supply9, Supply10, Supply20 * Supply30, Supply40, Supply50, Supply60, Supply70, Supply80, Supply90, Supply100, Supply110, Supply120, Supply130 * Supply140, Supply150, Supply160, Supply170, Supply180, Supply190, Supply200, Supply210, Supply220, Supply230, Supply240 - * Supply250, Supply300, Supply350, Supply380, Supply400, Supply420, Supply440, Supply450, Supply480 + * Supply250, Supply300, Supply350, Supply380, Supply400, Supply420, Supply440, Supply450, Supply480, Suppy500 */ -ps_container_class = "Supply200"; \ No newline at end of file +ps_container_class = "Supply500"; \ No newline at end of file From 52ffb703b528aaf9768a8e4fb286574bccfc6fba Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 27 Dec 2014 08:55:16 -0800 Subject: [PATCH 213/544] Delete player's storage container on disconnect --- persistence/players/sFunctions.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 5c3a6ba7e..0831d1cd7 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -266,6 +266,8 @@ p_getPlayerStorage = { ["Backpacks", _backpacks] ] call sock_hash; + deleteVehicle _obj; + (_storage) }; From 72560e4fe2f1d4e75bc22ada2d46d89c8b7b11da Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 28 Dec 2014 04:09:36 -0800 Subject: [PATCH 214/544] Minor fix for placing storage items in Stratis On stratis, for some reason the garages do not show up when using "nearestObjects". This fix makes it so that you can place proxy objects of type "Sign_Arrow_Yellow_F" near cities, and the storage boxes are put at those locations. --- addons/storage/ps_functions.sqf | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/storage/ps_functions.sqf b/addons/storage/ps_functions.sqf index ee12c8712..5de301f41 100644 --- a/addons/storage/ps_functions.sqf +++ b/addons/storage/ps_functions.sqf @@ -52,7 +52,7 @@ ps_create_boxes = { _town_pos = position _town; if (isARRAY(ps_cities_whitelist) && {count(ps_cities_whitelist) > 0 && {not(_town_name in ps_cities_whitelist)}}) exitWith {}; - _garage = (nearestObjects [_town_pos, ["Land_i_Garage_V2_F"], 300]) select 0; + _garage = (nearestObjects [_town_pos, ["Land_i_Garage_V2_F", "Sign_Arrow_Yellow_F"], 300]) select 0; if (!isOBJECT(_garage)) exitWith { diag_log format["No garage in %1", _town_name]; }; @@ -62,14 +62,17 @@ ps_create_boxes = { _pos = _garage modelToWorld [0,0,0]; - + if (_garage isKindOf "Helper") then { + _pos set [2,0]; + }; + _model = ps_box_models call BIS_fnc_selectRandom; _box = createVehicle [_model, _pos, [], 0, ""]; _box setPos _pos; _box setVectorDirAndUp [vectorDir _garage, vectorUp _garage]; _box allowDamage false; - _box enableSimulation false; + //_box enableSimulation false; _box setVariable ["is_storage", true, true]; _box setVariable ["R3F_LOG_disabled", true]; //don't allow players to move the boxes @@ -270,7 +273,4 @@ ps_setup_boxes = { [] spawn ps_client_loop; storage_functions_defined = true; -diag_log format["Loading storage functions complete"]; - - - +diag_log format["Loading storage functions complete"]; \ No newline at end of file From 92834bed31a620aa35a0de93250da2846afad141 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 28 Dec 2014 04:19:47 -0800 Subject: [PATCH 215/544] Fix wrong class name --- addons/storage/ps_functions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/storage/ps_functions.sqf b/addons/storage/ps_functions.sqf index 5de301f41..ca67759fb 100644 --- a/addons/storage/ps_functions.sqf +++ b/addons/storage/ps_functions.sqf @@ -62,7 +62,7 @@ ps_create_boxes = { _pos = _garage modelToWorld [0,0,0]; - if (_garage isKindOf "Helper") then { + if (_garage isKindOf "Helper_Base_F") then { _pos set [2,0]; }; From 0c90f6601549d02454b4a763f5ba63737141c967 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 28 Dec 2014 17:30:06 -0800 Subject: [PATCH 216/544] Add framework for private parking This is a highly configurable addon for enabling private parking. Config options are: //List of cities where private parking is available (empty or unset means all cities) pp_cities_whitelist = []; //whether or not to show map markers for private parking locations pp_markers_enabled = true; //shape, type, color, size, text (for map markers, if enabled) pp_markers_properties = ["ICON", "mil_dot", "ColorKhaki", [1.2,1.2], "Parking"]; //number of seconds to wait (after parking a vehicle) before it can be retrieved (0 = no wait) pp_retrieve_wait = 0; //amount of money to charge player for retrieving a vehicle from parking (0 = no charge) pp_retrieve_cost = 0; //maximum number of vehicles that a player can park (0 = no limit) pp_max_player_vehicles = 0; //List of class names for vehicles that are not allowed to be parked pp_disallowed_vehicle_classes = []; --- addons/gui/gui.hpp | 512 ++++++++++++++++++ addons/gui/macro.h | 146 +++++ addons/parking/config.sqf | 21 + addons/parking/constants.h | 9 + addons/parking/functions.sqf | 5 + addons/parking/icons/parking.paa | Bin 0 -> 1522 bytes addons/parking/list_simple_menu.hpp | 59 ++ addons/parking/list_simple_menu_functions.sqf | 131 +++++ addons/parking/macro.h | 146 +++++ addons/parking/misc_functions.sqf | 81 +++ addons/parking/pp_actions_functions.sqf | 433 +++++++++++++++ addons/parking/pp_interact_functions.sqf | 83 +++ addons/parking/pp_saving_functions.sqf | 115 ++++ description.ext | 3 + init.sqf | 1 + persistence/world/vFunctions.sqf | 31 +- 16 files changed, 1767 insertions(+), 9 deletions(-) create mode 100644 addons/gui/gui.hpp create mode 100644 addons/gui/macro.h create mode 100644 addons/parking/config.sqf create mode 100644 addons/parking/constants.h create mode 100644 addons/parking/functions.sqf create mode 100644 addons/parking/icons/parking.paa create mode 100644 addons/parking/list_simple_menu.hpp create mode 100644 addons/parking/list_simple_menu_functions.sqf create mode 100644 addons/parking/macro.h create mode 100644 addons/parking/misc_functions.sqf create mode 100644 addons/parking/pp_actions_functions.sqf create mode 100644 addons/parking/pp_interact_functions.sqf create mode 100644 addons/parking/pp_saving_functions.sqf diff --git a/addons/gui/gui.hpp b/addons/gui/gui.hpp new file mode 100644 index 000000000..a6572f45a --- /dev/null +++ b/addons/gui/gui.hpp @@ -0,0 +1,512 @@ +#define FontM "PuristaMedium" +#define FontHTML "PuristaMedium" +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_SLIDER 3 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_SHORTCUT_BUTTON 16 +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define CT_LISTNBOX 102 + +#define ST_LEFT 0 +#define ST_RIGHT 1 +#define ST_CENTER 2 +#define ST_MULTI 16 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_SHADOW 256 +#define ST_NO_RECT 512 + + +// Respawn Dialog additions + +#define FontM_R "PuristaMedium" +#define FontHTML_R "PuristaMedium" +#define Dlg_ROWS 36 +#define Dlg_COLS 90 +#define Dlg_CONTROLHGT ((100/Dlg_ROWS)/100) +#define Dlg_COLWIDTH ((100/Dlg_COLS)/100) +#define Dlg_TEXTHGT_MOD 0.8 +#define Dlg_ROWSPACING_MOD 1.3 +#define Dlg_ROWHGT (Dlg_CONTROLHGT*Dlg_ROWSPACING_MOD) +#define Dlg_TEXTHGT (Dlg_CONTROLHGT*Dlg_TEXTHGT_MOD) +#define Dlg_ICONWIDTH (Dlg_CONTROLHGT*4/5) +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0c +#define ST_TYPE 0xF0 +#define ST_SINGLE 0 +#define ST_TITLE_BAR 32 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX 96 +#define ST_GROUP_BOX2 112 +#define ST_HUD_BACKGROUND 128 +#define ST_TILE_PICTURE 144 +#define ST_WITH_RECT 160 +#define ST_LINE 176 +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 +#define ST_KEEP_ASPECT_RATIO 0x800 +#define ST_TITLE ST_TITLE_BAR + ST_CENTER +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 +#define SL_TEXTURES 0x10 +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 + + + +class gui_RscText { + type = CT_STATIC; + idc = -1; + style = ST_LEFT; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.02; + text = ""; +}; + +class gui_RscBgRahmen { + type = CT_STATIC; + idc = -1; + style = ST_FRAME; + colorBackground[] = {1.0,1.0,1.0,0.75}; + colorText[] = {1,1,1,1}; + font = FontM; + SizeEX = 0.025; + text = ""; +}; + +class gui_RscBackground { + colorBackground[] = {0,0,0,0.75}; + text = ""; + type = CT_STATIC; + idc = -1; + style = ST_LEFT; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.04; +}; + +class gui_RscPicture { + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.02; + text = ""; +}; + +class gui_RscPictureKeepAspect: gui_RscPicture { + style = "0x30 + 0x800"; +}; + +class gui_RscBackgroundPicture { + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = FontM; + sizeEx = 0.02; + text = "dbg.pac"; +}; + +class gui_RscButton { + type = CT_BUTTON; + idc = -1; + style = ST_CENTER; + colorText[] = {1,1,1,1}; + font = FontHTML; + sizeEx = 0.025; + soundPush[] = {"",0.2,1}; + soundClick[] = {"",0.2,1}; + soundEscape[] = {"",0.2,1}; + default = false; + text = ""; + action = ""; + colorActive[] = {0,0,0,0}; + colorDisabled[] = {0,0,0,0.1}; + colorBackground[] = {0.8,0.8,0.8,0.3}; + colorBackgroundActive[] = {0.7,0.7,0.7,1}; + colorBackgroundDisabled[] = {1,1,1,0.5}; + colorFocused[] = {0.84,1,0.55,1}; + colorShadow[] = {0,0,0,0.1}; + colorBorder[] = {1,1,1,0.1}; + offsetX = 0; + offsetY = 0; + offsetPressedX = 0; + offsetPressedY = 0; + borderSize = 0; + soundEnter[] = {"",0.15,1}; +}; + +class gui_RscMenuButton { + type = CT_SHORTCUT_BUTTON; + style = "0x02 + 0xC0"; + default = 0; + shadow = 0; + x = 0; + y = 0; + w = 0.095589; + h = 0.039216; + animTextureNormal = "#(argb,8,8,3)color(0,0,0,1)"; + animTextureDisabled = "#(argb,8,8,3)color(1,0,0,0.8)"; + animTextureOver = "#(argb,8,8,3)color(0,0,0,0.8)"; + animTextureFocused = "#(argb,8,8,3)color(0,0,0,1)"; + animTexturePressed = "#(argb,8,8,3)color(0,0,0,1)"; + animTextureDefault = "#(argb,8,8,3)color(0,0,0,1)"; + textureNoShortcut = ""; + + colorBackground[] = {1,1,1,0.8}; + colorBackground2[] = {1,1,1,0.5}; + color[] = {1,1,1,1}; + color2[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorDisabled[] = {1,0,0,0.8}; + + colorFocused[] = {1,1,1,1}; + colorBackgroundFocused[] = {0,0,0,0}; + + period = 1.2; + periodFocus = 1.2; + periodOver = 1.2; + size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + + class HitZone + { + left = 0.0; + top = 0.0; + right = 0.0; + bottom = 0.0; + }; + + class TextPos + { + left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)"; + top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; + right = 0.005; + bottom = 0.0; + }; + class Attributes + { + font = "PuristaLight"; + color = "#E5E5E5"; + align = "left"; + shadow = "false"; + }; + class ShortcutPos + { + left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005"; + top = 0.005; + w = 0.0225; + h = 0.03; + }; + soundEnter[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundPush",0.09,1}; + soundClick[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; +}; + +class gui_RscMenuTitle { + type = CT_STATIC; + idc = -1; + style = ST_CENTER; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + colorText[] = {1,1,1,1}; + font = "PuristaMedium"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + text = ""; + shadow = 1; + colorShadow[] = {0,0,0,0.5}; + linespacing = 1; +}; + + +class gui_RscDummy : gui_RscButton { + x = -1.0; + y = -1.0; + idc = -1; + w = 0.01; + h = 0.01; + default = true; +}; + +class gui_RscEdit { + idc = -1; + type = CT_EDIT; + style = ST_LEFT; + font = FontHTML; + sizeEx = 0.02; + colorText[] = {1,1,1,1}; + colorSelection[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1}; + colorDisabled[] = {1,0,0,0.3}; + autocomplete = false; + text = ""; +}; + +class gui_RscEditMulti : gui_RscEdit { + style = ST_MULTI; + sizeEx = 0.03; + lineSpacing = 1; + colorDisabled[] = {1,1,1,1}; +}; + +class gui_RscLB_C { + style = ST_LEFT; + idc = -1; + colorSelect[] = {0,0,0,1.0}; + colorSelectBackground[] = {0.7,0.7,0.7,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0.8,0.8,0.8,0.3}; + colorScrollbar[] = {Dlg_Color_White,1}; + colorDisabled[] = {1,0,0,0.3}; + font = FontHTML; + sizeEx = 0.025; + rowHeight = 0.04; + period = 1.200000; + maxHistoryDelay = 1.000000; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + + class ScrollBar {}; +}; + +class gui_RscListBox { + type = CT_LISTBOX; + style = ST_MULTI; + lineSpacing = 1; + shadow = 0; + + + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,0.15}; + + colorSelect[] = {1,1,1,1}; + colorSelectBackground[] = {1,1,1,0.2}; + + colorSelect2[] = {1,1,1,0.7}; + colorSelectBackground2[] = {1,1,1,0.4}; + + colorScrollbar[] = {Dlg_Color_White,1}; + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + wholeHeight = 0; + color[] = {1,1,1,1}; + colorActive[] = {1,0,0,1}; + colorDisabled[] = {1,0,0,0.3}; + font = "PuristaMedium"; + sizeEx = 0.030; + rowHeight = 0.04; + + + soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.09,1}; + soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1}; + soundSelect[] = {"\A3\ui_f\data\sound\RscListbox\soundSelect",0.09,1}; + soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1}; + + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + maxHistoryDelay = 1; + + colorShadow[] = {0,0,0,0.5}; + + + period = 1.2; + colorPicture[] = {1,1,1,1}; + colorPictureSelected[] = {1,1,1,1}; + colorPictureDisabled[] = {1,1,1,1}; + tooltipColorText[] = {1,1,1,1}; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; + + class ScrollBar { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + + class ListScrollBar: ScrollBar { + color[] = {1,1,1,1}; + autoScrollEnabled = 1; + }; + +}; + + + +class gui_RscListNBox : gui_RscListBox { + type = CT_LISTNBOX; + colorSelect[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,0.15}; + colorSelectBackground[] = {0,0,0,0}; + drawSideArrows = 0; + toolTip = ""; + idcLeft = 20010; + idcRight = 20011; +}; + + +class gui_RscCombo { + type = CT_COMBO; + style = ST_MULTI; + lineSpacing = 1; + shadow = 0; + sizeEx = 0.030; + rowHeight = 0.04; + + //colorSelect[] = {0,0,0,1.0}; + colorSelect[] = {1,1,1,1.0}; + colorText[] = {1,1,1,1}; + colorBackground[] = {0.8,0.8,0.8,0.3}; +// colorSelectBackground[] = {0.7,0.7,0.7,1}; + colorSelectBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + colorScrollbar[] = {Dlg_Color_White,1}; + arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; + arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; + wholeHeight = 0.45; + color[] = {1,1,1,1}; + colorActive[] = {1,0,0,1}; + colorDisabled[] = {1,0,0,0.3}; + font = "PuristaMedium"; + + + soundEnter[] = {"\A3\ui_f\data\sound\onover",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundClick[] = {"\A3\ui_f\data\sound\onclick",0.07,1}; + soundEscape[] = {"\A3\ui_f\data\sound\onescape",0.09,1}; + soundSelect[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundExpand[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + soundCollapse[] = {"\A3\ui_f\data\sound\new1",0.0,0}; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + maxHistoryDelay = 1; + + class ScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\a3\ui_f\data\gui\cfg\Scrollbar\thumb_ca.paa"; + arrowEmpty = "\a3\ui_f\data\gui\cfg\Scrollbar\arrowempty_ca.paa"; + arrowFull = "\a3\ui_f\data\gui\cfg\Scrollbar\arrowfull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; + + class ComboScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + shadow = 0; + thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; + arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; + }; +}; + +/* +class RscCombo: RscLB_C { + type = CT_COMBO; + wholeHeight = 0.3; + soundSelect[] = {"",0.15,1}; + soundExpand[] = {"",0.15,1}; + soundCollapse[] = {"",0.15,1}; + arrowEmpty = ""; + arrowFull = ""; +}; +*/ + +class gui_RscSliderH { + idc = -1; + access = ReadandWrite; + type = CT_SLIDER; + sizeEx = 0.025; + style = 1024; + + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.2}; + arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; + arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; + border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; + thumb = "\A3\ui_f\data\gui\cfg\slider\thumb_ca.paa"; +}; + +class gui_RscSliderV { + access = ReadandWrite; + type = CT_SLIDER; + idc = -1; + sizeEx = 0.025; + style = 0; + color[] = {0.2,0.2,0.2,1}; + colorActive[] = {1,1,1,1}; +}; + +class gui_RscCheckBox { + idc = -1; + type = CT_CHECKBOXES; + style = ST_CENTER; + + colorText[] = {1,1,1,1}; + color[] = {0,1,0,1}; + colorTextSelect[] = {0,0.8,0,1}; + colorSelectedBg[] = {1,1,1,0}; + colorSelect[] = {0,0,0,1}; + colorTextDisable[] = {0.4,0.4,0.4,1}; + colorDisable[] = {0.4,0.4,0.4,1}; + font = "PuristaMedium"; + SizeEX=0.025; + rows = 1; + columns = 1; + strings[] = {""}; +}; \ No newline at end of file diff --git a/addons/gui/macro.h b/addons/gui/macro.h new file mode 100644 index 000000000..992461961 --- /dev/null +++ b/addons/gui/macro.h @@ -0,0 +1,146 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} diff --git a/addons/parking/config.sqf b/addons/parking/config.sqf new file mode 100644 index 000000000..9b78aa041 --- /dev/null +++ b/addons/parking/config.sqf @@ -0,0 +1,21 @@ + +//List of cities where private parking is available (empty or unset means all cities) +pp_cities_whitelist = []; + +//whether or not to show map markers for private parking locations +pp_markers_enabled = true; + +//shape, type, color, size, text (for map markers, if enabled) +pp_markers_properties = ["ICON", "mil_dot", "ColorKhaki", [1.2,1.2], "Parking"]; + +//number of seconds to wait (after parking a vehicle) before it can be retrieved (0 = no wait) +pp_retrieve_wait = 0; + +//amount of money to charge player for retrieving a vehicle from parking (0 = no charge) +pp_retrieve_cost = 0; + +//maximum number of vehicles that a player can park (0 = no limit) +pp_max_player_vehicles = 0; + +//List of class names for vehicles that are not allowed to be parked +pp_disallowed_vehicle_classes = []; \ No newline at end of file diff --git a/addons/parking/constants.h b/addons/parking/constants.h new file mode 100644 index 000000000..42b43b9b8 --- /dev/null +++ b/addons/parking/constants.h @@ -0,0 +1,9 @@ +#define GUI_BCG_RGB {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"} +#define MENU_TITLE_FONT_HEIGHT (((((safezoneW / safezoneH) min 1.2) / 1.2) / 32) * 1) + +#define list_simple_menu_menu_dialog_idd 6001 +#define list_simple_menu_header_idc 6001 +#define list_simple_menu_background_idc 6002 +#define list_simple_menu_submit_button_idc 6003 +#define list_simple_menu_close_button_idc 6004 +#define list_simple_menu_list_idc 6005 diff --git a/addons/parking/functions.sqf b/addons/parking/functions.sqf new file mode 100644 index 000000000..692fef830 --- /dev/null +++ b/addons/parking/functions.sqf @@ -0,0 +1,5 @@ +call compile preprocessFileLineNumbers "addons\parking\config.sqf"; + +{ + call compile preprocessFileLineNumbers format["addons\parking\%1_functions.sqf", _x]; +} forEach ["misc", "list_simple_menu", "pp_interact", "pp_saving", "pp_actions"]; diff --git a/addons/parking/icons/parking.paa b/addons/parking/icons/parking.paa new file mode 100644 index 0000000000000000000000000000000000000000..0353a026b207225b6df9b5601d119dae18929c04 GIT binary patch literal 1522 zcmb7EUr1A76hAj78f1>}(u0~~j(QS$GBad%$(&NtEA5)nOSPbv)~pBVA!$kAgOKJQ zsD~+mF9m^u-GLBFQ5ls=skttpm^~FaB207J*E!#Jm!buFw(s8i`_4Jv@BF(roq0Si zU%98wWdVSAJbsbmdY6|lLm}*Oova`%;UavhqM}B@=Mb(|RNPJnn8vkpv4IW10`{mL zF!aD8V*r{~3k<3{9aXz90K(c93?GRq=1l4B+`h#juut7_AkndQw$hI2Vv;0D#^NK1 zT*3gVRT@H-?tdn*>=t)XAkGz)8X=>R$LmAcDL(_rO8*o;NX}TA^G6|JRkb4jNWv(- zbWC8kyqTXtWs9S-CB<*KvOx7rSjkS)w_SS+*_3Cu>msfidG~{5|PG1qE*%4jfsIHCd~kVM}w@ z-f(`96o4d4n}?*6>tz{+*9Mx6NIvKP*Sxe%G+q9z2e}^U-Qzfq7=8g>i4nehr>A!8 zkHF%(-j8vvXE`Z7@-ucLSzy{JZ4-l8_`dy@pEyX!9_L4cC3Yvn#EOD=o3dShE6x@+ zzA2;!94mcu+zly;LVCEL1^E~vr$l;VK$K0}@S54smQs~MtKovxu#@~1{6W!6Q6t0_ z{CJ({9rEtGbzG#4lh`)7;k>$ft8;lQn5+BO$R7^Ma%qV5IbL<;(b>2IHIuX5?2JDm z5bO@ke@)EV_B=KDl=2zfpKF#?mbISiKN(wW6=lXbY52yfI&(}t7PjZ~h%-LhC-jP< zHe^C3MQt1H=#Jg*rJixx!wq_war4u2LOx$($UAy=;n9oWYp#_f@BXPke;qqFA*=yE V-4?3nJL?5|$@JYp+Qw5&`2+ka0ayS4 literal 0 HcmV?d00001 diff --git a/addons/parking/list_simple_menu.hpp b/addons/parking/list_simple_menu.hpp new file mode 100644 index 000000000..df1e354f9 --- /dev/null +++ b/addons/parking/list_simple_menu.hpp @@ -0,0 +1,59 @@ +#include "constants.h" + +class list_simple_menu { + idd = list_simple_menu_menu_dialog_idd; + movingEnable = true; + controlsBackground[] = {list_simple_menu_background}; + objects[] = { }; + + name = "LIST_SIMPLE_MENU"; + onUnload = ""; + onLoad="uiNamespace setVariable ['LIST_SIMPLE_MENU',_this select 0]"; + + controls[] = { + list_simple_menu_header, + list_simple_menu_select_button, + list_simple_menu_close_button, + list_simple_menu_list + }; + + class list_simple_menu_header : gui_RscMenuTitle { + idc = list_simple_menu_header_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + style = ST_CENTER; + SizeEX = 0.03; + colorBackground[] = GUI_BCG_RGB; + text = "list_simple"; + moving = 1; + }; + + class list_simple_menu_background : gui_RscBackground { + idc = list_simple_menu_background_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + moving = 1; + }; + + class list_simple_menu_select_button : gui_RscMenuButton { + idc = list_simple_menu_submit_button_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + text = "Select"; + }; + + class list_simple_menu_close_button : gui_RscMenuButton { + idc = list_simple_menu_close_button_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + text = "Close"; + action = "closedialog 0;"; + }; + + class list_simple_menu_list : gui_RscListBox { + idc = list_simple_menu_list_idc; + x = -10; y = -10; + w = 0.05; h = 0.50; + rowHeight = 0.065; + }; +}; \ No newline at end of file diff --git a/addons/parking/list_simple_menu_functions.sqf b/addons/parking/list_simple_menu_functions.sqf new file mode 100644 index 000000000..3d36dedca --- /dev/null +++ b/addons/parking/list_simple_menu_functions.sqf @@ -0,0 +1,131 @@ +if (!isNil "list_simple_menu_functions_defined") exitWith {}; +diag_log format["Loading list simple menu functions ... "]; + +#include "constants.h" +#include "macro.h" + + +list_simple_menu_header = 0; +list_simple_menu_list = 1; +list_simple_menu_submit = 2; +list_simple_menu_close = 3; + +list_simple_menu_label_data = { + private["_index"]; + _index = lbCurSel (list_simple_menu_list_idc); + if (_index < 0) exitWith {nil}; + + private["_data"]; + _data = (lbData [list_simple_menu_list_idc,_index]); + if (undefined(_data)) exitWith {nil}; + _data +}; + +list_simple_menu_setup = { + disableSerialization; + ARGVX3(0,_title,""); + ARGVX3(1,_x,0); + ARGVX3(2,_y,0); + ARGVX3(3,_w,0); + ARGVX3(4,_h,0); + + if (!(createDialog "list_simple_menu")) exitWith { + player groupChat format["ERROR: Could not create list simple menu dialog"]; + }; + + private["_display"]; + _display = (uiNamespace getVariable 'LIST_SIMPLE_MENU'); + + _list_simple_menu_header = _display displayCtrl list_simple_menu_header_idc; + _list_simple_menu_background = _display displayCtrl list_simple_menu_background_idc; + _list_simple_menu_select_button = _display displayCtrl list_simple_menu_submit_button_idc; + _list_simple_menu_close_button = _display displayCtrl list_simple_menu_close_button_idc; + _list_simple_menu_list = _display displayCtrl list_simple_menu_list_idc; + + private["_ysep","_sep","_header_title"]; + _ysep = 0.003; + _sep = 0.01; + _header_title = _title; + + private["_button_font_height","_font_family"]; + _button_font_height = MENU_TITLE_FONT_HEIGHT; + _font_family = "PuristaMedium"; + + //header + private["_lhx","_lhy","_lhw","_lhh"]; + _lhx = _x; + _lhy = _y; + _lhw = _w; + _lhh = 0.045; + + _list_simple_menu_header ctrlSetPosition [_lhx,_lhy,_lhw,_lhh]; + _list_simple_menu_header ctrlSetFontHeight _button_font_height; + _list_simple_menu_header ctrlSetFont _font_family; + _list_simple_menu_header ctrlSetText _header_title; + _list_simple_menu_header ctrlCommit 0; + + + //background + private["_lbx","_lby","_lbw","_lbh"]; + _lbx = _lhx; + _lby = _lhy + _lhh + _ysep; + _lbw = _w; + _lbh = _h - _lhh - _lhh - _ysep - _ysep; + + _list_simple_menu_background ctrlSetPosition [_lbx,_lby,_lbw,_lbh]; + _list_simple_menu_background ctrlSetBackgroundColor [0,0,0,0.65]; + _list_simple_menu_background ctrlCommit 0; + + //select button + private["_lsx","_lsy","_lsw","_lsh"]; + _lsw = 0.20; + _lsh = _lhh; + _lsx = _lhx; + _lsy = _lby + _lbh + _ysep; + + _list_simple_menu_select_button ctrlSetText "Submit"; + _list_simple_menu_select_button ctrlSetPosition [_lsx,_lsy,_lsw,_lsh]; + _list_simple_menu_select_button ctrlCommit 0; + + + //close button + private["_lcx","_lcy","_lcw","_lch"]; + _lcw = 0.14; + _lch = _lhh; + _lcx = _lhx + _lhw - _lcw; + _lcy = _lhy + _h - _lch; + + _list_simple_menu_close_button ctrlSetText "Close"; + _list_simple_menu_close_button ctrlSetPosition [_lcx,_lcy,_lcw,_lch]; + buttonSetAction [(ctrlIDC _list_simple_menu_close_button),"closeDialog 0"]; + _list_simple_menu_close_button ctrlCommit 0; + + //list + private["_llx","_lly","_llw","_llh"]; + _llx = _lbx + _sep ; + _lly = _lby + _sep; + _llw = _lhw - _sep * 2; + _llh = _lbh - _sep * 2; + + _list_simple_menu_list ctrlSetText ""; + _list_simple_menu_list ctrlSetPosition [_llx,_lly,_llw,_llh]; + _list_simple_menu_list ctrlSetFontHeight _button_font_height - 0.0015; + _list_simple_menu_list ctrlCommit 0; + + private["_controls"]; + + _controls = []; + _controls set [list_simple_menu_header,_list_simple_menu_header]; + _controls set [list_simple_menu_list,_list_simple_menu_list]; + _controls set [list_simple_menu_submit,_list_simple_menu_select_button]; + _controls set [list_simple_menu_close,_list_simple_menu_close_button]; + + _controls +}; + + + + +list_simple_menu_functions_defined = true; + +diag_log format["Loading list simple menu functions complete"]; \ No newline at end of file diff --git a/addons/parking/macro.h b/addons/parking/macro.h new file mode 100644 index 000000000..992461961 --- /dev/null +++ b/addons/parking/macro.h @@ -0,0 +1,146 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} diff --git a/addons/parking/misc_functions.sqf b/addons/parking/misc_functions.sqf new file mode 100644 index 000000000..ac8412b9c --- /dev/null +++ b/addons/parking/misc_functions.sqf @@ -0,0 +1,81 @@ +if (!isNil "parking_misc_functions_defined") exitWith {}; +diag_log format["Loading parking misc functions"]; + +#include "macro.h" + +generic_picture_path = { + ARGVX3(0,_id,""); + ([_id, "picture"] call generic_config_text) +}; + +generic_display_name = { + ARGVX3(0,_id,""); + ([_id, "displayName"] call generic_config_text) +}; + +generic_icon_path = { + ARGVX3(0,_id,""); + ([_id, "icon"] call generic_config_text) +}; + +generic_config_text = { + ARGVX3(0,_id,""); + ARGVX3(1,_field,""); + + if (_id == "" || {_field == ""}) exitWith {""}; + + if (isClass(configFile >> "CfgWeapons" >> _id)) exitWith { + (getText(configFile >> "CfgWeapons" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgVehicles" >> _id)) exitWith { + (getText(configFile >> "CfgVehicles" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgMagazines" >> _id)) exitWith { + (getText(configFile >> "CfgMagazines" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgAmmos" >> _id)) exitWith { + (getText(configFile >> "CfgAmmos" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgGlasses" >> _id)) exitWith { + (getText(configFile >> "CfgGlasses" >> _id >> _field)) + }; + + "" +}; + +format_integer = { + private["_value", "_nan", "_separator"]; + _nan = "NotANumber"; + _value = _this select 0; + _separator = _this select 1; + + if (undefined(_value)) exitWith {_nan}; + if (typeName _value != "SCALAR") exitWith {_nan}; + + if (_value == 0) exitWith {"0"}; + + private["_string_value", "_digits", "_remainder", "_sign"]; + _string_value = ""; + _digits = 0; + _sign = if (_value < 0) then {"-"} else {""}; + _value = abs(round(_value)); + while { _value >= 1 } do { + _digits = _digits + 1; + if ( _digits > 1 && ((_digits - 1) % 3) == 0) then { + _string_value = _separator + _string_value; + }; + _remainder = _value % 10; + _string_value = str(_remainder) + _string_value; + _value = floor(_value / 10); + }; + + _sign+_string_value +}; + + +diag_log format["Loading parking misc functions complete"]; +parking_misc_functions_defined = true; \ No newline at end of file diff --git a/addons/parking/pp_actions_functions.sqf b/addons/parking/pp_actions_functions.sqf new file mode 100644 index 000000000..792b24dcd --- /dev/null +++ b/addons/parking/pp_actions_functions.sqf @@ -0,0 +1,433 @@ +//if (!isNil "parking_functions_defined") exitWith {}; +diag_log format["Loading parking functions ..."]; + +#include "macro.h" + +#define strM(x) ([x,","] call format_integer) + +pp_marker_create = { + ARGVX3(0,_name,""); + ARGVX3(1,_location,[]); + ARGVX3(2,_this,[]); + + ARGVX3(0,_shape,""); + ARGVX3(1,_type,""); + ARGVX3(2,_color,""); + ARGVX3(3,_size,[]); + ARGVX3(4,_text,""); + + private["_marker"]; + _marker = createMarker [_name,_location]; + + _marker setMarkerShapeLocal _shape; + _marker setMarkerTypeLocal _type; + _marker setMarkerColorLocal _color; + _marker setMarkerSizeLocal _size; + _marker setMarkerTextLocal _text; + (_marker) +}; + +pp_get_all_cities = { + if (isARRAY(pp_all_cities)) exitWith {pp_get_all_cities}; + pp_get_all_cities = (nearestLocations [[0,0,0],["NameCityCapital","NameCity","NameVillage"],1000000]); + (pp_get_all_cities) +}; + +pp_markers_list = OR(pp_markers_list,[]); +pp_terminals_list = OR(pp_terminals_list,[]); + +{ + deleteVehicle _x; +} forEach pp_terminals_list; + +{ + deleteMarker _x; +} forEach pp_markers_list; + +pp_create_terminal = { + //Land_Laptop_unfolded_F + ARGVX3(0,_garage,objNull); + + def(_pos); + def(_terminal); + + _pos = _garage modelToWorld [-5,0.45,-1.485]; + _garage allowDamage false; + + _terminal = createVehicle ["Land_CampingTable_small_F", _pos, [], 0, ""]; + _terminal setPos _pos; + _terminal setVectorDirAndUp [([vectorDir _garage,90] call BIS_fnc_rotateVector2D), vectorUp _garage]; + _terminal attachTo [_garage, [0,0,0]]; + _terminal allowDamage false; + //_terminal enableSimulation false; + _terminal setVariable ["is_parking", true, true]; + _terminal setVariable ["R3F_LOG_disabled", true]; //don't allow players to move the table + _terminal attachTo [_terminal, [0,0,0]]; + detach _terminal; + + def(_laptop); + _laptop = createVehicle ["Land_Laptop_unfolded_F", _pos, [], 0, ""]; + _laptop setPos getPos _terminal; + _laptop attachTo [_terminal, [0,-0.1,0.55]]; + _laptop setVariable ["is_parking", true, true]; + _laptop setVariable ["R3F_LOG_disabled", true]; //don't allow players to move the laptop + + + pp_terminals_list pushBack _terminal; + pp_terminals_list pushBack _laptop; + + (_pos) +}; + +pp_create_terminals = { + def(_town); + def(_town_pos); + def(_town_name); + def(_garage); + def(_terminal); + def(_model); + def(_pos); + def(_name); + def(_marker); + init(_i,0); + + + {if (true) then { + _town = _x; + _town_name = text(_town); + _town_pos = position _town; + if (isARRAY(pp_cities_whitelist) && {count(pp_cities_whitelist) > 0 && {not(_town_name in pp_cities_whitelist)}}) exitWith {}; + + _garage = (nearestObjects [_town_pos, ["Land_i_Shed_Ind_F"], 300]) select 0; + if (!isOBJECT(_garage)) exitWith { + diag_log format["No garage in %1", _town_name]; + }; + + _name = format["parking_terminal_%1", _i]; + _i = _i + 1; + + _pos = [_garage] call pp_create_terminal; + + diag_log format["Creating parking terminal at: %1 (%2)", _town_name, _pos]; + + if (pp_markers_enabled) then { + _marker = [_name, _pos, pp_markers_properties] call pp_marker_create; + pp_markers_list pushBack _marker; + }; + + }} foreach (call pp_get_all_cities); +}; + +pp_get_near_vehicles = { + ARGVX4(0,_player,objNull,[]); + + def(_vehicles); + _vehicles = (nearestObjects [getPos _player, ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank"], 50]); + + init(_filtered,[]); + def(_uid); + _uid = getPlayerUID player; + + def(_ownerUID); + def(_vehicle); + + {if (true) then { + _vehicle = _x; + if (not(isOBJECT(_vehicle) && {alive _vehicle})) exitWith {}; + + _ownerUID = _vehicle getVariable ["ownerUID", ""]; + if(!isSTRING(_ownerUID)) exitWith {}; + if (_ownerUID == "" || {_ownerUID == _uid}) exitWith { + _filtered pushBack _vehicle; + }; + + };} forEach _vehicles; + + (_filtered) +}; + + + + +pp_get_wait_time = { + ARGVX4(0,_vehicle_id,"",0); + + if (not(isSCALAR(pp_retrieve_wait)) || {pp_retrieve_wait <= 0}) exitWith {0}; + + def(_cooldown_start_name); + _cooldown_start_name = format["%1_cooldown_start", _vehicle_id]; + + init(_ctime,diag_tickTime); + + def(_cooldown_start); + _cooldown_start = missionNamespace getVariable _cooldown_start_name; + + if (!isSCALAR(_cooldown_start)) then { + _cooldown_start = _ctime; + missionNamespace setVariable [_cooldown_start_name, _cooldown_start]; + }; + + def(_time_elapsed); + _time_elapsed = _ctime - _cooldown_start; + + def(_time_remaining); + _time_remaining = pp_retrieve_wait - _time_elapsed; + + if (_time_remaining <= 0) then { + missionNamespace setVariable [_cooldown_start_name, nil]; + }; + + (_time_remaining) +}; + +pp_retrieve_transaction_ok = { + ARGVX4(0,_player,objNull,true); + ARGVX4(1,_cost,0,true); + ARGVX3(2,_class,"",true) + + def(_cmoney); + _cmoney = _player getVariable ["cmoney",0]; + if (_cost > _cmoney) exitWith { + _player groupChat format["%1, you do not have enough money to retrieve the %2", (name _player), ([_class] call generic_display_name)]; + false + }; + + _player setVariable ["cmoney", _cmoney - _cost, true]; + true +}; + +pp_retrieve_allowed = { + ARGVX4(0,_player,objNull, true); + ARGVX4(1,_vehicle_id,"",true); + ARGVX4(2,_class,"", true); + + //check if there is a cool-down period + def(_wait_time); + _wait_time = [_vehicle_id] call pp_get_wait_time; + if (isSCALAR(_wait_time) && {_wait_time > 0 }) exitWith { + _player groupChat format["%1, you have to wait %2 more sec(s) to retrieve the %3", (name _player), ceil(_wait_time), ([_class] call generic_display_name)]; + false + }; + + //check if thereis a price for retrieving the vehicle + if (isSCALAR(pp_retrieve_cost) && {pp_retrieve_cost > 0}) exitWith { + init(_cost,pp_retrieve_cost); + _msg = format["It's going to cost you $%1 to retrieve the %2. Do you want to proceed?", strM(_cost), ([_class] call generic_display_name)]; + + if (not([_msg, "Confirm", "Yes", "No"] call BIS_fnc_guiMessage)) exitWith {false}; + if (not([_player, _cost] call pp_retrieve_transaction_ok)) exitWith {false}; + + true + }; + + true +}; + +pp_park_allowed = { + ARGVX4(0,_player,objNull, true); + ARGVX4(1,_vehicle_id,"",true); + ARGVX4(2,_class,"", true); + + if (isARRAY(pp_disallowed_vehicle_classes) && {count(pp_disallowed_vehicle_classes) > 0 && { ({_class isKindOf _x} count pp_disallowed_vehicle_classes) > 0}}) exitWith { + _msg = format["This vehicle (%1) is not allowed to be parked.", ([_class] call generic_display_name)]; + [_msg, "Illegal Parking", "Ok", false] call BIS_fnc_guiMessage; + false + }; + + def(_parked_vehicles); + _parked_vehicles = _player getVariable ["parked_vehicles", []]; + init(_count,count(_parked_vehicles)); + + //check if the parking is full + if (isSCALAR(pp_max_player_vehicles) && {pp_max_player_vehicles > 0 && {_count >= pp_max_player_vehicles}}) exitWith { + _msg = format["You already have %1 vehicle(s) parked. There are no more parking spaces available.", _count]; + [_msg, "Full Parking", "Ok", false] call BIS_fnc_guiMessage; + false + }; + + true +}; + + + +pp_park_vehicle_action = { + init(_player,player); + + def(_vehicles); + _vehicles = [_player] call pp_get_near_vehicles; + + def(_vehicle_id); + _vehicle_id = ["Park Vehicle", _vehicles] call pp_interact_park_vehicle_wait; + + if (!isSTRING(_vehicle_id)) exitWith { + //_player groupChat format["%1, you did not select any vehicle to park", (name _player)]; + }; + + + _vehicle = objectFromNetId _vehicle_id; + if (!isOBJECT(_vehicle)) exitWith { + _player groupChat format["%1, the vehicle you selected to park could not be found", (name _player)]; + }; + + def(_class); + _class = typeOf _vehicle; + + if (not([_player, _vehicle_id, _class] call pp_park_allowed)) exitWith {}; + + + _player groupChat format["Please wait while we park your %1", ([typeOf _vehicle] call generic_display_name)]; + [_player, _vehicle] call pp_park_vehicle; +}; + +pp_retrieve_vehicle_action = { + init(_player,player); + + def(_parked_vehicles); + _parked_vehicles = _player getVariable "parked_vehicles"; + _parked_vehicles = if (isARRAY(_parked_vehicles)) then {_parked_vehicles} else {[]}; + + + def(_vehicle_id); + _vehicle_id = ["Retrieve Vehicle", _parked_vehicles] call pp_interact_park_vehicle_wait; + + + if (!isSTRING(_vehicle_id)) exitWith { + //_player groupChat format["%1, you did not select any vehicle to retreive", (name _player)]; + }; + + def(_vehicle_data); + _vehicle_data = [_parked_vehicles, _vehicle_id] call fn_getFromPairs; + + if (!isARRAY(_vehicle_data)) exitWith { + player groupChat format["ERROR: The selected vehicle (%1) was not found", _vehicle_id]; + }; + + def(_class); + _class = [_vehicle_data, "Class"] call fn_getFromPairs; + + if (not([_player, _vehicle_id, _class] call pp_retrieve_allowed)) exitWith {}; + + _player groupChat format["Please wait while we retrieve your %1", ([_class] call generic_display_name)]; + [player, _vehicle_id] call pp_retrieve_vehicle; +}; + + +pp_cameraDir = { + ([(positionCameraToWorld [0,0,0]), (positionCameraToWorld [0,0,1])] call BIS_fnc_vectorDiff) +}; + +pp_is_object_parking = { + ARGVX4(0,_obj,objNull,false); + (_obj getVariable ["is_parking", false]) +}; + +pp_is_player_near = { + private["_pos1", "_pos2"]; + _pos1 = (eyePos player); + _pos2 = ([_pos1, call pp_cameraDir] call BIS_fnc_vectorAdd); + + private["_objects"]; + _objects = lineIntersectsWith [_pos1,_pos2,objNull,objNull,true]; + if (isNil "_objects" || {typeName _objects != typeName []}) exitWith {false}; + + + private["_found"]; + _found = false; + { + if ([_x] call pp_is_object_parking) exitWith { + _found = true; + }; + } forEach _objects ; + + (_found) +}; + +pp_actions = OR(pp_actions,[]); + +pp_remove_actions = { + if (count pp_actions == 0) exitWith {}; + + { + private["_action_id"]; + _action_id = _x; + player removeAction _action_id; + } forEach pp_actions; + pp_actions = []; +}; + +pp_add_actions = { + if (count pp_actions > 0) exitWith {}; + private["_player"]; + _player = _this select 0; + + private["_action_id", "_text"]; + _action_id = _player addAction [" Park Vehicle", {call pp_park_vehicle_action}]; + pp_actions = pp_actions + [_action_id]; + + _action_id = _player addAction [" Retrieve Vehicle", {call pp_retrieve_vehicle_action}]; + pp_actions = pp_actions + [_action_id]; +}; + +pp_check_actions = { + private["_player"]; + _player = player; + private["_vehicle", "_in_vehicle"]; + _vehicle = (vehicle _player); + _in_vehicle = (_vehicle != _player); + + if (not(_in_vehicle || {not(alive _player) || {not(call pp_is_player_near)}})) exitWith { + [_player] call pp_add_actions; + }; + + [_player] call pp_remove_actions; +}; + +//this is a hack so that markers sync for JIP (Join in Progress) players +pp_sync_markers = { + { + _x setMarkerColor markerColor _x ; + } forEach allMapMarkers; +}; + + +pp_client_loop_stop = false; +pp_client_loop = { + if (not(isClient)) exitWith {}; + private ["_pp_client_loop_i"]; + _pp_client_loop_i = 0; + + while {_pp_client_loop_i < 5000 && not(pp_client_loop_stop)} do { + call pp_check_actions; + sleep 0.5; + _pp_client_loop_i = _pp_client_loop_i + 1; + }; + [] spawn pp_client_loop; +}; + + +pp_setup_terminals = { + if (not(isClient)) then { //FIXME: Need to change this to not(isClient) + diag_log format["Setting up parking terminals ... "]; + [] call pp_create_terminals; + pp_setup_terminals_complete = true; + publicVariable "pp_setup_terminals_complete"; + diag_log format["Setting up parking terminals complete"]; + + ["pp_sync_markers", "onPlayerConnected", { [] spawn pp_sync_markers}] call BIS_fnc_addStackedEventHandler; + }; + + if (isClient) then { + diag_log format["Waiting for parking terminals setup to complete ..."]; + waitUntil {not(isNil "pp_setup_terminals_complete")}; + diag_log format["Waiting for parking terminals setup to complete ... done"]; + }; +}; + +[] call pp_setup_terminals; +[] spawn pp_client_loop; + +parking_functions_defined = true; +diag_log format["Loading parking functions complete"]; + + + diff --git a/addons/parking/pp_interact_functions.sqf b/addons/parking/pp_interact_functions.sqf new file mode 100644 index 000000000..1ae14cc52 --- /dev/null +++ b/addons/parking/pp_interact_functions.sqf @@ -0,0 +1,83 @@ +if (!isNil "parking_interact_functions") exitWith {}; +diag_log format["Loading parking interact functions ..."]; + +#include "constants.h" +#include "macro.h" + + +pp_interact_select_vehicle = { + ARGVX3(0,_vehicle_id,""); + if (_vehicle_id == "") exitWith {nil}; + + pp_interact_selected_vehicle = _vehicle_id; + closeDialog 0; + _vehicle_id +}; + +pp_interact_park_vehicle_wait = { + //player groupChat format["interact_select_vehicle_wait %1",_this]; + disableSerialization; + ARGVX3(0,_title,""); + ARGVX3(1,_vehicle_list,[]); + + pp_interact_selected_vehicle = nil; + + def(_controls); + def(_list); + def(_submit); + + _controls = [toUpper(_title),0.14,0.14,0.55,0.45] call list_simple_menu_setup; + if (!isARRAY(_controls)) exitWith { + player groupChat format["ERROR: Could not setup dialog for parking vehicles"]; + nil + }; + + _list = _controls select list_simple_menu_list; + _submit = _controls select list_simple_menu_submit; + + _submit ctrlSetText "Select"; + + buttonSetAction [(ctrlIDC _submit),'[([] call list_simple_menu_label_data)] call pp_interact_select_vehicle;']; + + _submit ctrlCommit 0; + + interact_selected_vehicle = nil; + + {if(true) then { + init(_vehicle_data,_x); + + def(_vehicle_id); + def(_class); + + if (isOBJECT(_vehicle_data) && {alive _vehicle_data}) then { + init(_vehicle,_vehicle_data); + _vehicle_id = netId _vehicle; + _class = typeOf _vehicle; + } + else { if (isARRAY(_vehicle_data)) then { + _vehicle_id = _vehicle_data select 0; + _vehicle_data = _vehicle_data select 1; + _class = [_vehicle_data, "Class"] call fn_getFromPairs; + };}; + + if (isNil "_class") exitWith {}; + + def(_picture); + def(_name); + _name = [_class] call generic_display_name; + _picture = [_class] call generic_picture_path; + + def(_index); + _index = _list lbAdd format["%1 (%2)",_name, _vehicle_id]; + _list lbSetData [_index, _vehicle_id]; + _list lbSetPicture [_index, _picture]; + };} forEach _vehicle_list; + + _list lbSetCurSel 0; + waitUntil {(not(isNil "pp_interact_selected_vehicle") || {not(ctrlShown _list)})}; + + OR(pp_interact_selected_vehicle,nil); +}; + +diag_log format["Loading parking interact functions complete"]; +parking_interact_functions_defined = true; \ No newline at end of file diff --git a/addons/parking/pp_saving_functions.sqf b/addons/parking/pp_saving_functions.sqf new file mode 100644 index 000000000..4f025b641 --- /dev/null +++ b/addons/parking/pp_saving_functions.sqf @@ -0,0 +1,115 @@ +if (!isNil "parking_saving_functions_defined") exitWith {}; +diag_log format["Loading parking saving functions ..."]; + +#include "macro.h" + +if (not(isClient)) then { + pp_notify = { + diag_log format["%1 call pp_notify", _this]; + ARGVX3(0,_player,objNull); + ARGVX3(1,_msg,""); + + + + pp_notify_request = _msg; + (owner _player) publicVariableClient "pp_notify_request"; + }; + + pp_park_vehicle_request_handler = { + ARGVX3(1,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if (not(alive _vehicle)) exitWith {}; + + def(_uid); + _uid = getPlayerUID _player; + + diag_log format["Parking vehicle %1(%2) for player %3(%4)", typeOf _vehicle, netId _vehicle, (name _player), _uid]; + + def(_parked_vehicles); + _parked_vehicles = _player getVariable "parked_vehicles"; + _parked_vehicles = OR(_parked_vehicles,[]); + + def(_added); + _added = [_parked_vehicles, _vehicle, false] call v_addSaveVehicle; + if (isNil "_added") exitWith { + diag_log format["ERROR: Could not park vehicle %1(%2) for player %3(%4)", typeOf _vehicle, netId _vehicle, (name _player), _uid]; + [_player, format["ERROR: %1, your vehicle could not be parked. Please report this error to the server administrator.", (name _player)]] call pp_notify; + }; + + def(_display_name); + _display_name = [typeOf _vehicle] call generic_display_name; + + deleteVehicle _vehicle; + + _player setVariable ["parked_vehicles", _parked_vehicles, true]; + [_player, format["%1, your %2 has been parked.", (name _player), _display_name]] call pp_notify; + }; + + pp_retrieve_vehicle_request_handler = { + ARGVX3(1,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle_id, ""); + + def(_uid); + _uid = getPlayerUID _player; + + diag_log format["Retrieving parked vehicle %1 for player %2(%3)", _vehicle_id, (name _player), _uid]; + + def(_parked_vehicles); + _parked_vehicles = _player getVariable "parked_vehicles"; + _parked_vehicles = OR(_parked_vehicles,[]); + + def(_vehicle_data); + _vehicle_data = [_parked_vehicles, _vehicle_id] call fn_getFromPairs; + + if (!isARRAY(_vehicle_data)) exitWith { + diag_log format["ERROR: Could not retrieve vehicle %1 for player %2(%3)", _vehicle_id, (name _player), _uid]; + [_player, format["ERROR: %1, your vehicle (%2) could not be retrieved. Please report this error to the server administrator.", (name _player), _vehicle_id]] call pp_notify; + }; + + def(_vehicle); + _vehicle = [[_vehicle_id, _vehicle_data], true] call v_restoreVehicle; + + if (isNil "_vehicle") exitWith { + diag_log format["ERROR: Could not restore vehicle %1 for player %2(%3)", _vehicle_id, (name _player), _uid]; + [_player, format["ERROR: %1, your vehicle (%2) could not be restored. Please report this error to the server administrator.", (name _player), _vehicle_id]] call pp_notify; + }; + + [_parked_vehicles, _vehicle_id] call fn_removeFromPairs; + _player setVariable ["parked_vehicles", _parked_vehicles, true]; + + def(_display_name); + _display_name = [typeOf _vehicle] call generic_display_name; + [_player, format["%1, your %2 has been retrieved.", (name _player), _display_name]] call pp_notify; + }; + + "pp_park_vehicle_request" addPublicVariableEventHandler {_this call pp_park_vehicle_request_handler;}; + "pp_retrieve_vehicle_request" addPublicVariableEventHandler {_this call pp_retrieve_vehicle_request_handler;}; + +}; + +if (isClient) then { + pp_notify_request_handler = { + //diag_log format["%1 call pp_notify_request_handler", _this]; + ARGVX3(1,_msg,""); + player groupChat _msg; + }; + + "pp_notify_request" addPublicVariableEventHandler {_this call pp_notify_request_handler;}; + + pp_park_vehicle = { + pp_park_vehicle_request = _this; + publicVariableServer "pp_park_vehicle_request"; + }; + + pp_retrieve_vehicle = { + pp_retrieve_vehicle_request = _this; + publicVariableServer "pp_retrieve_vehicle_request"; + }; +}; + + +diag_log format["Loading parking saving functions complete"]; +parking_saving_functions_defined = true; \ No newline at end of file diff --git a/description.ext b/description.ext index 269315e38..3a032db6e 100644 --- a/description.ext +++ b/description.ext @@ -53,6 +53,9 @@ loadScreen = "mapConfig\Loading.jpg"; #include "client\systems\playerMenu\dialog\respawn_dialog.hpp" #include "client\systems\playerMenu\dialog\teamkill_dialog.hpp" #include "addons\proving_ground\PG_config.hpp" +#include "addons\gui\gui.hpp" +#include "addons\parking\list_simple_menu.hpp" + class RscTitles { diff --git a/init.sqf b/init.sqf index dd4d8938a..ba699b7ca 100644 --- a/init.sqf +++ b/init.sqf @@ -58,6 +58,7 @@ if (isServer) then }; //init 3rd Party Scripts +[] execVM "addons\parking\functions.sqf"; [] execVM "addons\storage\functions.sqf"; [] execVM "addons\R3F_ARTY_AND_LOG\init.sqf"; [] execVM "addons\proving_ground\init.sqf"; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 8056cf3d1..93b146803 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -5,18 +5,26 @@ diag_log "vFunctions.sqf loading ..."; call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; -v_restoreVehicle = {_this spawn { +v_restoreVehicle = { //diag_log format["%1 call v_restoreVehicle", _this]; ARGVX3(0,_data_pair,[]); + ARGVX4(1,_ignore_expiration,false,false); _this = _data_pair; ARGVX3(0,_vehicle_key,""); ARGVX2(1,_vehicle_hash); - if (!isCODE(_vehicle_hash)) exitWith {}; def(_vehicle_data); - _vehicle_data = call _vehicle_hash; + if (isCODE(_vehicle_hash)) then { + _vehicle_data = call _vehicle_hash; + } + else { if(isARRAY(_vehicle_hash)) then { + _vehicle_data = _vehicle_hash; + };}; + + if (isNil "_vehicle_data") exitWith {}; + //diag_log _vehicle_data; @@ -82,11 +90,11 @@ v_restoreVehicle = {_this spawn { diag_log format["%1(%2) is being restored.", _vehicle_key, _class]; - if (isSCALAR(_hours_alive) && {A3W_vehicleLifetime > 0 && {_hours_alive > A3W_vehicleLifetime}}) exitWith { + if (not(_ignore_expiration) && {isSCALAR(_hours_alive) && {A3W_vehicleLifetime > 0 && {_hours_alive > A3W_vehicleLifetime}}}) exitWith { diag_log format["vehicle %1(%2) has been alive for %3 (max=%4), skipping it", _vehicle_key, _class, _hours_alive, A3W_vehicleLifetime]; }; - if (isSCALAR(_hours_abandoned) && {A3W_vehicleMaxUnusedTime > 0 && {_hours_abandoned > A3W_vehicleMaxUnusedTime}}) exitWith { + if (not(_ignore_expiration) && {isSCALAR(_hours_abandoned) && {A3W_vehicleMaxUnusedTime > 0 && {_hours_abandoned > A3W_vehicleMaxUnusedTime}}}) exitWith { diag_log format["vehicle %1(%2) has been abandoned for %3 hours, (max=%4), skipping it", _vehicle_key, _class, _hours_abandoned, A3W_vehicleMaxUnusedTime]; }; @@ -200,7 +208,8 @@ v_restoreVehicle = {_this spawn { tracked_vehicles_list pushBack _obj; -}};; + _obj +}; tracked_vehicles_list = []; @@ -411,6 +420,7 @@ v_setupVehicleSavedVariables = { v_addSaveVehicle = { ARGVX3(0,_list,[]); ARGVX3(1,_obj,objNull); + ARGV4(2,_hashify,false,true); if (not([_obj] call v_isSaveable)) exitWith {}; @@ -487,7 +497,8 @@ v_addSaveVehicle = { }; }; - _list pushBack [_objName, ([ + def(_result); + _result = [ ["Class", _class], ["Position", _pos], ["Direction", _dir], @@ -507,8 +518,10 @@ v_addSaveVehicle = { ["FuelCargo", _fuelCargo], ["RepairCargo", _repairCargo], ["Hitpoints", _hitPoints] - ] call sock_hash)]; + ]; + _result = if (_hashify) then {_result call sock_hash} else {_result}; + _list pushBack [_objName, _result]; true }; @@ -629,7 +642,7 @@ v_loadVehicles = { diag_log format["A3Wasteland - will restore %1 vehicles", count(_vehicles)]; { - [_x] call v_restoreVehicle; + [_x] spawn v_restoreVehicle; } forEach _vehicles; v_loadVehicles_complete = true; From e29ade2d8bde3faf9cd0dfdd62bd75ebd4b262d4 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 28 Dec 2014 17:36:22 -0800 Subject: [PATCH 217/544] Fix tabs in private parking addon --- addons/parking/list_simple_menu.hpp | 110 ++++----- addons/parking/list_simple_menu_functions.sqf | 214 +++++++++--------- addons/parking/misc_functions.sqf | 102 ++++----- addons/parking/pp_interact_functions.sqf | 54 ++--- 4 files changed, 240 insertions(+), 240 deletions(-) diff --git a/addons/parking/list_simple_menu.hpp b/addons/parking/list_simple_menu.hpp index df1e354f9..7ae9a0497 100644 --- a/addons/parking/list_simple_menu.hpp +++ b/addons/parking/list_simple_menu.hpp @@ -1,59 +1,59 @@ #include "constants.h" class list_simple_menu { - idd = list_simple_menu_menu_dialog_idd; - movingEnable = true; - controlsBackground[] = {list_simple_menu_background}; - objects[] = { }; - - name = "LIST_SIMPLE_MENU"; - onUnload = ""; - onLoad="uiNamespace setVariable ['LIST_SIMPLE_MENU',_this select 0]"; - - controls[] = { - list_simple_menu_header, - list_simple_menu_select_button, - list_simple_menu_close_button, - list_simple_menu_list - }; - - class list_simple_menu_header : gui_RscMenuTitle { - idc = list_simple_menu_header_idc; - x = -10; y = -10; - w = 0.05; h = 0.05; - style = ST_CENTER; - SizeEX = 0.03; - colorBackground[] = GUI_BCG_RGB; - text = "list_simple"; - moving = 1; - }; - - class list_simple_menu_background : gui_RscBackground { - idc = list_simple_menu_background_idc; - x = -10; y = -10; - w = 0.05; h = 0.05; - moving = 1; - }; - - class list_simple_menu_select_button : gui_RscMenuButton { - idc = list_simple_menu_submit_button_idc; - x = -10; y = -10; - w = 0.05; h = 0.05; - text = "Select"; - }; - - class list_simple_menu_close_button : gui_RscMenuButton { - idc = list_simple_menu_close_button_idc; - x = -10; y = -10; - w = 0.05; h = 0.05; - text = "Close"; - action = "closedialog 0;"; - }; - - class list_simple_menu_list : gui_RscListBox { - idc = list_simple_menu_list_idc; - x = -10; y = -10; - w = 0.05; h = 0.50; - rowHeight = 0.065; - }; + idd = list_simple_menu_menu_dialog_idd; + movingEnable = true; + controlsBackground[] = {list_simple_menu_background}; + objects[] = { }; + + name = "LIST_SIMPLE_MENU"; + onUnload = ""; + onLoad="uiNamespace setVariable ['LIST_SIMPLE_MENU',_this select 0]"; + + controls[] = { + list_simple_menu_header, + list_simple_menu_select_button, + list_simple_menu_close_button, + list_simple_menu_list + }; + + class list_simple_menu_header : gui_RscMenuTitle { + idc = list_simple_menu_header_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + style = ST_CENTER; + SizeEX = 0.03; + colorBackground[] = GUI_BCG_RGB; + text = "list_simple"; + moving = 1; + }; + + class list_simple_menu_background : gui_RscBackground { + idc = list_simple_menu_background_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + moving = 1; + }; + + class list_simple_menu_select_button : gui_RscMenuButton { + idc = list_simple_menu_submit_button_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + text = "Select"; + }; + + class list_simple_menu_close_button : gui_RscMenuButton { + idc = list_simple_menu_close_button_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + text = "Close"; + action = "closedialog 0;"; + }; + + class list_simple_menu_list : gui_RscListBox { + idc = list_simple_menu_list_idc; + x = -10; y = -10; + w = 0.05; h = 0.50; + rowHeight = 0.065; + }; }; \ No newline at end of file diff --git a/addons/parking/list_simple_menu_functions.sqf b/addons/parking/list_simple_menu_functions.sqf index 3d36dedca..1a075e800 100644 --- a/addons/parking/list_simple_menu_functions.sqf +++ b/addons/parking/list_simple_menu_functions.sqf @@ -11,116 +11,116 @@ list_simple_menu_submit = 2; list_simple_menu_close = 3; list_simple_menu_label_data = { - private["_index"]; - _index = lbCurSel (list_simple_menu_list_idc); - if (_index < 0) exitWith {nil}; - - private["_data"]; - _data = (lbData [list_simple_menu_list_idc,_index]); - if (undefined(_data)) exitWith {nil}; - _data + private["_index"]; + _index = lbCurSel (list_simple_menu_list_idc); + if (_index < 0) exitWith {nil}; + + private["_data"]; + _data = (lbData [list_simple_menu_list_idc,_index]); + if (undefined(_data)) exitWith {nil}; + _data }; list_simple_menu_setup = { - disableSerialization; - ARGVX3(0,_title,""); - ARGVX3(1,_x,0); - ARGVX3(2,_y,0); - ARGVX3(3,_w,0); - ARGVX3(4,_h,0); - - if (!(createDialog "list_simple_menu")) exitWith { - player groupChat format["ERROR: Could not create list simple menu dialog"]; - }; - - private["_display"]; - _display = (uiNamespace getVariable 'LIST_SIMPLE_MENU'); - - _list_simple_menu_header = _display displayCtrl list_simple_menu_header_idc; - _list_simple_menu_background = _display displayCtrl list_simple_menu_background_idc; - _list_simple_menu_select_button = _display displayCtrl list_simple_menu_submit_button_idc; - _list_simple_menu_close_button = _display displayCtrl list_simple_menu_close_button_idc; - _list_simple_menu_list = _display displayCtrl list_simple_menu_list_idc; - - private["_ysep","_sep","_header_title"]; - _ysep = 0.003; - _sep = 0.01; - _header_title = _title; - - private["_button_font_height","_font_family"]; - _button_font_height = MENU_TITLE_FONT_HEIGHT; - _font_family = "PuristaMedium"; - - //header - private["_lhx","_lhy","_lhw","_lhh"]; - _lhx = _x; - _lhy = _y; - _lhw = _w; - _lhh = 0.045; - - _list_simple_menu_header ctrlSetPosition [_lhx,_lhy,_lhw,_lhh]; - _list_simple_menu_header ctrlSetFontHeight _button_font_height; - _list_simple_menu_header ctrlSetFont _font_family; - _list_simple_menu_header ctrlSetText _header_title; - _list_simple_menu_header ctrlCommit 0; - - - //background - private["_lbx","_lby","_lbw","_lbh"]; - _lbx = _lhx; - _lby = _lhy + _lhh + _ysep; - _lbw = _w; - _lbh = _h - _lhh - _lhh - _ysep - _ysep; - - _list_simple_menu_background ctrlSetPosition [_lbx,_lby,_lbw,_lbh]; - _list_simple_menu_background ctrlSetBackgroundColor [0,0,0,0.65]; - _list_simple_menu_background ctrlCommit 0; - - //select button - private["_lsx","_lsy","_lsw","_lsh"]; - _lsw = 0.20; - _lsh = _lhh; - _lsx = _lhx; - _lsy = _lby + _lbh + _ysep; - - _list_simple_menu_select_button ctrlSetText "Submit"; - _list_simple_menu_select_button ctrlSetPosition [_lsx,_lsy,_lsw,_lsh]; - _list_simple_menu_select_button ctrlCommit 0; - - - //close button - private["_lcx","_lcy","_lcw","_lch"]; - _lcw = 0.14; - _lch = _lhh; - _lcx = _lhx + _lhw - _lcw; - _lcy = _lhy + _h - _lch; - - _list_simple_menu_close_button ctrlSetText "Close"; - _list_simple_menu_close_button ctrlSetPosition [_lcx,_lcy,_lcw,_lch]; - buttonSetAction [(ctrlIDC _list_simple_menu_close_button),"closeDialog 0"]; - _list_simple_menu_close_button ctrlCommit 0; - - //list - private["_llx","_lly","_llw","_llh"]; - _llx = _lbx + _sep ; - _lly = _lby + _sep; - _llw = _lhw - _sep * 2; - _llh = _lbh - _sep * 2; - - _list_simple_menu_list ctrlSetText ""; - _list_simple_menu_list ctrlSetPosition [_llx,_lly,_llw,_llh]; - _list_simple_menu_list ctrlSetFontHeight _button_font_height - 0.0015; - _list_simple_menu_list ctrlCommit 0; - - private["_controls"]; - - _controls = []; - _controls set [list_simple_menu_header,_list_simple_menu_header]; - _controls set [list_simple_menu_list,_list_simple_menu_list]; - _controls set [list_simple_menu_submit,_list_simple_menu_select_button]; - _controls set [list_simple_menu_close,_list_simple_menu_close_button]; - - _controls + disableSerialization; + ARGVX3(0,_title,""); + ARGVX3(1,_x,0); + ARGVX3(2,_y,0); + ARGVX3(3,_w,0); + ARGVX3(4,_h,0); + + if (!(createDialog "list_simple_menu")) exitWith { + player groupChat format["ERROR: Could not create list simple menu dialog"]; + }; + + private["_display"]; + _display = (uiNamespace getVariable 'LIST_SIMPLE_MENU'); + + _list_simple_menu_header = _display displayCtrl list_simple_menu_header_idc; + _list_simple_menu_background = _display displayCtrl list_simple_menu_background_idc; + _list_simple_menu_select_button = _display displayCtrl list_simple_menu_submit_button_idc; + _list_simple_menu_close_button = _display displayCtrl list_simple_menu_close_button_idc; + _list_simple_menu_list = _display displayCtrl list_simple_menu_list_idc; + + private["_ysep","_sep","_header_title"]; + _ysep = 0.003; + _sep = 0.01; + _header_title = _title; + + private["_button_font_height","_font_family"]; + _button_font_height = MENU_TITLE_FONT_HEIGHT; + _font_family = "PuristaMedium"; + + //header + private["_lhx","_lhy","_lhw","_lhh"]; + _lhx = _x; + _lhy = _y; + _lhw = _w; + _lhh = 0.045; + + _list_simple_menu_header ctrlSetPosition [_lhx,_lhy,_lhw,_lhh]; + _list_simple_menu_header ctrlSetFontHeight _button_font_height; + _list_simple_menu_header ctrlSetFont _font_family; + _list_simple_menu_header ctrlSetText _header_title; + _list_simple_menu_header ctrlCommit 0; + + + //background + private["_lbx","_lby","_lbw","_lbh"]; + _lbx = _lhx; + _lby = _lhy + _lhh + _ysep; + _lbw = _w; + _lbh = _h - _lhh - _lhh - _ysep - _ysep; + + _list_simple_menu_background ctrlSetPosition [_lbx,_lby,_lbw,_lbh]; + _list_simple_menu_background ctrlSetBackgroundColor [0,0,0,0.65]; + _list_simple_menu_background ctrlCommit 0; + + //select button + private["_lsx","_lsy","_lsw","_lsh"]; + _lsw = 0.20; + _lsh = _lhh; + _lsx = _lhx; + _lsy = _lby + _lbh + _ysep; + + _list_simple_menu_select_button ctrlSetText "Submit"; + _list_simple_menu_select_button ctrlSetPosition [_lsx,_lsy,_lsw,_lsh]; + _list_simple_menu_select_button ctrlCommit 0; + + + //close button + private["_lcx","_lcy","_lcw","_lch"]; + _lcw = 0.14; + _lch = _lhh; + _lcx = _lhx + _lhw - _lcw; + _lcy = _lhy + _h - _lch; + + _list_simple_menu_close_button ctrlSetText "Close"; + _list_simple_menu_close_button ctrlSetPosition [_lcx,_lcy,_lcw,_lch]; + buttonSetAction [(ctrlIDC _list_simple_menu_close_button),"closeDialog 0"]; + _list_simple_menu_close_button ctrlCommit 0; + + //list + private["_llx","_lly","_llw","_llh"]; + _llx = _lbx + _sep ; + _lly = _lby + _sep; + _llw = _lhw - _sep * 2; + _llh = _lbh - _sep * 2; + + _list_simple_menu_list ctrlSetText ""; + _list_simple_menu_list ctrlSetPosition [_llx,_lly,_llw,_llh]; + _list_simple_menu_list ctrlSetFontHeight _button_font_height - 0.0015; + _list_simple_menu_list ctrlCommit 0; + + private["_controls"]; + + _controls = []; + _controls set [list_simple_menu_header,_list_simple_menu_header]; + _controls set [list_simple_menu_list,_list_simple_menu_list]; + _controls set [list_simple_menu_submit,_list_simple_menu_select_button]; + _controls set [list_simple_menu_close,_list_simple_menu_close_button]; + + _controls }; diff --git a/addons/parking/misc_functions.sqf b/addons/parking/misc_functions.sqf index ac8412b9c..6803a7a55 100644 --- a/addons/parking/misc_functions.sqf +++ b/addons/parking/misc_functions.sqf @@ -4,76 +4,76 @@ diag_log format["Loading parking misc functions"]; #include "macro.h" generic_picture_path = { - ARGVX3(0,_id,""); - ([_id, "picture"] call generic_config_text) + ARGVX3(0,_id,""); + ([_id, "picture"] call generic_config_text) }; generic_display_name = { - ARGVX3(0,_id,""); - ([_id, "displayName"] call generic_config_text) + ARGVX3(0,_id,""); + ([_id, "displayName"] call generic_config_text) }; generic_icon_path = { - ARGVX3(0,_id,""); - ([_id, "icon"] call generic_config_text) + ARGVX3(0,_id,""); + ([_id, "icon"] call generic_config_text) }; generic_config_text = { - ARGVX3(0,_id,""); - ARGVX3(1,_field,""); + ARGVX3(0,_id,""); + ARGVX3(1,_field,""); - if (_id == "" || {_field == ""}) exitWith {""}; + if (_id == "" || {_field == ""}) exitWith {""}; - if (isClass(configFile >> "CfgWeapons" >> _id)) exitWith { - (getText(configFile >> "CfgWeapons" >> _id >> _field)) - }; + if (isClass(configFile >> "CfgWeapons" >> _id)) exitWith { + (getText(configFile >> "CfgWeapons" >> _id >> _field)) + }; - if (isClass(configFile >> "CfgVehicles" >> _id)) exitWith { - (getText(configFile >> "CfgVehicles" >> _id >> _field)) - }; + if (isClass(configFile >> "CfgVehicles" >> _id)) exitWith { + (getText(configFile >> "CfgVehicles" >> _id >> _field)) + }; - if (isClass(configFile >> "CfgMagazines" >> _id)) exitWith { - (getText(configFile >> "CfgMagazines" >> _id >> _field)) - }; + if (isClass(configFile >> "CfgMagazines" >> _id)) exitWith { + (getText(configFile >> "CfgMagazines" >> _id >> _field)) + }; - if (isClass(configFile >> "CfgAmmos" >> _id)) exitWith { - (getText(configFile >> "CfgAmmos" >> _id >> _field)) - }; + if (isClass(configFile >> "CfgAmmos" >> _id)) exitWith { + (getText(configFile >> "CfgAmmos" >> _id >> _field)) + }; - if (isClass(configFile >> "CfgGlasses" >> _id)) exitWith { - (getText(configFile >> "CfgGlasses" >> _id >> _field)) - }; + if (isClass(configFile >> "CfgGlasses" >> _id)) exitWith { + (getText(configFile >> "CfgGlasses" >> _id >> _field)) + }; - "" + "" }; format_integer = { - private["_value", "_nan", "_separator"]; - _nan = "NotANumber"; - _value = _this select 0; - _separator = _this select 1; - - if (undefined(_value)) exitWith {_nan}; - if (typeName _value != "SCALAR") exitWith {_nan}; - - if (_value == 0) exitWith {"0"}; - - private["_string_value", "_digits", "_remainder", "_sign"]; - _string_value = ""; - _digits = 0; - _sign = if (_value < 0) then {"-"} else {""}; - _value = abs(round(_value)); - while { _value >= 1 } do { - _digits = _digits + 1; - if ( _digits > 1 && ((_digits - 1) % 3) == 0) then { - _string_value = _separator + _string_value; - }; - _remainder = _value % 10; - _string_value = str(_remainder) + _string_value; - _value = floor(_value / 10); - }; - - _sign+_string_value + private["_value", "_nan", "_separator"]; + _nan = "NotANumber"; + _value = _this select 0; + _separator = _this select 1; + + if (undefined(_value)) exitWith {_nan}; + if (typeName _value != "SCALAR") exitWith {_nan}; + + if (_value == 0) exitWith {"0"}; + + private["_string_value", "_digits", "_remainder", "_sign"]; + _string_value = ""; + _digits = 0; + _sign = if (_value < 0) then {"-"} else {""}; + _value = abs(round(_value)); + while { _value >= 1 } do { + _digits = _digits + 1; + if ( _digits > 1 && ((_digits - 1) % 3) == 0) then { + _string_value = _separator + _string_value; + }; + _remainder = _value % 10; + _string_value = str(_remainder) + _string_value; + _value = floor(_value / 10); + }; + + _sign+_string_value }; diff --git a/addons/parking/pp_interact_functions.sqf b/addons/parking/pp_interact_functions.sqf index 1ae14cc52..bbf43d315 100644 --- a/addons/parking/pp_interact_functions.sqf +++ b/addons/parking/pp_interact_functions.sqf @@ -6,19 +6,19 @@ diag_log format["Loading parking interact functions ..."]; pp_interact_select_vehicle = { - ARGVX3(0,_vehicle_id,""); - if (_vehicle_id == "") exitWith {nil}; + ARGVX3(0,_vehicle_id,""); + if (_vehicle_id == "") exitWith {nil}; - pp_interact_selected_vehicle = _vehicle_id; - closeDialog 0; - _vehicle_id + pp_interact_selected_vehicle = _vehicle_id; + closeDialog 0; + _vehicle_id }; pp_interact_park_vehicle_wait = { - //player groupChat format["interact_select_vehicle_wait %1",_this]; - disableSerialization; - ARGVX3(0,_title,""); - ARGVX3(1,_vehicle_list,[]); + //player groupChat format["interact_select_vehicle_wait %1",_this]; + disableSerialization; + ARGVX3(0,_title,""); + ARGVX3(1,_vehicle_list,[]); pp_interact_selected_vehicle = nil; @@ -26,24 +26,24 @@ pp_interact_park_vehicle_wait = { def(_list); def(_submit); - _controls = [toUpper(_title),0.14,0.14,0.55,0.45] call list_simple_menu_setup; - if (!isARRAY(_controls)) exitWith { + _controls = [toUpper(_title),0.14,0.14,0.55,0.45] call list_simple_menu_setup; + if (!isARRAY(_controls)) exitWith { player groupChat format["ERROR: Could not setup dialog for parking vehicles"]; - nil - }; + nil + }; - _list = _controls select list_simple_menu_list; - _submit = _controls select list_simple_menu_submit; + _list = _controls select list_simple_menu_list; + _submit = _controls select list_simple_menu_submit; - _submit ctrlSetText "Select"; + _submit ctrlSetText "Select"; - buttonSetAction [(ctrlIDC _submit),'[([] call list_simple_menu_label_data)] call pp_interact_select_vehicle;']; + buttonSetAction [(ctrlIDC _submit),'[([] call list_simple_menu_label_data)] call pp_interact_select_vehicle;']; - _submit ctrlCommit 0; + _submit ctrlCommit 0; - interact_selected_vehicle = nil; + interact_selected_vehicle = nil; - {if(true) then { + {if(true) then { init(_vehicle_data,_x); def(_vehicle_id); @@ -68,15 +68,15 @@ pp_interact_park_vehicle_wait = { _picture = [_class] call generic_picture_path; def(_index); - _index = _list lbAdd format["%1 (%2)",_name, _vehicle_id]; - _list lbSetData [_index, _vehicle_id]; - _list lbSetPicture [_index, _picture]; - };} forEach _vehicle_list; + _index = _list lbAdd format["%1 (%2)",_name, _vehicle_id]; + _list lbSetData [_index, _vehicle_id]; + _list lbSetPicture [_index, _picture]; + };} forEach _vehicle_list; - _list lbSetCurSel 0; - waitUntil {(not(isNil "pp_interact_selected_vehicle") || {not(ctrlShown _list)})}; + _list lbSetCurSel 0; + waitUntil {(not(isNil "pp_interact_selected_vehicle") || {not(ctrlShown _list)})}; - OR(pp_interact_selected_vehicle,nil); + OR(pp_interact_selected_vehicle,nil); }; diag_log format["Loading parking interact functions complete"]; From dc9003c3e90afbd63ad2b1cba58ba9952ddaae31 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 28 Dec 2014 18:46:20 -0800 Subject: [PATCH 218/544] Enable persistence for private parking --- persistence/players/pFunctions.sqf | 49 +++++++++++++++++++++++++++++- persistence/players/sFunctions.sqf | 40 ++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 9a64c64e3..01d1a9a16 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -432,6 +432,38 @@ fn_applyPlayerStorage = { }; +fn_applyPlayerParking = { + if (!isARRAY(_this)) exitWith { + diag_log format["WARNING: No player private parking data"]; + }; + init(_data,_this); + + + diag_log "#############################################"; + diag_log "Dumping _parkingData"; + [_data] call p_dumpHash; + + init(_parked_vehicles,[]); + + def(_vehicle_info); + {if (true) then { + _vehicle_info = _x; + if (!isARRAY(_vehicle_info) || {count(_vehicle_info) < 2}) exitWith {}; + + def(_vehicle_id); + + _vehicle_id = _vehicle_info select 0; + if (!isSTRING(_vehicle_id)) exitWith {}; + + def(_vehicle_data); + _vehicle_data = _vehicle_info select 1; + if (!isCODE(_vehicle_data)) exitWith {}; + _parked_vehicles pushBack [_vehicle_id, (call _vehicle_data)]; + };} forEach _data; + + player setVariable ["parked_vehicles",_parked_vehicles,true]; +}; + p_restoreInfo = { ARGVX2(0,_hash); @@ -453,6 +485,17 @@ p_restoreStorage = { OR(_data,nil) call fn_applyPlayerStorage; }; +p_restoreParking = { + ARGVX2(0,_hash); + if (!isCODE(_hash)) exitWith {}; + format["%1 call p_restoreParking;", _this] call p_log_finest; + def(_data); + _data = call _hash; + + OR(_data,nil) call fn_applyPlayerParking; +}; + + p_restoreScore = { ARGVX2(0,_hash); @@ -562,13 +605,14 @@ fn_requestPlayerData = {[] spawn { init(_infoKey, "PlayerInfo"); init(_scoreKey, "PlayerScore"); init(_storageKey, "PlayerStorage"); + init(_parkingKey, "PlayerParking"); def(_worldDataKey); _worldDataKey = format["%1_%2", _genericDataKey, worldName]; def(_pData); - _pData = [_scope, [_genericDataKey, nil], [_worldDataKey, nil], [_infoKey, nil], [_storageKey, nil], [_scoreKey, nil]] call stats_get; + _pData = [_scope, [_genericDataKey, nil], [_worldDataKey, nil], [_infoKey, nil], [_storageKey, nil], [_parkingKey, nil], [_scoreKey, nil]] call stats_get; if (not(isARRAY(_pData))) exitWith { //player data did not load, force him back to lobby endMission "LOSER"; @@ -590,6 +634,9 @@ fn_requestPlayerData = {[] spawn { case _storageKey: { [xGet(_x,1)] call p_restoreStorage; }; + case _parkingKey: { + [xGet(_x,1)] call p_restoreParking; + }; case _infoKey: { [xGet(_x,1)] call p_restoreInfo; }; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 0831d1cd7..53af0a2de 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -271,6 +271,39 @@ p_getPlayerStorage = { (_storage) }; +p_getPlayerParking = { + //diag_log format["%1 call p_getPlayerParking", _this]; + ARGVX3(0,_player,objNull); + + def(_parked_vehicles); + _parked_vehicles = _player getVariable ["parked_vehicles", []]; + diag_log str(_parked_vehicles); + + init(_vehicles,[]); + + def(_vehicle_info); + + {if(true) then { + _vehicle_info = _x; + if (!isARRAY(_vehicle_info) || {count(_vehicle_info) < 2}) exitWith {}; + + def(_vehicle_id); + _vehicle_id = _vehicle_info select 0; + if (!isSTRING(_vehicle_id)) exitWith {}; + + def(_vehicle_data); + _vehicle_data = _vehicle_info select 1; + if (!isARRAY(_vehicle_data)) exitWith {}; + + _vehicles pushBack [_vehicle_id, (_vehicle_data call sock_hash)]; + };} forEach _parked_vehicles; + + + if (count(_vehicles) == 0) exitWith {}; + + + (_vehicles call sock_hash) +}; p_addPlayerSave = { //diag_log format["%1 call p_addPlayerSave", _this]; ARGVX3(0,_request,[]); @@ -314,6 +347,13 @@ p_addPlayerSave = { _request pushBack ["PlayerStorage", _playerStorage]; }; + def(_playerParking); + _playerParking = [_player] call p_getPlayerParking; + + if (isARRAY(_playerParking)) then { + _request pushBack ["PlayerParking", _playerParking]; + }; + def(_scoreInfo); _scoreInfo = [_uid] call p_getScoreInfo; From 57309821fdcb9bbfc437143d7a60d4dc16747475 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 29 Dec 2014 00:56:28 -0800 Subject: [PATCH 219/544] Parking fixes for safe position, and UI scrollbar For some reason the RscListBox UI dialogs, get their scrollbar messed up if you change the height of the dialog after it has already been created. Also, add a fix for placing vehicles safely when retrieving them from the parking. --- addons/parking/list_simple_menu.hpp | 6 +- addons/parking/pp_saving_functions.sqf | 100 ++++++++++++++++++++++--- persistence/lib/shFunctions.sqf | 77 +++++++++++++++++++ persistence/players/sFunctions.sqf | 1 - persistence/world/vFunctions.sqf | 21 +++++- 5 files changed, 187 insertions(+), 18 deletions(-) diff --git a/addons/parking/list_simple_menu.hpp b/addons/parking/list_simple_menu.hpp index 7ae9a0497..1ad7d473e 100644 --- a/addons/parking/list_simple_menu.hpp +++ b/addons/parking/list_simple_menu.hpp @@ -52,8 +52,10 @@ class list_simple_menu { class list_simple_menu_list : gui_RscListBox { idc = list_simple_menu_list_idc; - x = -10; y = -10; - w = 0.05; h = 0.50; + //x = -10; y = -10; + //w = 0.05; h = 0.50; + x = 0.15; y = 0.198; + w = 0.53; h = 0.334; rowHeight = 0.065; }; }; \ No newline at end of file diff --git a/addons/parking/pp_saving_functions.sqf b/addons/parking/pp_saving_functions.sqf index 4f025b641..2df50cf85 100644 --- a/addons/parking/pp_saving_functions.sqf +++ b/addons/parking/pp_saving_functions.sqf @@ -5,16 +5,40 @@ diag_log format["Loading parking saving functions ..."]; if (not(isClient)) then { pp_notify = { - diag_log format["%1 call pp_notify", _this]; + //diag_log format["%1 call pp_notify", _this]; ARGVX3(0,_player,objNull); ARGVX3(1,_msg,""); + ARGV3(2,_dialog,""); - - pp_notify_request = _msg; + pp_notify_request = [_msg,OR(_dialog,nil)]; (owner _player) publicVariableClient "pp_notify_request"; }; + pp_mark_vehicle = { + //diag_log format["%1 call pp_create_mark_vehicle", _this]; + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + pp_mark_vehicle_request = [_vehicle]; + (owner _player) publicVariableClient "pp_mark_vehicle_request"; + }; + + pp_is_safe_position = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_class,""); + ARGVX3(2,_position,[]); + + def(_classes); + _classes = ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank"]; + + def(_size); + _size = sizeof _class; + + ((_position distance _player) < 30 && { + (count(nearestObjects [_position, _classes , _size]) == 0)}) + }; + pp_park_vehicle_request_handler = { ARGVX3(1,_this,[]); ARGVX3(0,_player,objNull); @@ -35,7 +59,7 @@ if (not(isClient)) then { _added = [_parked_vehicles, _vehicle, false] call v_addSaveVehicle; if (isNil "_added") exitWith { diag_log format["ERROR: Could not park vehicle %1(%2) for player %3(%4)", typeOf _vehicle, netId _vehicle, (name _player), _uid]; - [_player, format["ERROR: %1, your vehicle could not be parked. Please report this error to the server administrator.", (name _player)]] call pp_notify; + [_player, format["The %1 could not be parked (it may not be saveable). Please check with server administrator.", ([typeOf _vehicle] call generic_display_name)], "Parking Error"] call pp_notify; }; def(_display_name); @@ -66,15 +90,27 @@ if (not(isClient)) then { if (!isARRAY(_vehicle_data)) exitWith { diag_log format["ERROR: Could not retrieve vehicle %1 for player %2(%3)", _vehicle_id, (name _player), _uid]; - [_player, format["ERROR: %1, your vehicle (%2) could not be retrieved. Please report this error to the server administrator.", (name _player), _vehicle_id]] call pp_notify; + [_player, format["Your vehicle (%2) could not be retrieved. Please report this error to the server administrator.", _vehicle_id], "Retrieval Error"] call pp_notify; + }; + + def(_position); + _position = [_vehicle_data, "Position"] call fn_getFromPairs; + + def(_class); + _class = [_vehicle_data, "Class"] call fn_getFromPairs; + + def(_create_array); + if (not([_player,_class,_position] call pp_is_safe_position)) then { + //we don't have an exact safe position, let the game figure one out + _create_array = [_class, getPos _player, [], 30, "NONE"]; }; def(_vehicle); - _vehicle = [[_vehicle_id, _vehicle_data], true] call v_restoreVehicle; + _vehicle = [[_vehicle_id, _vehicle_data], true,OR(_create_array,nil)] call v_restoreVehicle; if (isNil "_vehicle") exitWith { diag_log format["ERROR: Could not restore vehicle %1 for player %2(%3)", _vehicle_id, (name _player), _uid]; - [_player, format["ERROR: %1, your vehicle (%2) could not be restored. Please report this error to the server administrator.", (name _player), _vehicle_id]] call pp_notify; + [_player, format["Your vehicle (%1) could not be restored. Please report this error to the server administrator.", _vehicle_id], "Restoring Error"] call pp_notify; }; [_parked_vehicles, _vehicle_id] call fn_removeFromPairs; @@ -82,7 +118,8 @@ if (not(isClient)) then { def(_display_name); _display_name = [typeOf _vehicle] call generic_display_name; - [_player, format["%1, your %2 has been retrieved.", (name _player), _display_name]] call pp_notify; + [_player, format["%1, your %2 has been retrieved (marked on map)", (name _player), _display_name]] call pp_notify; + [_player, _vehicle] call pp_mark_vehicle; }; "pp_park_vehicle_request" addPublicVariableEventHandler {_this call pp_park_vehicle_request_handler;}; @@ -91,13 +128,52 @@ if (not(isClient)) then { }; if (isClient) then { - pp_notify_request_handler = { + pp_notify_request_handler = {_this spawn { //diag_log format["%1 call pp_notify_request_handler", _this]; - ARGVX3(1,_msg,""); + ARGVX3(1,_this,[]); + ARGVX3(0,_msg,""); + ARGV3(1,_dialog,""); + + if (isSTRING(_dialog)) exitWith { + [_msg, _dialog, "OK", false] call BIS_fnc_guiMessage; + }; + player groupChat _msg; - }; + };}; + + "pp_notify_request" addPublicVariableEventHandler {_this call pp_notify_request_handler}; + + pp_mark_vehicle_request_handler = {_this spawn { + //diag_log format["%1 call pp_mark_vehicle_request_handler", _this]; + ARGVX3(1,_this,[]); + ARGVX3(0,_vehicle,objNull); + + sleep 3; //give enough time for the vehicle to be move to the correct location (before marking) + def(_class); + _class = typeOf _vehicle; + + def(_name); + _name = [_class] call generic_display_name; + + def(_pos); + _pos = getPos _vehicle; + + def(_marker); + _marker = format["pp_vehicle_marker_%1", ceil(random 1000)]; + _marker = createMarkerLocal [_marker, _pos]; + _marker setMarkerTypeLocal "waypoint"; + _marker setMarkerPosLocal _pos; + _marker setMarkerColorLocal "ColorBlue"; + _marker setMarkerTextLocal _name; + + [_marker] spawn { + ARGVX3(0,_marker,""); + sleep 60; + deleteMarkerLocal _marker; + }; + };}; - "pp_notify_request" addPublicVariableEventHandler {_this call pp_notify_request_handler;}; + "pp_mark_vehicle_request" addPublicVariableEventHandler {_this call pp_mark_vehicle_request_handler}; pp_park_vehicle = { pp_park_vehicle_request = _this; diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 0850110b6..65d1dea0a 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -197,6 +197,83 @@ sh_restoreVehicleTurrets = { }; +sh_calcualte_vectors = { + ARGVX3(0,_data,[]); + private["_direction","_angle","_pitch"]; + + _direction = _data select 0; + _angle = _data select 1; + _pitch = _data select 2; + + _vecdx = sin(_direction) * cos(_angle); + _vecdy = cos(_direction) * cos(_angle); + _vecdz = sin(_angle); + + _vecux = cos(_direction) * cos(_angle) * sin(_pitch); + _vecuy = sin(_direction) * cos(_angle) * sin(_pitch); + _vecuz = cos(_angle) * cos(_pitch); + + private["_dir_vector"]; + private["_up_vector"]; + _dir_vector = [_vecdx,_vecdy,_vecdz]; + _up_vector = [_vecux,_vecuy,_vecuz]; + + ([_dir_vector,_up_vector]) +}; + +sh_set_heading = { + ARGVX3(0,_object,objNull); + ARGVX3(1,_data,[]); + + if (typeName (_data select 0) == typeName []) exitWith { + _object setVectorDirAndUp _data; + }; + + def(_vectors); + _vectors = [_data] call sh_calcualte_vectors; + _object setVectorDirAndUp _vectors; +}; + +sh_fake_attach = { + ARGVX3(0,_source,objNull); + ARGVX3(1,_target,objNull); + ARGVX3(2,_offset,[]); + ARGV3(3,_heading,[]); + ARGV4(4,_attached,false,false); + + if (isNil "_heading") then { + _heading = [0,0,0]; + }; + + _source attachTo [_target, _offset]; + + [_source, _heading] call sh_set_heading; + + if (not(_attached)) then { + //hack to have the objects not being attached + _source attachTo [_source,[0,0,0]]; + detach _source; + }; +}; + +sh_create_setPos_reference = { + if (!isNil "setPos_reference") exitWith {}; + setPos_reference = "Sign_Sphere10cm_F" createVehicleLocal [0,0,0]; + setPos_reference setPos [0,0,0]; + + [setPos_reference,[0,0,0]] call sh_set_heading; +}; + +[] call sh_create_setPos_reference; + +sh_fake_setPos = { + //player groupChat format["camera_fake_setPos %1",_this]; + ARGVX3(0,_object,objNull); + ARGVX3(1,_position,[]); + ARGV3(2,_heading,[]); + + [_object,setPos_reference, (setPos_reference worldToModel _position),OR(_heading,nil)] call object_fake_attach; +}; shFunctions_loased = true; diag_log "shFunctions loading complete"; \ No newline at end of file diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 53af0a2de..8f2ea3bf8 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -277,7 +277,6 @@ p_getPlayerParking = { def(_parked_vehicles); _parked_vehicles = _player getVariable ["parked_vehicles", []]; - diag_log str(_parked_vehicles); init(_vehicles,[]); diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 93b146803..e0be13f01 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -5,10 +5,12 @@ diag_log "vFunctions.sqf loading ..."; call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; + v_restoreVehicle = { //diag_log format["%1 call v_restoreVehicle", _this]; ARGVX3(0,_data_pair,[]); - ARGVX4(1,_ignore_expiration,false,false); + ARGV4(1,_ignore_expiration,false,false); + ARGV3(2,_create_array,[]); _this = _data_pair; ARGVX3(0,_vehicle_key,""); @@ -100,17 +102,30 @@ v_restoreVehicle = { def(_obj); - _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; + if (isARRAY(_create_array)) then { + _obj = createVehicle _create_array; + } + else { + _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; + }; + if (!isOBJECT(_obj)) exitWith { diag_log format["Could not create vehicle of class: %1", _class]; }; + _obj allowDamage false; + [_obj] spawn { ARGVX3(0,_obj,objNull); sleep 3; _obj allowDamage true;}; //hack so that vehicle does not take damage while spawning + + [_obj, false] call vehicleSetup; _obj setVariable ["vehicle_key", _vehicle_key, true]; missionNamespace setVariable [_vehicle_key, _obj]; - _obj setPosWorld ATLtoASL _pos; + if (!isARRAY(_create_array)) then { + _obj setPosWorld ATLtoASL _pos; + }; + if (isARRAY(_dir)) then { _obj setVectorDirAndUp _dir; }; From 2bdeffb558f2f6e2278f1c9b6dc5f32e7f779a6b Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 29 Dec 2014 01:08:26 -0800 Subject: [PATCH 220/544] More tab/space fixes --- persistence/lib/shFunctions.sqf | 92 ++++++++++++++++----------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 65d1dea0a..7e0e52f93 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -198,81 +198,81 @@ sh_restoreVehicleTurrets = { }; sh_calcualte_vectors = { - ARGVX3(0,_data,[]); - private["_direction","_angle","_pitch"]; + ARGVX3(0,_data,[]); + private["_direction","_angle","_pitch"]; - _direction = _data select 0; - _angle = _data select 1; - _pitch = _data select 2; + _direction = _data select 0; + _angle = _data select 1; + _pitch = _data select 2; - _vecdx = sin(_direction) * cos(_angle); - _vecdy = cos(_direction) * cos(_angle); - _vecdz = sin(_angle); + _vecdx = sin(_direction) * cos(_angle); + _vecdy = cos(_direction) * cos(_angle); + _vecdz = sin(_angle); - _vecux = cos(_direction) * cos(_angle) * sin(_pitch); - _vecuy = sin(_direction) * cos(_angle) * sin(_pitch); - _vecuz = cos(_angle) * cos(_pitch); + _vecux = cos(_direction) * cos(_angle) * sin(_pitch); + _vecuy = sin(_direction) * cos(_angle) * sin(_pitch); + _vecuz = cos(_angle) * cos(_pitch); - private["_dir_vector"]; - private["_up_vector"]; - _dir_vector = [_vecdx,_vecdy,_vecdz]; - _up_vector = [_vecux,_vecuy,_vecuz]; + private["_dir_vector"]; + private["_up_vector"]; + _dir_vector = [_vecdx,_vecdy,_vecdz]; + _up_vector = [_vecux,_vecuy,_vecuz]; - ([_dir_vector,_up_vector]) + ([_dir_vector,_up_vector]) }; sh_set_heading = { - ARGVX3(0,_object,objNull); - ARGVX3(1,_data,[]); + ARGVX3(0,_object,objNull); + ARGVX3(1,_data,[]); - if (typeName (_data select 0) == typeName []) exitWith { - _object setVectorDirAndUp _data; - }; + if (typeName (_data select 0) == typeName []) exitWith { + _object setVectorDirAndUp _data; + }; - def(_vectors); - _vectors = [_data] call sh_calcualte_vectors; - _object setVectorDirAndUp _vectors; + def(_vectors); + _vectors = [_data] call sh_calcualte_vectors; + _object setVectorDirAndUp _vectors; }; sh_fake_attach = { - ARGVX3(0,_source,objNull); - ARGVX3(1,_target,objNull); - ARGVX3(2,_offset,[]); - ARGV3(3,_heading,[]); - ARGV4(4,_attached,false,false); + ARGVX3(0,_source,objNull); + ARGVX3(1,_target,objNull); + ARGVX3(2,_offset,[]); + ARGV3(3,_heading,[]); + ARGV4(4,_attached,false,false); if (isNil "_heading") then { - _heading = [0,0,0]; - }; + _heading = [0,0,0]; + }; - _source attachTo [_target, _offset]; + _source attachTo [_target, _offset]; - [_source, _heading] call sh_set_heading; + [_source, _heading] call sh_set_heading; - if (not(_attached)) then { - //hack to have the objects not being attached - _source attachTo [_source,[0,0,0]]; - detach _source; - }; + if (not(_attached)) then { + //hack to have the objects not being attached + _source attachTo [_source,[0,0,0]]; + detach _source; + }; }; sh_create_setPos_reference = { if (!isNil "setPos_reference") exitWith {}; - setPos_reference = "Sign_Sphere10cm_F" createVehicleLocal [0,0,0]; - setPos_reference setPos [0,0,0]; + setPos_reference = "Sign_Sphere10cm_F" createVehicleLocal [0,0,0]; + setPos_reference setPos [0,0,0]; - [setPos_reference,[0,0,0]] call sh_set_heading; + [setPos_reference,[0,0,0]] call sh_set_heading; }; [] call sh_create_setPos_reference; sh_fake_setPos = { - //player groupChat format["camera_fake_setPos %1",_this]; - ARGVX3(0,_object,objNull); - ARGVX3(1,_position,[]); - ARGV3(2,_heading,[]); + //player groupChat format["camera_fake_setPos %1",_this]; + ARGVX3(0,_object,objNull); + ARGVX3(1,_position,[]); + ARGV3(2,_heading,[]); - [_object,setPos_reference, (setPos_reference worldToModel _position),OR(_heading,nil)] call object_fake_attach; + [_object,setPos_reference, (setPos_reference worldToModel _position),OR(_heading,nil)] call object_fake_attach; }; shFunctions_loased = true; From 4a44e96622b50da47ac18c48c3e85f0d5fb77353 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 29 Dec 2014 01:36:24 -0800 Subject: [PATCH 221/544] Restrict parking locations in Altis --- addons/parking/config.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/parking/config.sqf b/addons/parking/config.sqf index 9b78aa041..8db99db34 100644 --- a/addons/parking/config.sqf +++ b/addons/parking/config.sqf @@ -1,6 +1,6 @@ //List of cities where private parking is available (empty or unset means all cities) -pp_cities_whitelist = []; +pp_cities_whitelist = ["Katalaki", "Agios Konstantinos", "Ioannina", "Panagia"]; //whether or not to show map markers for private parking locations pp_markers_enabled = true; From 3ab3508afc1f9302fcf6cc3363ff02e144337fb1 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 30 Dec 2014 02:13:55 -0800 Subject: [PATCH 222/544] Do not allow players to put mines near parking --- client/functions/firstSpawn.sqf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/client/functions/firstSpawn.sqf b/client/functions/firstSpawn.sqf index f5ef06b7a..a15245171 100644 --- a/client/functions/firstSpawn.sqf +++ b/client/functions/firstSpawn.sqf @@ -120,6 +120,7 @@ if (["A3W_combatAbortDelay", 0] call getPublicVar > 0) then { player addEventHandler ["Fired", { + private["_isShop"]; // Remove remote explosives if within 100m of a store if (_this select 1 == "Put") then { @@ -132,14 +133,15 @@ if (["A3W_combatAbortDelay", 0] call getPublicVar > 0) then _minDist = ["A3W_remoteBombStoreRadius", 100] call getPublicVar; { - if (_x getVariable ["storeNPC_setupComplete", false] && {_bomb distance _x < _minDist}) exitWith + _isShop = (_x getVariable ["storeNPC_setupComplete", false] || { _x getVariable ["is_parking", false]}); + if (_isShop && {_bomb distance _x < _minDist}) exitWith { deleteVehicle _bomb; player addMagazine _mag; playSound "FD_CP_Not_Clear_F"; titleText [format ["You are not allowed to place explosives within %1m of a store.\nThe explosive has been re-added to your inventory.", _minDist], "PLAIN DOWN", 0.5]; }; - } forEach entities "CAManBase"; + } forEach ((entities "CAManBase") + (entities "Land_Laptop_unfolded_F")); }; }; }]; From ac61ef964c9010a2e2427c82b1180f4a4de18e6d Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 30 Dec 2014 04:18:14 -0800 Subject: [PATCH 223/544] Improved spawning experience Disable damage on player while spawning Make player invisible while spawning Disable sounds while player is spawning --- addons/spawn/functions.sqf | 54 ++++++++++++++++++++++++++++++++++++++ init.sqf | 2 ++ 2 files changed, 56 insertions(+) create mode 100644 addons/spawn/functions.sqf diff --git a/addons/spawn/functions.sqf b/addons/spawn/functions.sqf new file mode 100644 index 000000000..3b28d7420 --- /dev/null +++ b/addons/spawn/functions.sqf @@ -0,0 +1,54 @@ +if (isServer) then { + A3W_fnc_hideObjectGlobal = { + diag_log format["%1 call A3W_fnc_hideObjectGlobal", _this]; + private["_left", "_right"]; + _left = _this select 0; + _right = _this select 1; + if (isNil "_left" || {typeName _left != typeName objNull || {isNull _left}}) exitWith {}; + if (isNil "_right" || {typeName _right != typeName false}) exitWith {}; + + _left hideObjectGlobal _right; + } call mf_compile; + + spawn_addon_setup_complete = true; + publicVariable "spawn_addon_setup_complete"; +}; + +if (!isServer) then { + A3W_fnc_hideSpawning = { + diag_log format["%1 call A3W_fnc_hideSpawning", _this]; + + private["_player", "_pos1", "_pos2"]; + _player = _this select 0; + if (isNil "_player" || {isNull _player || {!(alive _player)}}) exitWith {}; + _pos1 = getPos _player; + enableEnvironment false; + 0 fadeSound 0; + + _player hideObjectGlobal true; + [[_player,true], "A3W_fnc_hideObjectGlobal",false, false] call BIS_fnc_MP; + + _player allowDamage false; + + private["_respawn_dialog"]; + waitUntil { + if (isNil "_player" || {isNull _player}) exitWith {true}; + _pos2 = getPos _player; + if ((_pos1 distance _pos2) > 50) exitWith { + [[_player,false], "A3W_fnc_hideObjectGlobal",false, false] call BIS_fnc_MP; + _player allowDamage true; + enableEnvironment true; + 0 fadeSound 1; + true + }; + + false + }; + } call mf_compile; + + waitUntil {!isNull player}; + waitUntil {!isNil "spawn_addon_setup_complete"}; + + player addEventHandler ["Respawn", { [(_this select 0)] spawn A3W_fnc_hideSpawning; }]; + [player] spawn A3W_fnc_hideSpawning; +}; diff --git a/init.sqf b/init.sqf index 6ee1521b9..40e4e85be 100644 --- a/init.sqf +++ b/init.sqf @@ -29,6 +29,8 @@ if (isNull player) then { X_JIP = true }; A3W_scriptThreads = []; [DEBUG] call compile preprocessFileLineNumbers "globalCompile.sqf"; +[] spawn compile preprocessFileLineNumbers "addons\spawn\functions.sqf"; + //init Wasteland Core [] execVM "config.sqf"; From 030f90f2b626a73090013e3d385145748c3a6e14 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 30 Dec 2014 04:50:29 -0800 Subject: [PATCH 224/544] Disable extra logging --- addons/spawn/functions.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/spawn/functions.sqf b/addons/spawn/functions.sqf index 3b28d7420..52de59936 100644 --- a/addons/spawn/functions.sqf +++ b/addons/spawn/functions.sqf @@ -1,6 +1,6 @@ if (isServer) then { A3W_fnc_hideObjectGlobal = { - diag_log format["%1 call A3W_fnc_hideObjectGlobal", _this]; + //diag_log format["%1 call A3W_fnc_hideObjectGlobal", _this]; private["_left", "_right"]; _left = _this select 0; _right = _this select 1; @@ -16,7 +16,7 @@ if (isServer) then { if (!isServer) then { A3W_fnc_hideSpawning = { - diag_log format["%1 call A3W_fnc_hideSpawning", _this]; + //diag_log format["%1 call A3W_fnc_hideSpawning", _this]; private["_player", "_pos1", "_pos2"]; _player = _this select 0; From 47a7966c05b5fbbc4db36123c24197da37789815 Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Tue, 30 Dec 2014 08:13:05 -0800 Subject: [PATCH 225/544] Update config.sqf --- addons/parking/config.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/parking/config.sqf b/addons/parking/config.sqf index 8db99db34..244bfb785 100644 --- a/addons/parking/config.sqf +++ b/addons/parking/config.sqf @@ -9,13 +9,13 @@ pp_markers_enabled = true; pp_markers_properties = ["ICON", "mil_dot", "ColorKhaki", [1.2,1.2], "Parking"]; //number of seconds to wait (after parking a vehicle) before it can be retrieved (0 = no wait) -pp_retrieve_wait = 0; +pp_retrieve_wait = 900; //amount of money to charge player for retrieving a vehicle from parking (0 = no charge) -pp_retrieve_cost = 0; +pp_retrieve_cost = 1500; //maximum number of vehicles that a player can park (0 = no limit) -pp_max_player_vehicles = 0; +pp_max_player_vehicles = 2; //List of class names for vehicles that are not allowed to be parked -pp_disallowed_vehicle_classes = []; \ No newline at end of file +pp_disallowed_vehicle_classes = []; From df2af7a1ec239783fbd60c5118d8f068b294c10c Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Tue, 30 Dec 2014 08:18:46 -0800 Subject: [PATCH 226/544] Update config.sqf Removed laptop from R3F. --- addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index 667156534..35b17b42f 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -351,6 +351,5 @@ R3F_LOG_CFG_objets_deplacables = "Land_Stone_8m_F", "Land_ToiletBox_F", "Land_BarrelWater_F", - "Land_HandyCam_F", - "Land_Laptop_unfolded_F" + "Land_HandyCam_F" ]; From 256ac94fe9e827c1b2dc23786ae40bcf8fab9c55 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 31 Dec 2014 21:20:00 -0800 Subject: [PATCH 227/544] Adjusted store prices. --- storeConfig.sqf | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/storeConfig.sqf b/storeConfig.sqf index bc35e76ff..831e46eb3 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -88,12 +88,12 @@ launcherArray = compileFinal str [ ["RPG-42 Alamut", "launch_RPG32_F", 400], ["PCML", "launch_NLAW_F", 500], - ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 750], - ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 750], - ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 750], - ["Titan MPRL AA (Desert)", "launch_Titan_F", 600], - ["Titan MPRL AA (Hex)", "launch_O_Titan_F", 600], - ["Titan MPRL AA (Digi)", "launch_I_Titan_F", 600] + ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 1000], + ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 1000], + ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 1000], + ["Titan MPRL AA (Desert)", "launch_Titan_F", 750], + ["Titan MPRL AA (Hex)", "launch_O_Titan_F", 750], + ["Titan MPRL AA (Digi)", "launch_I_Titan_F", 750] ]; allGunStoreFirearms = compileFinal str (call pistolArray + call smgArray + call rifleArray + call lmgArray + call shotgunArray + call launcherArray); @@ -185,9 +185,9 @@ ammoArray = compileFinal str ["RPG-42 Anti-Tank Rocket", "RPG32_F", 250], // Direct damage: high | Splash damage: low | Guidance: none ["RPG-42 High-Explosive Rocket", "RPG32_HE_F", 250], // Direct damage: medium | Splash damage: medium | Guidance: none ["PCML Anti-Tank Missile", "NLAW_F", 350], // Direct damage: very high | Splash damage: low | Guidance: laser, ground vehicles - ["Titan Anti-Tank Missile", "Titan_AT", 450], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles - ["Titan Anti-Personnel Missile", "Titan_AP", 350], // Direct damage: low | Splash damage: high | Guidance: mouse, laser - ["Titan Anti-Air Missile", "Titan_AA", 350], // Direct damage: low | Splash damage: medium | Guidance: aircraft + ["Titan Anti-Tank Missile", "Titan_AT", 600], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles + ["Titan Anti-Personnel Missile", "Titan_AP", 450], // Direct damage: low | Splash damage: high | Guidance: mouse, laser + ["Titan Anti-Air Missile", "Titan_AA", 500], // Direct damage: low | Splash damage: medium | Guidance: aircraft ["40mm HE Grenade Round", "1Rnd_HE_Grenade_shell", 125], ["40mm 3Rnd HE Grenades", "3Rnd_HE_Grenade_shell", 250], ["40mm Smoke Round (White)", "1Rnd_Smoke_Grenade_shell", 50], @@ -597,7 +597,7 @@ landArray = compileFinal str ["Fuel Truck", "C_Van_01_fuel_F", 2000, "vehicle"], ["Fuel Truck (Camo)", "B_G_Van_01_fuel_F", 2100, "vehicle"], - ["HEMTT Ammo", "B_Truck_01_ammo_F", 5000, "vehicle"], + ["HEMTT Resupply", "B_Truck_01_ammo_F", 5000, "vehicle"], ["HEMTT Tractor", "B_Truck_01_mover_F", 4000, "vehicle"], ["HEMTT Box", "B_Truck_01_box_F", 5000, "vehicle"], ["HEMTT Transport", "B_Truck_01_transport_F", 6000, "vehicle"], @@ -606,7 +606,7 @@ landArray = compileFinal str ["HEMTT Medical", "B_Truck_01_medical_F", 10000, "vehicle"], ["HEMTT Repair", "B_Truck_01_Repair_F", 12500, "vehicle"], - ["Tempest Ammo", "O_Truck_03_ammo_F", 5000, "vehicle"], + ["Tempest Resupply", "O_Truck_03_ammo_F", 5000, "vehicle"], ["Tempest Device", "O_Truck_03_device_F", 4000, "vehicle"], ["Tempest Transport", "O_Truck_03_transport_F", 6000, "vehicle"], ["Tempest Covered", "O_Truck_03_covered_F", 7500, "vehicle"], @@ -614,7 +614,7 @@ landArray = compileFinal str ["Tempest Medical", "O_Truck_03_medical_F", 10000, "vehicle"], ["Tempest Repair", "O_Truck_03_repair_F", 12500, "vehicle"], - ["Zamak Ammo", "I_Truck_02_ammo_F", 4000, "vehicle"], + ["Zamak Resupply", "I_Truck_02_ammo_F", 4000, "vehicle"], ["Zamak Transport", "I_Truck_02_transport_F", 4000, "vehicle"], ["Zamak Covered", "I_Truck_02_covered_F", 5000, "vehicle"], ["Zamak Fuel", "I_Truck_02_fuel_F", 7500, "vehicle"], From abb23bdb75ad7f08bf9ebd0b21637ebbf1df2016 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 2 Jan 2015 07:10:28 -0800 Subject: [PATCH 228/544] Extra vehicle actions addon This is an addon for Arma 3 Wasteland that enables extra actions on vehicles. * Lock/Unlock (from outside by vehicle owner) * Lock/Unlock (from inside by anyone) * Unflip vehicle * Pull occupant (from outside by vehicle owner) * Vehicle information The addon is highly configurable (config.sqf), allowing server admins to specify which actions they want enabled/disabled. --- addons/vactions/config.sqf | 31 ++ addons/vactions/functions.sqf | 5 + addons/vactions/icons/flip.paa | Bin 0 -> 1522 bytes addons/vactions/icons/info.paa | Bin 0 -> 1522 bytes addons/vactions/icons/key.paa | Bin 0 -> 1522 bytes addons/vactions/icons/lock.paa | Bin 0 -> 1522 bytes addons/vactions/icons/pull.paa | Bin 0 -> 1522 bytes addons/vactions/macro.h | 163 ++++++++ addons/vactions/misc_functions.sqf | 96 +++++ addons/vactions/va_functions.sqf | 561 +++++++++++++++++++++++++++ addons/vactions/vector_functions.sqf | 127 ++++++ init.sqf | 1 + 12 files changed, 984 insertions(+) create mode 100644 addons/vactions/config.sqf create mode 100644 addons/vactions/functions.sqf create mode 100644 addons/vactions/icons/flip.paa create mode 100644 addons/vactions/icons/info.paa create mode 100644 addons/vactions/icons/key.paa create mode 100644 addons/vactions/icons/lock.paa create mode 100644 addons/vactions/icons/pull.paa create mode 100644 addons/vactions/macro.h create mode 100644 addons/vactions/misc_functions.sqf create mode 100644 addons/vactions/va_functions.sqf create mode 100644 addons/vactions/vector_functions.sqf diff --git a/addons/vactions/config.sqf b/addons/vactions/config.sqf new file mode 100644 index 000000000..83607fd83 --- /dev/null +++ b/addons/vactions/config.sqf @@ -0,0 +1,31 @@ +//display the "Vehicle Information" action +cfg_va_info_action_on = true; + +//display "Unflip vehicle" action (when vehicle is flipped) +cfg_va_unflip_action_on = true; + +//How much time (in seconds) to make the player wait before the vehicle is unflipped +cfg_va_unflip_wait_time = 10; + +//Minimum distance (in meters) the player must stay from the vehicle for the unflup action to complete +cfg_va_unflip_wait_distance = 10; + +//display the "Pull {PlayerName}" action +cfg_va_pull_player_action_on = true; + +//display lock/unlock actions +cfg_va_lock_action_on = true; + +//Only the player with UID that matches "ownerUID" variable can lock/unlock the vehicle +cfg_va_lock_owner_only = true; + +//Playe lock/unlock sound +cfg_va_lock_sound_play = true; + +//Any player can lock/unlock the vehicle from the inside +cfg_va_lock_from_inside = true; + +//List of classes for vehicles that can locked/unlocked (empty means all) +cfg_va_lock_actions_classes_list = []; + + diff --git a/addons/vactions/functions.sqf b/addons/vactions/functions.sqf new file mode 100644 index 000000000..2d675f6a9 --- /dev/null +++ b/addons/vactions/functions.sqf @@ -0,0 +1,5 @@ +call compile preprocessFileLineNumbers "addons\vactions\config.sqf"; + +{ + call compile preprocessFileLineNumbers format["addons\vactions\%1_functions.sqf", _x]; +} forEach ["misc", "vector", "va"]; diff --git a/addons/vactions/icons/flip.paa b/addons/vactions/icons/flip.paa new file mode 100644 index 0000000000000000000000000000000000000000..b449603277bb59e8d89d18b0f924ba50fb5554f3 GIT binary patch literal 1522 zcmb`HUr5tY6vxl6Inh~Wx)~+ea5Id2h{%Cp?ze0X%W}j0hR{Ri`d?cQK1Q%o)Q5^S z+LPo&lX|K^_(4=?1k#^{Pogzyl$5JRHv9wG>~_xYw@n*G2Hoxcw$Huye9yV}-1Ad1 zi^XKGu{cZ_01%7Cj!E2P+E2`|5nD|4wZt5D;>OzA1|I)=uy^9b6(ztJ_J40$&;pS3 z|7nZ?2!deC?-pGl@o>4sW;IuGTy*K4({=zfxQiW;!mCC$W0Xf$?mMAx*3FW>YkN|^ z>y7B@U#5S0zPX3Asgb(;ln<2nbCkt?=U>)0+e=@dzM=g+vBs)|f(Ifu_f1x#B;5S* zMAH6~e!9POo{G}uzi&?3mxT>oA4*P!XdUHI8ANBU9O(j3yvlxDS+{D5`_i~KjjyLM ztMlpg*(v*dFWJl?{Taz0%JYVZc-eKr-Ij<`sTc>|#{wuKkF+@ZF`1~wX}^*k!)OylB$xRuyu=iz>I#94)3VsyV^ z|9=Zo($`>ocSl;5#V2HSu%UQIODev?sUY6JHX)h6Jjj#ZF0unH{?Jr5mMxZ0_f&5pDr(>k^wBkXLnpQKcK=?eso|Nu1#G#Ya^)!^5{vPtg}=G zIm1cbdfR(r=@?Z58$bDG^`oBB|~SM zYG}durERPHg0Lx4`F2h`nm7iPzj9vOT~_b(l0Cfyv+%17Ah3bx?s3f z#Rm6d3GSs-^+1MNQP(5iE=7e9givHpx4(d~)lQt|GEfZ9(>5wz+@d|=BpEbIB>5*_ Cj0nI0 literal 0 HcmV?d00001 diff --git a/addons/vactions/icons/info.paa b/addons/vactions/icons/info.paa new file mode 100644 index 0000000000000000000000000000000000000000..7783a8aefaae34de28968f6052bbadf7955af172 GIT binary patch literal 1522 zcmb7EQAkr^6#j4QHihZ7av-QED7}1c3^1(Wk8fok>cmq=-JLnP$$0JK*5zh5NIe@K%G_A?^%dtAdK)t#y_h$cwvq$C9*~zGb`9&za z2J{9B=2Sg5yxD732j*)!uKH~@%l1h7@_3Nx<44nE1|wh!e4ttQyT44wW`I3iIXX@X z7{D5c_k-O>6(ikcYyq&fj@2`ts>hu_WcRG!@G6LTj^}8SSdgddv8=zaWiX_SJGLAc zFMy!wo$NUro>*ag*a*C%>HH+YM(fxdX-mwRm2r#{MM03JMm7^)Hd%fSES>)hI_IF6 zPxY7{(_l$iS42eyB1UQGnBBwn3)1|-PuIJ-$l1KaHS2=P9_k`~n(t&{(0y=XxRm1uhL|chX%y z-C|=5@q%r}(*SQ|LrCS`We7>)a$Yw@mc>y-Krv2Dlr+y!&~+<@990s4|bGVr@D zEZZ-i*cofYvarl66L)$)>S@)NTtQ+EIW literal 0 HcmV?d00001 diff --git a/addons/vactions/icons/key.paa b/addons/vactions/icons/key.paa new file mode 100644 index 0000000000000000000000000000000000000000..6dfa015ec681e515052f1f1346ad6ec8c055da9e GIT binary patch literal 1522 zcmdUvO=uHQ5P)Z!jg4T)wuzNekyHvERp_zct~LoN5wkWc9<4XQkXw2RNlT%ZqOAv^ z2l1kZ;z6OZ2SKVAi6~UCp<+xC!2|^*D2>!6jx%rfg&<-nc+i2(d*9A)cIG`V#$rb5 zRP3Cg0zjkDI4StNahe%Pm}5pF%B;}CJRXgn(P>|xXOx_LrwxU92@nli-8+ zwV`+yHB8jIBkvLR(?gDZBy_M*T*2JJb0-_<2i7Us+f2=6ue*wY;Chy7fx26cs0WuQ zISIcL>ke#e&a@uo>nm)X)B%oFx88JbUlrbj(EmLfsB$pU^IZL!f0-&{rT8KJCj={s+T)=}xD`mt z`09Jw<%b_j?wvlWmF=|SpBy!n-s6`gtA=G!NkTaPej1=oj{Je8om|;JwF`Uc_rI+g zXwL286mHImF>W6-mreP%!nBdC;CF4Vz@296<_E;}hvKd(&9qkWE18;eI@zgfwjbhO zh$%ktgEi{m-ez8K0U%ge+`wYy9{ZD88GDU*0uwY0Tmk5ZKCO-yW!qui>br;o9D@C! zu-I-hTX(jZ+3aXzn9P4yzmE>C4lwwHVvfx>MOit3TOWz-8>(PRa=7^Pt}4?)&boAe da6(QWG%ZV|8zwf(t*3X&pqGYIp>~xem{}= z{a*E|ztNjR2w7iW4=`@>)+19eWWV>i4_SZ<`G(KeAjAKMaP@%WnMlY-xc=YDNEsm* z`d}-0uiuHg+ZHJ$MAJm!L`v^HPiX~XSPDFlPX`T?nf^&S!u5)LaPwC20vm$r%BbBx0}@7xs#QhgPbhoTxJV_FTx|k;k&1Qz`{-w5523bG)mui!{xh^)3AA=d{s~6r}j(4YH z7*ACX{~oRtUvP0Q1oiWw!#f%V#Jlts2Ge7VbCPA?5o03sm9qeSN7Wy_YsGFvsPO@x z%gl4|k0UW}-<}Jxc?0FXc-AB}^19aY%zCWJxv&ulvscE*f9H23JjntICGfgr)Es2a zDPM5aeY+U-f*?v%N3~<;{VhW@>A~b+=&=m_8f1`Rt|w*q4E@e2yAgY8WAi7=%AwyM z*X*{6rTNeqbG`*h^FU{4Q-H+-9p~j+J6y5kITADVva0Ql^{@X9csDp*oTRp|ytXd~ zi`FzvvZeIg?Mu&Rk>PleZK?ir!RPi1$OWg$1{g11Bo< Sb4F_KugWbsZB~mF6Y?9}#Psw4 literal 0 HcmV?d00001 diff --git a/addons/vactions/icons/pull.paa b/addons/vactions/icons/pull.paa new file mode 100644 index 0000000000000000000000000000000000000000..f6f03e4b0918564e704309c2e31af8e9d5d24431 GIT binary patch literal 1522 zcmcIkUr19?7(aLIG!n9|5is-evFjEF)) zDiU8T^1-Ln;!+XJ!2Vd^L;si#MJOsCre(3PMyKs^V?D9&M5QW5AWp*3+0sQF7|F_-g_px{ONJ`GenMz)gFULoVnLv=eP%lMO z(tH86_L1yAyyn zg-72p>| zpHMlH30r8%ET73|=KBV#lM42Fy?I}i^;hlTA?bvLoo6;1$skRN4Y_)a+1tU?mTW2b zwI*OB8{;GR8dUtRv$jeKS)@=MoJZ4}NDUSywGOMQuWpGvC&}0j@KfV(YNC8Lk){1X z$dtF*w1!qHmc9K0#5WkVxM==y@6R=o01W-tEs)QpgVju5+5w^Lq||ms3NcLSiKH;T zeR18PxXO>QqCXH%`y;COPqX<^SLZF|JdClom@M(LV{$(cZ_4S(_zCpFE5sc}8yCs0%OtFr+a`1m7f=w$*(5c;#uIA{!bGETetb8mBLn zfnTF3#HLNOp0RQ!i|7}G0#pFcsU?{Sw`IcYwNdqP*^CsO9F0ywn8@=7OYhn{>s*m( oz!-B6o2SNt$^P^l;A7s?^;-HxrF!ZHN)`<}^)FzV 0}) then {v} else {d}) + + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} + +#define IMPORT_FINALIZER if (isNil "finalize") then { \ + finalizer = { \ + if (isNil "_this" || {typeName _this != typeName {}}) exitWith {}; \ + \ + private["_str_data"]; \ + _str_data = toArray str(_this); \ + \ + private["_space"]; \ + _space = (toArray " ") select 0;\ + _str_data set [0, _space]; \ + _str_data set [((count _str_data)-1), _space]; \ + \ + (compileFinal (toString _str_data)) \ + }; \ + finalizer = finalizer call finalizer; \ +}; \ No newline at end of file diff --git a/addons/vactions/misc_functions.sqf b/addons/vactions/misc_functions.sqf new file mode 100644 index 000000000..4f97ca56b --- /dev/null +++ b/addons/vactions/misc_functions.sqf @@ -0,0 +1,96 @@ +if (!isNil "va_misc_functions_loaded") exitWith {}; +diag_log format["Loading vehicle misc functions ..."]; + +#include "macro.h" + +//FIXME: some of these functions are repeated between addons, need to refactor, and put them in a shared place + + +A3W_fnc_unflip = { + ARGVX3(0,_object,objNull); + ARGVX3(1,_vector,[]); + + def(_pos); + _object allowDamage false; + _pos = getPos _object; + _pos set [2, (_pos select 2) + 2]; + _object setPos _pos; + _object setVectorUp _vector; + [_object] spawn { + sleep 5; + ARGVX3(0,_object,objNull); + _object allowDamage true; + }; + +} call mf_compile; + +A3W_fnc_lock = { + //diag_log format["%1 call A3W_fnc_lock", _this]; + ARGVX3(0,_left,objNull); + ARGVX3(1,_right,0); + _left lock _right; + _left setVariable ["lockState", _right, true]; + + def(_locked); + _locked = (_right == 2 || {_right == 3}); + _left setVariable ["objectLocked", _locked, true]; + _left setVariable ["R3F_LOG_disabled",_locked, true]; +} call mf_compile; + +generic_picture_path = { + ARGVX3(0,_id,""); + ([_id, "picture"] call generic_config_text) +}; + +generic_display_name = { + ARGVX3(0,_id,""); + ([_id, "displayName"] call generic_config_text) +}; + +generic_icon_path = { + ARGVX3(0,_id,""); + ([_id, "icon"] call generic_config_text) +}; + +generic_config_text = { + ARGVX3(0,_id,""); + ARGVX3(1,_field,""); + + if (_id == "" || {_field == ""}) exitWith {""}; + + if (isClass(configFile >> "CfgWeapons" >> _id)) exitWith { + (getText(configFile >> "CfgWeapons" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgVehicles" >> _id)) exitWith { + (getText(configFile >> "CfgVehicles" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgMagazines" >> _id)) exitWith { + (getText(configFile >> "CfgMagazines" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgAmmos" >> _id)) exitWith { + (getText(configFile >> "CfgAmmos" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgGlasses" >> _id)) exitWith { + (getText(configFile >> "CfgGlasses" >> _id >> _field)) + }; + + "" +}; + +str_truncate = { + ARGVX4(0,_str,"","..."); + ARGVX4(1,_max,0,"..."); + + _str = if ((count _str) > _max) then { (_str select [0, _max - 3]) + "..."} else {_str}; + (_str) +}; + +va_misc_functions_loaded = true; + +diag_log format["Loading vehicle misc functions complete"]; + + diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf new file mode 100644 index 000000000..ce60564a3 --- /dev/null +++ b/addons/vactions/va_functions.sqf @@ -0,0 +1,561 @@ +if (!isNil "va_actions_functions_defined") exitWith {}; +diag_log format["Loading vehicle actions functions ..."]; +#include "macro.h" + + +#define cameraDirDist(x) ([(positionCameraToWorld [0,0,0]), (positionCameraToWorld [0,0,x])] call BIS_fnc_vectorDiff) +#define insideAVehicle(x) ((vehicle x) != x) + +//Normalize the config variables +cfg_va_info_action_on = OR_BOOLEAN(cfg_va_info_action_on,true); +cfg_va_unflip_action_on = OR_BOOLEAN(cfg_va_unflip_action_on,true); +cfg_va_unflip_wait_time = OR_POSITIVE(cfg_va_unflip_wait_time,10); +cfg_va_unflip_wait_distance = OR_POSITIVE(cfg_va_unflip_wait_distance,10); +cfg_va_pull_player_action_on = OR_BOOLEAN(cfg_va_pull_player_action_on,true); +cfg_va_lock_action_on = OR_BOOLEAN(cfg_va_lock_action_on,true); +cfg_va_lock_owner_only = OR_BOOLEAN(cfg_va_lock_owner_only,true); +cfg_va_lock_from_inside = OR_BOOLEAN(cfg_va_lock_from_inside,true); +cfg_va_lock_actions_classes_list = OR_ARRAY(cfg_va_lock_actions_classes_list,[]); +cfg_va_lock_sound_play = OR_BOOLEAN(cfg_va_lock_sound_play,true); + + +va_player_inside = { + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_vehicle,objNull,false); + + (((vehicle _player) == _vehicle) && {(_vehicle != _player)}) +}; + +va_player_exit = { + //player groupChat format["player_exit_vehicle %1",_this]; + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + ARGV4(2,_immediate,false,true); + + + _vehicle lock false; + if (_immediate) exitWith { + moveOut _player; + }; + + //leave engine in same state after exiting + def(_engine_state); + _engine_state = isEngineOn _vehicle; + _player action ["Eject",_vehicle]; + _vehicle engineOn _engine_state; +}; + +va_is_player_owner = { + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_vehicle,objNull,false); + + if (not(alive _player)) exitWith {}; + + def(_ownerUID); + _ownerUID = _vehicle getVariable ["ownerUID", "unknown"]; + + def(_uid); + _uid = getPlayerUID _player; + + (_uid == _ownerUID) +}; + +va_pull_player_action = { + ARGVX3(3,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + ARGVX3(2,_target,objNull); + + [_target, _vehicle, false] call va_player_exit; +}; + +va_pull_player_action_available = { + if (not(cfg_va_pull_player_action_on)) exitWith {false}; + + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + ARGVX3(2,_target,objNull); + + + if (not(alive _player)) exitWith {false}; + + if (cursorTarget != _vehicle) exitWith {false}; + if (not(locked _vehicle < 2)) exitWith {false}; + if (not([_target, _vehicle] call va_player_inside)) exitWith {false}; + + true +}; + +va_flipped = { + ARGVX4(0,_vehicle,objNull,false); + + def(_pos); + _pos = getPos _vehicle; + + def(_snormal); + def(_vnormal); + _snormal = surfaceNormal _pos; + _vnormal = vectorUp _vehicle; + + def(_angle); + _angle = [_snormal, _vnormal] call vector_angle; + + (_angle > 15) +}; + +va_unflip_action_available = { + if (not(cfg_va_unflip_action_on)) exitWith {false}; + ARGVX4(0,_vehicle,objNull,false); + + + ([_vehicle] call va_flipped) +}; + +va_unflip_action = { _this spawn { + //player groupChat format["va_unflip_action %1",_this]; + ARGVX3(3,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if (not(alive _player)) exitWith {}; + + + def(_display_name); + _display_name = [typeOf _vehicle] call generic_display_name; + + init(_sleep,cfg_va_unflip_wait_time); + init(_dist,cfg_va_unflip_wait_distance); + + _player groupChat format["Unflipping the %1, wait for %2 seconds nearby.", _display_name, _sleep]; + sleep _sleep; + + if ((_player distance _vehicle) > _dist) exitWith { + _player groupChat format["Could not unflip the %1, you must stay within %2 meters.", _display_name, _dist]; + }; + + [[_vehicle,[0,0,1]],"A3W_fnc_unflip",true,false] call BIS_fnc_MP; + + + _player groupChat format["The %1 has been unflipped", _display_name]; + +};}; + +//place-holder in case people want to modify this condition +va_information_action_available = { + if (not(cfg_va_info_action_on)) exitWith {false}; + + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_vehicle,objNull,false); + + //put your custom logic here, if you want to restrict who can see the vehicle information + + true +}; + + +va_get_tag = { + ARGVX4(0,_vehicle,objNull,""); + def(_tag); + _tag = _vehicle getVariable "va_key"; //sock-rpc-stats + if (isSTRING(_tag)) exitWith {_tag}; + + _tag = _vehicle getVariable "A3W_vehicleID"; //iniDB, and extDB + if (isSTRING(_tag)) exitWith {_tag}; + + "" +}; + +va_get_owner_name = { + ARGVX4(0,_vehicle,objNull,"None"); + + def(_name); + _name = _vehicle getVariable "ownerN"; + if (isSTRING(_name)) exitWith {_name}; + + _name = _vehicle getVariable "ownerName"; + if (isSTRING(_name)) exitWith {_name}; + + def(_uid1); + def(_uid2); + def(_uid3); + def(_uid4); + + //I know, it's ugly, but got to try all these + _uid1 = _vehicle getVariable ["uid", ""]; + _uid2 = _vehicle getVariable ["owner", ""]; + _uid3 = _vehicle getVariable ["ownerUID", ""]; + _uid4 = _vehicle getVariable ["UID", ""]; + + if (_uid1 == "" && { _uid2 == "" && { _uid3 == "" && { _uid4 == ""}}}) exitWith {"None"}; + + def(_uid); + def(_player); + + {if (true) then { + if (!isPlayer _x) exitWith {}; + _uid = getPlayerUID _x; + if (_uid == "") exitWith {}; + + if (_uid == _uid1 || { + _uid == _uid2 || { + _uid == _uid3 || { + _uid == _uid4}}}) exitWith { + _player = _x; + } + };} forEach playableUnits; + + if (!isOBJECT(_player)) exitWith {"Not in game"}; + + (name _player) +}; + + +va_information_action = { + ARGVX3(3,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + + def(_class); + def(_driver); + def(_picture); + def(_display_name); + _class = typeOf _vehicle; + _driver = driver _vehicle; + _driver = if (isNull _driver) then {"None"} else {(name _driver)}; + _picture = [_class] call generic_picture_path; + _display_name = [_class] call generic_display_name; + + def(_owner); + def(_tag); + _owner = [_vehicle] call va_get_owner_name; + _tag = [_vehicle] call va_get_tag; + + def(_text); + def(_label); + def(_value); + _text = ""; + { + _label = _x select 0; + _value = _x select 1; + _text = _text + "" + _label + "" + _value + "
"; + } + forEach( + [[" ID: ", ([_tag,17] call str_truncate)], + [" Direction: ", str(round(getdir _vehicle)) + toString [176]], + [" Grid: ", mapGridPosition _vehicle], + [" Altitude: ", str(round(getposASL _vehicle select 2)) + " meter(s) ASL"], + [" Driver: ", ([_driver,17] call str_truncate)], + [" Seats: ", str((_vehicle emptyPositions "cargo")+(_vehicle emptyPositions "driver")) + " seat(s)"], + [" Size: ", str(round((sizeOf _class)*10)/10) + " meter(s)"], + [" Owner: ", ([_owner,17] call str_truncate)] + + + ]); + + _text = format["Vehicle Information

(%2)", _picture, ([_display_name,25] call str_truncate)] + "

" + _text; + hint parseText _text; +}; + +va_lock = { + _this pushBack 2; + _this call va_remote_lock; +}; + +va_unlock = { + _this pushBack 0; + _this call va_remote_lock; +}; + + +/* + 0 - Unlocked + 1 - Default + 2 - Locked + 3 - Locked for player +*/ + +va_remote_lock = { + ARGVX3(0,_vehicle, objNull); + ARGVX3(1,_state,0); + [[_vehicle, _state] , "A3W_fnc_lock", true, false, true] call BIS_fnc_MP; +}; + +va_is_locked = { + ARGVX4(0,_vehicle,objNull,false); + def(_state); + _state = locked _vehicle; + (_state == 2 || { _state == 3}) +}; + + +va_lock_toggle = { + ARGVX3(0,_vehicle,objNull); + + def(_locked); + def(_state); + + _locked = [_vehicle] call va_is_locked; + _state = if (_locked) then {2} else {0}; + + [_vehicle, _state] call va_remote_lock; + _state +}; + +va_lock_action = { + ARGVX3(3,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if ([_vehicle] call va_is_locked) exitWith {}; + + + if (cfg_va_lock_sound_play) then { + playSound3d ["a3\sounds_f\air\Heli_Attack_02\Mixxx_door.wss",_player, true]; + }; + + [_vehicle] call va_lock; +}; + +va_unlock_action = { + ARGVX3(3,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if (not([_vehicle] call va_is_locked)) exitWith {}; + + if (cfg_va_lock_sound_play) then { + playSound3d ["a3\sounds_f\air\Heli_Attack_01\close.wss", _vehicle, insideAVehicle(_player)]; + }; + + [_vehicle] call va_unlock; +}; + +va_is_lockable = { + ARGVX3(0,_vehicle,objNull); + + if (count(cfg_va_lock_actions_classes_list) == 0) exitWith {true}; + + def(_class); + _class = typeOf _vehicle; + + (({_class isKindOf _x} count cfg_va_lock_actions_classes_list) > 0) +}; + +va_lock_action_available = { + if (not(cfg_va_lock_action_on)) exitWith {false}; + + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_vehicle,objNull,false); + + if ([_vehicle] call va_is_locked) exitWith {false}; + + if (not([_vehicle] call va_is_lockable)) exitWith {false}; + + if (cfg_va_lock_from_inside && {[_player, _vehicle] call va_player_inside}) exitWith {true}; + + if (cfg_va_lock_owner_only && {not([_player, _vehicle] call va_is_player_owner)}) exitWith {false}; + + true +}; + +va_unlock_action_available = { + if (not(cfg_va_lock_action_on)) exitWith {false}; + + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_vehicle,objNull,false); + + if (not([_vehicle] call va_is_locked)) exitWith {false}; + + if (not([_vehicle] call va_is_lockable)) exitWith {false}; + + if (cfg_va_lock_from_inside && {[_player, _vehicle] call va_player_inside}) exitWith {true}; + + if (cfg_va_lock_owner_only && {not([_player, _vehicle] call va_is_player_owner)}) exitWith {false}; + + true +}; + + +va_outside_actions = OR(va_outside_actions,[]); + +va_outside_remove_actions = { + if (count va_outside_actions == 0) exitWith {}; + //player groupChat format["va_outside_remove_actions %1", _this]; + + ARGVX3(0,_player,objNull); + if (not(isPlayer _player)) exitWith {}; + + { + private["_action_id"]; + _action_id = _x; + _player removeAction _action_id; + } forEach va_outside_actions; + va_outside_actions = []; +}; + + +va_outside_owner_add_actions = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + def(_crew); + _crew = crew _vehicle; + {if (true) then { + private["_member"]; + _member = _x; + + def(_action_id); + _action_id = _player addaction [format[" Pull %1", (name _member)], {_this call va_pull_player_action;}, [_player, _vehicle, _member],10,false,false,"", + format["([objectFromNetId %1, objectFromnetId %2, objectFromNetId %3] call va_pull_player_action_available)", str(netId _player), str(netId _vehicle), str(netId _member)]]; + va_outside_actions = va_outside_actions + [_action_id]; + };} forEach _crew; +}; + +va_outside_add_actions = { + if (count va_outside_actions > 0) exitWith {}; + //player groupChat format["va_outside_add_actions %1", _this]; + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if (not(isPlayer _player)) exitWith {}; + + def(_display_name); + _display_name = [typeOf _vehicle] call generic_display_name; + + //Add crew actions + if ([_player, _vehicle] call va_is_player_owner) then { + [_player, _vehicle] call va_outside_owner_add_actions; + }; + + //Add unfliping action + _action_id = _player addaction [format[" Unflip %1", _display_name], {_this call va_unflip_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1] call va_unflip_action_available)",str(netId _vehicle)]]; + va_outside_actions = va_outside_actions + [_action_id]; + + + //Add view vehicle information action + _action_id = player addaction [format[" %1 info", _display_name], {_this call va_information_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1, objectFromNetId %2] call va_information_action_available)", str(netId _player), str(netId _vehicle)]]; + va_outside_actions = va_outside_actions + [_action_id]; + + //Add vehicle lock action + _action_id = player addaction [format[" Lock %1", _display_name], {_this call va_lock_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1, objectFromNetId %2] call va_lock_action_available)", str(netId _player), str(netId _vehicle)]]; + va_outside_actions = va_outside_actions + [_action_id]; + + //Add vehicle unlock action + _action_id = player addaction [format[" Unlock %1", _display_name], {_this call va_unlock_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1, objectFromNetId %2] call va_unlock_action_available)", str(netId _player), str(netId _vehicle)]]; + va_outside_actions = va_outside_actions + [_action_id]; +}; + +va_inside_actions = OR(va_inside_actions,[]); + +va_inside_add_actions = { + if (count va_inside_actions > 0) exitWith {}; + //player groupChat format["va_inside_add_actions %1", _this]; + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if (not(isPlayer _player)) exitWith {}; + + def(_display_name); + _display_name = [typeOf _vehicle] call generic_display_name; + + //Add vehicle lock action + _action_id = player addaction [format[" Lock %1", _display_name], {_this call va_lock_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1, objectFromNetId %2] call va_lock_action_available)", str(netId _player), str(netId _vehicle)]]; + va_inside_actions = va_inside_actions + [_action_id]; + + //Add vehicle unlock action + _action_id = player addaction [format[" Unlock %1", _display_name], {_this call va_unlock_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1, objectFromNetId %2] call va_unlock_action_available)", str(netId _player), str(netId _vehicle)]]; + va_inside_actions = va_inside_actions + [_action_id]; +}; + + +va_inside_remove_actions = { + if (count va_inside_actions == 0) exitWith {}; + //player groupChat format["va_inside_remove_actions %1", _this]; + + ARGVX3(0,_player,objNull); + if (not(isPlayer _player)) exitWith {}; + + { + private["_action_id"]; + _action_id = _x; + _player removeAction _action_id; + } forEach va_inside_actions; + va_inside_actions = []; +}; + + +va_outside_target = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_distance,0); + if (!isPlayer _player) exitWith {}; + + private["_pos1", "_pos2"]; + _pos1 = (eyePos player); + _pos2 = ([_pos1, cameraDirDist(_distance)] call vector_add); + + private["_objects"]; + _objects = (lineIntersectsWith [_pos1,_pos2,objNull,objNull,true]); + if (!isARRAY(_objects) || {count _objects == 0}) exitWith {}; + + def(_target); + _target = _objects select 0; + + if (not(_target isKindOf "LandVehicle")) exitWith {nil}; + + _target +}; + +va_check_outside_actions = { + //player groupChat format["va_check_outside_actions"]; + init(_player,player); + + + _target_vehicle = [_player, 3.5] call va_outside_target; + //player groupChat format["_target_vehicle = %1",_target_vehicle]; + if (!isOBJECT(_target_vehicle) || {insideAVehicle(_player) || {not(alive _player)}}) exitWith { + [_player] call va_outside_remove_actions; + }; + + [_player, _target_vehicle] call va_outside_add_actions; +}; + +va_check_inside_actions = { + //player groupChat format["va_check_inside_actions"]; + init(_player,player); + + if (!(alive _player) || {!insideAVehicle(_player)}) exitWith { + [_player] call va_inside_remove_actions; + }; + + [_player, vehicle _player] call va_inside_add_actions; +}; + + +va_client_loop_stop = false; +va_client_loop = { + if (not(isClient)) exitWith {}; + private ["_va_client_loop_i"]; + _va_client_loop_i = 0; + + while {_va_client_loop_i < 5000 && {not(va_client_loop_stop)}} do { + call va_check_outside_actions; + call va_check_inside_actions; + + sleep 0.5; + _va_client_loop_i = _va_client_loop_i + 1; + }; + [] spawn va_client_loop; +}; + +[] spawn va_client_loop; + +diag_log format["Loading vehicle actions functions complete"]; + +va_actions_functions_defined = true; \ No newline at end of file diff --git a/addons/vactions/vector_functions.sqf b/addons/vactions/vector_functions.sqf new file mode 100644 index 000000000..444571bfd --- /dev/null +++ b/addons/vactions/vector_functions.sqf @@ -0,0 +1,127 @@ +if (!isNil "vector_functions_defined") exitWith {}; +diag_log format["Loading vector functions ... "]; +#include "macro.h" + + +vector_subtract = { + ARGVX3(0,_v1,[]); + ARGVX3(1,_v2,[]); + + ([((_v1 select 0) - (_v2 select 0)), ((_v1 select 1) - (_v2 select 1)), ((_v1 select 2) - (_v2 select 2))]) +}; + +vector_add = { + ARGVX3(0,_v1,[]); + ARGVX3(1,_v2,[]); + + ([((_v1 select 0) + (_v2 select 0)), ((_v1 select 1) + (_v2 select 1)), ((_v1 select 2) + (_v2 select 2))]) +}; + +vector_interpolate = { + private["_v1", "_v2", "_p"]; + _v1 = _this select 0; + _v2 = _this select 1; + _p = _this select 2; + private["_V1x", "_V1y", "_V1z", "_V2x", "_V2y", "_V2z"]; + _V1x = _v1 select 0; + _V1y = _v1 select 1; + _V1z = _v1 select 2; + + _V2x = _v2 select 0; + _V2y = _v2 select 1; + _V2z = _v2 select 2; + + [ (_V1x + ((_V2x - _V1x)*_p)), (_V1y + ((_V2y - _V1y)*_p)), (_V1z + ((_V2z - _V1z)*_p))] +}; + +vector_dotp = { + ARGVX3(0,_v1,[]); + ARGVX3(1,_v2,[]); + (((_v1 select 0) * (_v2 select 0)) + ((_v1 select 1) * (_v2 select 1)) + ((_v1 select 2) * (_v2 select 2))) +}; + +vector_magnitude = { + ARGVX3(0,_v1,[]); + (sqrt((_v1 select 0)^2 + (_v1 select 1)^2 + (_v1 select 2)^2)) +}; + +vector_angle = { + ARGVX3(0,_v1,[]); + ARGVX3(1,_v2,[]); + + _v1m = [_v1] call vector_magnitude; + _v2m = [_v2] call vector_magnitude; + _vdp = [_v1, _v2] call vector_dotp; + + private["_m"]; + _m = (_v1m * _v2m); + if (_m == 0) exitWith {0}; + + (acos(_vdp / _m)) +}; + +vector_normalize = { + private["_v1"]; + _v1 = _this select 0; + + private["_len"]; + _len = sqrt((_v1 select 0)^2 + (_v1 select 1)^2 + (_v1 select 2)^2); + if (_len == 0) exitWith {[0,0,0]}; + ([(_v1 select 0)/(_len), (_v1 select 1)/(_len), (_v1 select 2)/(_len)]) +}; + +vector_resize = { + private["_v1", "_len"]; + _v1 = _this select 0; + _len = _this select 1; + + private["_n"]; + _n = [_v1] call vector_normalize; + ([(_n select 0)*(_len), (_n select 1)*(_len), (_n select 2)*(_len)]) +}; + + +matrix_X_vector = { + ARGVX3(0,_m,[]); + ARGVX3(1,_v,[]); + + ([ + (((_v select 0) * ((_m select 0) select 0)) + ((_v select 1) * ((_m select 0) select 1)) + ((_v select 2) * ((_m select 0) select 2))), + (((_v select 0) * ((_m select 1) select 0)) + ((_v select 1) * ((_m select 1) select 1)) + ((_v select 2) * ((_m select 1) select 2))), + (((_v select 0) * ((_m select 2) select 0)) + ((_v select 1) * ((_m select 2) select 1)) + ((_v select 2) * ((_m select 2) select 2))) + ]) +}; + +vector_3d_rotate = { + ARGVX3(0,_v1,[]); + ARGVX3(1,_angle,0); + ARGVX3(2,_axis,0); + + private["_matrix"]; + if (_axis == 0) then { + //rotate around X axis + _matrix = [[1, 0, 0 ], + [0, cos(_angle), -(sin(_angle)) ], + [0, sin(_angle), cos(_angle) ]]; + }; + + if (_axis == 1) then { + //rotate around Y axis + _matrix = [[cos(_angle), 0, sin(_angle)], + [0, 1, 0 ], + [-(sin(_angle)), 0, cos(_angle)]]; + + }; + + if (_axis == 2) then { + //rotate around Z axis + _matrix = [[cos(_angle), -(sin(_angle)), 0], + [sin(_angle), cos(_angle), 0], + [0, 0, 1]]; + }; + + ([_matrix, _v1] call matrix_X_vector) +}; + +vector_functions_defined = true; +diag_log format["Loading vector functions complete"]; \ No newline at end of file diff --git a/init.sqf b/init.sqf index ba699b7ca..1fc512243 100644 --- a/init.sqf +++ b/init.sqf @@ -58,6 +58,7 @@ if (isServer) then }; //init 3rd Party Scripts +[] execVM "addons\vactions\functions.sqf"; [] execVM "addons\parking\functions.sqf"; [] execVM "addons\storage\functions.sqf"; [] execVM "addons\R3F_ARTY_AND_LOG\init.sqf"; From be4ae29a88230e46ac500bf99622aec2847c1db5 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 2 Jan 2015 07:33:43 -0800 Subject: [PATCH 229/544] Fix variable name for vehicle ID/Key --- addons/vactions/va_functions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf index ce60564a3..586f6855d 100644 --- a/addons/vactions/va_functions.sqf +++ b/addons/vactions/va_functions.sqf @@ -156,7 +156,7 @@ va_information_action_available = { va_get_tag = { ARGVX4(0,_vehicle,objNull,""); def(_tag); - _tag = _vehicle getVariable "va_key"; //sock-rpc-stats + _tag = _vehicle getVariable "vehicle_key"; //sock-rpc-stats if (isSTRING(_tag)) exitWith {_tag}; _tag = _vehicle getVariable "A3W_vehicleID"; //iniDB, and extDB From 0ec1e2b5b1ce6703be06de0faea46ba1983f5106 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 2 Jan 2015 07:10:28 -0800 Subject: [PATCH 230/544] Extra vehicle actions addon This is an addon for Arma 3 Wasteland that enables extra actions on vehicles. * Lock/Unlock (from outside by vehicle owner) * Lock/Unlock (from inside by anyone) * Unflip vehicle * Pull occupant (from outside by vehicle owner) * Vehicle information The addon is highly configurable (config.sqf), allowing server admins to specify which actions they want enabled/disabled. --- addons/vactions/config.sqf | 31 ++ addons/vactions/functions.sqf | 5 + addons/vactions/icons/flip.paa | Bin 0 -> 1522 bytes addons/vactions/icons/info.paa | Bin 0 -> 1522 bytes addons/vactions/icons/key.paa | Bin 0 -> 1522 bytes addons/vactions/icons/lock.paa | Bin 0 -> 1522 bytes addons/vactions/icons/pull.paa | Bin 0 -> 1522 bytes addons/vactions/macro.h | 163 ++++++++ addons/vactions/misc_functions.sqf | 96 +++++ addons/vactions/va_functions.sqf | 561 +++++++++++++++++++++++++++ addons/vactions/vector_functions.sqf | 127 ++++++ init.sqf | 1 + 12 files changed, 984 insertions(+) create mode 100644 addons/vactions/config.sqf create mode 100644 addons/vactions/functions.sqf create mode 100644 addons/vactions/icons/flip.paa create mode 100644 addons/vactions/icons/info.paa create mode 100644 addons/vactions/icons/key.paa create mode 100644 addons/vactions/icons/lock.paa create mode 100644 addons/vactions/icons/pull.paa create mode 100644 addons/vactions/macro.h create mode 100644 addons/vactions/misc_functions.sqf create mode 100644 addons/vactions/va_functions.sqf create mode 100644 addons/vactions/vector_functions.sqf diff --git a/addons/vactions/config.sqf b/addons/vactions/config.sqf new file mode 100644 index 000000000..83607fd83 --- /dev/null +++ b/addons/vactions/config.sqf @@ -0,0 +1,31 @@ +//display the "Vehicle Information" action +cfg_va_info_action_on = true; + +//display "Unflip vehicle" action (when vehicle is flipped) +cfg_va_unflip_action_on = true; + +//How much time (in seconds) to make the player wait before the vehicle is unflipped +cfg_va_unflip_wait_time = 10; + +//Minimum distance (in meters) the player must stay from the vehicle for the unflup action to complete +cfg_va_unflip_wait_distance = 10; + +//display the "Pull {PlayerName}" action +cfg_va_pull_player_action_on = true; + +//display lock/unlock actions +cfg_va_lock_action_on = true; + +//Only the player with UID that matches "ownerUID" variable can lock/unlock the vehicle +cfg_va_lock_owner_only = true; + +//Playe lock/unlock sound +cfg_va_lock_sound_play = true; + +//Any player can lock/unlock the vehicle from the inside +cfg_va_lock_from_inside = true; + +//List of classes for vehicles that can locked/unlocked (empty means all) +cfg_va_lock_actions_classes_list = []; + + diff --git a/addons/vactions/functions.sqf b/addons/vactions/functions.sqf new file mode 100644 index 000000000..2d675f6a9 --- /dev/null +++ b/addons/vactions/functions.sqf @@ -0,0 +1,5 @@ +call compile preprocessFileLineNumbers "addons\vactions\config.sqf"; + +{ + call compile preprocessFileLineNumbers format["addons\vactions\%1_functions.sqf", _x]; +} forEach ["misc", "vector", "va"]; diff --git a/addons/vactions/icons/flip.paa b/addons/vactions/icons/flip.paa new file mode 100644 index 0000000000000000000000000000000000000000..b449603277bb59e8d89d18b0f924ba50fb5554f3 GIT binary patch literal 1522 zcmb`HUr5tY6vxl6Inh~Wx)~+ea5Id2h{%Cp?ze0X%W}j0hR{Ri`d?cQK1Q%o)Q5^S z+LPo&lX|K^_(4=?1k#^{Pogzyl$5JRHv9wG>~_xYw@n*G2Hoxcw$Huye9yV}-1Ad1 zi^XKGu{cZ_01%7Cj!E2P+E2`|5nD|4wZt5D;>OzA1|I)=uy^9b6(ztJ_J40$&;pS3 z|7nZ?2!deC?-pGl@o>4sW;IuGTy*K4({=zfxQiW;!mCC$W0Xf$?mMAx*3FW>YkN|^ z>y7B@U#5S0zPX3Asgb(;ln<2nbCkt?=U>)0+e=@dzM=g+vBs)|f(Ifu_f1x#B;5S* zMAH6~e!9POo{G}uzi&?3mxT>oA4*P!XdUHI8ANBU9O(j3yvlxDS+{D5`_i~KjjyLM ztMlpg*(v*dFWJl?{Taz0%JYVZc-eKr-Ij<`sTc>|#{wuKkF+@ZF`1~wX}^*k!)OylB$xRuyu=iz>I#94)3VsyV^ z|9=Zo($`>ocSl;5#V2HSu%UQIODev?sUY6JHX)h6Jjj#ZF0unH{?Jr5mMxZ0_f&5pDr(>k^wBkXLnpQKcK=?eso|Nu1#G#Ya^)!^5{vPtg}=G zIm1cbdfR(r=@?Z58$bDG^`oBB|~SM zYG}durERPHg0Lx4`F2h`nm7iPzj9vOT~_b(l0Cfyv+%17Ah3bx?s3f z#Rm6d3GSs-^+1MNQP(5iE=7e9givHpx4(d~)lQt|GEfZ9(>5wz+@d|=BpEbIB>5*_ Cj0nI0 literal 0 HcmV?d00001 diff --git a/addons/vactions/icons/info.paa b/addons/vactions/icons/info.paa new file mode 100644 index 0000000000000000000000000000000000000000..7783a8aefaae34de28968f6052bbadf7955af172 GIT binary patch literal 1522 zcmb7EQAkr^6#j4QHihZ7av-QED7}1c3^1(Wk8fok>cmq=-JLnP$$0JK*5zh5NIe@K%G_A?^%dtAdK)t#y_h$cwvq$C9*~zGb`9&za z2J{9B=2Sg5yxD732j*)!uKH~@%l1h7@_3Nx<44nE1|wh!e4ttQyT44wW`I3iIXX@X z7{D5c_k-O>6(ikcYyq&fj@2`ts>hu_WcRG!@G6LTj^}8SSdgddv8=zaWiX_SJGLAc zFMy!wo$NUro>*ag*a*C%>HH+YM(fxdX-mwRm2r#{MM03JMm7^)Hd%fSES>)hI_IF6 zPxY7{(_l$iS42eyB1UQGnBBwn3)1|-PuIJ-$l1KaHS2=P9_k`~n(t&{(0y=XxRm1uhL|chX%y z-C|=5@q%r}(*SQ|LrCS`We7>)a$Yw@mc>y-Krv2Dlr+y!&~+<@990s4|bGVr@D zEZZ-i*cofYvarl66L)$)>S@)NTtQ+EIW literal 0 HcmV?d00001 diff --git a/addons/vactions/icons/key.paa b/addons/vactions/icons/key.paa new file mode 100644 index 0000000000000000000000000000000000000000..6dfa015ec681e515052f1f1346ad6ec8c055da9e GIT binary patch literal 1522 zcmdUvO=uHQ5P)Z!jg4T)wuzNekyHvERp_zct~LoN5wkWc9<4XQkXw2RNlT%ZqOAv^ z2l1kZ;z6OZ2SKVAi6~UCp<+xC!2|^*D2>!6jx%rfg&<-nc+i2(d*9A)cIG`V#$rb5 zRP3Cg0zjkDI4StNahe%Pm}5pF%B;}CJRXgn(P>|xXOx_LrwxU92@nli-8+ zwV`+yHB8jIBkvLR(?gDZBy_M*T*2JJb0-_<2i7Us+f2=6ue*wY;Chy7fx26cs0WuQ zISIcL>ke#e&a@uo>nm)X)B%oFx88JbUlrbj(EmLfsB$pU^IZL!f0-&{rT8KJCj={s+T)=}xD`mt z`09Jw<%b_j?wvlWmF=|SpBy!n-s6`gtA=G!NkTaPej1=oj{Je8om|;JwF`Uc_rI+g zXwL286mHImF>W6-mreP%!nBdC;CF4Vz@296<_E;}hvKd(&9qkWE18;eI@zgfwjbhO zh$%ktgEi{m-ez8K0U%ge+`wYy9{ZD88GDU*0uwY0Tmk5ZKCO-yW!qui>br;o9D@C! zu-I-hTX(jZ+3aXzn9P4yzmE>C4lwwHVvfx>MOit3TOWz-8>(PRa=7^Pt}4?)&boAe da6(QWG%ZV|8zwf(t*3X&pqGYIp>~xem{}= z{a*E|ztNjR2w7iW4=`@>)+19eWWV>i4_SZ<`G(KeAjAKMaP@%WnMlY-xc=YDNEsm* z`d}-0uiuHg+ZHJ$MAJm!L`v^HPiX~XSPDFlPX`T?nf^&S!u5)LaPwC20vm$r%BbBx0}@7xs#QhgPbhoTxJV_FTx|k;k&1Qz`{-w5523bG)mui!{xh^)3AA=d{s~6r}j(4YH z7*ACX{~oRtUvP0Q1oiWw!#f%V#Jlts2Ge7VbCPA?5o03sm9qeSN7Wy_YsGFvsPO@x z%gl4|k0UW}-<}Jxc?0FXc-AB}^19aY%zCWJxv&ulvscE*f9H23JjntICGfgr)Es2a zDPM5aeY+U-f*?v%N3~<;{VhW@>A~b+=&=m_8f1`Rt|w*q4E@e2yAgY8WAi7=%AwyM z*X*{6rTNeqbG`*h^FU{4Q-H+-9p~j+J6y5kITADVva0Ql^{@X9csDp*oTRp|ytXd~ zi`FzvvZeIg?Mu&Rk>PleZK?ir!RPi1$OWg$1{g11Bo< Sb4F_KugWbsZB~mF6Y?9}#Psw4 literal 0 HcmV?d00001 diff --git a/addons/vactions/icons/pull.paa b/addons/vactions/icons/pull.paa new file mode 100644 index 0000000000000000000000000000000000000000..f6f03e4b0918564e704309c2e31af8e9d5d24431 GIT binary patch literal 1522 zcmcIkUr19?7(aLIG!n9|5is-evFjEF)) zDiU8T^1-Ln;!+XJ!2Vd^L;si#MJOsCre(3PMyKs^V?D9&M5QW5AWp*3+0sQF7|F_-g_px{ONJ`GenMz)gFULoVnLv=eP%lMO z(tH86_L1yAyyn zg-72p>| zpHMlH30r8%ET73|=KBV#lM42Fy?I}i^;hlTA?bvLoo6;1$skRN4Y_)a+1tU?mTW2b zwI*OB8{;GR8dUtRv$jeKS)@=MoJZ4}NDUSywGOMQuWpGvC&}0j@KfV(YNC8Lk){1X z$dtF*w1!qHmc9K0#5WkVxM==y@6R=o01W-tEs)QpgVju5+5w^Lq||ms3NcLSiKH;T zeR18PxXO>QqCXH%`y;COPqX<^SLZF|JdClom@M(LV{$(cZ_4S(_zCpFE5sc}8yCs0%OtFr+a`1m7f=w$*(5c;#uIA{!bGETetb8mBLn zfnTF3#HLNOp0RQ!i|7}G0#pFcsU?{Sw`IcYwNdqP*^CsO9F0ywn8@=7OYhn{>s*m( oz!-B6o2SNt$^P^l;A7s?^;-HxrF!ZHN)`<}^)FzV 0}) then {v} else {d}) + + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} + +#define IMPORT_FINALIZER if (isNil "finalize") then { \ + finalizer = { \ + if (isNil "_this" || {typeName _this != typeName {}}) exitWith {}; \ + \ + private["_str_data"]; \ + _str_data = toArray str(_this); \ + \ + private["_space"]; \ + _space = (toArray " ") select 0;\ + _str_data set [0, _space]; \ + _str_data set [((count _str_data)-1), _space]; \ + \ + (compileFinal (toString _str_data)) \ + }; \ + finalizer = finalizer call finalizer; \ +}; \ No newline at end of file diff --git a/addons/vactions/misc_functions.sqf b/addons/vactions/misc_functions.sqf new file mode 100644 index 000000000..4f97ca56b --- /dev/null +++ b/addons/vactions/misc_functions.sqf @@ -0,0 +1,96 @@ +if (!isNil "va_misc_functions_loaded") exitWith {}; +diag_log format["Loading vehicle misc functions ..."]; + +#include "macro.h" + +//FIXME: some of these functions are repeated between addons, need to refactor, and put them in a shared place + + +A3W_fnc_unflip = { + ARGVX3(0,_object,objNull); + ARGVX3(1,_vector,[]); + + def(_pos); + _object allowDamage false; + _pos = getPos _object; + _pos set [2, (_pos select 2) + 2]; + _object setPos _pos; + _object setVectorUp _vector; + [_object] spawn { + sleep 5; + ARGVX3(0,_object,objNull); + _object allowDamage true; + }; + +} call mf_compile; + +A3W_fnc_lock = { + //diag_log format["%1 call A3W_fnc_lock", _this]; + ARGVX3(0,_left,objNull); + ARGVX3(1,_right,0); + _left lock _right; + _left setVariable ["lockState", _right, true]; + + def(_locked); + _locked = (_right == 2 || {_right == 3}); + _left setVariable ["objectLocked", _locked, true]; + _left setVariable ["R3F_LOG_disabled",_locked, true]; +} call mf_compile; + +generic_picture_path = { + ARGVX3(0,_id,""); + ([_id, "picture"] call generic_config_text) +}; + +generic_display_name = { + ARGVX3(0,_id,""); + ([_id, "displayName"] call generic_config_text) +}; + +generic_icon_path = { + ARGVX3(0,_id,""); + ([_id, "icon"] call generic_config_text) +}; + +generic_config_text = { + ARGVX3(0,_id,""); + ARGVX3(1,_field,""); + + if (_id == "" || {_field == ""}) exitWith {""}; + + if (isClass(configFile >> "CfgWeapons" >> _id)) exitWith { + (getText(configFile >> "CfgWeapons" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgVehicles" >> _id)) exitWith { + (getText(configFile >> "CfgVehicles" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgMagazines" >> _id)) exitWith { + (getText(configFile >> "CfgMagazines" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgAmmos" >> _id)) exitWith { + (getText(configFile >> "CfgAmmos" >> _id >> _field)) + }; + + if (isClass(configFile >> "CfgGlasses" >> _id)) exitWith { + (getText(configFile >> "CfgGlasses" >> _id >> _field)) + }; + + "" +}; + +str_truncate = { + ARGVX4(0,_str,"","..."); + ARGVX4(1,_max,0,"..."); + + _str = if ((count _str) > _max) then { (_str select [0, _max - 3]) + "..."} else {_str}; + (_str) +}; + +va_misc_functions_loaded = true; + +diag_log format["Loading vehicle misc functions complete"]; + + diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf new file mode 100644 index 000000000..ce60564a3 --- /dev/null +++ b/addons/vactions/va_functions.sqf @@ -0,0 +1,561 @@ +if (!isNil "va_actions_functions_defined") exitWith {}; +diag_log format["Loading vehicle actions functions ..."]; +#include "macro.h" + + +#define cameraDirDist(x) ([(positionCameraToWorld [0,0,0]), (positionCameraToWorld [0,0,x])] call BIS_fnc_vectorDiff) +#define insideAVehicle(x) ((vehicle x) != x) + +//Normalize the config variables +cfg_va_info_action_on = OR_BOOLEAN(cfg_va_info_action_on,true); +cfg_va_unflip_action_on = OR_BOOLEAN(cfg_va_unflip_action_on,true); +cfg_va_unflip_wait_time = OR_POSITIVE(cfg_va_unflip_wait_time,10); +cfg_va_unflip_wait_distance = OR_POSITIVE(cfg_va_unflip_wait_distance,10); +cfg_va_pull_player_action_on = OR_BOOLEAN(cfg_va_pull_player_action_on,true); +cfg_va_lock_action_on = OR_BOOLEAN(cfg_va_lock_action_on,true); +cfg_va_lock_owner_only = OR_BOOLEAN(cfg_va_lock_owner_only,true); +cfg_va_lock_from_inside = OR_BOOLEAN(cfg_va_lock_from_inside,true); +cfg_va_lock_actions_classes_list = OR_ARRAY(cfg_va_lock_actions_classes_list,[]); +cfg_va_lock_sound_play = OR_BOOLEAN(cfg_va_lock_sound_play,true); + + +va_player_inside = { + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_vehicle,objNull,false); + + (((vehicle _player) == _vehicle) && {(_vehicle != _player)}) +}; + +va_player_exit = { + //player groupChat format["player_exit_vehicle %1",_this]; + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + ARGV4(2,_immediate,false,true); + + + _vehicle lock false; + if (_immediate) exitWith { + moveOut _player; + }; + + //leave engine in same state after exiting + def(_engine_state); + _engine_state = isEngineOn _vehicle; + _player action ["Eject",_vehicle]; + _vehicle engineOn _engine_state; +}; + +va_is_player_owner = { + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_vehicle,objNull,false); + + if (not(alive _player)) exitWith {}; + + def(_ownerUID); + _ownerUID = _vehicle getVariable ["ownerUID", "unknown"]; + + def(_uid); + _uid = getPlayerUID _player; + + (_uid == _ownerUID) +}; + +va_pull_player_action = { + ARGVX3(3,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + ARGVX3(2,_target,objNull); + + [_target, _vehicle, false] call va_player_exit; +}; + +va_pull_player_action_available = { + if (not(cfg_va_pull_player_action_on)) exitWith {false}; + + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + ARGVX3(2,_target,objNull); + + + if (not(alive _player)) exitWith {false}; + + if (cursorTarget != _vehicle) exitWith {false}; + if (not(locked _vehicle < 2)) exitWith {false}; + if (not([_target, _vehicle] call va_player_inside)) exitWith {false}; + + true +}; + +va_flipped = { + ARGVX4(0,_vehicle,objNull,false); + + def(_pos); + _pos = getPos _vehicle; + + def(_snormal); + def(_vnormal); + _snormal = surfaceNormal _pos; + _vnormal = vectorUp _vehicle; + + def(_angle); + _angle = [_snormal, _vnormal] call vector_angle; + + (_angle > 15) +}; + +va_unflip_action_available = { + if (not(cfg_va_unflip_action_on)) exitWith {false}; + ARGVX4(0,_vehicle,objNull,false); + + + ([_vehicle] call va_flipped) +}; + +va_unflip_action = { _this spawn { + //player groupChat format["va_unflip_action %1",_this]; + ARGVX3(3,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if (not(alive _player)) exitWith {}; + + + def(_display_name); + _display_name = [typeOf _vehicle] call generic_display_name; + + init(_sleep,cfg_va_unflip_wait_time); + init(_dist,cfg_va_unflip_wait_distance); + + _player groupChat format["Unflipping the %1, wait for %2 seconds nearby.", _display_name, _sleep]; + sleep _sleep; + + if ((_player distance _vehicle) > _dist) exitWith { + _player groupChat format["Could not unflip the %1, you must stay within %2 meters.", _display_name, _dist]; + }; + + [[_vehicle,[0,0,1]],"A3W_fnc_unflip",true,false] call BIS_fnc_MP; + + + _player groupChat format["The %1 has been unflipped", _display_name]; + +};}; + +//place-holder in case people want to modify this condition +va_information_action_available = { + if (not(cfg_va_info_action_on)) exitWith {false}; + + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_vehicle,objNull,false); + + //put your custom logic here, if you want to restrict who can see the vehicle information + + true +}; + + +va_get_tag = { + ARGVX4(0,_vehicle,objNull,""); + def(_tag); + _tag = _vehicle getVariable "va_key"; //sock-rpc-stats + if (isSTRING(_tag)) exitWith {_tag}; + + _tag = _vehicle getVariable "A3W_vehicleID"; //iniDB, and extDB + if (isSTRING(_tag)) exitWith {_tag}; + + "" +}; + +va_get_owner_name = { + ARGVX4(0,_vehicle,objNull,"None"); + + def(_name); + _name = _vehicle getVariable "ownerN"; + if (isSTRING(_name)) exitWith {_name}; + + _name = _vehicle getVariable "ownerName"; + if (isSTRING(_name)) exitWith {_name}; + + def(_uid1); + def(_uid2); + def(_uid3); + def(_uid4); + + //I know, it's ugly, but got to try all these + _uid1 = _vehicle getVariable ["uid", ""]; + _uid2 = _vehicle getVariable ["owner", ""]; + _uid3 = _vehicle getVariable ["ownerUID", ""]; + _uid4 = _vehicle getVariable ["UID", ""]; + + if (_uid1 == "" && { _uid2 == "" && { _uid3 == "" && { _uid4 == ""}}}) exitWith {"None"}; + + def(_uid); + def(_player); + + {if (true) then { + if (!isPlayer _x) exitWith {}; + _uid = getPlayerUID _x; + if (_uid == "") exitWith {}; + + if (_uid == _uid1 || { + _uid == _uid2 || { + _uid == _uid3 || { + _uid == _uid4}}}) exitWith { + _player = _x; + } + };} forEach playableUnits; + + if (!isOBJECT(_player)) exitWith {"Not in game"}; + + (name _player) +}; + + +va_information_action = { + ARGVX3(3,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + + def(_class); + def(_driver); + def(_picture); + def(_display_name); + _class = typeOf _vehicle; + _driver = driver _vehicle; + _driver = if (isNull _driver) then {"None"} else {(name _driver)}; + _picture = [_class] call generic_picture_path; + _display_name = [_class] call generic_display_name; + + def(_owner); + def(_tag); + _owner = [_vehicle] call va_get_owner_name; + _tag = [_vehicle] call va_get_tag; + + def(_text); + def(_label); + def(_value); + _text = ""; + { + _label = _x select 0; + _value = _x select 1; + _text = _text + "" + _label + "" + _value + "
"; + } + forEach( + [[" ID: ", ([_tag,17] call str_truncate)], + [" Direction: ", str(round(getdir _vehicle)) + toString [176]], + [" Grid: ", mapGridPosition _vehicle], + [" Altitude: ", str(round(getposASL _vehicle select 2)) + " meter(s) ASL"], + [" Driver: ", ([_driver,17] call str_truncate)], + [" Seats: ", str((_vehicle emptyPositions "cargo")+(_vehicle emptyPositions "driver")) + " seat(s)"], + [" Size: ", str(round((sizeOf _class)*10)/10) + " meter(s)"], + [" Owner: ", ([_owner,17] call str_truncate)] + + + ]); + + _text = format["Vehicle Information

(%2)", _picture, ([_display_name,25] call str_truncate)] + "

" + _text; + hint parseText _text; +}; + +va_lock = { + _this pushBack 2; + _this call va_remote_lock; +}; + +va_unlock = { + _this pushBack 0; + _this call va_remote_lock; +}; + + +/* + 0 - Unlocked + 1 - Default + 2 - Locked + 3 - Locked for player +*/ + +va_remote_lock = { + ARGVX3(0,_vehicle, objNull); + ARGVX3(1,_state,0); + [[_vehicle, _state] , "A3W_fnc_lock", true, false, true] call BIS_fnc_MP; +}; + +va_is_locked = { + ARGVX4(0,_vehicle,objNull,false); + def(_state); + _state = locked _vehicle; + (_state == 2 || { _state == 3}) +}; + + +va_lock_toggle = { + ARGVX3(0,_vehicle,objNull); + + def(_locked); + def(_state); + + _locked = [_vehicle] call va_is_locked; + _state = if (_locked) then {2} else {0}; + + [_vehicle, _state] call va_remote_lock; + _state +}; + +va_lock_action = { + ARGVX3(3,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if ([_vehicle] call va_is_locked) exitWith {}; + + + if (cfg_va_lock_sound_play) then { + playSound3d ["a3\sounds_f\air\Heli_Attack_02\Mixxx_door.wss",_player, true]; + }; + + [_vehicle] call va_lock; +}; + +va_unlock_action = { + ARGVX3(3,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if (not([_vehicle] call va_is_locked)) exitWith {}; + + if (cfg_va_lock_sound_play) then { + playSound3d ["a3\sounds_f\air\Heli_Attack_01\close.wss", _vehicle, insideAVehicle(_player)]; + }; + + [_vehicle] call va_unlock; +}; + +va_is_lockable = { + ARGVX3(0,_vehicle,objNull); + + if (count(cfg_va_lock_actions_classes_list) == 0) exitWith {true}; + + def(_class); + _class = typeOf _vehicle; + + (({_class isKindOf _x} count cfg_va_lock_actions_classes_list) > 0) +}; + +va_lock_action_available = { + if (not(cfg_va_lock_action_on)) exitWith {false}; + + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_vehicle,objNull,false); + + if ([_vehicle] call va_is_locked) exitWith {false}; + + if (not([_vehicle] call va_is_lockable)) exitWith {false}; + + if (cfg_va_lock_from_inside && {[_player, _vehicle] call va_player_inside}) exitWith {true}; + + if (cfg_va_lock_owner_only && {not([_player, _vehicle] call va_is_player_owner)}) exitWith {false}; + + true +}; + +va_unlock_action_available = { + if (not(cfg_va_lock_action_on)) exitWith {false}; + + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_vehicle,objNull,false); + + if (not([_vehicle] call va_is_locked)) exitWith {false}; + + if (not([_vehicle] call va_is_lockable)) exitWith {false}; + + if (cfg_va_lock_from_inside && {[_player, _vehicle] call va_player_inside}) exitWith {true}; + + if (cfg_va_lock_owner_only && {not([_player, _vehicle] call va_is_player_owner)}) exitWith {false}; + + true +}; + + +va_outside_actions = OR(va_outside_actions,[]); + +va_outside_remove_actions = { + if (count va_outside_actions == 0) exitWith {}; + //player groupChat format["va_outside_remove_actions %1", _this]; + + ARGVX3(0,_player,objNull); + if (not(isPlayer _player)) exitWith {}; + + { + private["_action_id"]; + _action_id = _x; + _player removeAction _action_id; + } forEach va_outside_actions; + va_outside_actions = []; +}; + + +va_outside_owner_add_actions = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + def(_crew); + _crew = crew _vehicle; + {if (true) then { + private["_member"]; + _member = _x; + + def(_action_id); + _action_id = _player addaction [format[" Pull %1", (name _member)], {_this call va_pull_player_action;}, [_player, _vehicle, _member],10,false,false,"", + format["([objectFromNetId %1, objectFromnetId %2, objectFromNetId %3] call va_pull_player_action_available)", str(netId _player), str(netId _vehicle), str(netId _member)]]; + va_outside_actions = va_outside_actions + [_action_id]; + };} forEach _crew; +}; + +va_outside_add_actions = { + if (count va_outside_actions > 0) exitWith {}; + //player groupChat format["va_outside_add_actions %1", _this]; + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if (not(isPlayer _player)) exitWith {}; + + def(_display_name); + _display_name = [typeOf _vehicle] call generic_display_name; + + //Add crew actions + if ([_player, _vehicle] call va_is_player_owner) then { + [_player, _vehicle] call va_outside_owner_add_actions; + }; + + //Add unfliping action + _action_id = _player addaction [format[" Unflip %1", _display_name], {_this call va_unflip_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1] call va_unflip_action_available)",str(netId _vehicle)]]; + va_outside_actions = va_outside_actions + [_action_id]; + + + //Add view vehicle information action + _action_id = player addaction [format[" %1 info", _display_name], {_this call va_information_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1, objectFromNetId %2] call va_information_action_available)", str(netId _player), str(netId _vehicle)]]; + va_outside_actions = va_outside_actions + [_action_id]; + + //Add vehicle lock action + _action_id = player addaction [format[" Lock %1", _display_name], {_this call va_lock_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1, objectFromNetId %2] call va_lock_action_available)", str(netId _player), str(netId _vehicle)]]; + va_outside_actions = va_outside_actions + [_action_id]; + + //Add vehicle unlock action + _action_id = player addaction [format[" Unlock %1", _display_name], {_this call va_unlock_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1, objectFromNetId %2] call va_unlock_action_available)", str(netId _player), str(netId _vehicle)]]; + va_outside_actions = va_outside_actions + [_action_id]; +}; + +va_inside_actions = OR(va_inside_actions,[]); + +va_inside_add_actions = { + if (count va_inside_actions > 0) exitWith {}; + //player groupChat format["va_inside_add_actions %1", _this]; + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if (not(isPlayer _player)) exitWith {}; + + def(_display_name); + _display_name = [typeOf _vehicle] call generic_display_name; + + //Add vehicle lock action + _action_id = player addaction [format[" Lock %1", _display_name], {_this call va_lock_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1, objectFromNetId %2] call va_lock_action_available)", str(netId _player), str(netId _vehicle)]]; + va_inside_actions = va_inside_actions + [_action_id]; + + //Add vehicle unlock action + _action_id = player addaction [format[" Unlock %1", _display_name], {_this call va_unlock_action;}, [_player, _vehicle],10,false,false,"", + format["([objectFromNetId %1, objectFromNetId %2] call va_unlock_action_available)", str(netId _player), str(netId _vehicle)]]; + va_inside_actions = va_inside_actions + [_action_id]; +}; + + +va_inside_remove_actions = { + if (count va_inside_actions == 0) exitWith {}; + //player groupChat format["va_inside_remove_actions %1", _this]; + + ARGVX3(0,_player,objNull); + if (not(isPlayer _player)) exitWith {}; + + { + private["_action_id"]; + _action_id = _x; + _player removeAction _action_id; + } forEach va_inside_actions; + va_inside_actions = []; +}; + + +va_outside_target = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_distance,0); + if (!isPlayer _player) exitWith {}; + + private["_pos1", "_pos2"]; + _pos1 = (eyePos player); + _pos2 = ([_pos1, cameraDirDist(_distance)] call vector_add); + + private["_objects"]; + _objects = (lineIntersectsWith [_pos1,_pos2,objNull,objNull,true]); + if (!isARRAY(_objects) || {count _objects == 0}) exitWith {}; + + def(_target); + _target = _objects select 0; + + if (not(_target isKindOf "LandVehicle")) exitWith {nil}; + + _target +}; + +va_check_outside_actions = { + //player groupChat format["va_check_outside_actions"]; + init(_player,player); + + + _target_vehicle = [_player, 3.5] call va_outside_target; + //player groupChat format["_target_vehicle = %1",_target_vehicle]; + if (!isOBJECT(_target_vehicle) || {insideAVehicle(_player) || {not(alive _player)}}) exitWith { + [_player] call va_outside_remove_actions; + }; + + [_player, _target_vehicle] call va_outside_add_actions; +}; + +va_check_inside_actions = { + //player groupChat format["va_check_inside_actions"]; + init(_player,player); + + if (!(alive _player) || {!insideAVehicle(_player)}) exitWith { + [_player] call va_inside_remove_actions; + }; + + [_player, vehicle _player] call va_inside_add_actions; +}; + + +va_client_loop_stop = false; +va_client_loop = { + if (not(isClient)) exitWith {}; + private ["_va_client_loop_i"]; + _va_client_loop_i = 0; + + while {_va_client_loop_i < 5000 && {not(va_client_loop_stop)}} do { + call va_check_outside_actions; + call va_check_inside_actions; + + sleep 0.5; + _va_client_loop_i = _va_client_loop_i + 1; + }; + [] spawn va_client_loop; +}; + +[] spawn va_client_loop; + +diag_log format["Loading vehicle actions functions complete"]; + +va_actions_functions_defined = true; \ No newline at end of file diff --git a/addons/vactions/vector_functions.sqf b/addons/vactions/vector_functions.sqf new file mode 100644 index 000000000..444571bfd --- /dev/null +++ b/addons/vactions/vector_functions.sqf @@ -0,0 +1,127 @@ +if (!isNil "vector_functions_defined") exitWith {}; +diag_log format["Loading vector functions ... "]; +#include "macro.h" + + +vector_subtract = { + ARGVX3(0,_v1,[]); + ARGVX3(1,_v2,[]); + + ([((_v1 select 0) - (_v2 select 0)), ((_v1 select 1) - (_v2 select 1)), ((_v1 select 2) - (_v2 select 2))]) +}; + +vector_add = { + ARGVX3(0,_v1,[]); + ARGVX3(1,_v2,[]); + + ([((_v1 select 0) + (_v2 select 0)), ((_v1 select 1) + (_v2 select 1)), ((_v1 select 2) + (_v2 select 2))]) +}; + +vector_interpolate = { + private["_v1", "_v2", "_p"]; + _v1 = _this select 0; + _v2 = _this select 1; + _p = _this select 2; + private["_V1x", "_V1y", "_V1z", "_V2x", "_V2y", "_V2z"]; + _V1x = _v1 select 0; + _V1y = _v1 select 1; + _V1z = _v1 select 2; + + _V2x = _v2 select 0; + _V2y = _v2 select 1; + _V2z = _v2 select 2; + + [ (_V1x + ((_V2x - _V1x)*_p)), (_V1y + ((_V2y - _V1y)*_p)), (_V1z + ((_V2z - _V1z)*_p))] +}; + +vector_dotp = { + ARGVX3(0,_v1,[]); + ARGVX3(1,_v2,[]); + (((_v1 select 0) * (_v2 select 0)) + ((_v1 select 1) * (_v2 select 1)) + ((_v1 select 2) * (_v2 select 2))) +}; + +vector_magnitude = { + ARGVX3(0,_v1,[]); + (sqrt((_v1 select 0)^2 + (_v1 select 1)^2 + (_v1 select 2)^2)) +}; + +vector_angle = { + ARGVX3(0,_v1,[]); + ARGVX3(1,_v2,[]); + + _v1m = [_v1] call vector_magnitude; + _v2m = [_v2] call vector_magnitude; + _vdp = [_v1, _v2] call vector_dotp; + + private["_m"]; + _m = (_v1m * _v2m); + if (_m == 0) exitWith {0}; + + (acos(_vdp / _m)) +}; + +vector_normalize = { + private["_v1"]; + _v1 = _this select 0; + + private["_len"]; + _len = sqrt((_v1 select 0)^2 + (_v1 select 1)^2 + (_v1 select 2)^2); + if (_len == 0) exitWith {[0,0,0]}; + ([(_v1 select 0)/(_len), (_v1 select 1)/(_len), (_v1 select 2)/(_len)]) +}; + +vector_resize = { + private["_v1", "_len"]; + _v1 = _this select 0; + _len = _this select 1; + + private["_n"]; + _n = [_v1] call vector_normalize; + ([(_n select 0)*(_len), (_n select 1)*(_len), (_n select 2)*(_len)]) +}; + + +matrix_X_vector = { + ARGVX3(0,_m,[]); + ARGVX3(1,_v,[]); + + ([ + (((_v select 0) * ((_m select 0) select 0)) + ((_v select 1) * ((_m select 0) select 1)) + ((_v select 2) * ((_m select 0) select 2))), + (((_v select 0) * ((_m select 1) select 0)) + ((_v select 1) * ((_m select 1) select 1)) + ((_v select 2) * ((_m select 1) select 2))), + (((_v select 0) * ((_m select 2) select 0)) + ((_v select 1) * ((_m select 2) select 1)) + ((_v select 2) * ((_m select 2) select 2))) + ]) +}; + +vector_3d_rotate = { + ARGVX3(0,_v1,[]); + ARGVX3(1,_angle,0); + ARGVX3(2,_axis,0); + + private["_matrix"]; + if (_axis == 0) then { + //rotate around X axis + _matrix = [[1, 0, 0 ], + [0, cos(_angle), -(sin(_angle)) ], + [0, sin(_angle), cos(_angle) ]]; + }; + + if (_axis == 1) then { + //rotate around Y axis + _matrix = [[cos(_angle), 0, sin(_angle)], + [0, 1, 0 ], + [-(sin(_angle)), 0, cos(_angle)]]; + + }; + + if (_axis == 2) then { + //rotate around Z axis + _matrix = [[cos(_angle), -(sin(_angle)), 0], + [sin(_angle), cos(_angle), 0], + [0, 0, 1]]; + }; + + ([_matrix, _v1] call matrix_X_vector) +}; + +vector_functions_defined = true; +diag_log format["Loading vector functions complete"]; \ No newline at end of file diff --git a/init.sqf b/init.sqf index 4aaa5cc51..6322ef9ba 100644 --- a/init.sqf +++ b/init.sqf @@ -74,6 +74,7 @@ if (isServer) then }; //init 3rd Party Scripts +[] execVM "addons\vactions\functions.sqf"; [] execVM "addons\parking\functions.sqf"; [] execVM "addons\storage\functions.sqf"; [] execVM "addons\R3F_ARTY_AND_LOG\init.sqf"; From c3ec0e896b00f9c7375111a2e8138a9983e9a6d8 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 2 Jan 2015 07:33:43 -0800 Subject: [PATCH 231/544] Fix variable name for vehicle ID/Key --- addons/vactions/va_functions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf index ce60564a3..586f6855d 100644 --- a/addons/vactions/va_functions.sqf +++ b/addons/vactions/va_functions.sqf @@ -156,7 +156,7 @@ va_information_action_available = { va_get_tag = { ARGVX4(0,_vehicle,objNull,""); def(_tag); - _tag = _vehicle getVariable "va_key"; //sock-rpc-stats + _tag = _vehicle getVariable "vehicle_key"; //sock-rpc-stats if (isSTRING(_tag)) exitWith {_tag}; _tag = _vehicle getVariable "A3W_vehicleID"; //iniDB, and extDB From edc88207a72e85cdbda8c50d0edfe1db962abf27 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 4 Jan 2015 02:14:56 -0800 Subject: [PATCH 232/544] Removed old locking. --- addons/scripts/lock.sqf | 18 ------------------ addons/scripts/lockIn.sqf | 17 ----------------- addons/scripts/unlock.sqf | 17 ----------------- client/functions/playerActions.sqf | 4 ---- 4 files changed, 56 deletions(-) delete mode 100644 addons/scripts/lock.sqf delete mode 100644 addons/scripts/lockIn.sqf delete mode 100644 addons/scripts/unlock.sqf diff --git a/addons/scripts/lock.sqf b/addons/scripts/lock.sqf deleted file mode 100644 index 7648a6214..000000000 --- a/addons/scripts/lock.sqf +++ /dev/null @@ -1,18 +0,0 @@ -private ["_vehicle","_nearvehicle"]; -_nearvehicle = nearestObjects [player, ["LandVehicle", "Ship", "Air"], 5]; -_vehicle = _nearvehicle select 0; - -if (isNil "_vehicle") exitWith {}; - -if (!isDedicated) then - { - [[netId _vehicle, 2], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Lock - _vehicle setVariable ["objectLocked", true, true]; - _vehicle setVariable ["R3F_LOG_disabled",true,true]; - - _vehicle say3D "carlock"; - _vehicle engineOn false; - sleep 0.5; - titleText ["Locked!","PLAIN DOWN"]; titleFadeOut 5; - -}; \ No newline at end of file diff --git a/addons/scripts/lockIn.sqf b/addons/scripts/lockIn.sqf deleted file mode 100644 index a362232e7..000000000 --- a/addons/scripts/lockIn.sqf +++ /dev/null @@ -1,17 +0,0 @@ -private ["_vehicle","_nearvehicle"]; -_nearvehicle = nearestObjects [player, ["LandVehicle", "Ship", "Air"], 5]; -_vehicle = _nearvehicle select 0; - -if (isNil "_vehicle") exitWith {}; - -if (!isDedicated) then - { - [[netId _vehicle, 2], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Lock - _vehicle setVariable ["objectLocked", true, true]; - _vehicle setVariable ["R3F_LOG_disabled",true,true]; - - _vehicle say3D "carlock"; - sleep 0.5; - titleText ["Locked!","PLAIN DOWN"]; titleFadeOut 5; - -}; \ No newline at end of file diff --git a/addons/scripts/unlock.sqf b/addons/scripts/unlock.sqf deleted file mode 100644 index 97bec504e..000000000 --- a/addons/scripts/unlock.sqf +++ /dev/null @@ -1,17 +0,0 @@ -private ["_vehicle","_nearvehicle"]; -_nearvehicle = nearestObjects [player, ["LandVehicle", "Ship", "Air"], 5]; -_vehicle = _nearvehicle select 0; - -if (isNil "_vehicle") exitWith {}; - -if (!isDedicated) then - { - [[netId _vehicle, 1], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Unlock - _vehicle setVariable ["objectLocked", false, true]; - _vehicle setVariable ["R3F_LOG_disabled",false,true]; - - _vehicle say3D "carlock"; - sleep 0.5; - titleText ["Unlocked!","PLAIN DOWN"]; titleFadeOut 5; - -}; diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 271f7baec..ced072f3f 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -25,10 +25,6 @@ [" Salvage", "client\actions\salvage.sqf", [], 1.1, false, false, "", "!isNull cursorTarget && !alive cursorTarget && {cursorTarget isKindOf 'AllVehicles' && !(cursorTarget isKindOf 'Man') && player distance cursorTarget <= (sizeOf typeOf cursorTarget / 3) max 2}"], - [" Lock", "addons\scripts\lockIn.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F'], 5] > 0 && !(vehicle player == player)"], - [" Unlock", "addons\scripts\unlock.sqf", [], 1, false, false, "", "count nearestObjects [player, ['MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F'], 5] > 0 && !(vehicle player == player)"], - [" Lock", "addons\scripts\lock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'I_Heli_Transport_02_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'B_Heli_Light_01_armed_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget < 2 && cursorTarget distance player < 5"], - [" Unlock", "addons\scripts\unlock.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], From 2e43cac46f386a511b442dec3367323ffbaa8f1b Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 4 Jan 2015 02:33:40 -0800 Subject: [PATCH 233/544] Adjustments for new vehicle actions. --- addons/vactions/config.sqf | 2 +- description.ext | 8 +------- sounds/carlock.ogg | Bin 22198 -> 0 bytes 3 files changed, 2 insertions(+), 8 deletions(-) delete mode 100644 sounds/carlock.ogg diff --git a/addons/vactions/config.sqf b/addons/vactions/config.sqf index 83607fd83..9850359fe 100644 --- a/addons/vactions/config.sqf +++ b/addons/vactions/config.sqf @@ -26,6 +26,6 @@ cfg_va_lock_sound_play = true; cfg_va_lock_from_inside = true; //List of classes for vehicles that can locked/unlocked (empty means all) -cfg_va_lock_actions_classes_list = []; +cfg_va_lock_actions_classes_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; diff --git a/description.ext b/description.ext index 807761861..84ddd6fd9 100644 --- a/description.ext +++ b/description.ext @@ -95,7 +95,7 @@ class CfgSounds { sounds[] = { - beep, beep2, beep3, beep4, beep5, beep6, beep7, beep8, beep9, carlock + beep, beep2, beep3, beep4, beep5, beep6, beep7, beep8, beep9 }; class beep { @@ -142,10 +142,4 @@ class CfgSounds sound[] = {"addons\beacondetector\sound\beep.wav", db-10, 0.1}; titles[] = {}; }; - class carlock - { - name = "carlock"; - sound[] = {sounds\carlock.ogg,0.2,1}; - titles[] = {}; - }; }; \ No newline at end of file diff --git a/sounds/carlock.ogg b/sounds/carlock.ogg deleted file mode 100644 index 7c98880840fbea7da37c9f8ad37479c8750ea1ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22198 zcmeFYbx@p7*C6@~ZUKV31%gAc;10pv-8~8J0VV;0LvRW176|T=puycWxVy{jko?|v z-}~LKc5l_z{cpQ^x>`>6=|0kZ`pnZxR#s{N4De4lHTs)rx};+Tk%8RoolI?Oa zO8)_I{0m$UQhMt7@9@+U1TFP03g$d#hWwWR`*$Q#D1f$&gEfnilNH5V8&l0c<5S2` zu)li6{pvM4`_phB_`ksPV&a-000~;dCQs1?9{HjH0GI$^Oihm-YbisY7neonnG`4e zlGPAEphNv#76kx?E)$T7#*wMO>8~Ie9Hmw|Wm3WB8s(5wQ&-S{23G?uH;ZXE z*J(E&ouoj$dLNzoK)snjgR4Ljg3tfNYoFz-r}$^-6d)k;1#iL{eKr+Q_HW*7*nrQa zFo5|JNhpwGsOV#IWb!R-%WS^ZT9?$m>#t<$uSEL;0%arI(`K-R1#6J}71)w|?QDy3K;*@gc>~R)=MkyDGUvct-=kgf; zV!{*K0YHR}q|1@y7nB;R%;Qd6TF!#g&I;2|Qan-Qe;q#lkr(JfDAOzxY{5tzUrhdx z1q>aQAPY$x?Jp)MKycPNMaoFZ*&r`^%0^}p&e!oDA?jag8;X*?{^8);A;L8%FX{V| zyE2nUQk;im&{FdL<~*^!B7Q3xgVqslrJ{Eenn2-f#!?WAX0@Sxbw*M)3mb5txsbT8 zv^5Rtf5-brEQ$)!Y2~J z6o)dOGM3CG3OzQHt(QKREF$uaY>~gRDj{v2%cnmprvQKe%s*26ujG#?|CQq0m{5j3 zx~c*8ex|3Sv}1^G?|TQPI2s#NikY~eQXEmUneJT1D{YroGo{Oz7pE#qpZ8azpiHGO z|00S&_(w@TCpq=e7eKY*KN)vSJ^Y+>^grV835g084K$9jGplh3YN%^yxxLd#be*pY zG?;N+p7vRujxfUi{9gs@-o}f;+G~SxE{kyui%B<&*;)&|Iv<_de-!4g+AL4I z{)gr~sR$Ks^OuES5JdrPCVyJauUV0{2g`^ZEr|%SHqx=`mu?{Ur3M~i@ z-3pGR3rVmENhxl~e%n{J*Z9AU|JEESCu(SfYL286^?ztiI~$2ORGTW96wdyxQE(JW zP!~!3|6~9Fw0}X9`?HUzs4`Ega!sl-Yp4tUuQdkRI?1Up&Iu)KJOB^^zeIKt&vc4*lVYWl=K1fO$Yb(3(gLh0HN0*i7eGz=KF0dqo>h03!u){9oDuJz!5c zJ;($w@{zxAVx%Ju``i565(Fqbp$+L!VCkoZtsnoAYv@Fd<+1aTM+0nO1jYkwesY== z|M!yv0{|F=2!H|XK9PUVDMuO$0C-}|b)fczbc_WE09)v!BLYB-g(um6Kg|F4+W&$O z1f~OkploeC2a9Y6urgGdAi^aKp^G&^EW8azZgPIDRn6CPM`!08|3 zR9WXq$g|1rb!3tomx#828bKjcoY3s^^exYPEz5+i zY~3phP*4Nyt2_xCp4oJvQ2VL4&ylJBOhN@mK~2LTaZNj6D#oN`6r>^du4a132kwfFJx+ zR}4K}V4i?945s5Pz&6l+jb%)*>VM0GnZ?Dsjb)7e0Mvk*jknN2Sa~W{G6BF!I|!g? zN8q?L&-9c7n7zmS5;-8&qEPopov!%mCnmm zWtU~nOHhTUjE|8mqR3TMrH2Q=q&(1{Hd5f{QaIogYVDcDnGW!7QH#m4ZKgV7QRWdq z&6^?|vnLxTE`|+iCo9VSN`ltW=9xp`Qe##5pmpd_gTn<1k{hQgww>w>wLj9JARs{G zFSSG8D!#%}|3hwEpnc_uUFoz?a?8Zzd#2Mu?N-~E+`ly`0>l4M-!uIm8ao+4x$#6O zn*Jvq6%`kwKuhCLLIpnAyT!$OKWm@pKkaHV|3v(~#&#&(T`dUfpN?-PQ~*$N004&X zCawXo*%j^3gAV5DybNGNqKDdC2$Z>)V$$@1U;dxs4+2B`fHD8Mp}Y<^`6uUy@}IYs z|9OA;|1&qEYxk{26CfB0gcZ>Vh~OxtPQ#5vz$dE20+5iQTo(;y+oq0-k(I?23+JVy ziBHfC{U#R7hLo2(q5GB%ZqIzl)m;iltIus=u&j`Q7QA{biW< ze>G$U#HjW`dptEj(b42h{Ov*aWC_a_{ktJAE>87NU!*@KGW06?WT|37Wj9V0+Ak1_ z$DamS=#>>m4Eb+ETnrR0@1F)JBIx-4G(ZtShxywBnt3w8rYZe zGi79R31^ey-B1_nA%Je#p8x>%IXgBIj>yN4XaJ9h^cNTa1r?37LsCS9g)*l-(?Onx zHtjV4hz9?0B>ZEc0lq?cH3)=lc~K3i(YQ?-|`4Kc@gSBN+|r3zq=EK5h}Rd?k3J-c#mP`#0&l zw0GpjB@2M|2N>+WzPCT%iFV^}wMT7T%O_-Ji$hh{KfKSNZ5cb8?V6mtG1*U)!!Hn* z-sE=_@UP52B-@U3DT;dR)X}S{+`UP-K>!Aj1z~fDFNbO0|JdKdK&D=1|BedZ@C$WB za}+eo)}c zbA!pnnBZ*bhb5U9!R5#C1Jn*HZUC6Lx$g@$wu_YrG+y(C$LW=z!!d7wIQ80*M)MT_ z(v9aEv>IuFL}8W;;pto)y1$AI*Ee2f;4k}B2&8MB{66Xtok6!IM7&@L%U3lg`1p;g zoYlK3lJ|<>vlIYOpN7Lt4sp_JORb*}yrYQ5z5IH0u+=}cpsg2%(0(vXFvZ`zz{eCP zx3P9$@o-}XnUg$WyD;%H%2@O4pfR%GD<@^AlfG(g+uyQxN0DHj+~vPjV+pEtulG6X z->X3Y1khXXGEKhY_91#o!omHNO=fuj+0x7a^#K91L~#o7(Oa){MkDEDH8tgMG)Wb4 z=rDC|cdpL3JY_EKh8Nm$6UO8)na~GGm~w(^AmoZh7t=@Gm-qe4OP5+8faw-6UErcB z`RKW%6y)_*QWu7$7SZ_mDCpR^E+EaS@j~B_oW?|iH-yOXTRQwH}#m} zpoN>0Rp3gv7CiJfr;S-AxdZxcQ)yp|PgzR(w^{dwoszY(8u>`-T)1#{N_xrLMu&^Y zY^>a0sc5w4DO!nTp6=5wc{19uXm+O=rP%|3Jl-?VtTtIddVbwiPRJ)lOAPYMEr_3= z0NaReBHHq$Drlv6+x|y31LNR4&Dsr_6n<>LNtzb@oRDw&mF>hvqf>cVy1;rE$6WtKN5%Qbr8(j2j^2`= z6NToN&Uv4n&ydre2`|6`)F`MCCa5_TBiRpEjBn8R;nATug3Dkt5$T%uVg}%fCUI&U z44JXL^1dfpph)KE-~Ar(ooX>ss(Eu$-{~Phm{`bnLW;QuQDp!l>7OgQ4@e!(`FeZn zc}*GN0BE<(!QZq)qCad4rDN2v;<-n&U%mBt+$}3asbFa|2LTR^C+>9x^D;n!9=gN8 z)}5_^>CJ?C?j-rxL(lkTSe2uDPQg;Eg}G7`mZlDad-Ely_i#dvG|bO!tK?OVe}6jcEl>mEZ7vTQmkn_f?b(p0xeVhBiEl(1`0z5B=V0PHSN~%KFZS zcI8f-q~njCe7e;+?E;x=7cflxF=@yE8Itw8X8_T*gP4tI#5c0djDCFY;oClO{Jzya z?dpXBoye^;zq_cds2113gTzap>Rc)tWIR{$PY4pBVnv$5>4IKIyOT`B-zBM0f%faBI#Cxh4DhICzmnkG)ceXY{lpifxH`_B z+s^Y^u1ghumH6>sC;l}tmp!vD4#?98uR@E}L$QbL=i46RAD9lUjREhbpqD+b4WgGg z0EGLqBcbYfnNqx8SU`Y~EMHaI0jUSrD^RB-d0kvjRD!p{x8?nTvi_y&1Ff8dsKW;7 z=ZR@C?eOZ{#K{3H&KU%BTHd$lwi}a=t5UEeo7Tov3L&f0d55!QB*)>Ma9?i8jhU%t z5rJc^*>>9p7FcVa2#nWda6jZSsIbG`S$xt$v_JF z`kk~bn0E5gYfMB9VmP=HExJKT+pV3X*h^OTh+aytR zlLo-u6$Y;b*S6bsKK2X`vtqyQzA@a)Ed08tY{`BSxapvNWxrZ(?|i^JTGBcdsd}9- z`deq23+H2|1Ic0cTWZL=3_`R`YuTzzRjN?Eg0ryCqQ~cO6YbuhDT%AuNT8Xdovo<5 zLE-nSGe48;++WlM@vtyEDm`9~Dz-j%$FAXdr%9$w*B=a}eOrCwC2I;a_w&z1D#dBs zFw15DeM8qJQ{emrZqA=5E<=1+*PAcmHO0PZl%7=^#OZ@pZN+AFVhJp;aM7ZNz`eP< zyPtUQz!_)j_;!(X(Auu1R~j2rgr;eo6=8s* zslYCxOYD|L0Y5|Zy+=Lt+stOA!ob3;)I`gphn!Po-!h+;#x6MC>HYAIP+jjGukm@Y zPh4>NSoF^ch6kK^W*Pi5k+gGOt42X_NbYTbwqTWEq({3M`(GK=(m%i7 z;=HC2rzS3*zB4{r^T>bwwEX(^+arWY=S}7Fk{@)_b@Dl7YrLUIA_fmht^gnbV*_V) zMdyv?UgaUtJfMh+Mgl?9j=UHp1>cdb%-t&)99&+mC&|2gkucJ`8)7X{N~q(T801Im zy1AHGW69|0sjpR|(&Qe2Pa~1+(NH##U&Fergi(wH7M#t=!mjk-1MDBD@RrZuCqpgBTP=gWu5{19&^ z1N8j2?H=*Y+@JN*`?%YvK){FFSI>TCD#O02$WKG&WNnJoVOKV{O5aM} zp6WFCKd?T}Fltsh?bLH~Ou6&xXquXH57R1idYxWXQ)o6H_q!-yYkteV$A%R6fRYS^ zcau@}^r4BB&y4)c#H6}9?KdQ_om7phw2 zM%>)XX<33%XsoS{(Vbz56R5CsX{0NJIsz$7`Et_^j+{5Vy_tkLvWInP>o)qca zc?CBtv1AgYl~yI3b#QBoJLHo@!IFvz$UtY8L3d+F2@qZ;%i55@rHm=9qfxxBy5t;c z2U!%p6pq?`fRO7=dC03XV%54qk8)LF0PW2c-&gh}!C;uTD3UPW!?wDyP91r1Y=9#E z!;?c{g_@{QbuGCm1fYW3hG==3tpMhDX|738!>CVIWuwaLQ0e=jb@tbdJVni=p>fZq z(=+xTF^k2Pqb|Qh2`mmiv`gq5rJ~+7af_c`UXTL?*+2)+<0y~DTlCStO~`SJdGEel9RF$pF6Vo_w9Lt}BR_NHS=B?mn~&nIJN>eE zkx+-AJpz|qX^dVDOs<)?sj~PcV=39gHNHCnV2(~{CT|rasP~g6UJyovps#z1a5%$A zzJ^LC!#+M~9})Pm{Jz`*R&a}>TkFnu9|vf@M`vx8VfJ`rBHL)e@pC(Inq^UZiH@td zOio^K>KO5Hn@7DQ6w`nGev$iC#PH|NWpua?csBICA3R>>3LY51sEC-;&-LQLkV0x| zwJDipbl@_1ofAVIg^Q3ALYvP_62(ccM_0ATA%6V_15AF961B5(2{$1foR81fE33iM z#a17}kpa$2&Its3;_qP!R3c!^14>X3c{}|Ye7k|H^xeFA1*T{5G``YUzM5!l!5Ys( z_GdoQWwb=!y1v*3{26mPD^jiJMVfraVi*059KE=JITdmyfBgPuFy7JtwQ)1t3vO$t zGeDi58?YT&eYua;)Yi>_A0W}QzD1^ykIC&C;x;v55XdT_E2l`H| z4v^$8vG^wCeh;=(!v#2pnK3`Ner`tgQ{DM_mz{9Nx(bROXH9Xa zK!0A@uReTK$gjPvic*X8m$~|0ak!Ebx_j_+HG-36`v$QWC;ZK^@T}T?lR6+kfWdXB z>LnL5{*DQ8G|usdFP{%{BR787kkN<2x%Q9J?2Q5KA1Kd1heW*mno3$Q++qNH-`@eo zeP#C-xW+XZT>b6^55sOu9+T!a*g7*(f~IZq7L4|E5j`E}0I}Yy$@;IWw^O^gpbtd! zumExM1>HHpCHn%}Kv5*OfIc&=bt>N=P#=C-egCpH$7yG*vW3OYf{~+d=eFy*BO0Hf zO~sr&jA+Yh%+`?St|SEjP8b7OU-;SXx6Z;qt$n(=&on(CuYFFKtR+c zO0V9Ym=w5r_ipUoR$((y)r2dZpl#scBG)o|%9Ob4Lbc7~0wQti^>A@>zvpV8B9~FY zi@NP=O6#%dQTleEwf)ZT$Of_;0RYtuuyAk45KYP`w(_GX5prwdhgH6iZ)wFwnJLz8 zvcOW5n#ed;IP7SV>As)%-6+Vv=y}alsaw320fJGqD92_L_?W37PFDe$EqCNUETlz$=xR$gLck)6c`yVnn%_bggPtcLm^$( zDg04K9c|Ia55BFhr)R63`Ig>uuKT)|U1spE++}3RD&|*6_P!oo;2c-}_9kKtZqHooKAc;ou$=6+J)7V6t;V1OI;ri9+2ZIr!h{$<{2x}ob4_9w!@F&Xw^ zpIRo5&_2o+T`IM5EX89#8u!z)3+A~;i=D=71&zkNsl}H_%?;vWKfUI7nQ2HbCoZyn z@9Skg%H@-%D~!{xxPE?)GaHnno^BUJ6GkFkd8*d#@cEKmPys`2U|gW?d#@j#nIjeN zL*l10%gUz8h|}=Y4eCATO&u;Ly!fEmpy&50^PR{^Kciebhd&%04L5|njtEt3C@3gu zmdX`WP}*5gk z^D)L>7sr$9WBSX-4N5fyMPnOl$fTy0nu?mLsfqPlOA9L-9X$(kYe+9-7BY@@i1dmo z?~)pK=%LOm?pc4|b8+uTJ!dLe_7@SoKmaz)Y-mY`M{bxR^K;%R)q~UtYs34kdc1I2 z;S+fQpi&|pL2;V^P+o4(Y{du@UdIqZ0R&C~+6eD!|73J;Ws0zQg^q78gu!8U&qRbj zW_F%e^&N zU_(%L`)*7921lBIS$%vH-k~qF8Wos;wN6D9nWkEMBQ4=oPw1)=Y}eDFB#Em%KKY|) zb?-w*-7POy2G|N&9+Bki?L39?vx8{?VtJS}7^!FsTgoI!V``Ch^jE_6OthP#)z$HD zo&oYQqm&qat|z46g4Bklt|ZOhz7Iu1H_;oX!F2+goIbMxLtG5ZH($ffZp!%G2Xg|4 zS8EjUEzV1q$R6{q)2`x$K}?sq2rvRanD?A=CxX>0Ru-e842Qe4x!D>ddm_1jdR(jd z38A5}rH+TIh^hC8?S|=wj}et5=QW#x4|#`Ni@U3*SL0QK=TnP!TUX>3&K)jSHLcWN zHckmF53dYp-z;|&vBco^&x1%{Krp8k?LWtI&bD6o1}dMXFTc2gDJ^Lg{J8$x3lnG# zgma(gxAFUO6q+`@oosU019)T(_7Kif%lTRL9s@$V=g z{(U{JLVo8fkjsC3+CD>2UIeJ}Qd?5 zAR53R)t)F*^eoJ9-j2oH%NlZW$!5~jiqGrY+`4FV{}{pDvomd8=EamiGDIRYA9*x5 zUxzNR8OnktbkREa=3!Ak%A0R46+R)11O3}|Ql~75q&`=rP-&(*guNx@#0-+9SjK9TA=k$KwwRZ_Abi z2aeQD?Eq`3Hyg~c+VK%N{4!T8DkFky)36=gr2?mg#be{Ws>@&X9hXQ#yI?01u09?N zx*ZNK`S=Ir1|={;6pII+$(=CqWps!x1?D+#Sj}LCQK}6 zOxOw3)idj;qZdq*=zfAaO3$AY;#-_rrnJJT-NW;;{c`%GOQbIhP#Z{1c))_oY1-ou zSA4N;TuAf3MJ?DF4+@UgS_ zjvIlC z+56IQkGF<^F=0Dr*8^dN*Plb1c>B0zV)Q&TSWef#T~8&}KoUX@{@wyX0Gg}5xjxU@ zl|ZufL91(9@wkV&F85FB)k{o?>1a4_QlmlujlcjEq-j`X9W?ZIXZTPbKNUi8FYKkA z;KC*z)@XSjS-$6f4gLq$ZG}M{=Oz3g2e|~FPwG+axdP#g2ZY8>=yhZLEz=D59ArYWNM(nXO zC%?S%Sy*l{15eX#d8LTO_3b)JGuCP(Eq?>=(ZJN8aWOmRIu>&+kn^^dV19Y(2nKp# zJ%E|{9G>^rr*Bk#0M2Qgbz@5e z!24QJYA3*5>5+tp)(5=JMCqM+D2ECtV<8nsU#z@1^umLu#%R_f)@AK?&tg5-@F7jb z4q`0YjxRQzl=ttyAI#CIn~s`(*Ln302R`PwvDN$N%5~ol0>A&^x6hzDnGnxw&YlG_fclv8A65)A;iDqJp{5 z)Cm){R{1(Cm{y$K+=&;cOVSU-Qgj9M*+qtGn@LqF89z8BAX|L6{>^x;?2vZmTlIKy zg#)KdLNF}wUFS!PLWQh38DYiUO8KB3=G2tv=T{gG@Ux2*kn(8`p!vjwsMk)+R~e(V ziBuIhGwTy)KQsg)3iW6@(809WujU)yqdT7~OHdIbY8sKem!gIdWKiAu;Ml;tb#%L> z=rwzKu-r23%a7wDFjSKyYmwbf%51AQ|G3c<;(%!q{m}2H4*&}f%0v>#9*4l3$B|nw zfLi|oW1dd1s-ElGjVhAi}j8q;Olpsx8{TlLv77hOV2VJ^q!?nqsS{S z`#ugTeObVTJlf1G+U;iAF(pQLj|M{n#Zeg-4(5Z|z)q53!rMy<$M-AAYak4+AmMpz z?;9bJ%8eHWb2NA8z=!*1$9r+vQA1fj_gqIf&eBEre66n@ zgi$FX+k9G`n>2|>aaoL2ns2l8E`LvE_h#`QT3!L>a04evQH?gwjKxsjE)L;3Fv_j! zh+3~gfG?X@+>`8p@FFb3PySK??~ne=L&UE@ET`)(JTY%PO>J%uzm|}SY;N!e%Se5z z8wjlJl4AgaT=u4K5C;1BK|tqDY2mML7bPc3uFq@>+Idum+vzOgF%@yI?KC^ zB9CYAz{Ei~dT*_9X021tNt}_`tRt)D+{W_PHgEDxsyf$aVE2TwajcAu{+2_YZ+>)r zSHcz*sWF4UFCh_}G+gN)mKJ&rlI_)UPj!2>Vk-tJN4##=RKH+j!RmZByOQ>^B#4AO z&;sEHeG=Il<7d(+tY=Qu!+!encwaWjDe8KEHNt{}1_F?KkiY|y=#5Pb2xa0%2bGm5 zc`Y`@EfdHxmxNI=llt93IbMEvMr~Vu8{>Vvi82MWeEpN3dNZZdOxDugC+bHIlY^=+ z?g{iQa<-fhxi-%)z%PSUt1-ZyAkN=*DU|%iyX7sofc6w9kHN(trvpVm=C09vTFquL zXo+82ng5t#Uir=*Jtcg1qA(Ouz-Y?|uK?d_*|jMr&LYin0G!}YcHh7f*fT5%0(2AM z(y44;ir3GuDrMyhle-5*!wMQROmAf7bPHcS1C)h}>&J&q7ZkS%_s(5W0C1}@j~}B^ zs*#t?{+wzMN*50sSxY7KyK2>mBIt)1ITdmUVyWV9Z`UqzAboDf1U+XLu0eK1b;R#F z4_W%POR}m$(0JAewN03-%HDOnXX`|wyu$UF7ZNz=5>gZb6dUAtx>qpnP1~At>*lYc znRIKw6K1O zZG3z{t~V?^OrvPmz{0J|oAE5+MZ)~S#p6g8^)DKR$O9h(F_;BeQ3L?^_(KFPYN4|m zCbre5w<2iZ{a{(WDlXd+ENHdh#S1uK1@GGg$JvfQMz72cCmGKK%#U&S^X7q%jL2Il z4ocR!@CEJ?J@)7h9Gxlq2I)R(ZkD5GAD_MTu5*OLxYn%h)+>nHWFc)Sd-n`C=PErZh=d z`i%tIbI1{q>Tp?oF9-00=8ydAZ{96lNu$WaHzRg-;-_)BS*IalxLW_D^~j_I$5!JMhnky@JH&Yc)`bd@IrQ+gigM9J?MDD8qT$Eiv8-UiQJ9j z6B8CAI5a6mi*Kglh;`G@eHnCZ>}5n)s_2_nFa#zh<_m69>+t32 zj2d%s(`}m9_@zPG9TU%snis6Azf%WNROwjv9LbEFYsVb}qP7m3%bP0Q@0Ey7T?~Na z=3gl_C2s<&EIG0BAXiiSF-}Fc#Uo!*gMOjMv>lBFpxu`y;@LB)F=GHck+fQn<3N3j zbkk3_4zDM^1Z7!$NzSjl9ZJ5qUDnY`2Zh7CVRwYgBY35QtXCEX2j9@zs5CdW-}u-Q zbg>Xwns_zZgDIs>aN^yU@H!_p3_Pv;u4>kP9otlvp3Szp?1)L)A01f$?Vq?ZzM3mc zEmQ`IzWDeC40^Smh7`N}jNoHn2nuF`q>3n?<~Icd#smYdCo%i$tN<%N<^MV>ppQ6! zZxkf`v|4JKRu(3Pka`&@1!WauBU2-NNEGCQoUxvNN6uDi(ZDpcNXq_bu>_(vBXfYP@5$g#r ztR6ls!?K_cXLM=%8K8C%dHKYX)H{M~9 zQr8qfc~9U|7ja;OWX`IQbP1F~B~%IN<>&o%i7 z#|d%E*X}l;ay7&#Mc~Y*0-`j!ojo98uCBaYkP!p}d_3!cZd&07aE36+nrxrQQnUnB zjAKoiBQ=J&KKp^3`vsiiQB z2q$&>O8zoim5jP8S<`XytJk?Yi(_U(#XBAMKTSBo>a zUN_5iUTbAcF7JpOuUG+xg>UmgW!AFXo{J$JL=D^Nt&_4#@rLLx-hXStcN^*)CUmDL zFF!!xRs7H*Q`Uh075ShqTDtSrUgG))dI6M2zhEp3fBu%fr8C2qK$%%icX^wC@Fc4x zMxf#X0|wkYs2874<7=2p*SJ?%Q`*@VGq;!hcD!gbNGm?(fxVo4_-dFtnS45B-cH&V zF+{n&pw41QPXzN}xUCojoYGSFvK4;Z^k)zW_&`hTLC6W7Sld7ZMsz1b;wy5{RJTUiU8yWL3$tVIYGI9tg64Z;o1RvyG-u*q(<0J%^3EuFY81fbFELoSb}3 zu({|)+I+drJ2sd_PX?A4_OkwyDsW{{jad58igVm21ZNhu1kr{~r0TgwL)DYY@$S*~aU81glc$0i~_OYMvga+*KKu@;A||^vh`w z6{kz`A@b!G0(vNUoo*iS0Py{3mnI;x4)1G#3%5QEIkBvQ{^4->7N)F@dXo7rpqt?P z5E#ek`$xfV431y-0DY~tszrIMD?Wpg7A>1f%iJB~!Q|2?54uTVr2sS+Pcb)LtzHy> zrqFx zCu7SD``~{4IvpsX6l0jor?g0c2-t`00{6%|fQD@Qq$Xk~y2})fYM`K@-^q3#k>zuX zXTW-v7s+_~%tuOmspQd=6J-qffx9x3{nnKqZuXXjW-pAZU)hl;!XVIO%7yL{MF0cv z@Qj!Q=`xrxL7eXdKf)-+iSf+}0xa2MfQavl!GmlhsznsQ@p=kN@|4r4Aq~w`GtEuSPt&Y};;B8;wOGV^rzK>BW@==f<(l_&MKtr|K$Qsd_GJbM+I34++ea!uG)iX`p^y@set!g|J1$ z!m>`Zc6_YL+Y1>BXVcCCoKnp>_MBVC#C`_l5q|%bFDijk2j#5tTqO^~G#+S?yq;&# z_sD!+m@c6OK4KSb8%`j|ZWuleuzw-zKgOq!L|(FACq9QO&r3gj1v;f-2ioQlB8}`r z8g*REx5?mDxQNJ|T-IWu75JEYD<>6uE)JHAa*I9z;(wKGz^&=j`0@e|gbZ?Zr_!WJoR?!kxgUT_E zi1Bn~dgOJWX7&+pvOhRYx?g7^veU%+$@{<7?una9z1RC&zM7=Q3qGXAGkVM++y>>7`20aCJ4XmHJ$f z)cii;PDP_jSqO$n?#=o2Y7fAds}^%db`^FqKMj0 zEoW3ZxI8q?8=~Kc;NJL}V?4xF?x?}bf@fZ~v4TAOxws&?2AwlI<>vD#^2M8juRF)D zu3tBC6`7k%ST3ET^uEkmWLiTH6}96G`(2sp;>}BPkt~VzhJA=?P=54tWT-05E1eZn z&K8zVL6t~T%KFl;7iArc8bnxXjtUNkA;-q4^hsXzb*INmRCp+M_TMrr4|~qP-Nh9d z?Yx;Uy7S#z5y#{9^Qjgn;vkWHx+bfZ+c6Cx4HvZ|y+gPm&#i?I*#dx15 z`-k6a#QJ3NX{xB#eyu^bxT&a=Y{C|{47BK$7iCk3P5Nx&p}wbYi%+U9L1l;Mjpw0K z-b!}k7Ofa92S_x5={F<_x=A%G$z!3OcLA9BVAk$mxP^$Bb3*()I5j_iwC5neph&>H znn}tpWYPdtKhPB%rbY$2HS>_0PELVdK>(I6#P)aaM9YGX6?1IN&f1>&n8{9GxEk0) zO%_p1wvImYCHkkxO6szF#su48(=BV!Rv;bQ!2-D#m~kZj-<7J@$oI17J`a`BZm-+{ zHoBBB$9qV};t*P&AAITCyT;{}dz(EaP7o^}>Dkg*GS`y}Be;&Pn@qjx}0!u6~qKAF& zDZ#MDY}}iouv4w5)8(X`sy>a_piSJO<9X18>Uq}YUjFR@S9Wk}yDI{yd+dOpEzywf zX`X*|d}xFU!0qBt*Ll!=)YS-SCI!Z3kZ<%q)r>4+(=r576i5=iF++uZRkB(W?mn@@m6~hTN`hq7&bvCD<^FO7)rZ7-51$4K?LjW-DHWcUdif zT+z2TXSq_}TsD$C12-SSn9r0pLwsU|3#bbkH^-XcD*}qqcCM)AVfw0fytHh+`xb3XB4eW8j z4SPyzUt9+?Iu#1L?$mO`iDT3b)`H6t55)Su_$^fk>tUn7siS)d8qv-Qt#bhPtA)kl zcL>w^Orf~lf@wJ-cUZl4+cu$h2}*vd2=tdu&znH)cG+%D8HMXE2y7f74G*t zsj4W&tdZrpGHsON6122OqMqgY8!vI%lz=2qA-Nv+Yb*p4qQLK)SQ`S*%c%$UO>Q12 zdDYa9Z6%-Q3?n>aj4;*TXx@fr>wO@HzK|>3xJOByM_A{#pZ6r-&brOfl$$w#rO2mZ z1Fmg>tlXHW7+3}ac*ldTlrhUwy#uRv9VOZmebb)w*i*al0|@5}gwNZTb$`HG9~vQ~ zrwcE)zyJe_bO`2*$M7SH$2}Wxp_<}7i07O=C)304Es*5;bl^nX6<61BGRB;zv8d*y zTN87Md~qaihPeB8%+B7s=QCx>M%2QJtn5jOs8ac-I=X!gl8W`2!h+7VSzdBJ_;+=_ zBh;FkNXwIKMrgwjp$;Kk2PPPgcfKJCTCLlK#$Q&Iqo5o9dLT4?>9&aOdU-U+<$TDB zhnOoFZpaBgaU7}x5`}BXsoGPTfrWaWKlJTM#tvt~y`TSJXtlvkJR)5NoGSWWUYVgb zgcu+glOPDo95uM)WgC#~s;bE8k;*%}H$5c1E$I3^^00Sza2Ctc?8`igbzW(n%1_Lx zp5w=?p)bIOcFtYKCMdT23u<2EKJ>-FVkl8$%n#Rc8-1Kq5hu(w{)k|F2kf0Sh%HMN zz-JD@j*aMjz_`;^t=+WLapZ0jSM3{-p{}$hG$4oUj-Pn5TEAnOG#IMFVO?Ks_bX$l zZ^sc9$}6lctuL!mPlj9{`Bnbwiwfx1@K53C(FpYN1E}8qe)9s-2#J)Jk(ZW|mDJPF zgM5;g)zwy$k(H4#Ff=eSHHB0`(r@wLqPsTH;ERxptMLNR-TjjpPTccScyQW4K%?s& z^gCDg))#o)Nge$DxmF|?sXjcm--?uvYa8N}lgzIJL3jXgeJICghOjuKfnN3K?q+uT zO7<)9{6Q`cX@>B7W9usTxW0 zZ`ulsszw#_vi2Mh!!^dBg*m?cFI_q!i7tcYVLbsi{;*&RmcfnBOx$Gf&hY|kq zm3i}9**u>2Efd9$rAjI3;pP0^2B};`S&_t?2c?lFz{O;4_Ofz^-=)EDU;H~_8+s%}&iOiVhalOL_OoWr|*29QN zHEiv}hH-_1(4;at!znWMsW0&r3pzFpRRq0sb4^rhOmplM{gKvUCZ5h^W!KjZY+70z zmmO&(k>0_nXyd?@j)zs*4?rasDOB-3kok$PnOB~~Ksx~VK0=O~K+p$Gm#@#65t1o{ zeMglYGOMy9Tia=s{Zz06$bt3{!8#6Buadm-Ub`1BmwmHHFItDtwE)|98q_*7Y*6d# z_|bEj<`>#_>qFj^%RQw6A@O2;V^m31l%&06gUK+kdh6*n(EkeSwI#^RpVc0DGXIG0)a`^$x zn}sTSUX_E~EAF&NG#!}aiejPdALGdR(pPtA?dM_v z-uXVT!*Aj@q0!OG z%1OIa0%OzJ8S9KpNC=*wI<{$@n0t+@DO|SMR=OIEn@5$+3T=?NI}GnuriPC@ax&;U=qf8ULkYBL@X{t3GcORs0PZE*XY^nJTt$}I+ms6 z>?Skr+i5&Zj-$dybG_C_L z$HGyKwL4XVum~U^1|wLYlk|TC%ndX0qhqCY4f;?pNPQ8Rg*0Xn3k4VR7tpE#4!}1n z5q^E=Kd!piHJa$J&v(%UmecJEe0zAwzqNYTs!)XP&&;X6Z$GkbyR4#%U|b=wB3jtK z6xDacFeOVs47>%g1d3GPU>_G`0H`b#I%N9?tTqS${yneY7q>6JaJq*SNM-dX1>Lu* zW}gaC>bt&rWcROib@}|>`Tv~V+Urx}QUd8R>PzKjuWWMMK>txOFaabgM-+qcjiM3@ zqVYzQkuAn$m0S?`0oK+a5cpO|IQFr(-#Eo5lhjd5sbsxW9@Sh?=l*uMi>>aBzOxx_ zmA5=xMq1UlLybM6IjW21WSD20XGF!)-++D)0MciiiV6Av3`3jI%am3RNIm$z0RY~1 zRg`sm8@_GZ=&<_Q#srds1OQAQ+3u`5>xt>Et!##Ue_br1#o}~z&dW=0KhJNoy*Ts3 zmifJ$uXV<~-Q>IXPu|&^ykxUu#oXFHzdg-#1etkHDER?*%eII_-Kxa!x;rVdy=8MZ?LbZMJ}0RFH3t} zr^uWvz^Qqg?&ZY^}OYAO@%%u=ByJD%K0 z)K9f%M%<3wRaL;yz-E#6^MBgocMp_n)BSXjQo|Tp-853{7u|BT!(rVmE8y^o$R%3L{K`o(TY%i2}?C zEt6$i)`VgQacyWZD1#CFsa^oR2Qp2YCJ#$RkGS}pZo{7@Ct(A@( zzINi@ALP94h-Lfg>c&~J-$4lT&j7p$G2z|pbMfBim=JXU@PkkJ05~lw0eF(;G>)fjvc{ll*GhcQj}Ge-1GM)YE3JkJMc z6PXeCO$j((s-DtB@^Mr&Mk%kgJ*n(BEi`gM=CsmLVm@m`)alRjM|BeyledIgIlZ~q zEdEyHrW^xY{M

Hy3YVFR(j%>AVq;iMrUU&@F52WTxgECAmo!Oz4S@-!Mt9j&g4 zcj}r&?8MwTV6$My66$#n#ElRBCR3e@%yli^=+ywI=j9#*naJ{LELRC*08|ORs|QkR z%cgiXL|Tw2AWu2DMSve5N>K{HuObjwujY`~2-Yj}1KebQCn8wpJ6H0Jc@7MGcv<1-yGWS3EUT;EUft2gd z8GQH$2%BO6ey%QI->09^c_0;3@9geeCOs4MD>Bxwv2~H2&;O@}`5rUtRUIGen2O!L;1mF*i1dosZoIdn|;qo<&9ai$_^G)?d z!seX$mWsnK?W+BlYq%JY_{(Cd-`OmZd;y#d(FPo3IBptICUS>d6#BvT7qF_(1i;^$ z;NVLl+*uXG6h2Xuy&{W2(Er5@5eeBfmVBeAqnsjoi+e zm0t@506YTqK^u&3S8zLHAB8%nq53ee{c3mX&#RHxB2obSGd`>B2d!FEqid!5_&i8_ zhIaL}i$C?%%-`i2VkGm|zwf=HK*Dq(qFgUO-}^3M527z>%>Az%k%ALM9s_hHeb~b@ zX$#w;`HWaRt^Z|yDO$X`*ggX2b4}rtqmbtOMm}Hqou?K zR+gL&cD=1Cv}!rI{2l{<#m}5cds~l^$8D=}l-P~{EJhhw+Ks58b}9$vmFE74N}YAD z9iC4gJZlub-(1Y_OE3E=yf1TbEVU$kM&-7IZe0b`R=viyf{`Qi;h&}YxUpxdjn)hH z{nNK;IVqAQ0Qik}*lmcV$>C2N6=2KMRaIBLlZ0(sBaAxb-cH(6Rc6j!sK>VRi*LgB zbd-n1{);Ei3>T7;5cP;<`0B8zX-ZT{* zF@qVdd{XaYIbEOiA=q1N?Ph+SHg{%rV~uf2<#712diw8HxlB>fYnAIm)NP-3)mu*w ze#li&S);hJok#1k%3_BU3ln8kRT8pCdPbx6NDib-Pljt%QLmquedd{5+f8R@k(H%5 zu-J^;fUn9@7nK!27OQGXS$Ny03-6w@JCWl=#OZ~znZ;-Jsi*I@QaPD`?Y=59jKdv4`KQ z=iKk%e~^BtoXUpe+JEhb;~@i( zOc9T}+Hk$pOWgV*isi7OJ{C_NEl4vWus8yQg;^Pcwez^8bigAsrGK5Gz91Bn4gt~0vS ztF^zswmlNVdv23a3ueDr6B`ud_& zP9#EZVi2cQ*9`&yBMX#(+z5(5W(k8hsx5#~c;dnY=(1}Nk-u%Y~)&Ry238V`WSfPsFNTC3m{V%XslD9vQ__s1DWf)p2$uWOZ5@YsVS~w!XBc zw64;c(uxt&tNQKp=lnVQZ?-ABIqXU*IZ0>r_OpHcEU%yC_0!ke*W1;*tWJ5|)H>8I z)Q()5N&o<~(Uz!C8Fz-Aai>YMIqrY=*Z&3l@)z*S@gHZZr+QcK>a4n|F7Aj}87pI9 z;Rr`AnZ?<0c6_z3<2;k?-C5YpVK)Jj%+t8M&jiqxHx~Q#m96fPZwAdZmj> X?|$>#Km7c|KFnbn8UU^-0MIo6H6_3( From 82d0d3be7145e8042e3ddcf6ef8f9a420398424f Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Sun, 4 Jan 2015 03:10:51 -0800 Subject: [PATCH 234/544] Update servercredits.sqf --- addons/scripts/servercredits.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/scripts/servercredits.sqf b/addons/scripts/servercredits.sqf index 8a034e516..8a51bde7c 100644 --- a/addons/scripts/servercredits.sqf +++ b/addons/scripts/servercredits.sqf @@ -41,8 +41,8 @@ sleep 60; //Wait in seconds before the credits start after player IS ingame _role1 = "Welcome to"; _role1names = ["A3Armory - A3Wasteland Altis"]; -_role2 = "Server restarts every 6 hours"; -_role2names = ["3, 9, 15, 21 EST"]; +_role2 = "Server restarts every 8 hours"; +_role2names = ["5, 13, 21 EST"]; _role3 = "Player stats, and support @"; _role3names = ["A3Armory.com"]; @@ -68,4 +68,4 @@ _role3names = ["A3Armory.com"]; [_role1, _role1names], [_role2, _role2names], [_role3, _role3names] //make SURE the last one here does NOT have a , at the end -]; \ No newline at end of file +]; From 7d0b7b92cb54f39b2d373fb3835c418d2c4cbb96 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 4 Jan 2015 03:28:59 -0800 Subject: [PATCH 235/544] Adjustments for new vehicle action lock. --- addons/vactions/config.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/vactions/config.sqf b/addons/vactions/config.sqf index 9850359fe..f6a4b03b4 100644 --- a/addons/vactions/config.sqf +++ b/addons/vactions/config.sqf @@ -26,6 +26,6 @@ cfg_va_lock_sound_play = true; cfg_va_lock_from_inside = true; //List of classes for vehicles that can locked/unlocked (empty means all) -cfg_va_lock_actions_classes_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; +cfg_va_lock_actions_classes_list = ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; From dc4f89de9c3b7ccf73da0ca6a5aa8b3132ad6d14 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 5 Jan 2015 09:21:19 -0800 Subject: [PATCH 236/544] Fix #34 --- addons/vactions/va_functions.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf index 586f6855d..bdf20cb78 100644 --- a/addons/vactions/va_functions.sqf +++ b/addons/vactions/va_functions.sqf @@ -506,8 +506,8 @@ va_outside_target = { def(_target); _target = _objects select 0; - - if (not(_target isKindOf "LandVehicle")) exitWith {nil}; + + if (({_target isKindOf _x } count ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank"]) == 0) exitWith {nil}; _target }; From 9df85d968debc332973bc4a21df9694877b22ae8 Mon Sep 17 00:00:00 2001 From: Ivan Date: Mon, 5 Jan 2015 22:43:50 +0300 Subject: [PATCH 237/544] Added loading order. Conflicts: persistence/world/oFunctions.sqf --- persistence/world/oFunctions.sqf | 42 +++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index a57714841..890fae646 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -10,7 +10,13 @@ call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; #include "macro.h"; +o_loadingOrderArray = ["Building","StaticWeapon","ReammoBox_F"]; +diag_log format ["===== Loading order: ====="]; +{ + diag_log format ["%1: %2", _forEachIndex+1,_x]; +} forEach o_loadingOrderArray; +diag_log format ["=========================="]; o_hasInventory = { ARGVX2(0,_arg); @@ -606,14 +612,44 @@ o_loadObjects = { def(_objects); _objects = [_scope] call stats_get; + + init(_oIds,[]); //nothing to load if (!isARRAY(_objects)) exitWith {}; diag_log format["A3Wasteland - will restore %1 objects", count(_objects)]; - { - [_x] call o_restoreObject; - } forEach _objects; + _realRestoredCounter = 0; + { + _type = _x; + //diag_log format ["o_loadObjects type: %1",_type]; + { + private ["_className"]; + _object_data = call (_x select 1); + { + _key = _x select 0; + _value = _x select 1; + switch (_key) do { + case "Class": { _className = OR(_value,nil);}; + }; + if (isNil "_className") then { diag_log format ["Error: %1 does not have class!"],_x}; + } forEach _object_data; + + //diag_log format ["_className: %1 || _type: %2", _className, _type]; + if (!(isNil "_className") && {_className isKindOf _type}) then { + diag_log format ["Loading %1 type of %2", _className, _type]; + _oIds pushBack (_x select 0); + [_x] call o_restoreObject; + _realRestoredCounter = _realRestoredCounter + 1; + }; + + } forEach _objects; + } forEach o_loadingOrderArray; + + diag_log format["A3Wasteland - Total database objects: %1 ", count(_objects)]; + diag_log format["A3Wasteland - Real restored objects: %1 ", _realRestoredCounter]; + + (_oIds) }; diag_log "oFunctions.sqf loading complete"; \ No newline at end of file From 1755399d0bc8db08fb31aa60d505c4f7bf2ed31a Mon Sep 17 00:00:00 2001 From: Ivan Date: Tue, 6 Jan 2015 03:42:09 +0300 Subject: [PATCH 238/544] Reworked loading order code. --- persistence/lib/shFunctions.sqf | 23 +++++++++++++++++++++++ persistence/world/oFunctions.sqf | 12 ++++-------- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 0850110b6..8de89bdd7 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -198,5 +198,28 @@ sh_restoreVehicleTurrets = { }; +sh_getValueFromPairs = { + private ["_result"]; + ARGVX3(0,_object_data,[]); + ARGVX3(1,_searchForKey,""); + + if (!(isARRAY(_object_data))) exitWith {}; + if (!(isSTRING(_searchForKey))) exitWith {}; + + { + _key = _x select 0; + _value = _x select 1; + switch (_key) do { + case _searchForKey: { _result = OR(_value,nil);}; + }; + } forEach _object_data; + + if (isNil "_result") then { + diag_log format ["Error: %1 does not have %2!"],_x,_searchForKey; + }else{ + (_result); + }; +}; + shFunctions_loased = true; diag_log "shFunctions loading complete"; \ No newline at end of file diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 890fae646..59d8f28c1 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -625,15 +625,11 @@ o_loadObjects = { //diag_log format ["o_loadObjects type: %1",_type]; { private ["_className"]; + + if (!(isARRAY(_x))) exitWith {diag_log format ["ERROR: o_loadObjects : _objects is not ARRAY. Sth is terribly wrong."];}; + if (!(isCODE((_x select 1)))) exitWith {diag_log format ["ERROR: o_loadObjects : _objects select 1 is not CODE. Sth is terribly wrong."];}; _object_data = call (_x select 1); - { - _key = _x select 0; - _value = _x select 1; - switch (_key) do { - case "Class": { _className = OR(_value,nil);}; - }; - if (isNil "_className") then { diag_log format ["Error: %1 does not have class!"],_x}; - } forEach _object_data; + _className = [_object_data, "Class"] call sh_getValueFromPairs; //diag_log format ["_className: %1 || _type: %2", _className, _type]; if (!(isNil "_className") && {_className isKindOf _type}) then { From acb3b0e38293e67e6612627030038a6bc5d4478a Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 5 Jan 2015 19:03:09 -0800 Subject: [PATCH 239/544] Minor style/logic changes --- persistence/lib/shFunctions.sqf | 24 ++++++++++++----------- persistence/world/oFunctions.sqf | 33 ++++++++++++++++++++------------ 2 files changed, 34 insertions(+), 23 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 8de89bdd7..d743c2fbc 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -199,26 +199,28 @@ sh_restoreVehicleTurrets = { sh_getValueFromPairs = { - private ["_result"]; ARGVX3(0,_object_data,[]); ARGVX3(1,_searchForKey,""); - - if (!(isARRAY(_object_data))) exitWith {}; - if (!(isSTRING(_searchForKey))) exitWith {}; - + + def(_result); + def(_key); + def(_value); + { _key = _x select 0; _value = _x select 1; - switch (_key) do { - case _searchForKey: { _result = OR(_value,nil);}; + if (_key == _searchForKey) exitWith { + _result = OR(_value,nil) }; } forEach _object_data; - if (isNil "_result") then { - diag_log format ["Error: %1 does not have %2!"],_x,_searchForKey; - }else{ - (_result); + if (isNil "_result") exitWith { + //diag_log format ["Error: %1 does not have %2!", _x, _searchForKey]; + nil }; + + + (_result); }; shFunctions_loased = true; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 59d8f28c1..d3f35b6f7 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -619,27 +619,36 @@ o_loadObjects = { if (!isARRAY(_objects)) exitWith {}; diag_log format["A3Wasteland - will restore %1 objects", count(_objects)]; + def(_realRestoredCounter); + def(_type); + def(_className); + _realRestoredCounter = 0; { _type = _x; //diag_log format ["o_loadObjects type: %1",_type]; - { - private ["_className"]; - - if (!(isARRAY(_x))) exitWith {diag_log format ["ERROR: o_loadObjects : _objects is not ARRAY. Sth is terribly wrong."];}; - if (!(isCODE((_x select 1)))) exitWith {diag_log format ["ERROR: o_loadObjects : _objects select 1 is not CODE. Sth is terribly wrong."];}; + {if (true) then { + + if (!(isARRAY(_x))) exitWith { + diag_log format ["ERROR: o_loadObjects : _objects is not ARRAY. Sth is terribly wrong."]; + }; + + if (!(isCODE((_x select 1)))) exitWith { + diag_log format ["ERROR: o_loadObjects : _objects select 1 is not CODE. Sth is terribly wrong."]; + }; + _object_data = call (_x select 1); _className = [_object_data, "Class"] call sh_getValueFromPairs; //diag_log format ["_className: %1 || _type: %2", _className, _type]; - if (!(isNil "_className") && {_className isKindOf _type}) then { - diag_log format ["Loading %1 type of %2", _className, _type]; - _oIds pushBack (_x select 0); - [_x] call o_restoreObject; - _realRestoredCounter = _realRestoredCounter + 1; - }; + if ((isNil "_className") || {not(_className isKindOf _type)}) exitWith {}; + + diag_log format ["Loading %1 type of %2", _className, _type]; + _oIds pushBack (_x select 0); + [_x] call o_restoreObject; + _realRestoredCounter = _realRestoredCounter + 1; - } forEach _objects; + }} forEach _objects; } forEach o_loadingOrderArray; diag_log format["A3Wasteland - Total database objects: %1 ", count(_objects)]; From 171e5def859ba8c40db518c15d1ae3db0eff8031 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 5 Jan 2015 19:49:37 -0800 Subject: [PATCH 240/544] Change order in which headgear, assigned items, and goggles are loaded --- persistence/players/pFunctions.sqf | 83 +++++++++++++++++++----------- 1 file changed, 53 insertions(+), 30 deletions(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 7e1207559..3178b1979 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -179,6 +179,49 @@ p_restoreHandgunWeaponItems = { } forEach _items; }; +p_restoreGoggles = { + ARGVX3(0,_goggles,""); + if (_goggles == "") exitWith {}; + player addGoggles _goggles; +}; + +p_restoreHeadgear = { + ARGVX3(0,_headgear,""); + + // If wearing one of the default headgears, give the one belonging to actual team instead + def(_defHeadgear); + def(_defHeadgears); + + _defHeadgear = [player, "headgear"] call getDefaultClothing; + _defHeadgears = + [ + [typeOf player, "headgear", BLUFOR] call getDefaultClothing, + [typeOf player, "headgear", OPFOR] call getDefaultClothing, + [typeOf player, "headgear", INDEPENDENT] call getDefaultClothing + ]; + + if (_headgear != _defHeadgear && {_defHeadgear != ""} && {{_headgear == _x} count _defHeadgears > 0}) then { + player addHeadgear _defHeadgear; + } + else { + player addHeadgear _headgear; + }; +}; + +p_restoreAssignedItems = { + ARGVX3(0,_assigned_items,[]); + + { + if ([player, _x] call isAssignableBinocular) then { + player addWeapon _x; + } + else { + player linkItem _x; + }; + } forEach _assigned_items; +}; + + fn_applyPlayerData = { ARGVX3(0,_data,[]); format["%1 call fn_applyPlayerData;", _this] call p_log_finest; @@ -199,6 +242,9 @@ fn_applyPlayerData = { def(_primary_weapon_items); def(_secondary_weapon_items); def(_handgun_weapon_items); + def(_headgear); + def(_goggles); + def(_assigned_items); //iterate through the data, and extract the hash variables into local variables @@ -222,11 +268,18 @@ fn_applyPlayerData = { case "PrimaryWeaponItems": {_primary_weapon_items = OR_ARRAY(_value,nil)}; case "SecondaryWeaponItems": {_secondary_weapon_items = OR_ARRAY(_value,nil)}; case "HandgunItems": {_handgun_weapon_items = OR_ARRAY(_value,nil)}; + case "Headgear": {_headgear = OR_STRING(_value,nil)}; + case "Goggles": {_goggles = OR_STRING(_value,nil)}; + case "AssignedItems": {_assigned_items = OR_ARRAY(_value,nil)}; + }; } forEach _data; //Restore the weapons, backpack, uniform, and vest in correct order player addBackpack "B_Carryall_Base"; // add a temporary backpack for holding loaded weapon magazines + [OR(_headgear,nil)] call p_restoreHeadgear; + [OR(_assigned_items,nil)] call p_restoreAssignedItems; + [OR(_goggles,nil)] call p_restoreGoggles; [OR(_loaded_magazines,nil)] call p_restoreLoadedMagazines; [OR(_primary_weapon,nil)] call p_restorePrimaryWeapon; [OR(_secondary_weapon,nil)] call p_restoreSecondaryWeapon; @@ -266,36 +319,6 @@ fn_applyPlayerData = { case "Thirst": { thirstLevel = OR(_value,nil); }; case "Money": { player setVariable ["cmoney", OR(_value,0), true] }; case "Direction": { if (defined(_value)) then {player setDir _value} }; - case "Goggles": { if (isSTRING(_value) && {_value != ""}) then { player addGoggles _value } }; - case "Headgear": { - // If wearing one of the default headgears, give the one belonging to actual team instead - if (isSTRING(_value) && {_value != ""}) then { - _defHeadgear = [player, "headgear"] call getDefaultClothing; - _defHeadgears = - [ - [typeOf player, "headgear", BLUFOR] call getDefaultClothing, - [typeOf player, "headgear", OPFOR] call getDefaultClothing, - [typeOf player, "headgear", INDEPENDENT] call getDefaultClothing - ]; - - if (_value != _defHeadgear && {_defHeadgear != ""} && {{_value == _x} count _defHeadgears > 0}) then { - player addHeadgear _defHeadgear; - } - else { - player addHeadgear _value; - }; - }; - }; - case "AssignedItems": { - { - if ([player, _x] call isAssignableBinocular) then { - player addWeapon _x; - } - else { - player linkItem _x; - }; - } forEach (OR(_value,[])); - }; case "CurrentWeapon": { player selectWeapon OR(_value,"") }; case "Animation": { if (isSTRING(_value) && {_value != ""}) then {[player, _value] call switchMoveGlobal};}; case "UniformWeapons": { { (uniformContainer player) addWeaponCargoGlobal _x } forEach (OR(_value,[])) }; From 4a1932a54ee5657484378cc754e3c7b0fa3af496 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 5 Jan 2015 21:45:39 -0800 Subject: [PATCH 241/544] Adjustments for new mission.sqm. --- mission.sqm | 337 +++++++++++++++++++++------------------------------- 1 file changed, 133 insertions(+), 204 deletions(-) diff --git a/mission.sqm b/mission.sqm index 089909175..bbcd769bc 100644 --- a/mission.sqm +++ b/mission.sqm @@ -1740,16 +1740,14 @@ class Mission items=1; class Item0 { - position[]={11533.004,19.738714,9433.5479}; - azimut=240; + position[]={14497.367,10.181035,5849.4287}; id=144; side="LOGIC"; - vehicle="C_man_1_1_F"; + vehicle="HeadlessClient_F"; + player="PLAY CDG"; leader=1; skill=0.60000002; - text="GenStore1"; - init="[this] spawn A3W_fnc_setupStoreNPC"; - description="DO NOT MODIFY IN EDITOR"; + text="HeadlessClient"; }; }; }; @@ -1761,14 +1759,14 @@ class Mission items=1; class Item0 { - position[]={20786.578,35.678844,6807.8887}; - azimut=250; + position[]={11533.004,19.738714,9433.5479}; + azimut=240; id=145; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="GenStore2"; + text="GenStore1"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -1782,14 +1780,14 @@ class Mission items=1; class Item0 { - position[]={18087.299,25.083857,15245.804}; - azimut=45; + position[]={20786.578,35.678844,6807.8887}; + azimut=250; id=146; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="GenStore3"; + text="GenStore2"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -1803,14 +1801,14 @@ class Mission items=1; class Item0 { - position[]={9268.7627,120.79372,15868.939}; - azimut=265; + position[]={18087.299,25.083857,15245.804}; + azimut=45; id=147; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="GenStore4"; + text="GenStore3"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -1824,14 +1822,14 @@ class Mission items=1; class Item0 { - position[]={4565.4165,299.69217,21384.393}; - azimut=350; + position[]={9268.7627,120.79372,15868.939}; + azimut=265; id=148; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="GenStore5"; + text="GenStore4"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -1845,13 +1843,14 @@ class Mission items=1; class Item0 { - position[]={3366.886,2.6602368,13206.772}; + position[]={4565.4165,299.69217,21384.393}; + azimut=350; id=149; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="GunStore1"; + text="GenStore5"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -1865,14 +1864,13 @@ class Mission items=1; class Item0 { - position[]={16708.83,18.712267,12779.239}; - azimut=75; + position[]={3366.886,2.6602368,13206.772}; id=150; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="GunStore2"; + text="GunStore1"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -1886,14 +1884,14 @@ class Mission items=1; class Item0 { - position[]={25786.891,20.233345,21354.854}; - azimut=135; + position[]={16708.83,18.712267,12779.239}; + azimut=75; id=151; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="GunStore3"; + text="GunStore2"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -1907,14 +1905,14 @@ class Mission items=1; class Item0 { - position[]={9435.292,125.51097,20267.016}; - azimut=65; + position[]={25786.891,20.233345,21354.854}; + azimut=135; id=152; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="GunStore4"; + text="GunStore3"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -1928,14 +1926,14 @@ class Mission items=1; class Item0 { - position[]={26712.592,20.398693,24601.9}; - azimut=75; + position[]={9435.292,125.51097,20267.016}; + azimut=65; id=153; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="VehStore1"; + text="GunStore4"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -1949,14 +1947,14 @@ class Mission items=1; class Item0 { - position[]={22958.713,4.9242139,18878.971}; - azimut=45; + position[]={26712.592,20.398693,24601.9}; + azimut=75; id=154; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="VehStore2"; + text="VehStore1"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -1970,14 +1968,14 @@ class Mission items=1; class Item0 { - position[]={20761.709,28.229145,7264.2515}; - azimut=250; + position[]={22958.713,4.9242139,18878.971}; + azimut=45; id=155; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="VehStore3"; + text="VehStore2"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -1991,14 +1989,14 @@ class Mission items=1; class Item0 { - position[]={14482.604,18.864084,16330.667}; - azimut=155; + position[]={20761.709,28.229145,7264.2515}; + azimut=250; id=156; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="VehStore4"; + text="VehStore3"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -2012,14 +2010,14 @@ class Mission items=1; class Item0 { - position[]={12399.45,24.942524,15565.64}; - azimut=83; + position[]={14482.604,18.864084,16330.667}; + azimut=155; id=157; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="GunStore5"; + text="VehStore4"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -2033,14 +2031,14 @@ class Mission items=1; class Item0 { - position[]={5861.8003,225.62582,20106.82}; - azimut=282; + position[]={3579.5254,26.183741,10782.619}; + azimut=69; id=158; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="VehStore6"; + text="VehStore5"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -2054,14 +2052,14 @@ class Mission items=1; class Item0 { - position[]={3578.8296,26.278221,10781.126}; - azimut=69; + position[]={5862.0181,225.68094,20106.371}; + azimut=282; id=159; side="LOGIC"; vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="VehStore5"; + text="VehStore6"; init="[this] spawn A3W_fnc_setupStoreNPC"; description="DO NOT MODIFY IN EDITOR"; }; @@ -2075,22 +2073,23 @@ class Mission items=1; class Item0 { - position[]={14497.299,10.200568,5849.0527}; - special="NONE"; + position[]={12399.979,24.920925,15566.039}; + azimut=83; id=160; side="LOGIC"; - vehicle="HeadlessClient_F"; - player="PLAY CDG"; + vehicle="C_man_1_1_F"; leader=1; skill=0.60000002; - text="HC1"; + text="GunStore5"; + init="[this] spawn A3W_fnc_setupStoreNPC"; + description="DO NOT MODIFY IN EDITOR"; }; }; }; }; class Vehicles { - items=31; + items=29; class Item0 { position[]={5892.3325,225.05762,20124.521}; @@ -2333,29 +2332,23 @@ class Mission }; class Item22 { - position[]={5838.0376,219.93082,20164.814}; - azimut=163.54198; + position[]={24678.867,2.3929932,18970.639}; id=183; side="EMPTY"; - vehicle="Campfire_burning_F"; - skill=0.2; - init="[this, true] call A3W_fnc_setupMissionObject"; - description="DO NOT MODIFY IN EDITOR"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; }; class Item23 { - position[]={5846.2808,218.43889,20175.215}; - azimut=-44.915901; + position[]={17484.883,45.786415,16465.258}; id=184; side="EMPTY"; - vehicle="Campfire_burning_F"; - skill=0.2; - init="[this, true] call A3W_fnc_setupMissionObject"; - description="DO NOT MODIFY IN EDITOR"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; }; class Item24 { - position[]={24678.867,2.3929932,18970.639}; + position[]={14860.01,8.8866749,11057.159}; id=185; side="EMPTY"; vehicle="Land_Scrap_MRAP_01_F"; @@ -2363,7 +2356,7 @@ class Mission }; class Item25 { - position[]={17484.883,45.786415,16465.258}; + position[]={21318.879,5.5621166,10468.235}; id=186; side="EMPTY"; vehicle="Land_Scrap_MRAP_01_F"; @@ -2371,7 +2364,7 @@ class Mission }; class Item26 { - position[]={14860.01,8.8866749,11057.159}; + position[]={5630.6445,204.18716,19540.102}; id=187; side="EMPTY"; vehicle="Land_Scrap_MRAP_01_F"; @@ -2379,32 +2372,16 @@ class Mission }; class Item27 { - position[]={21318.879,5.5621166,10468.235}; + position[]={11725.468,54.069294,18284.35}; id=188; side="EMPTY"; vehicle="Land_Scrap_MRAP_01_F"; skill=0.60000002; }; class Item28 - { - position[]={5630.6445,204.18716,19540.102}; - id=189; - side="EMPTY"; - vehicle="Land_Scrap_MRAP_01_F"; - skill=0.60000002; - }; - class Item29 - { - position[]={11725.468,54.069294,18284.35}; - id=190; - side="EMPTY"; - vehicle="Land_Scrap_MRAP_01_F"; - skill=0.60000002; - }; - class Item30 { position[]={5947.2061,101.94163,12468.482}; - id=191; + id=189; side="EMPTY"; vehicle="Land_Scrap_MRAP_01_F"; skill=0.60000002; @@ -2412,7 +2389,7 @@ class Mission }; class Markers { - items=188; + items=184; class Item0 { position[]={3612.1487,12.11851,13020.892}; @@ -3394,18 +3371,6 @@ class Mission angle=-268.34515; }; class Item133 - { - position[]={25413.316,9.9176807,20335.285}; - name="TERRITORY_EAST_POWER_PLANT_1"; - markerType="RECTANGLE"; - type="Empty"; - colorName="ColorYellow"; - fillName="DiagGrid"; - a=50; - b=60; - angle=147.856; - }; - class Item134 { position[]={23144.682,3.1900001,18681.383}; name="TERRITORY_SALTFLATS_AIRFIELD"; @@ -3417,7 +3382,7 @@ class Mission b=90; angle=-90.074898; }; - class Item135 + class Item134 { position[]={4837.5459,337.90045,21931.078}; name="TERRITORY_THRONOS_CASTLE"; @@ -3429,7 +3394,7 @@ class Mission b=100; angle=181.465; }; - class Item136 + class Item135 { position[]={3081.7656,47.866707,13189.091}; name="TERRITORY_KASTRO_CASTLE"; @@ -3441,7 +3406,7 @@ class Mission b=80; angle=-0.70509499; }; - class Item137 + class Item136 { position[]={15502.717,12.702961,16301.681}; name="TERRITORY_CENTER_POWER_PLANT"; @@ -3453,7 +3418,7 @@ class Mission b=80; angle=-276.67899; }; - class Item138 + class Item137 { position[]={21592.693,19.400345,21265.885}; name="TERRITORY_IRAKLIA_RUINS"; @@ -3465,7 +3430,7 @@ class Mission b=30; angle=89.166702; }; - class Item139 + class Item138 { position[]={21498.473,12.088601,10836.145}; name="TERRITORY_ARTINARKI_RUINS"; @@ -3477,43 +3442,7 @@ class Mission b=110; angle=37.967201; }; - class Item140 - { - position[]={26363.574,61.42609,22180.049}; - name="TERRITORY_NE_TRANSMITTER"; - markerType="RECTANGLE"; - type="Empty"; - colorName="ColorYellow"; - fillName="DiagGrid"; - a=130; - b=50; - angle=6.0707502; - }; - class Item141 - { - position[]={18708.938,209.01988,10222.169}; - name="TERRITORY_SE_TRANSMITTER_1"; - markerType="RECTANGLE"; - type="Empty"; - colorName="ColorYellow"; - fillName="DiagGrid"; - a=40; - b=40; - angle=88.898048; - }; - class Item142 - { - position[]={19358.955,195.5345,9678.4277}; - name="TERRITORY_SE_TRANSMITTER_2"; - markerType="RECTANGLE"; - type="Empty"; - colorName="ColorYellow"; - fillName="DiagGrid"; - a=50; - b=30; - angle=-114.213; - }; - class Item143 + class Item139 { position[]={4556.8101,262.84003,15408.569}; name="TERRITORY_MAGOS_TRANSMITTER"; @@ -3525,7 +3454,7 @@ class Mission b=50; angle=-246.429; }; - class Item144 + class Item140 { position[]={9328.2363,267.96201,19306.725}; name="TERRITORY_PYRSOS_TRANSMITTER"; @@ -3537,7 +3466,7 @@ class Mission b=200; angle=-100.668; }; - class Item145 + class Item141 { position[]={16066.309,15.243137,16998.768}; name="TERRITORY_MILITARY_RESEARCH"; @@ -3549,70 +3478,70 @@ class Mission b=140; angle=9.4329596; }; - class Item146 + class Item142 { position[]={13664.722,-0.120299,11892.979}; name="SunkenMission_0"; type="Empty"; colorName="ColorWhite"; }; - class Item147 + class Item143 { position[]={15421.785,-0.20875727,14276.165}; name="SunkenMission_1"; type="Empty"; colorName="ColorWhite"; }; - class Item148 + class Item144 { position[]={13106.126,-0.24947838,9494.5898}; name="SunkenMission_2"; type="Empty"; colorName="ColorWhite"; }; - class Item149 + class Item145 { position[]={4992.7637,-0.020654676,9908.2881}; name="SunkenMission_3"; type="Empty"; colorName="ColorWhite"; }; - class Item150 + class Item146 { position[]={3000.5508,-0.29678684,13521.053}; name="SunkenMission_4"; type="Empty"; colorName="ColorWhite"; }; - class Item151 + class Item147 { position[]={2357.9688,0.1024858,19374.357}; name="SunkenMission_5"; type="Empty"; colorName="ColorWhite"; }; - class Item152 + class Item148 { position[]={6276.0981,0.2718358,22660.088}; name="SunkenMission_6"; type="Empty"; colorName="ColorWhite"; }; - class Item153 + class Item149 { position[]={17603.389,-0.027867785,18805.65}; name="SunkenMission_7"; type="Empty"; colorName="ColorWhite"; }; - class Item154 + class Item150 { position[]={23156.707,-0.036080703,24039.277}; name="SunkenMission_8"; type="Empty"; colorName="ColorWhite"; }; - class Item155 + class Item151 { position[]={15100.404,17.900801,17260.949}; name="planeSpawn_4"; @@ -3620,7 +3549,7 @@ class Mission colorName="ColorGUER"; angle=134; }; - class Item156 + class Item152 { position[]={26779.346,23.465689,24558.525}; name="VehStore1_planeSpawn"; @@ -3628,7 +3557,7 @@ class Mission colorName="ColorBlack"; angle=135; }; - class Item157 + class Item153 { position[]={20816.563,27.98922,7258.4517}; name="VehStore3_planeSpawn"; @@ -3636,7 +3565,7 @@ class Mission colorName="ColorBlack"; angle=80; }; - class Item158 + class Item154 { position[]={21075.549,26.424484,7093.2808}; name="planeSpawn_8"; @@ -3644,7 +3573,7 @@ class Mission colorName="ColorGUER"; angle=11; }; - class Item159 + class Item155 { position[]={26834.336,24.213842,24541.688}; name="planeSpawn_9"; @@ -3652,7 +3581,7 @@ class Mission colorName="ColorGUER"; angle=38; }; - class Item160 + class Item156 { position[]={26754.703,20.465672,24654.771}; name="planeSpawn_10"; @@ -3660,147 +3589,140 @@ class Mission colorName="ColorGUER"; angle=130; }; - class Item161 + class Item157 { position[]={10982.468,27.277164,13424.412}; name="Town_21"; type="Empty"; colorName="ColorRed"; }; - class Item162 + class Item158 { position[]={7139.9814,113.59856,16450.223}; name="Town_22"; type="Empty"; colorName="ColorRed"; }; - class Item163 + class Item159 { position[]={8635.8496,182.03915,18260.393}; name="Town_23"; type="Empty"; colorName="ColorRed"; }; - class Item164 + class Item160 { position[]={12370.079,24.217855,15654.707}; name="Town_24"; type="Empty"; colorName="ColorRed"; }; - class Item165 + class Item161 { position[]={19408.883,39.291336,13239.641}; name="Town_25"; type="Empty"; colorName="ColorRed"; }; - class Item166 + class Item162 { position[]={20533.469,34.293266,8877.2207}; name="Town_26"; type="Empty"; colorName="ColorRed"; }; - class Item167 + class Item163 { position[]={21379.736,19.919834,16358.808}; name="Town_27"; type="Empty"; colorName="ColorRed"; }; - class Item168 + class Item164 { position[]={21690.945,15.570066,7555.9463}; name="Town_28"; type="Empty"; colorName="ColorRed"; }; - class Item169 + class Item165 { position[]={27029.561,20.629999,23216.389}; name="Town_29"; type="Empty"; colorName="ColorRed"; }; - class Item170 + class Item166 { position[]={18799.342,30.400841,16576.244}; name="Town_30"; type="Empty"; colorName="ColorRed"; }; - class Item171 + class Item167 { position[]={14506.591,8.1136971,5860.9707}; name="respawn_west"; type="Empty"; colorName="ColorWEST"; }; - class Item172 + class Item168 { position[]={14506.592,8.3491783,5859.2207}; name="respawn_east"; type="Empty"; colorName="ColorEAST"; }; - class Item173 + class Item169 { position[]={14506.592,8.5806561,5857.4785}; name="respawn_guerrila"; type="Empty"; colorName="ColorGUER"; }; - class Item174 + class Item170 { position[]={14506.591,8.548233,5855.7334}; name="respawn_civilian"; type="Empty"; colorName="ColorCIV"; }; - class Item175 - { - position[]={12412.868,24.364281,15579.608}; - name="GunStore5_objSpawn"; - type="Empty"; - colorName="ColorBlack"; - }; - class Item176 + class Item171 { - position[]={5921.7031,224.43871,20139.104}; - name="VehStore6_heliSpawn"; + position[]={3630.4226,0,10890.602}; + name="VehStore5_seaSpawn"; type="Empty"; colorName="ColorBlack"; }; - class Item177 + class Item172 { - position[]={5861.2695,223.71884,20135.684}; - name="VehStore6_landSpawn"; + position[]={3568.3159,39.908432,10713.679}; + name="VehStore5_heliSpawn"; type="Empty"; colorName="ColorBlack"; }; - class Item178 + class Item173 { - position[]={3630.4226,0,10890.602}; - name="VehStore5_seaSpawn"; + position[]={3620.7668,26.371962,10751.382}; + name="VehStore5_landSpawn"; type="Empty"; colorName="ColorBlack"; }; - class Item179 + class Item174 { - position[]={3568.3159,39.908432,10713.679}; - name="VehStore5_heliSpawn"; + position[]={5921.7031,224.43871,20139.104}; + name="VehStore6_heliSpawn"; type="Empty"; colorName="ColorBlack"; }; - class Item180 + class Item175 { - position[]={3620.7668,26.371962,10751.382}; - name="VehStore5_landSpawn"; + position[]={5861.2695,223.71884,20135.684}; + name="VehStore6_landSpawn"; type="Empty"; colorName="ColorBlack"; }; - class Item181 + class Item176 { position[]={24673.639,2.5595996,18967.119}; name="Sell_Vehicle_Pad_Icon"; @@ -3808,7 +3730,7 @@ class Mission type="mil_dot"; colorName="ColorGreen"; }; - class Item182 + class Item177 { position[]={17479.654,45.452381,16461.738}; name="Sell_Vehicle_Pad_Icon_1"; @@ -3816,7 +3738,7 @@ class Mission type="mil_dot"; colorName="ColorGreen"; }; - class Item183 + class Item178 { position[]={14854.781,8.6214705,11053.64}; name="Sell_Vehicle_Pad_Icon_2"; @@ -3824,7 +3746,7 @@ class Mission type="mil_dot"; colorName="ColorGreen"; }; - class Item184 + class Item179 { position[]={21313.65,5.7161169,10464.716}; name="Sell_Vehicle_Pad_Icon_3"; @@ -3832,7 +3754,7 @@ class Mission type="mil_dot"; colorName="ColorGreen"; }; - class Item185 + class Item180 { position[]={5627.0688,204.00546,19542.371}; name="Sell_Vehicle_Pad_Icon_4"; @@ -3840,7 +3762,7 @@ class Mission type="mil_dot"; colorName="ColorGreen"; }; - class Item186 + class Item181 { position[]={11720.239,54.827972,18280.83}; name="Sell_Vehicle_Pad_Icon_5"; @@ -3848,7 +3770,7 @@ class Mission type="mil_dot"; colorName="ColorGreen"; }; - class Item187 + class Item182 { position[]={5941.9775,101.78477,12464.963}; name="Sell_Vehicle_Pad_Icon_6"; @@ -3856,6 +3778,13 @@ class Mission type="mil_dot"; colorName="ColorGreen"; }; + class Item183 + { + position[]={12412.868,24.364281,15579.608}; + name="GunStore5_objSpawn"; + type="Empty"; + colorName="ColorBlack"; + }; }; }; class Intro From 4262a15a7de5226fa5fe774b84dd1ce6e37f7ca1 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 10:02:08 -0800 Subject: [PATCH 242/544] Add contributing guidelines --- CONTRIBUTING.md | 168 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..075afa335 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,168 @@ +###Contributing to A3Wasteland (sock-rpc-stats) fork### + +This fork of A3Wasteland is an open source project and we love to receive contributions from the community — you! There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into A3Wasteland itself. + +####Why does this fork exist#### + + +This fork exists to provide an alternate way of stats persistence that is more scalable than extDB, and iniDB, and that is easier to maintain and update due to its schemaless nature. + +The fork maintains a main branch called "Development_main", which closely follows the development of the the parent (official) A3Wasteland repository. The "Development_main" should not deviate feature-wise from the official A3Wasteland development. + +The only changes that are allowed to go into the "Development_main" branch are those that are persistence related. + + +The fork also maintains a branch called "Development_main_addons". This branch is where we put those features that are not accepted (or not being implemented) into the official A3Wasteland repository (for whatever reasons). Some examples of these features are: + + * Private Storage + * Private Parking + * Extra vehicle actions (with locking/unlocking) + * ATMs + * Improved admin camera + * Water-edge glitch improvement + * Mine-saving + * Improved spawn experience + + +####Bug reports#### + + +If you think you have found a bug in this fork of the A3Wasteland mission, first make sure that you test against [the official A3Wasteland vanilla mission](https://github.com/A3Wasteland/ArmA3_Wasteland.Altis) - If the issue exists over there, then please create the issue over there instead. Unless the issues are related to persistence, or to an addon, it's very likely that the issue exists as well in the vanilla mission. +Only create issues in this repository for + +Also, make sure to search our [issues list](https://github.com/micovery/ArmA3_Wasteland.Altis/issues) on GitHub in case a similar issue has already been opened. + +It is very helpful if you can prepare a reproduction of the bug. In other words, provide a small test case (or series of steps) which we can do in order to consistently reproduce the bug. It makes it easier to find the problem and to fix it. Do not simply say "XYZ is not working", please explain how exactly is it not working (what is the expectation vs what is actually happening), and under what circumstances. + +Provide as much information as you can. The easier it is for us to recreate your problem, the faster it is likely to be fixed. + +####Addons and feature requests#### + +If you find yourself wishing for an addon or feature that doesn't exist in this fork of A3Wasteland, you are probably not alone. There are bound to be others out there with similar needs. Many of the addons and features in the "Development_main_addons" branch today have been added because admins and/or users saw the the need. +Open an issue on our [issues list](https://github.com/micovery/ArmA3_Wasteland.Altis/issues) on GitHub which describes the feature you would like to see, why you need it, and how it should work. + +####Contributing code and documentation changes#### + +If you have a bugfix or new feature that you would like to contribute to this fork of A3Wasteland, please find or open an issue about it first. Talk about what you would like to do. It may be that somebody is already working on it, or that there are particular issues that you should know about before implementing the change. + +We enjoy working with contributors to get their code accepted. There are many approaches to fixing a problem and it is important to find the best approach before writing too much code. + +See more details below for the process of contributing code to this fork of A3Wasteland. + +#### Fork and clone the repository #### + +You will need to fork this repository and clone it to your local machine. See +[github help page](https://help.github.com/articles/fork-a-repo) for help. + +#### Submitting your changes #### + +Once your changes and tests are ready to submit for review: + +1. Test your changes +Load up the mission with your changes, and make sure that your feature actually works as expected, and that it does not negatively impact other areas. + +2. Sign the Contributor License Agreement +Please make sure you have signed our [Contributor License Agreement](https://www.clahub.com/agreements/micovery/ArmA3_Wasteland.Altis). We are not asking you to assign copyright to us, but to give us the right to distribute your code without restriction. We ask this of all contributors in order to assure our users of the origin and continuing existence of the code. You only need to sign the CLA once. + +3. Rebase your changes +Update your local repository with the most recent code from the main A3Wasteland (sock-rpc-stats) repository, and rebase your branch on top of the latest "Development_main" branch. We prefer your changes to be squashed into a single commit. + +4. Submit a pull request +Push your local changes to your forked copy of the repository and [submit a pull request](https://help.github.com/articles/using-pull-requests). In the pull request, describe what your changes do and mention the number of the issue where discussion has taken place, eg "Closes #123". + +Then sit back and wait. There will probably be discussion about the pull request and, if any changes are needed, we would love to work with you to get your pull request merged into A3Wasteland (sock-rpc-stats). + + +#### Contributing to the A3Wasteland (sock-rpc-stats) fork #### +----------------------------------------------------- + +**Repository:** [https://github.com/micovery/ArmA3_Wasteland.Altis](https://github.com/micovery/ArmA3_Wasteland.Altisb) + + +#### Follow these coding guidelines #### + +* SQF indent is 2 spaces (no tabs) +* No unnecessary aligning of code to make it "Look nice". For example + +```SQF + _foo = "............."; + _fooBar = "............."; + _fooBarWidgets = "............."; + +``` + +* Use if statements, instead of switch statements. Do not do stuff like this: +``` + switch (_foo) : { + case (): { + + } + case () then { + + } + else { if () then { + + } + else { + + }}; +``` + + +* Avoid unnecessary nesting where possible. This is a subtle one. Sometimes you end with code that looks like this: + +```SQF + { + if () then { + if () then { + //actual logic here + } + } + } + } forEach _someArray; +``` + +This is unnecessary, and makes the code hard to maintain and understand. Instead do this: + +```SQF + {if (true) then { + + if (!) exitWith {}; + if (!) exitWith {}; + if (!) exitWith {}; + + //actual logic here + + }} forEach _someArray; +``` + +The whole point of this is to try to keep the code as flat as possible, and thus improve readability and maintenance, and reduce chance of subtle bugs. + +* Use functions and modularize as much as possible. + - Do not try to cram giant expressions into IF statements. If you can move a condition into a separate function, do so. + +* Use underscore "_" instead of camel-casing for variable names, and function names. +* Always be coding on the defensive, do not assume that all the parameters passed into a function will always be initialized +* Use the utility macros from the macro.h file to help you out with type-checks, and processing of function arguments +* Use the "init", and "def" macros instead of the "private" keyword (the reason for this, is that we we want later to initialize all variables a certain way, we just need to modify the macro). +* Line width is 140 characters +* Follow the Google [JavaScript style guidelines](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml) +* Do not re-format existing code. If there is legacy code form the A3Wasteland vanilla mission, do not reformat it. Follow the existing style instead. +* Wherever possible avoid making changes to the A3Wasteland vanilla files. +* Always define local variables before using them (use the "def", or "init" macros). +* Do not bulk-up local variable definitions all in one place. Try to define the local variable as close to the place where it's first used. +* Familiarize yourself with the "ARGV", and "ARGVX" macros for processing function parameters, and use them. \ No newline at end of file From e41df0603205c2492dd7bedc5b0b184eebb0b025 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 10:06:16 -0800 Subject: [PATCH 243/544] Update CONTRIBUTING.md --- CONTRIBUTING.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 075afa335..f4afe7d52 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,18 +1,14 @@ -###Contributing to A3Wasteland (sock-rpc-stats) fork### - +###Contributing to this A3Wasteland fork### This fork of A3Wasteland is an open source project and we love to receive contributions from the community — you! There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into A3Wasteland itself. ####Why does this fork exist#### - - This fork exists to provide an alternate way of stats persistence that is more scalable than extDB, and iniDB, and that is easier to maintain and update due to its schemaless nature. -The fork maintains a main branch called "Development_main", which closely follows the development of the the parent (official) A3Wasteland repository. The "Development_main" should not deviate feature-wise from the official A3Wasteland development. - -The only changes that are allowed to go into the "Development_main" branch are those that are persistence related. +The fork maintains a main branch called *Development_main*, which closely follows the development of the the parent (official) A3Wasteland repository. The *Development_main* should not deviate feature-wise from the official A3Wasteland development. +The only changes that are allowed to go into the *Development_main* branch are those that are persistence related. -The fork also maintains a branch called "Development_main_addons". This branch is where we put those features that are not accepted (or not being implemented) into the official A3Wasteland repository (for whatever reasons). Some examples of these features are: +The fork also maintains a branch called *Development_main_addons*. This branch is where we put those features that are not accepted (or not being implemented) into the official A3Wasteland repository (for whatever reasons). Some examples of these features are: * Private Storage * Private Parking @@ -165,4 +161,4 @@ The whole point of this is to try to keep the code as flat as possible, and thus * Wherever possible avoid making changes to the A3Wasteland vanilla files. * Always define local variables before using them (use the "def", or "init" macros). * Do not bulk-up local variable definitions all in one place. Try to define the local variable as close to the place where it's first used. -* Familiarize yourself with the "ARGV", and "ARGVX" macros for processing function parameters, and use them. \ No newline at end of file +* Familiarize yourself with the "ARGV", and "ARGVX" macros for processing function parameters, and use them. From 1d33a1f542c34ef0316f9f2e19e9ff9e0c234c3e Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 10:09:00 -0800 Subject: [PATCH 244/544] Update CONTRIBUTING.md --- CONTRIBUTING.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f4afe7d52..511ba03b7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -55,28 +55,29 @@ You will need to fork this repository and clone it to your local machine. See Once your changes and tests are ready to submit for review: 1. Test your changes -Load up the mission with your changes, and make sure that your feature actually works as expected, and that it does not negatively impact other areas. + + Load up the mission with your changes, and make sure that your feature actually works as expected, and that it does not negatively impact other areas. 2. Sign the Contributor License Agreement -Please make sure you have signed our [Contributor License Agreement](https://www.clahub.com/agreements/micovery/ArmA3_Wasteland.Altis). We are not asking you to assign copyright to us, but to give us the right to distribute your code without restriction. We ask this of all contributors in order to assure our users of the origin and continuing existence of the code. You only need to sign the CLA once. + + Please make sure you have signed our [Contributor License Agreement](https://www.clahub.com/agreements/micovery/ArmA3_Wasteland.Altis). We are not asking you to assign copyright to us, but to give us the right to distribute your code without restriction. We ask this of all contributors in order to assure our users of the origin and continuing existence of the code. You only need to sign the CLA once. 3. Rebase your changes -Update your local repository with the most recent code from the main A3Wasteland (sock-rpc-stats) repository, and rebase your branch on top of the latest "Development_main" branch. We prefer your changes to be squashed into a single commit. + + Update your local repository with the most recent code from the main A3Wasteland (sock-rpc-stats) repository, and rebase your branch on top of the latest "Development_main" branch. We prefer your changes to be squashed into a single commit. 4. Submit a pull request -Push your local changes to your forked copy of the repository and [submit a pull request](https://help.github.com/articles/using-pull-requests). In the pull request, describe what your changes do and mention the number of the issue where discussion has taken place, eg "Closes #123". + + Push your local changes to your forked copy of the repository and [submit a pull request](https://help.github.com/articles/using-pull-requests). In the pull request, describe what your changes do and mention the number of the issue where discussion has taken place, eg "Closes #123". Then sit back and wait. There will probably be discussion about the pull request and, if any changes are needed, we would love to work with you to get your pull request merged into A3Wasteland (sock-rpc-stats). -#### Contributing to the A3Wasteland (sock-rpc-stats) fork #### ------------------------------------------------------ +#### Follow these coding guidelines #### **Repository:** [https://github.com/micovery/ArmA3_Wasteland.Altis](https://github.com/micovery/ArmA3_Wasteland.Altisb) -#### Follow these coding guidelines #### - * SQF indent is 2 spaces (no tabs) * No unnecessary aligning of code to make it "Look nice". For example From a2e0c97589035cff598a45ecb6f648a301f0a7f7 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 10:10:38 -0800 Subject: [PATCH 245/544] Update CONTRIBUTING.md --- CONTRIBUTING.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 511ba03b7..68988298d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -150,8 +150,7 @@ This is unnecessary, and makes the code hard to maintain and understand. Instead The whole point of this is to try to keep the code as flat as possible, and thus improve readability and maintenance, and reduce chance of subtle bugs. * Use functions and modularize as much as possible. - - Do not try to cram giant expressions into IF statements. If you can move a condition into a separate function, do so. - +* Do not try to cram giant expressions into IF statements (create new functions if needed) * Use underscore "_" instead of camel-casing for variable names, and function names. * Always be coding on the defensive, do not assume that all the parameters passed into a function will always be initialized * Use the utility macros from the macro.h file to help you out with type-checks, and processing of function arguments From 442146cc6e27b3c4c56463d953b8f5d6469091d8 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 10:11:37 -0800 Subject: [PATCH 246/544] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 68988298d..dea17408e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -154,7 +154,6 @@ The whole point of this is to try to keep the code as flat as possible, and thus * Use underscore "_" instead of camel-casing for variable names, and function names. * Always be coding on the defensive, do not assume that all the parameters passed into a function will always be initialized * Use the utility macros from the macro.h file to help you out with type-checks, and processing of function arguments -* Use the "init", and "def" macros instead of the "private" keyword (the reason for this, is that we we want later to initialize all variables a certain way, we just need to modify the macro). * Line width is 140 characters * Follow the Google [JavaScript style guidelines](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml) * Do not re-format existing code. If there is legacy code form the A3Wasteland vanilla mission, do not reformat it. Follow the existing style instead. @@ -162,3 +161,4 @@ The whole point of this is to try to keep the code as flat as possible, and thus * Always define local variables before using them (use the "def", or "init" macros). * Do not bulk-up local variable definitions all in one place. Try to define the local variable as close to the place where it's first used. * Familiarize yourself with the "ARGV", and "ARGVX" macros for processing function parameters, and use them. +* Use the "init", and "def" macros instead of the "private" keyword From faf0be31b9abf2b9624efc4c5e6371e63bd83c53 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 10:11:55 -0800 Subject: [PATCH 247/544] Update CONTRIBUTING.md --- CONTRIBUTING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dea17408e..d023000c6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -159,6 +159,7 @@ The whole point of this is to try to keep the code as flat as possible, and thus * Do not re-format existing code. If there is legacy code form the A3Wasteland vanilla mission, do not reformat it. Follow the existing style instead. * Wherever possible avoid making changes to the A3Wasteland vanilla files. * Always define local variables before using them (use the "def", or "init" macros). -* Do not bulk-up local variable definitions all in one place. Try to define the local variable as close to the place where it's first used. +* Do not bulk-up local variable definitions all in one place. +* Try to define the local variable as close to the place where it's first used. * Familiarize yourself with the "ARGV", and "ARGVX" macros for processing function parameters, and use them. * Use the "init", and "def" macros instead of the "private" keyword From 3d979bffc51a5ca1088597c3e96ab278d58ed6ee Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 10:16:25 -0800 Subject: [PATCH 248/544] Update CONTRIBUTING.md --- CONTRIBUTING.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d023000c6..bbada93d5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,6 +50,8 @@ See more details below for the process of contributing code to this fork of A3Wa You will need to fork this repository and clone it to your local machine. See [github help page](https://help.github.com/articles/fork-a-repo) for help. +**Repository:** [https://github.com/micovery/ArmA3_Wasteland.Altis](https://github.com/micovery/ArmA3_Wasteland.Altisb) + #### Submitting your changes #### Once your changes and tests are ready to submit for review: @@ -75,9 +77,6 @@ Then sit back and wait. There will probably be discussion about the pull request #### Follow these coding guidelines #### -**Repository:** [https://github.com/micovery/ArmA3_Wasteland.Altis](https://github.com/micovery/ArmA3_Wasteland.Altisb) - - * SQF indent is 2 spaces (no tabs) * No unnecessary aligning of code to make it "Look nice". For example From e9fb515f5d4898f198242d301cb27af2f919953e Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 15:50:13 -0800 Subject: [PATCH 249/544] Add catch-all "All" class to the order array for object loading With this fix, there is also a minor performance improvement, as we don't loop through the entire array every time. --- persistence/world/oFunctions.sqf | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index d3f35b6f7..11452f256 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -10,7 +10,7 @@ call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; #include "macro.h"; -o_loadingOrderArray = ["Building","StaticWeapon","ReammoBox_F"]; +o_loadingOrderArray = ["Building","StaticWeapon","ReammoBox_F", "All"]; diag_log format ["===== Loading order: ====="]; { @@ -619,14 +619,15 @@ o_loadObjects = { if (!isARRAY(_objects)) exitWith {}; diag_log format["A3Wasteland - will restore %1 objects", count(_objects)]; - def(_realRestoredCounter); def(_type); - def(_className); + def(_class); + def(_object_data); + init(_restored_objects,0); + init(_total_objects,(count(_objects)-1)); //-1 because the "Info" section is not an object - _realRestoredCounter = 0; { _type = _x; - //diag_log format ["o_loadObjects type: %1",_type]; + {if (true) then { if (!(isARRAY(_x))) exitWith { @@ -638,21 +639,23 @@ o_loadObjects = { }; _object_data = call (_x select 1); - _className = [_object_data, "Class"] call sh_getValueFromPairs; + _class = [_object_data, "Class"] call sh_getValueFromPairs; - //diag_log format ["_className: %1 || _type: %2", _className, _type]; - if ((isNil "_className") || {not(_className isKindOf _type)}) exitWith {}; + //diag_log format ["_class: %1 || _type: %2", _class, _type]; + if ((isNil "_class") || {not(_class isKindOf _type)}) exitWith {}; - diag_log format ["Loading %1 type of %2", _className, _type]; + diag_log format ["Loading %1 type of %2", _class, _type]; _oIds pushBack (_x select 0); [_x] call o_restoreObject; - _realRestoredCounter = _realRestoredCounter + 1; + _restored_objects = _restored_objects + 1; + _objects set [_forEachIndex, objNull]; //mark the object fro deletion once it's loaded }} forEach _objects; + _objects = _objects - [objNull]; } forEach o_loadingOrderArray; - diag_log format["A3Wasteland - Total database objects: %1 ", count(_objects)]; - diag_log format["A3Wasteland - Real restored objects: %1 ", _realRestoredCounter]; + diag_log format["A3Wasteland - Total database objects: %1 ", _total_objects]; + diag_log format["A3Wasteland - Real restored objects: %1 ", _restored_objects]; (_oIds) }; From dd8387a083d2890307c1cb589cfbdfce89dc80c7 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 16:24:17 -0800 Subject: [PATCH 250/544] Flush player scope, even if no data was saved --- persistence/players/sFunctions.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index e03d56f76..58b56430e 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -420,6 +420,7 @@ p_disconnectSave = { if (isNil{[_request,_player,_uid,_name] call p_addPlayerSave}) exitWith { diag_log format["WARNING: No stats saved for %1(%2) on disconnect", _name, _uid]; + [_scope] call stats_flush; }; _request call stats_set; From 23b6e2820a9d7bacf44e9b9b8bad3d82a3a1fd83 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 16:43:23 -0800 Subject: [PATCH 251/544] Update CONTRIBUTING.md --- CONTRIBUTING.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bbada93d5..4f82d49ec 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,8 +24,7 @@ The fork also maintains a branch called *Development_main_addons*. This branch i If you think you have found a bug in this fork of the A3Wasteland mission, first make sure that you test against [the official A3Wasteland vanilla mission](https://github.com/A3Wasteland/ArmA3_Wasteland.Altis) - If the issue exists over there, then please create the issue over there instead. Unless the issues are related to persistence, or to an addon, it's very likely that the issue exists as well in the vanilla mission. -Only create issues in this repository for - + Also, make sure to search our [issues list](https://github.com/micovery/ArmA3_Wasteland.Altis/issues) on GitHub in case a similar issue has already been opened. It is very helpful if you can prepare a reproduction of the bug. In other words, provide a small test case (or series of steps) which we can do in order to consistently reproduce the bug. It makes it easier to find the problem and to fix it. Do not simply say "XYZ is not working", please explain how exactly is it not working (what is the expectation vs what is actually happening), and under what circumstances. @@ -93,7 +92,7 @@ Then sit back and wait. There will probably be discussion about the pull request case (): { } - case (): { } default: { From a2678cec5ba6866aab7f68fa2205d37f8b791008 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 17:45:56 -0800 Subject: [PATCH 252/544] Fix for #41 --- client/functions/playerSpawn.sqf | 4 +++- persistence/players/sFunctions.sqf | 27 +++++++++++++++------------ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/client/functions/playerSpawn.sqf b/client/functions/playerSpawn.sqf index bb799c538..f8e2be92e 100644 --- a/client/functions/playerSpawn.sqf +++ b/client/functions/playerSpawn.sqf @@ -24,6 +24,7 @@ if (!isNil "pvar_teamKillList" && {playerSide in [BLUFOR,OPFOR]}) then _time = diag_tickTime; waitUntil {scriptDone _msgBox || diag_tickTime - _time >= 20}; + player setVariable ["initComplete", false, true]; endMission "LOSER"; waitUntil {uiNamespace setVariable ["BIS_fnc_guiMessage_status", false]; closeDialog 0; false}; }; @@ -39,10 +40,11 @@ if (!isNil "pvar_teamSwitchList" && playerSide in [BLUFOR,OPFOR]) then 0 fadeSound 0; uiNamespace setVariable ["BIS_fnc_guiMessage_status", false]; - _msgBox = [localize "STR_WL_Loading_Teamswitched"] spawn BIS_fnc_guiMessage; + _msgBox = [format[localize "STR_WL_Loading_Teamswitched", playerSide]] spawn BIS_fnc_guiMessage; _time = diag_tickTime; waitUntil {scriptDone _msgBox || diag_tickTime - _time >= 20}; + player setVariable ["initComplete", false, true]; endMission "LOSER"; waitUntil {uiNamespace setVariable ["BIS_fnc_guiMessage_status", false]; closeDialog 0; false}; }; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 58b56430e..e36bf98ba 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -218,21 +218,23 @@ p_addPlayerSave = { init(_alive, alive _player); diag_log format["p_addPlayerSave: Saving stats for %1(%2)", _name, _uid]; - def(_initComplete); - _initComplete = _player getVariable ["initComplete", false]; - //diag_log format["_initComplete = %1", _initComplete]; - if (not(_initComplete)) exitWith {}; + def(_init_complete); + _init_complete = _player getVariable ["initComplete", false]; - def(_respawnDialogActive); - _respawnDialogActive = _player getVariable ["respawnDialogActive", false]; - //diag_log format["_respawnDialogActive = %1", _respawnDialogActive]; + if (not(_init_complete)) exitWith { + diag_log format["%1(%2) exited without completing initialization", _name, _uid]; + }; + + def(_respawn_active); + _respawn_active = _player getVariable ["respawnDialogActive", false]; + //diag_log format["_respawn_active = %1", _respawn_active]; - def(_FAR_isUnconscious); - _FAR_isUnconscious = (_player getVariable ["FAR_isUnconscious", 0] != 0); - //diag_log format["_FAR_isUnconscious = %1", _FAR_isUnconscious]; + def(_unconscious); + _unconscious = (_player getVariable ["FAR_isUnconscious", 0] != 0); + //diag_log format["_unconscious = %1", _unconscious]; def(_reset_save); - _reset_save = (_respawnDialogActive || {_FAR_isUnconscious || {not(_alive)}}); //or not alive + _reset_save = (_respawn_active || {_unconscious || {not(_alive)}}); //or not alive //diag_log format["_reset_save = %1", _reset_save]; @@ -252,7 +254,7 @@ p_addPlayerSave = { }; if (_reset_save) exitWith { - diag_log format["Resetting stats for %1(%2), unconscious = %3, respawning = %4, alive = %5",_name,_uid,_FAR_isUnconscious, _respawnDialogActive, _alive]; + diag_log format["Resetting stats for %1(%2), unconscious = %3, respawning = %4, alive = %5", _name,_uid, _unconscious, _respawn_active, _alive]; _request pushBack ["PlayerSave",nil]; _request pushBack ["PlayerSave_Stratis",nil]; _request pushBack ["PlayerSave_Altis",nil]; @@ -425,6 +427,7 @@ p_disconnectSave = { _request call stats_set; [_scope] call stats_flush; + diag_log format["Stats for %1(%2) saved", _name, _uid]; }; From 13cb47fe6d36a266532d33a15c389077f16dff0a Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 18:50:37 -0800 Subject: [PATCH 253/544] Fix #27 --- persistence/players/pFunctions.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 3178b1979..d456987b1 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -451,7 +451,6 @@ p_restoreData = { if (!_dataValid) exitWith { format["Saved data for %1 is not valid;", player] call p_log_finest; - playerData_resetPos = true; call _exit; }; From 4b0fac9c818671b3b11279ecb3300432b0d02f6e Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 6 Jan 2015 19:03:49 -0800 Subject: [PATCH 254/544] Fix #35 (@Cael817) --- addons/vactions/va_functions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf index bdf20cb78..caea6908f 100644 --- a/addons/vactions/va_functions.sqf +++ b/addons/vactions/va_functions.sqf @@ -78,7 +78,7 @@ va_pull_player_action_available = { if (not(alive _player)) exitWith {false}; - + if (not(isPlayer _target) && {_vehicle isKindOf "UAV_02_base_F" || {_vehicle isKindOf "UGV_01_base_F"}}) exitWith {false}; if (cursorTarget != _vehicle) exitWith {false}; if (not(locked _vehicle < 2)) exitWith {false}; if (not([_target, _vehicle] call va_player_inside)) exitWith {false}; From 1aa4e2ce6f042d97557011cd540ae512fba9a401 Mon Sep 17 00:00:00 2001 From: Ivan Date: Wed, 7 Jan 2015 18:24:07 +0300 Subject: [PATCH 255/544] Small fix for not-loading objects damaged after spawn --- persistence/world/oFunctions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 11452f256..5db1e24ef 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -47,7 +47,6 @@ o_isSaveable = { init(_class, typeOf _obj); - if (!(alive _obj)) exitWith {false}; if ([_obj] call sh_isSaveableVehicle) exitWith {false}; //already being saved as a vehicle, don't save it if ([_obj] call o_isInSaveList) exitWith {true}; //not sure what this "saveList" thing is ... @@ -347,6 +346,7 @@ o_addSaveObject = { if (not([_obj] call o_isSaveable)) exitWith {}; + if (!(alive _obj)) exitWith {}; //diag_log format["will save %1", _obj]; def(_class); From bd2e0c4b070bcb9cb9aaf5807327638482ba1352 Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 7 Jan 2015 21:51:39 -0800 Subject: [PATCH 256/544] Rework saving of private storage This should make it more resilient as it does not depend on an invisible box to hold the player's storage items while the player is in game. Instead the player's storage items are held in a variable assocaited with the player, and de-serialized and serialzied when the player accesses, and closes the storage respectively. --- addons/storage/ps_functions.sqf | 38 ++++----- persistence/players/pFunctions.sqf | 120 ++++++++++++++++++++++++----- persistence/players/sFunctions.sqf | 75 ++++-------------- 3 files changed, 131 insertions(+), 102 deletions(-) diff --git a/addons/storage/ps_functions.sqf b/addons/storage/ps_functions.sqf index ca67759fb..7fd3a698f 100644 --- a/addons/storage/ps_functions.sqf +++ b/addons/storage/ps_functions.sqf @@ -85,19 +85,10 @@ ps_create_boxes = { }; -ps_get_box = { - def(_box); - init(_player,player); - _box = _player getVariable ["storage_box", objNull]; - if (isOBJECT(_box) && {not(isNull _box)}) exitWith {_box}; - - _box = ps_container_class createVehicle [0,0, 1000]; - _player setVariable ["storage_box", _box, true]; - (_box) -}; - ps_inventory_ui_mod = { + ARGVX3(0,_box,objNull); + disableSerialization; waitUntil {!(isNull (findDisplay IDD_FUTURAGEAR))}; def(_display); @@ -138,26 +129,32 @@ ps_inventory_ui_mod = { isNull (findDisplay IDD_FUTURAGEAR) }; - private["_box"]; - _box = (call ps_get_box); - detach _box; - _box setPos [0,0,1000]; + + [player, _box] call p_saveStorage; + deleteVehicle _box; }; ps_access = { private["_box"]; - _box = (call ps_get_box); + _box = [player, ps_container_class] call p_recreateStorageBox; + if (isNil "_box") exitWith { + player commandChat "ERROR: Could not access private storage, please report this error to the server administrator"; + }; + _box attachTo [player, [0,0,3]]; + + player removeAllEventHandlers "InventoryOpened"; player addEventHandler ["InventoryOpened", { - if ((call ps_get_box) == (_this select 1)) exitWith { + if (((_this select 1) getVariable ["is_storage_box", false])) exitWith { true }; - false + false }]; - player action ["Gear", (call ps_get_box)]; + + player action ["Gear", _box]; player removeAllEventHandlers "InventoryOpened"; - [] spawn ps_inventory_ui_mod; + [_box] spawn ps_inventory_ui_mod; }; ps_cameraDir = { @@ -265,7 +262,6 @@ ps_setup_boxes = { diag_log format["Waiting for storage boxes setup to complete ..."]; waitUntil {not(isNil "ps_setup_boxes_complete")}; diag_log format["Waiting for storage boxes setup to complete ... done"]; - [] call ps_get_box; //create the storage box if it does not already exist }; }; diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 3ddb3b5b2..1721fb545 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -379,19 +379,47 @@ fn_applyPlayerStorage = { diag_log format["WARNING: No player private storage data"]; }; init(_data,_this); - - + init(_player,player;) diag_log "#############################################"; diag_log "Dumping _storageData"; [_data] call p_dumpHash; + def(_hours_alive); + _hours_alive = [_data, "HoursAlive"] call fn_getFromPairs; + + + if (isSCALAR(_hours_alive) && {A3W_storageLifetime > 0 && {_hours_alive > A3W_storageLifetime}}) exitWith { + player commandChat format["WARNING: Your private storage is over %1 hours, it has been reset"]; + diag_log format["Private storage for %1 (%2) has been alive for %3 (max=%4), resetting it", (name player), (getPlayerUID player), _hours_alive, A3W_storageLifetime]; + _player setVariable ["private_storage", nil, true]; + }; + + _player setVariable ["private_storage", _data, true]; + + _player setVariable ["storage_spawningTime", diag_tickTime]; + if (isSCALAR(_hours_alive)) then { + _player setVariable ["storage_hoursAlive", _hours_alive]; + }; +}; + + + +p_recreateStorageBox = { + //diag_log format["%1 call p_recreateStorageBox", _this]; + + ARGVX3(0,_player,objNull); + ARGVX3(1,_box_class,""); + + + def(_data); + _data = _player getVariable ["private_storage", []]; + def(_class); def(_cargo_backpacks); def(_cargo_magazines); def(_cargo_items); def(_cargo_weapons); - def(_hours_alive); def(_name); def(_value); @@ -402,37 +430,24 @@ fn_applyPlayerStorage = { switch (_name) do { case "Class": {_class = OR(_value,nil)}; - case "HoursAlive": { _hours_alive = OR(_value,nil);}; case "Weapons": { _cargo_weapons = OR(_value,nil);}; case "Items": { _cargo_items = OR(_value,nil);}; case "Magazines": { _cargo_magazines = OR(_value,nil);}; case "Backpacks": { _cargo_backpacks = OR(_value,nil);}; - case "HoursAlive": { _hours_alive = OR(_value,nil);}; }; } forEach _data; - if (!isSTRING(_class)) exitWith { - diag_log format["WARNING: There is no container class for private storage"]; + if (!isSTRING(_class) || {_class == ""}) then { + _class = _box_class; }; - if (isSCALAR(_hours_alive) && {A3W_storageLifetime > 0 && {_hours_alive > A3W_storageLifetime}}) exitWith { - player commandChat format["WARNING: Your private storage is over %1 hours, it has been reset"]; - diag_log format["Private storage for %1 (%2) has been alive for %3 (max=%4), resetting it", (name player), (getPlayerUID player), _hours_alive, A3W_storageLifetime]; - }; def(_obj); - _obj = _class createVehicle [0,0,1000]; + _obj = _class createVehicleLocal [0,0,1000]; if (!isOBJECT(_obj)) exitWith { diag_log format["WARNING: Could not create storage container of class ""%1""", _class]; }; - player setVariable ["storage_box", _obj, true]; - - _obj setVariable ["storage_spawningTime", diag_tickTime]; - if (isSCALAR(_hours_alive)) then { - _obj setVariable ["storage_hoursAlive", _hours_alive]; - }; - if (isARRAY(_cargo_weapons)) then { { _obj addWeaponCargoGlobal _x } forEach _cargo_weapons; }; @@ -453,6 +468,73 @@ fn_applyPlayerStorage = { { _obj addMagazineCargoGlobal _x } forEach _cargo_magazines; }; + _obj setVariable ["is_storage_box", true]; + + _obj +}; + + + +p_trackStorageHoursAlive = { + ARGVX3(0,_player,objNull); + + def(_spawnTime); + def(_hoursAlive); + + _spawnTime = _player getVariable "storage_spawningTime"; + _hoursAlive = _player getVariable "storage_hoursAlive"; + + if (isNil "_spawnTime") then { + _spawnTime = diag_tickTime; + _player setVariable ["storage_spawningTime", _spawnTime, true]; + }; + + if (isNil "_hoursAlive") then { + _hoursAlive = 0; + _player setVariable ["storage_hoursAlive", _hoursAlive, true]; + }; + + def(_totalHours); + _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; + + (_totalHours) +}; + +p_saveStorage = { + //diag_log format["%1 call p_getPlayerInfo", _this]; + ARGVX3(0,_player,objNull); + ARGVX3(1,_obj,objNull); + + + if (isNull _obj) exitWith {}; + + def(_hours_alive); + _hours_alive = [_player] call p_trackStorageHoursAlive; + + init(_weapons,[]); + init(_magazines,[]); + init(_items,[]); + init(_backpacks,[]); + + // Save weapons & ammo + _weapons = (getWeaponCargo _obj) call cargoToPairs; + _magazines = (getMagazineCargo _obj) call cargoToPairs; + _items = (getItemCargo _obj) call cargoToPairs; + _backpacks = (getBackpackCargo _obj) call cargoToPairs; + + def(_storage); + _storage = + [ + ["Class", typeOf _obj], + ["HoursAlive", _hours_alive], + ["Weapons", _weapons], + ["Magazines", _magazines], + ["Items", _items], + ["Backpacks", _backpacks] + ]; + + _player setVariable ["private_storage", _storage, true]; + (_storage) }; fn_applyPlayerParking = { diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 263b98f54..c131bf265 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -207,69 +207,7 @@ p_getPlayerInfo = { (_info) }; -p_trackStorageHoursAlive = { - ARGVX3(0,_obj,objNull); - def(_spawnTime); - def(_hoursAlive); - - _spawnTime = _obj getVariable "storage_spawningTime"; - _hoursAlive = _obj getVariable "storage_hoursAlive"; - - if (isNil "_spawnTime") then { - _spawnTime = diag_tickTime; - _obj setVariable ["storage_spawningTime", _spawnTime, true]; - }; - - if (isNil "_hoursAlive") then { - _hoursAlive = 0; - _obj setVariable ["storage_hoursAlive", _hoursAlive, true]; - }; - - def(_totalHours); - _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; - - (_totalHours) -}; - -p_getPlayerStorage = { - //diag_log format["%1 call p_getPlayerInfo", _this]; - ARGVX3(0,_player,objNull); - - def(_obj); - _obj = _player getVariable ["storage_box", objNull]; - - if (!isOBJECT(_obj)) exitWith {nil}; - - def(_hours_alive); - _hours_alive = [_obj] call p_trackStorageHoursAlive; - - init(_weapons,[]); - init(_magazines,[]); - init(_items,[]); - init(_backpacks,[]); - - // Save weapons & ammo - _weapons = (getWeaponCargo _obj) call cargoToPairs; - _magazines = (getMagazineCargo _obj) call cargoToPairs; - _items = (getItemCargo _obj) call cargoToPairs; - _backpacks = (getBackpackCargo _obj) call cargoToPairs; - - def(_storage); - _storage = - [ - ["Class", typeOf _obj], - ["HoursAlive", _hours_alive], - ["Weapons", _weapons], - ["Magazines", _magazines], - ["Items", _items], - ["Backpacks", _backpacks] - ] call sock_hash; - - deleteVehicle _obj; - - (_storage) -}; p_getPlayerParking = { //diag_log format["%1 call p_getPlayerParking", _this]; @@ -303,6 +241,19 @@ p_getPlayerParking = { (_vehicles call sock_hash) }; + +p_getPlayerStorage = { + ARGVX3(0,_player,objNull); + + def(_storage); + + _storage = _player getVariable "private_storage"; + if (!isARRAY(_storage)) exitWith {}; + + (_storage call sock_hash) +}; + + p_addPlayerSave = { //diag_log format["%1 call p_addPlayerSave", _this]; ARGVX3(0,_request,[]); From 2a074a898585b8ef78ef3d695574480db3ea5c9e Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 7 Jan 2015 22:31:37 -0800 Subject: [PATCH 257/544] Allow usage of any container class for storage This change makes it so that admins can use any box, or container for player private storage. It does not matter if the box is invisible or not. This change makes the box hidden, and also removes any pre-existing items that may be inside. --- addons/storage/ps_functions.sqf | 1 + persistence/players/pFunctions.sqf | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/addons/storage/ps_functions.sqf b/addons/storage/ps_functions.sqf index 7fd3a698f..f56b6d56c 100644 --- a/addons/storage/ps_functions.sqf +++ b/addons/storage/ps_functions.sqf @@ -137,6 +137,7 @@ ps_inventory_ui_mod = { ps_access = { private["_box"]; _box = [player, ps_container_class] call p_recreateStorageBox; + if (isNil "_box") exitWith { player commandChat "ERROR: Could not access private storage, please report this error to the server administrator"; }; diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 1721fb545..642fa4521 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -448,6 +448,14 @@ p_recreateStorageBox = { diag_log format["WARNING: Could not create storage container of class ""%1""", _class]; }; + removeAllWeapons _obj; + removeAllItems _obj; + clearWeaponCargo _obj; + clearMagazineCargo _obj; + clearBackpackCargo _obj; + clearItemCargo _obj; + _obj hideObject true; + if (isARRAY(_cargo_weapons)) then { { _obj addWeaponCargoGlobal _x } forEach _cargo_weapons; }; From 8124e03943adbb3a196c0815cd298c878e7d8a36 Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 7 Jan 2015 22:56:59 -0800 Subject: [PATCH 258/544] Allow dynamic updating of storage box class If admin changes the class of the storage container, use the new class instead. Note that if the new container class is smaller than the old one, there can be issues where not all of the previously stored gear would be added. --- persistence/players/pFunctions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 642fa4521..3c53204b4 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -437,7 +437,7 @@ p_recreateStorageBox = { }; } forEach _data; - if (!isSTRING(_class) || {_class == ""}) then { + if (!isSTRING(_class) || {_class == "" || {_class != _box_class}}) then { _class = _box_class; }; From 6df2855d7577fb22be7e8e7b5a6bcb084fb99eba Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 8 Jan 2015 23:36:10 -0800 Subject: [PATCH 259/544] Adjustments for vehicle actions, storage, and parking. --- addons/parking/config.sqf | 2 +- addons/parking/pp_saving_functions.sqf | 6 +++--- addons/storage/ps_functions.sqf | 2 +- addons/vactions/config.sqf | 2 +- addons/vactions/va_functions.sqf | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/parking/config.sqf b/addons/parking/config.sqf index 244bfb785..baec690f0 100644 --- a/addons/parking/config.sqf +++ b/addons/parking/config.sqf @@ -9,7 +9,7 @@ pp_markers_enabled = true; pp_markers_properties = ["ICON", "mil_dot", "ColorKhaki", [1.2,1.2], "Parking"]; //number of seconds to wait (after parking a vehicle) before it can be retrieved (0 = no wait) -pp_retrieve_wait = 900; +pp_retrieve_wait = 60; //amount of money to charge player for retrieving a vehicle from parking (0 = no charge) pp_retrieve_cost = 1500; diff --git a/addons/parking/pp_saving_functions.sqf b/addons/parking/pp_saving_functions.sqf index 2df50cf85..922e13d12 100644 --- a/addons/parking/pp_saving_functions.sqf +++ b/addons/parking/pp_saving_functions.sqf @@ -59,7 +59,7 @@ if (not(isClient)) then { _added = [_parked_vehicles, _vehicle, false] call v_addSaveVehicle; if (isNil "_added") exitWith { diag_log format["ERROR: Could not park vehicle %1(%2) for player %3(%4)", typeOf _vehicle, netId _vehicle, (name _player), _uid]; - [_player, format["The %1 could not be parked (it may not be saveable). Please check with server administrator.", ([typeOf _vehicle] call generic_display_name)], "Parking Error"] call pp_notify; + [_player, format["The %1 needs to be saved before you can park it.", ([typeOf _vehicle] call generic_display_name)], "Parking Error"] call pp_notify; }; def(_display_name); @@ -90,7 +90,7 @@ if (not(isClient)) then { if (!isARRAY(_vehicle_data)) exitWith { diag_log format["ERROR: Could not retrieve vehicle %1 for player %2(%3)", _vehicle_id, (name _player), _uid]; - [_player, format["Your vehicle (%2) could not be retrieved. Please report this error to the server administrator.", _vehicle_id], "Retrieval Error"] call pp_notify; + [_player, format["Your vehicle (%2) could not be retrieved. Please report this error to A3Armory.com.", _vehicle_id], "Retrieval Error"] call pp_notify; }; def(_position); @@ -110,7 +110,7 @@ if (not(isClient)) then { if (isNil "_vehicle") exitWith { diag_log format["ERROR: Could not restore vehicle %1 for player %2(%3)", _vehicle_id, (name _player), _uid]; - [_player, format["Your vehicle (%1) could not be restored. Please report this error to the server administrator.", _vehicle_id], "Restoring Error"] call pp_notify; + [_player, format["Your vehicle (%1) could not be restored. Please report this error to A3Armory.com.", _vehicle_id], "Restoring Error"] call pp_notify; }; [_parked_vehicles, _vehicle_id] call fn_removeFromPairs; diff --git a/addons/storage/ps_functions.sqf b/addons/storage/ps_functions.sqf index f56b6d56c..3ae0ccc4f 100644 --- a/addons/storage/ps_functions.sqf +++ b/addons/storage/ps_functions.sqf @@ -139,7 +139,7 @@ ps_access = { _box = [player, ps_container_class] call p_recreateStorageBox; if (isNil "_box") exitWith { - player commandChat "ERROR: Could not access private storage, please report this error to the server administrator"; + player commandChat "ERROR: Could not access private storage, please report this error to A3Armory.com."; }; _box attachTo [player, [0,0,3]]; diff --git a/addons/vactions/config.sqf b/addons/vactions/config.sqf index 83607fd83..f6a4b03b4 100644 --- a/addons/vactions/config.sqf +++ b/addons/vactions/config.sqf @@ -26,6 +26,6 @@ cfg_va_lock_sound_play = true; cfg_va_lock_from_inside = true; //List of classes for vehicles that can locked/unlocked (empty means all) -cfg_va_lock_actions_classes_list = []; +cfg_va_lock_actions_classes_list = ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf index caea6908f..ab0fbb1e6 100644 --- a/addons/vactions/va_functions.sqf +++ b/addons/vactions/va_functions.sqf @@ -435,17 +435,17 @@ va_outside_add_actions = { //Add view vehicle information action - _action_id = player addaction [format[" %1 info", _display_name], {_this call va_information_action;}, [_player, _vehicle],10,false,false,"", + _action_id = player addaction [format[" %1 info", _display_name], {_this call va_information_action;}, [_player, _vehicle],0,false,false,"", format["([objectFromNetId %1, objectFromNetId %2] call va_information_action_available)", str(netId _player), str(netId _vehicle)]]; va_outside_actions = va_outside_actions + [_action_id]; //Add vehicle lock action - _action_id = player addaction [format[" Lock %1", _display_name], {_this call va_lock_action;}, [_player, _vehicle],10,false,false,"", + _action_id = player addaction [format[" Lock %1", _display_name], {_this call va_lock_action;}, [_player, _vehicle],0,false,false,"", format["([objectFromNetId %1, objectFromNetId %2] call va_lock_action_available)", str(netId _player), str(netId _vehicle)]]; va_outside_actions = va_outside_actions + [_action_id]; //Add vehicle unlock action - _action_id = player addaction [format[" Unlock %1", _display_name], {_this call va_unlock_action;}, [_player, _vehicle],10,false,false,"", + _action_id = player addaction [format[" Unlock %1", _display_name], {_this call va_unlock_action;}, [_player, _vehicle],0,false,false,"", format["([objectFromNetId %1, objectFromNetId %2] call va_unlock_action_available)", str(netId _player), str(netId _vehicle)]]; va_outside_actions = va_outside_actions + [_action_id]; }; From e021ac9797df3369c554e5fc2c2c3da0816a3928 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 10 Jan 2015 19:32:59 -0800 Subject: [PATCH 260/544] Fix #47 --- addons/vactions/va_functions.sqf | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf index caea6908f..2ff4eb951 100644 --- a/addons/vactions/va_functions.sqf +++ b/addons/vactions/va_functions.sqf @@ -91,7 +91,10 @@ va_flipped = { def(_pos); _pos = getPos _vehicle; - + + //no unflip action if vehicle is in water + if (surfaceIsWater _pos) exitWith {false}; + def(_snormal); def(_vnormal); _snormal = surfaceNormal _pos; @@ -496,18 +499,25 @@ va_outside_target = { ARGVX3(1,_distance,0); if (!isPlayer _player) exitWith {}; - private["_pos1", "_pos2"]; - _pos1 = (eyePos player); - _pos2 = ([_pos1, cameraDirDist(_distance)] call vector_add); - private["_objects"]; - _objects = (lineIntersectsWith [_pos1,_pos2,objNull,objNull,true]); - if (!isARRAY(_objects) || {count _objects == 0}) exitWith {}; - def(_target); - _target = _objects select 0; + if (surfaceIsWater (position _player)) then { + //line intersect does not work well when vehicle is in water + _target = cursorTarget; + } + else { + def(_pos1); + def(_pos2); + _pos1 = (eyePos player); + _pos2 = ([_pos1, cameraDirDist(_distance)] call vector_add); + _objects = (lineIntersectsWith [_pos1,_pos2,objNull,objNull,true]); + if (!isARRAY(_objects) || {count _objects == 0}) exitWith {}; + _target = _objects select 0; + }; + + if (isNil "_target") exitWith {}; - if (({_target isKindOf _x } count ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank"]) == 0) exitWith {nil}; + if (({_target isKindOf _x } count ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank"]) == 0) exitWith {}; _target }; From 15d08628a67aaed5dc0e1095441510d8059aa2ac Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 10 Jan 2015 21:09:57 -0800 Subject: [PATCH 261/544] Resolve #43 Save, and restore a vehicle's lock-state. Except for those classes in the A3W_locked_vehicles_list. --- persistence/world/vFunctions.sqf | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index e0be13f01..b9100f04b 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -50,6 +50,7 @@ v_restoreVehicle = { def(_turret0); def(_turret1); def(_turret2); + def(_lock_state); def(_key); @@ -78,6 +79,7 @@ v_restoreVehicle = { case "TurretMagazines3": { _turret2 = OR_ARRAY(_value,nil);}; case "Fuel": { _fuel = OR(_value,nil);}; case "Hitpoints": { _hitPoints = OR(_value,nil);}; + case "LockState": { _lock_state = OR(_value,nil);}; }; } forEach _vehicle_data; @@ -143,12 +145,14 @@ v_restoreVehicle = { // disables thermal equipment on loaded vehicles, comment out if you want thermal _obj disableTIEquipment true; - //lock vehicles form this list + //override the lock-state for vehicles form this this if ({_obj isKindOf _x} count A3W_locked_vehicles_list > 0) then { - _obj lock 2; - _obj setVariable ["locked", 2, true]; - _obj setVariable ["objectLocked", true, true]; - _obj setVariable ["R3F_LOG_disabled",true,true]; + _lock_state = 2; + }; + + if (isSCALAR(_lock_state)) then { + _obj lock _lock_state; + _obj setVariable ["R3F_LOG_disabled", (_lock_state > 1) , true]; }; if (isSCALAR(_damage)) then { @@ -512,6 +516,9 @@ v_addSaveVehicle = { }; }; + def(_lock_state); + _lock_state = locked _obj; + def(_result); _result = [ ["Class", _class], @@ -532,7 +539,8 @@ v_addSaveVehicle = { ["AmmoCargo", _ammoCargo], ["FuelCargo", _fuelCargo], ["RepairCargo", _repairCargo], - ["Hitpoints", _hitPoints] + ["Hitpoints", _hitPoints], + ["LockState", _lock_state] ]; _result = if (_hashify) then {_result call sock_hash} else {_result}; From 6f3a5f92b419d51a7c4ad9cd08f7558a384e4afb Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 10 Jan 2015 21:57:17 -0800 Subject: [PATCH 262/544] Fix #49 Change the meaning of pp_retrieve_wait. Now it means amount of time to wait since joining the server before player is able to retrieve vehicles. --- addons/parking/config.sqf | 2 +- addons/parking/pp_actions_functions.sqf | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/parking/config.sqf b/addons/parking/config.sqf index 8db99db34..4e8c5fee6 100644 --- a/addons/parking/config.sqf +++ b/addons/parking/config.sqf @@ -8,7 +8,7 @@ pp_markers_enabled = true; //shape, type, color, size, text (for map markers, if enabled) pp_markers_properties = ["ICON", "mil_dot", "ColorKhaki", [1.2,1.2], "Parking"]; -//number of seconds to wait (after parking a vehicle) before it can be retrieved (0 = no wait) +//number of seconds to wait (after joining the sever) before a vehicle can be retrieved (0 = no wait) pp_retrieve_wait = 0; //amount of money to charge player for retrieving a vehicle from parking (0 = no charge) diff --git a/addons/parking/pp_actions_functions.sqf b/addons/parking/pp_actions_functions.sqf index 792b24dcd..644c7428a 100644 --- a/addons/parking/pp_actions_functions.sqf +++ b/addons/parking/pp_actions_functions.sqf @@ -148,6 +148,7 @@ pp_get_near_vehicles = { +pp_join_time = diag_tickTime; //time when the player joined the server pp_get_wait_time = { ARGVX4(0,_vehicle_id,"",0); @@ -157,18 +158,17 @@ pp_get_wait_time = { def(_cooldown_start_name); _cooldown_start_name = format["%1_cooldown_start", _vehicle_id]; - init(_ctime,diag_tickTime); def(_cooldown_start); _cooldown_start = missionNamespace getVariable _cooldown_start_name; if (!isSCALAR(_cooldown_start)) then { - _cooldown_start = _ctime; + _cooldown_start = pp_join_time; missionNamespace setVariable [_cooldown_start_name, _cooldown_start]; }; def(_time_elapsed); - _time_elapsed = _ctime - _cooldown_start; + _time_elapsed = diag_tickTime - _cooldown_start; def(_time_remaining); _time_remaining = pp_retrieve_wait - _time_elapsed; From dc08a66b06bd566debd985124be018ed3bbbb121 Mon Sep 17 00:00:00 2001 From: Ivan Date: Sun, 11 Jan 2015 08:01:54 +0300 Subject: [PATCH 263/544] End mission for players while server is saving DB and restarting. Conflicts: globalCompile.sqf --- description.ext | 10 ++++++++++ globalCompile.sqf | 1 + persistence/players/sFunctions.sqf | 3 +++ 3 files changed, 14 insertions(+) diff --git a/description.ext b/description.ext index 269315e38..03e70cae1 100644 --- a/description.ext +++ b/description.ext @@ -62,6 +62,16 @@ class RscTitles #include "client\systems\scoreboard\score_gui.hpp" }; +class CfgDebriefing +{ + class Reboot + { + title = "Rebooting"; + subtitle = "Thank you for playing!"; + description = "Server will save database and restart to increase performance. Please, give us some time :)"; + }; +}; + class CfgFunctions { class A3W diff --git a/globalCompile.sqf b/globalCompile.sqf index cbbec4242..c710ebb4a 100644 --- a/globalCompile.sqf +++ b/globalCompile.sqf @@ -73,6 +73,7 @@ _serverFunc = "server\functions"; A3W_fnc_pushVehicle = [_serverFunc, "pushVehicle.sqf"] call mf_compile; A3W_fnc_setName = [_clientFunc, "fn_setName.sqf"] call mf_compile; A3W_fnc_towingHelper = [_serverFunc, "towingHelper.sqf"] call mf_compile; +A3W_fnc_reboot = {"Reboot" call BIS_fnc_endMission} call mf_compile; allPlayers = [_serverFunc, "allPlayers.sqf"] call mf_compile; applyVehicleTexture = "client\systems\vehicleStore\applyVehicleTexture.sqf" call mf_compile; cargoToPairs = [_serverFunc, "cargoToPairs.sqf"] call mf_compile; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index e36bf98ba..af8910a38 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -14,6 +14,9 @@ s_processRestartMessage = { ARGVX3(3,_to,""); ARGVX3(4,_subject,""); ARGV2(5,_body); + + //End Misson for all players + [[], "A3W_fnc_reboot", true, true] call BIS_fnc_MP; //halt all the save loops p_saveLoopActive = false; From a93ee6d13374a473a73f4363b0f3f8b3f8548efd Mon Sep 17 00:00:00 2001 From: Ivan Date: Sun, 11 Jan 2015 17:59:44 +0300 Subject: [PATCH 264/544] Correct way of finishing player game and sending back to lobby. --- persistence/players/sFunctions.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index af8910a38..26ea62b19 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -16,7 +16,10 @@ s_processRestartMessage = { ARGV2(5,_body); //End Misson for all players - [[], "A3W_fnc_reboot", true, true] call BIS_fnc_MP; + [[], "A3W_fnc_reboot", BLUFOR, true] call BIS_fnc_MP; + [[], "A3W_fnc_reboot", OPFOR, true] call BIS_fnc_MP; + [[], "A3W_fnc_reboot", Independent, true] call BIS_fnc_MP; + //halt all the save loops p_saveLoopActive = false; From e115f3517193d9fadce780d2974d9218914c2f65 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 11 Jan 2015 07:04:11 -0800 Subject: [PATCH 265/544] Fix #52 Save storage magazines in two separate arrays, i.e. PartialMagazines, and FullMagazines. The old "Magazines" property is still read for legacy reasons, but not used anymore for saving. Eventually, we'll want to remove the reading part as well. Also, did a bit of refactoring to the order in which libraries are loaded. --- persistence/lib/normalize_config.sqf | 5 +++++ persistence/lib/shFunctions.sqf | 27 ++++++++++++++++++++++--- persistence/players/c_setupPlayerDB.sqf | 1 + persistence/players/pFunctions.sqf | 26 ++++++++++++++++++------ persistence/world/oFunctions.sqf | 3 --- persistence/world/oLoad.sqf | 5 ++++- persistence/world/vFunctions.sqf | 4 ---- persistence/world/vLoad.sqf | 8 ++++++-- 8 files changed, 60 insertions(+), 19 deletions(-) diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index 3b9f3f191..a8ebd7130 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -1,3 +1,6 @@ +if (!isNil "normalize_config_loaded" || {not(isServer)}) exitWith {}; +diag_log "normalize_config loading ..."; + #include "macro.h" #define ON_SCALAR(v) (isSCALAR(v) && {v == 1}) @@ -68,4 +71,6 @@ diag_log format["[INFO] config: A3W_healthTime = %1", A3W_healthTime]; diag_log format["[INFO] config: A3W_hungerTime = %1", A3W_hungerTime]; diag_log format["[INFO] config: A3W_thirstTime = %1", A3W_thirstTime]; +normalize_config_loaded = true; +diag_log "normalize_config loading complete"; diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index d02538c24..0ca3c30c4 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -1,9 +1,8 @@ -if (!isNil "shFunctions_loased") exitWith {}; +if (!isNil "shFunctions_loaded") exitWith {}; diag_log "shFunctions loading ..."; #include "macro.h" -call compile preProcessFileLineNumbers "persistence\lib\normalize_config.sqf"; sh_isSaveableVehicle = { ARGVX4(0,_obj,objNull,false); @@ -300,5 +299,27 @@ sh_getValueFromPairs = { (_result); }; -shFunctions_loased = true; +sh_fillMagazineData = { + ARGVX3(0,_container,objNull); + ARGVX3(1,_full_mags,[]); + ARGVX3(2,_partial_mags,[]); + + def(_mag); + def(_ammo); + + {if (true) then { + _mag = _x select 0; + _ammo = _x select 1; + + if (_ammo == getNumber (configFile >> "CfgMagazines" >> _mag >> "count")) exitWith { + [_full_mags, _mag, 1] call fn_addToPairs; + }; + + if (_ammo > 0) exitWith { + _partial_mags pushBack [_mag, _ammo]; + }; + }} forEach (magazinesAmmoCargo _container); +}; + +shFunctions_loaded = true; diag_log "shFunctions loading complete"; \ No newline at end of file diff --git a/persistence/players/c_setupPlayerDB.sqf b/persistence/players/c_setupPlayerDB.sqf index ff00f843f..a352753fb 100644 --- a/persistence/players/c_setupPlayerDB.sqf +++ b/persistence/players/c_setupPlayerDB.sqf @@ -7,4 +7,5 @@ if (isDedicated) exitWith {}; call compile preProcessFileLineNumbers "persistence\sock\main.sqf"; call compile preProcessFileLineNumbers "persistence\lib\hash.sqf"; +call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; call compile preProcessFileLineNumbers "persistence\players\pFunctions.sqf"; diff --git a/persistence/players/pFunctions.sqf b/persistence/players/pFunctions.sqf index 3c53204b4..f6f6e9c0e 100644 --- a/persistence/players/pFunctions.sqf +++ b/persistence/players/pFunctions.sqf @@ -420,6 +420,8 @@ p_recreateStorageBox = { def(_cargo_magazines); def(_cargo_items); def(_cargo_weapons); + def(_full_magazines); + def(_partial_magazines); def(_name); def(_value); @@ -432,7 +434,9 @@ p_recreateStorageBox = { case "Class": {_class = OR(_value,nil)}; case "Weapons": { _cargo_weapons = OR(_value,nil);}; case "Items": { _cargo_items = OR(_value,nil);}; - case "Magazines": { _cargo_magazines = OR(_value,nil);}; + case "Magazines": { _cargo_magazines = OR(_value,nil);}; //keep this for a while for legacy reasons + case "FullMagazines": { _full_magazines = OR(_value,nil);}; + case "PartialMagazines": { _partial_magazines = OR(_value,nil);}; case "Backpacks": { _cargo_backpacks = OR(_value,nil);}; }; } forEach _data; @@ -472,10 +476,18 @@ p_recreateStorageBox = { { _obj addItemCargoGlobal _x } forEach _cargo_items; }; - if (isARRAY(_cargo_magazines)) then { + if (isARRAY(_cargo_magazines)) then { //FIXME: this is legacy code, need to remove eventually { _obj addMagazineCargoGlobal _x } forEach _cargo_magazines; }; + if (isARRAY(_full_magazines)) then { + { _obj addMagazineCargoGlobal _x } forEach _full_magazines; + }; + + if (isARRAY(_partial_magazines)) then { + { _obj addMagazineAmmoCargo [(_x select 0), 1, (_x select 1)] } forEach _partial_magazines; + }; + _obj setVariable ["is_storage_box", true]; _obj @@ -520,15 +532,16 @@ p_saveStorage = { _hours_alive = [_player] call p_trackStorageHoursAlive; init(_weapons,[]); - init(_magazines,[]); + init(_partial_magazines,[]); + init(_full_magazines,[]); init(_items,[]); init(_backpacks,[]); // Save weapons & ammo _weapons = (getWeaponCargo _obj) call cargoToPairs; - _magazines = (getMagazineCargo _obj) call cargoToPairs; _items = (getItemCargo _obj) call cargoToPairs; _backpacks = (getBackpackCargo _obj) call cargoToPairs; + [_obj, _full_magazines, _partial_magazines] call sh_fillMagazineData; def(_storage); _storage = @@ -536,9 +549,10 @@ p_saveStorage = { ["Class", typeOf _obj], ["HoursAlive", _hours_alive], ["Weapons", _weapons], - ["Magazines", _magazines], ["Items", _items], - ["Backpacks", _backpacks] + ["Backpacks", _backpacks], + ["PartialMagazines", _partial_magazines], + ["FullMagazines", _full_magazines] ]; _player setVariable ["private_storage", _storage, true]; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 5db1e24ef..00becfdee 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -5,9 +5,6 @@ diag_log "oFunctions.sqf loading ..."; - -call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; - #include "macro.h"; o_loadingOrderArray = ["Building","StaticWeapon","ReammoBox_F", "All"]; diff --git a/persistence/world/oLoad.sqf b/persistence/world/oLoad.sqf index f04b6d661..bf0c03910 100644 --- a/persistence/world/oLoad.sqf +++ b/persistence/world/oLoad.sqf @@ -9,8 +9,11 @@ diag_log "oLoad.sqf loading ..."; if (!isServer) exitWith {}; +call compile preProcessFileLineNumbers "persistence\lib\normalize_config.sqf"; +call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; +call compile preProcessFileLineNumbers "persistence\world\oFunctions.sqf"; -#include "oFunctions.sqf" +#include "macro.h" init(_oScope, "Objects" call PDB_objectFileName); diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index b9100f04b..75ec214ee 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -2,10 +2,6 @@ diag_log "vFunctions.sqf loading ..."; #include "macro.h" -call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; - - - v_restoreVehicle = { //diag_log format["%1 call v_restoreVehicle", _this]; ARGVX3(0,_data_pair,[]); diff --git a/persistence/world/vLoad.sqf b/persistence/world/vLoad.sqf index f2c5fe110..eb5cf1b93 100644 --- a/persistence/world/vLoad.sqf +++ b/persistence/world/vLoad.sqf @@ -9,8 +9,12 @@ diag_log "vLoad.sqf loading ..."; if (!isServer) exitWith {}; -#include "vFunctions.sqf" - +call compile preProcessFileLineNumbers "persistence\lib\normalize_config.sqf"; +call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; +call compile preProcessFileLineNumbers "persistence\world\vFunctions.sqf"; + +#include "macro.h" + init(_vScope, "Vehicles" call PDB_objectFileName); [_vScope] call v_loadVehicles; From 0c5e6ba22cb3daf30b8787e22470205f140927ce Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 11 Jan 2015 09:05:24 -0800 Subject: [PATCH 266/544] Fix #50 Fix the camera toggling after player re-spawns. --- addons/camera/functions.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/camera/functions.sqf b/addons/camera/functions.sqf index d159900d0..6a889d67c 100644 --- a/addons/camera/functions.sqf +++ b/addons/camera/functions.sqf @@ -672,7 +672,7 @@ camera_enabled = { def(_camera); _camera = [_player,"camera"] call object_getVariable; - not(undefined(_camera)) + not(isNil "_camera" || {isNull _camera}) }; camera_keyDownHandler = { @@ -1169,7 +1169,7 @@ camera_hud_update = { }; camera_toggle = { - if (!isOBJECT(camera_unit)) then { + if (!isOBJECT(camera_unit) || {isNull camera_unit || {!alive camera_unit}}) then { camera_unit = player; }; From 56f1bab62aa31c3d4b733debc2f9d31f696e1e64 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 11 Jan 2015 18:15:45 -0800 Subject: [PATCH 267/544] Make stats read/write calls non-scheduled --- persistence/sock/call.fsm | 31 +++++++++++++++++++++++++++++++ persistence/sock/stats.sqf | 20 ++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 persistence/sock/call.fsm diff --git a/persistence/sock/call.fsm b/persistence/sock/call.fsm new file mode 100644 index 000000000..642e93155 --- /dev/null +++ b/persistence/sock/call.fsm @@ -0,0 +1,31 @@ +/*%FSM*/ +/*%FSM*/ +/* +item0[] = {"_",1,4346,100.000000,-75.000000,200.000000,-25.000000,0.000000,""}; +globals[] = {25.000000,1,0,0,16777215,640,480,1,22,6316128,1,-85.912735,315.605164,318.635895,-242.199982,436,609,1}; +window[] = {2,-1,-1,-1,-1,774,25,985,25,3,454}; +*//*%FSM*/ +class FSM +{ + fsmName = "KK's call.fsm"; + class States + { + /*%FSM*/ + class _ + { + name = "_"; + init = /*%FSM*/missionNamespace setVariable [_this select 0, _this select 1 call (_this select 2)]"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + }; + initState=""; + finalStates[] = + { + "_", + }; +}; +/*%FSM*/ \ No newline at end of file diff --git a/persistence/sock/stats.sqf b/persistence/sock/stats.sqf index 13840ba5b..6e626697f 100644 --- a/persistence/sock/stats.sqf +++ b/persistence/sock/stats.sqf @@ -250,6 +250,16 @@ stats_merge = { }; stats_write = { + def(_var_name); + _var_name = format["var_%1",ceil(random 10000)]; + + def(_fsm); + _fsm = [_var_name, _this, stats_write_wrapped] execFSM "persistence\sock\call.fsm"; + waitUntil {completedFSM _fsm}; + (missionNamespace getVariable _var_name) +}; + +stats_write_wrapped = { if (isNil "_this") exitWith {false}; format["%1 stats_set;", _this] call stats_log_finest; @@ -585,6 +595,16 @@ stats_keys = { stats_read = { + def(_var_name); + _var_name = format["var_%1",ceil(random 10000)]; + + def(_fsm); + _fsm = [_var_name, _this, stats_read_wrapped] execFSM "persistence\sock\call.fsm"; + waitUntil {completedFSM _fsm}; + (missionNamespace getVariable _var_name) +}; + +stats_read_wrapped = { if (isNil "_this") exitWith {}; format["%1 stats_get;", _this] call stats_log_fine; From ab1f79d6e6a29aad23956162a58c4c3a6d7072bb Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 11 Jan 2015 18:30:35 -0800 Subject: [PATCH 268/544] Refactor boot logic into separate message --- persistence/players/sFunctions.sqf | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 26ea62b19..43430943e 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -75,6 +75,35 @@ s_processRestartMessage = { true }; + +s_processBootMessage = { + ARGVX3(0,_scope,""); + ARGVX3(1,_id,""); + ARGVX3(2,_from,""); + ARGVX3(3,_to,""); + ARGVX3(4,_subject,""); + ARGV2(5,_body); + + //End Misson for all players + [[], "A3W_fnc_reboot", BLUFOR, true] call BIS_fnc_MP; + [[], "A3W_fnc_reboot", OPFOR, true] call BIS_fnc_MP; + [[], "A3W_fnc_reboot", Independent, true] call BIS_fnc_MP; + + diag_log format["Sending boot message ack"]; + //send ack that the message has been processed + def(_res); + _res = + [ + ["id", _id], + ["from", "server"], + ["to", _from], + ["subject", "ack"], + ["body", _id] + ] call sock_hash; + + true +}; + s_processMessage = { ARGVX3(0,_scope,""); ARGV2(1,_message); @@ -110,6 +139,11 @@ s_processMessage = { if (_subject == "restart" && _to == "server" && _from != "server") exitWith { ([_scope,_id,_from,_to,_subject, OR(_body,nil)] call s_processRestartMessage) }; + + if (_subject == "boot" && _to == "server" && _from != "server") exitWith { + ([_scope,_id,_from,_to,_subject, OR(_body,nil)] call s_processBootMessage) + }; + diag_log format["message queue: process(id:%1): complete"]; false From 651db9a056195b571d33ea7ba22fdfe7fc7d5d63 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 11 Jan 2015 18:57:13 -0800 Subject: [PATCH 269/544] Put back the read calls to scheduled Gotta fix the remote-calls --- persistence/sock/stats.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/persistence/sock/stats.sqf b/persistence/sock/stats.sqf index 6e626697f..880aceed9 100644 --- a/persistence/sock/stats.sqf +++ b/persistence/sock/stats.sqf @@ -594,7 +594,7 @@ stats_keys = { }; -stats_read = { +stats_read_fsm = { def(_var_name); _var_name = format["var_%1",ceil(random 10000)]; @@ -604,7 +604,7 @@ stats_read = { (missionNamespace getVariable _var_name) }; -stats_read_wrapped = { +stats_read = { if (isNil "_this") exitWith {}; format["%1 stats_get;", _this] call stats_log_fine; From 698fbc33bccebb1d57be8ff55b8fb6d21e6bfb36 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 11 Jan 2015 19:06:37 -0800 Subject: [PATCH 270/544] Don't suspend while writing stats --- persistence/players/sFunctions.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 43430943e..76da117f0 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -465,8 +465,8 @@ p_disconnectSave = { [_scope] call stats_flush; }; - _request call stats_set; - [_scope] call stats_flush; + _request spawn stats_set; + [_scope] spawn stats_flush; diag_log format["Stats for %1(%2) saved", _name, _uid]; }; From 760aacf0abaf5d38b9fbcc3a0b02d1066060c3b7 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 11 Jan 2015 19:20:56 -0800 Subject: [PATCH 271/544] Forgot to actually push the boot ack --- persistence/players/sFunctions.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 76da117f0..78dc1d4f3 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -101,6 +101,8 @@ s_processBootMessage = { ["body", _id] ] call sock_hash; + [_scope, format["%1.recv", _from], _res] call stats_push; + true }; From 81ecb4f038ead708f18280c76f3bd1186b986429 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 11 Jan 2015 20:04:45 -0800 Subject: [PATCH 272/544] Switch some stats write calls to spawn After switching to using FSM for stats write, we gotta spawn some of the calls instead of call. --- persistence/players/sFunctions.sqf | 2 +- persistence/players/s_setupPlayerDB.sqf | 2 +- server/antihack/adminMenuLog.sqf | 2 +- server/antihack/flagHandler.sqf | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 78dc1d4f3..b31fdcade 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -464,7 +464,7 @@ p_disconnectSave = { if (isNil{[_request,_player,_uid,_name] call p_addPlayerSave}) exitWith { diag_log format["WARNING: No stats saved for %1(%2) on disconnect", _name, _uid]; - [_scope] call stats_flush; + [_scope] spawn stats_flush; }; _request spawn stats_set; diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index 53346c01c..752468fc4 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -14,7 +14,7 @@ call compile preProcessFileLineNumbers "persistence\players\sFunctions.sqf"; fn_deletePlayerSave = { init(_scope,_this call PDB_playerFileName); - [_scope, ["PlayerSave", nil], ["PlayerSave_Altis", nil], ["PlayerSave_Stratis", nil]] call stats_set; + [_scope, ["PlayerSave", nil], ["PlayerSave_Altis", nil], ["PlayerSave_Stratis", nil]] spawn stats_set; }; diff --git a/server/antihack/adminMenuLog.sqf b/server/antihack/adminMenuLog.sqf index ee54a7724..27c19f20c 100644 --- a/server/antihack/adminMenuLog.sqf +++ b/server/antihack/adminMenuLog.sqf @@ -23,5 +23,5 @@ if (_sentChecksum == _flagChecksum) then { ["value",_value] ]; - ["AdminLog2" call PDB_adminLogFileName, _uid + ".records", (_record call sock_hash)] call stats_push; + ["AdminLog2" call PDB_adminLogFileName, _uid + ".records", (_record call sock_hash)] spawn stats_push; }; diff --git a/server/antihack/flagHandler.sqf b/server/antihack/flagHandler.sqf index f5aea1630..4e0911960 100644 --- a/server/antihack/flagHandler.sqf +++ b/server/antihack/flagHandler.sqf @@ -36,7 +36,7 @@ if (typeName _this == "ARRAY" && {count _this > 4}) then ["hackType",_hackType], ["hackValue",_hackValue] ]; - ["Hackers2" call PDB_hackerLogFileName, _playerID + ".records", (_record call sock_hash)] call stats_push; + ["Hackers2" call PDB_hackerLogFileName, _playerID + ".records", (_record call sock_hash)] spawn stats_push; }; }; From 28f70ce5c179cacf92e18a2309ed57a04ea4c135 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 11 Jan 2015 20:18:14 -0800 Subject: [PATCH 273/544] Make sure flush is called after set while saving --- persistence/players/sFunctions.sqf | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index b31fdcade..d6d903c13 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -452,6 +452,15 @@ p_addPlayerSave = { true }; + +ordered_invoke = { + if (isNil "_this" || {typeName _this != typeName []}) exitWith {}; + { + (_x select 0) call (_x select 1); + } forEach _this; +}; + + p_disconnectSave = { //diag_log format["%1 call p_disconnectSave", _this]; ARGVX3(0,_player,objNull); @@ -467,8 +476,11 @@ p_disconnectSave = { [_scope] spawn stats_flush; }; - _request spawn stats_set; - [_scope] spawn stats_flush; + [ + [_request, stats_set], + [[_scope], stats_flush] + ] spawn ordered_invoke; + diag_log format["Stats for %1(%2) saved", _name, _uid]; }; From d0086b36ada795931c18703eda8521f8eb143143 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 11 Jan 2015 23:48:44 -0800 Subject: [PATCH 274/544] Forgot to remove booting code form restart hint --- persistence/players/sFunctions.sqf | 6 ------ 1 file changed, 6 deletions(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index d6d903c13..4f7f0a3d6 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -14,12 +14,6 @@ s_processRestartMessage = { ARGVX3(3,_to,""); ARGVX3(4,_subject,""); ARGV2(5,_body); - - //End Misson for all players - [[], "A3W_fnc_reboot", BLUFOR, true] call BIS_fnc_MP; - [[], "A3W_fnc_reboot", OPFOR, true] call BIS_fnc_MP; - [[], "A3W_fnc_reboot", Independent, true] call BIS_fnc_MP; - //halt all the save loops p_saveLoopActive = false; From 8c0ff40c3b90691117a26fe0d20542f6ca721d1e Mon Sep 17 00:00:00 2001 From: Ivan Date: Sun, 11 Jan 2015 08:08:15 +0300 Subject: [PATCH 275/544] + zbe caching addon --- addons/zbe_cache/main.sqf | 114 ++++++ addons/zbe_cache/zbe_aiCaching.fsm | 332 ++++++++++++++++++ addons/zbe_cache/zbe_clientObjectDrawAuto.fsm | 166 +++++++++ addons/zbe_cache/zbe_functions.sqf | 94 +++++ addons/zbe_cache/zbe_vehicleCaching.fsm | 237 +++++++++++++ init.sqf | 3 + 6 files changed, 946 insertions(+) create mode 100644 addons/zbe_cache/main.sqf create mode 100644 addons/zbe_cache/zbe_aiCaching.fsm create mode 100644 addons/zbe_cache/zbe_clientObjectDrawAuto.fsm create mode 100644 addons/zbe_cache/zbe_functions.sqf create mode 100644 addons/zbe_cache/zbe_vehicleCaching.fsm diff --git a/addons/zbe_cache/main.sqf b/addons/zbe_cache/main.sqf new file mode 100644 index 000000000..64d40013c --- /dev/null +++ b/addons/zbe_cache/main.sqf @@ -0,0 +1,114 @@ +zbe_aiCacheDist = _this select 0; +zbe_minFrameRate = _this select 1; +zbe_debug = _this select 2; +zbe_vehicleCacheDistCar = _this select 3; +zbe_vehicleCacheDistAir = _this select 4; +zbe_vehicleCacheDistBoat = _this select 5; + +zbe_allGroups = 0; +zbe_cachedGroups = []; +zbe_cachedUnits = 0; +zbe_allVehicles = 0; +zbe_cachedVehicles = 0; +zbe_objectView = 0; +zbe_players = []; + +call compileFinal preprocessFileLineNumbers "addons\zbe_cache\zbe_functions.sqf"; + +if (zbe_minFrameRate == -1) then {if (isDedicated) then {zbe_minFrameRate = 16} else {zbe_minFrameRate = 31};}; + +zbe_mapsize = [] call bis_fnc_mapSize; +zbe_mapside = zbe_mapsize / 2; +zbe_centerPOS = [zbe_mapside, zbe_mapside, 0]; + +[] spawn { + while {true} do { + sleep 15; + zbe_players = (switchableUnits + playableUnits); + { + _disable = _x getVariable "zbe_cacheDisabled"; + _disable = if (isNil "_disable") then { false; + } else {_disable; + }; + if (!_disable && !(_x in zbe_cachedGroups)) then { + zbe_cachedGroups = zbe_cachedGroups + [_x]; + [zbe_aiCacheDist, _x, zbe_minFrameRate, zbe_debug] execFSM "addons\zbe_cache\zbe_aiCaching.fsm"; + }; + } forEach allGroups; + }; +}; +// Vehicle Caching Beta (for client FPS) +[] spawn { + private ["_assetscar", "_assetsair", "_assetsboat"]; + zbe_cached_cars = []; + zbe_cached_air = []; + zbe_cached_boat = []; + while {true} do { + _assetscar = zbe_centerPOS nearEntities ["LandVehicle", zbe_mapside]; + { + if !(_x in zbe_cached_cars) then { + zbe_cached_cars = zbe_cached_cars + [_x]; + [_x, zbe_vehicleCacheDistCar] execFSM "addons\zbe_cache\zbe_vehicleCaching.fsm"; + }; + } forEach _assetscar; + _assetsair = zbe_centerPOS nearEntities ["Air", zbe_mapside]; + { + if !(_x in zbe_cached_air) then { + zbe_cached_air = zbe_cached_air + [_x]; + [_x, zbe_vehicleCacheDistAir] execFSM "addons\zbe_cache\zbe_vehicleCaching.fsm"; + }; + } forEach _assetsair; + _assetsboat = zbe_centerPOS nearEntities ["Ship", zbe_mapside]; + { + if !(_x in zbe_cached_boat) then { + zbe_cached_boat = zbe_cached_boat + [_x]; + [_x, zbe_vehicleCacheDistBoat] execFSM "addons\zbe_cache\zbe_vehicleCaching.fsm"; + }; + } forEach _assetsboat; + + { + if (!(_x in _assetscar)) then { + zbe_cached_cars = zbe_cached_cars - [_x]; + }; + } forEach zbe_cached_cars; + { + if (!(_x in _assetsair)) then { + zbe_cached_air = zbe_cached_air - [_x]; + }; + } forEach zbe_cached_air; + { + if (!(_x in _assetsboat)) then { + zbe_cached_boat = zbe_cached_boat - [_x]; + }; + } forEach zbe_cached_boat; + zbe_allVehicles = (_assetscar + _assetsair + _assetsboat); + sleep 15; + }; +}; + +[] spawn { + if (zbe_debug) then { + while {true} do { + uiSleep 15; + zbe_cachedUnits = (count allUnits - ({simulationEnabled _x} count allUnits)); + zbe_cachedVehicles = (count zbe_allVehicles - ({simulationEnabled _x} count zbe_allVehicles)); + zbe_allVehiclesCount = (count zbe_allVehicles); + hintSilent parseText format [" + ZBE Caching
+ Debug data

+ Game time in seconds:%1

+ Number of groups:%2
+ All units:%3
+ Cached units:%4

+ All vehicles:%5
+ Cached vehicles:%6

+ FPS:%7

+ Obj draw distance:%8
+ ", (round time), count allGroups, count allUnits, zbe_cachedUnits, zbe_allVehiclesCount, zbe_cachedVehicles, (round diag_fps), zbe_objectView]; + zbe_log_stats = format ["Groups: %1 # All/Cached Units: %2/%3 # All/Cached Vehicles: %4/%5 # FPS: %6 # ObjectDrawDistance: %7", count allGroups, count allUnits, zbe_cachedUnits, zbe_allVehiclesCount, zbe_cachedVehicles, (round diag_fps), zbe_objectView]; + diag_log format ["%1 ZBE_Cache (%2) --- %3", (round time), name player, zbe_log_stats]; + }; + }; +}; +// Experimental, disabled for now +// if (!isDedicated) then {execFSM "addons\zbe_cache\zbe_clientObjectDrawAuto.fsm";}; \ No newline at end of file diff --git a/addons/zbe_cache/zbe_aiCaching.fsm b/addons/zbe_cache/zbe_aiCaching.fsm new file mode 100644 index 000000000..ab8196df8 --- /dev/null +++ b/addons/zbe_cache/zbe_aiCaching.fsm @@ -0,0 +1,332 @@ +/*%FSM*/ +/*%FSM*/ +/* +item0[] = {"init",0,250,-193.483002,-91.140106,-103.483002,-41.140106,0.000000,"init"}; +item1[] = {"ready_",4,218,-191.749756,-19.800257,-101.749763,30.199743,0.000000,"ready?"}; +item2[] = {"begin",2,250,-195.216248,65.128845,-105.216232,115.128853,0.000000,"begin"}; +item3[] = {"cache_for_AI_",4,218,-306.548492,126.416489,-216.548492,176.416489,1.000000,"cache" \n "for AI?"}; +item4[] = {"cache",2,250,-305.433960,217.955521,-215.433945,267.955475,0.000000,"cache"}; +item5[] = {"unCache_for_AI_",4,218,-193.956940,129.134674,-103.956940,179.134674,1.000000,"unCache" \n "for AI?"}; +item6[] = {"unCache",2,250,-193.956955,218.653885,-103.956940,268.653931,0.000000,"unCache"}; +item7[] = {"reSync_leader",4,218,-259.751007,291.135986,-150.551178,348.335876,2.000000,"reSync leader"}; +item8[] = {"allDead_",4,218,-396.858551,304.806641,-306.858551,354.806641,3.000000,"allDead?"}; +item9[] = {"end",1,250,-519.399902,383.839478,-429.399597,433.839447,0.000000,"end"}; +item10[] = {"delay",8,218,-453.643311,137.457932,-363.643311,187.457932,0.000000,"delay"}; +item11[] = {"delayed",2,250,-496.324066,202.799103,-406.323944,252.799118,0.000000,"delayed"}; +item12[] = {"done_delay__and",4,218,-484.096313,272.248962,-394.096191,322.248962,0.000000,"done delay?" \n "and setPos"}; +item13[] = {"delay",8,218,-60.272964,138.074768,29.727036,188.074768,0.000000,"delay"}; +item14[] = {"delayed_1",2,250,-34.876671,226.961761,55.123352,276.961761,0.000000,"delayed"}; +item15[] = {"done_delay_",4,218,-71.912933,312.674255,18.087072,362.674255,0.000000,"done delay?"}; +item16[] = {"unit_died_",4,4314,-396.614685,84.259239,-306.614685,134.259216,3.000000,"unit died?"}; +item17[] = {"disabled_",4,218,-363.643097,367.045807,-273.643097,417.045837,3.000000,"disabled?"}; +item18[] = {"if_player_is_leader",4,218,-158.950836,-149.471191,-43.840740,-96.007736,1.000000,"if player is" \n "leader then" \n " exit"}; +item19[] = {"exitIsPlayer",1,250,-49.279797,-188.350754,40.720234,-138.350769,0.000000,"exitIsPlayer"}; +item20[] = {"grpNull_",4,218,-646.310730,185.444565,-556.310364,235.444412,2.000000,"grpNull?"}; +link0[] = {0,1}; +link1[] = {0,18}; +link2[] = {0,20}; +link3[] = {1,2}; +link4[] = {2,3}; +link5[] = {3,4}; +link6[] = {4,5}; +link7[] = {4,7}; +link8[] = {4,8}; +link9[] = {4,10}; +link10[] = {4,16}; +link11[] = {4,17}; +link12[] = {5,6}; +link13[] = {6,3}; +link14[] = {6,8}; +link15[] = {6,13}; +link16[] = {7,6}; +link17[] = {8,9}; +link18[] = {10,11}; +link19[] = {11,12}; +link20[] = {12,4}; +link21[] = {13,14}; +link22[] = {14,15}; +link23[] = {15,6}; +link24[] = {16,4}; +link25[] = {17,9}; +link26[] = {18,19}; +link27[] = {20,9}; +globals[] = {0.000000,0,0,0,0,640,480,1,39,6316128,1,-738.175598,360.836456,541.471069,-137.843567,1071,662,1}; +window[] = {0,-1,-1,-1,-1,886,78,1749,78,1,1089}; +*//*%FSM*/ +class FSM +{ + fsmName = "zbe_aiCaching"; + class States + { + /*%FSM*/ + class init + { + name = "init"; + init = /*%FSM*/"//I'm a very tall midget" \n + "private[""_distance"",""_group"",""_leader"",""_toCache"",""_fps"",""_debug"",""_t"",""_groupcount"",""_trandomc"",""_trandomu""];" \n + "_distance = _this select 0;" \n + "_group = _this select 1;" \n + "_fps = _this select 2;" \n + "_debug = _this select 3;" \n + "_leader = leader _group;" \n + "_groupCount = ({alive _x} count units _group);" \n + "_trandomc = (1 + (random 2));" \n + "_trandomu = (3 + (random 2));"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class grpNull_ + { + priority = 2.000000; + to="end"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(isNull _group)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class if_player_is_leader + { + priority = 1.000000; + to="exitIsPlayer"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(isplayer _leader)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class ready_ + { + priority = 0.000000; + to="begin"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"typeName allUnits == ""ARRAY"" && typeName playableUnits == ""ARRAY"""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class begin + { + name = "begin"; + init = /*%FSM*/"if (zbe_debug) then {" \n + "diag_log format [""ZBE_Cache starting for group %1"",_group];" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class cache_for_AI_ + { + priority = 1.000000; + to="cache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(call zbe_cacheEvent);"/*%FSM*/; + action=/*%FSM*/"call zbe_cache;"/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class cache + { + name = "cache"; + init = /*%FSM*/""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class disabled_ + { + priority = 3.000000; + to="end"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(_group getVariable ""zbe_cacheDisabled"")"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class allDead_ + { + priority = 3.000000; + to="end"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"({alive _x} count units _group == 0)"/*%FSM*/; + action=/*%FSM*/"call zbe_unCache;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class unit_died_ + { + priority = 3.000000; + to="cache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(_groupCount > ({alive _x} count units _group))"/*%FSM*/; + action=/*%FSM*/"call zbe_removeDead;" \n + "_groupCount = ({alive _x} count units _group);"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class reSync_leader + { + priority = 2.000000; + to="unCache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(alive _leader) && {!(simulationEnabled (leader _group))}"/*%FSM*/; + action=/*%FSM*/"call zbe_unCache;" \n + "_leader = (leader _group);" \n + "if (zbe_debug) then {" \n + "diag_log format [""ZBE_Cache leader synced for %1, uncached %2"",_group,_leader];" \n + "};"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class unCache_for_AI_ + { + priority = 1.000000; + to="unCache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_fps > _fps) && {(call zbe_cacheEvent)}"/*%FSM*/; + action=/*%FSM*/"call zbe_unCache;" \n + "call zbe_setPosFull;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class delay + { + priority = 0.000000; + to="delayed"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class unCache + { + name = "unCache"; + init = /*%FSM*/""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class allDead_ + { + priority = 3.000000; + to="end"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"({alive _x} count units _group == 0)"/*%FSM*/; + action=/*%FSM*/"call zbe_unCache;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class cache_for_AI_ + { + priority = 1.000000; + to="cache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(call zbe_cacheEvent);"/*%FSM*/; + action=/*%FSM*/"call zbe_cache;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class delay + { + priority = 0.000000; + to="delayed_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class end + { + name = "end"; + init = /*%FSM*/"zbe_cachedGroups = zbe_cachedGroups - [_group];" \n + "_group setVariable [""zbe_cacheDisabled"",true];" \n + "if (zbe_debug) then {" \n + "diag_log format [""ZBE_Cache ending for group %1"",_group];" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + /*%FSM*/ + class delayed + { + name = "delayed"; + init = /*%FSM*/"_t = time;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class done_delay__and + { + priority = 0.000000; + to="cache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(time - _t) > _trandomc;"/*%FSM*/; + action=/*%FSM*/"call zbe_setPosLight;"/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class delayed_1 + { + name = "delayed_1"; + init = /*%FSM*/"_t = time;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class done_delay_ + { + priority = 0.000000; + to="unCache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(time - _t) > _trandomu;"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class exitIsPlayer + { + name = "exitIsPlayer"; + init = /*%FSM*/"zbe_cachedGroups = zbe_cachedGroups - [_group];" \n + "_group setVariable [""zbe_cacheDisabled"",true];" \n + "if (zbe_debug) then {" \n + "diag_log format [""ZBE_Cache ending for group as leader player %1"",_group];" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + }; + initState="init"; + finalStates[] = + { + "end", + "exitIsPlayer", + }; +}; +/*%FSM*/ \ No newline at end of file diff --git a/addons/zbe_cache/zbe_clientObjectDrawAuto.fsm b/addons/zbe_cache/zbe_clientObjectDrawAuto.fsm new file mode 100644 index 000000000..5a7b1c343 --- /dev/null +++ b/addons/zbe_cache/zbe_clientObjectDrawAuto.fsm @@ -0,0 +1,166 @@ +/*%FSM*/ +/*%FSM*/ +/* +item0[] = {"init",0,250,-40.348839,-141.860458,49.651161,-91.860458,0.000000,"init"}; +item1[] = {"ready_",4,218,-167.674408,-71.511627,-77.674408,-21.511627,0.000000,"ready?"}; +item2[] = {"lets_go",2,250,-173.621063,12.372364,-83.621048,62.372364,0.000000,"lets go"}; +item3[] = {"low_fps_",4,4314,-287.400940,67.013428,-197.400940,117.013428,0.000000,"low fps?"}; +item4[] = {"lower_objectDraw",2,250,-292.347900,146.164780,-202.347870,196.164780,0.000000,"lower" \n "objectDrawDist"}; +item5[] = {"higher_fps_",4,218,-173.620911,71.960388,-83.620911,121.960388,0.000000,"higher fps?"}; +item6[] = {"upper_objectDraw",2,250,-176.589066,151.111725,-86.589050,201.111725,0.000000,"upper" \n "objectDrawDist"}; +item7[] = {"higher_than_allowed",4,218,-271.057495,228.868118,-108.523643,298.068298,0.000000,"higher than allowed?"}; +link0[] = {0,1}; +link1[] = {1,2}; +link2[] = {2,3}; +link3[] = {3,4}; +link4[] = {4,3}; +link5[] = {4,5}; +link6[] = {4,7}; +link7[] = {5,6}; +link8[] = {6,3}; +link9[] = {6,5}; +link10[] = {6,7}; +link11[] = {7,4}; +globals[] = {0.000000,0,0,0,0,640,480,1,9,6316128,1,-442.873993,156.923859,387.660034,31.384771,1032,613,1}; +window[] = {0,-1,-1,-1,-1,811,52,1492,52,1,1050}; +*//*%FSM*/ +class FSM +{ + fsmName = "zbe_clientObjectDraw"; + class States + { + /*%FSM*/ + class init + { + name = "init"; + init = /*%FSM*/""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class ready_ + { + priority = 0.000000; + to="lets_go"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"typeName allUnits == ""ARRAY"" && typeName playableUnits == ""ARRAY"""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class lets_go + { + name = "lets_go"; + init = /*%FSM*/"setObjectViewDistance zbe_aiCacheDist;" \n + "zbe_objectView = (zbe_aiCacheDist);"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class low_fps_ + { + priority = 0.000000; + to="lower_objectDraw"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_fps < 20) && (zbe_objectView >= 150)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class lower_objectDraw + { + name = "lower_objectDraw"; + init = /*%FSM*/"zbe_objectView = zbe_objectView - 1;" \n + "setObjectViewDistance zbe_objectView;" \n + ""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class higher_fps_ + { + priority = 0.000000; + to="upper_objectDraw"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_fps > 40) && (zbe_objectView < zbe_aiCacheDist)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class higher_than_allowed + { + priority = 0.000000; + to="lower_objectDraw"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(zbe_objectView > zbe_aiCacheDist)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class low_fps_ + { + priority = 0.000000; + to="lower_objectDraw"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_fps < 20) && (zbe_objectView >= 150)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class upper_objectDraw + { + name = "upper_objectDraw"; + init = /*%FSM*/"zbe_objectView = zbe_objectView + 5;" \n + "setObjectViewDistance zbe_objectView;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class higher_fps_ + { + priority = 0.000000; + to="upper_objectDraw"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_fps > 40) && (zbe_objectView < zbe_aiCacheDist)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class higher_than_allowed + { + priority = 0.000000; + to="lower_objectDraw"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(zbe_objectView > zbe_aiCacheDist)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class low_fps_ + { + priority = 0.000000; + to="lower_objectDraw"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(diag_fps < 20) && (zbe_objectView >= 150)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + }; + initState="init"; + finalStates[] = + { + }; +}; +/*%FSM*/ \ No newline at end of file diff --git a/addons/zbe_cache/zbe_functions.sqf b/addons/zbe_cache/zbe_functions.sqf new file mode 100644 index 000000000..d6869854e --- /dev/null +++ b/addons/zbe_cache/zbe_functions.sqf @@ -0,0 +1,94 @@ +zbe_deleteunitsnotleaderfnc = { + {deleteVehicle _x; + } forEach units _this - [leader _this]; +}; + +zbe_deleteunitsnotleader = { + {_x call zbe_deleteunitsnotleaderfnc; + } forEach allGroups; +}; + +zbe_cache = { + _toCache = (units _group) - [(_leader)]; + {if (!(isPlayer _x) && {!("driver" in assignedVehicleRole _x)}) then { + _x enablesimulationglobal false; + _x hideobjectglobal true;}; + } forEach _toCache; + }; + +zbe_unCache = { + {if (!(isPlayer _x) && {!("driver" in assignedVehicleRole _x)}) then { + _x enablesimulationglobal true; + _x hideobjectglobal false;}; + } forEach _toCache; +}; + +zbe_closestUnit = { + private["_units", "_unit", "_dist", "_udist"]; + _units = _this select 0; + _unit = _this select 1; + _dist = 10^5; + {_udist = _x distance _unit; + if (_udist < _dist) then { + _dist = _udist;}; + } forEach _units; + _dist; +}; + +/* = { + private ["_zbe_leader","_trigUnits"]; + _zbe_leader = _this select 0; + _trigUnits = []; + {if ((((side _x) getFriend (side _zbe_leader)) <= 0.6)) then { + _trigUnits set [count _trigUnits, leader _x]; + }; + } forEach allGroups; + _trigUnits = _trigUnits + ([] call BIS_fnc_listPlayers); + _trigUnits; +};Old function that is no longer used, left here for reference*/ + +zbe_setPosLight = { + {_testpos = (formationPosition _x); + if (!(isNil "_testpos") && (count _testpos > 0)) then { + if (!(isPlayer _x) && (vehicle _x == _x)) then { + _x setPos _testpos; + }; + }; + } forEach _toCache; +}; + +zbe_setPosFull = { + {_testpos = (formationPosition _x); + if (!(isNil "_testpos") && (count _testpos > 0)) then { + if (!(isPlayer _x) && (vehicle _x == _x)) then { + _x setPos _testpos; + _x allowDamage false; + [_x]spawn {sleep 3;(_this select 0) allowDamage true;}; + }; + }; + } forEach _toCache; +}; + +zbe_removeDead = { + {if !(alive _x) then { + _x enablesimulation true; + _x hideobject false; + if (zbe_debug) then { + diag_log format ["ZBE_Cache %1 died while cached from group %2, uncaching and removing from cache loop",_x,_group]; + }; + _toCache = _toCache - [_x]; + }; + } forEach _toCache; +}; + +zbe_cacheEvent = { + ({_x distance _leader < _distance} count zbe_players > 0) || !isNull (_leader findNearestEnemy _leader) +}; + +zbe_vehicleCache = { + _vehicle enablesimulationglobal false; +}; + +zbe_vehicleUncache = { + _vehicle enablesimulationglobal true; +}; \ No newline at end of file diff --git a/addons/zbe_cache/zbe_vehicleCaching.fsm b/addons/zbe_cache/zbe_vehicleCaching.fsm new file mode 100644 index 000000000..1f912e4fe --- /dev/null +++ b/addons/zbe_cache/zbe_vehicleCaching.fsm @@ -0,0 +1,237 @@ +/*%FSM*/ +/*%FSM*/ +/* +item0[] = {"init",0,4346,150.952545,-124.118782,285.369690,-74.118797,0.000000,"init"}; +item1[] = {"ready_",4,218,165.697510,-39.548157,255.697510,10.451843,0.000000,"ready?"}; +item2[] = {"begin",3,250,38.540627,-61.665623,128.540588,-11.665672,0.000000,"begin"}; +item3[] = {"Cache_",4,218,-117.644142,95.191376,-27.644142,145.191376,1.000000,"Cache?"}; +item4[] = {"Cache",2,250,-106.302521,174.015152,-16.302505,224.015152,0.000000,"Cache"}; +item5[] = {"UnCache_",4,218,7.342773,98.661247,97.342773,148.661255,1.000000,"UnCache?"}; +item6[] = {"UnCache",2,250,-4.480785,172.472382,85.519241,222.472382,0.000000,"UnCache"}; +item7[] = {"Alive_",4,218,-100.188004,325.950256,-10.187931,375.950226,2.000000,"Alive?"}; +item8[] = {"End",1,250,-268.281616,305.079041,-178.281586,355.079010,0.000000,"End"}; +item9[] = {"delay",8,218,156.989182,48.521881,246.989182,98.521881,0.000000,"delay"}; +item10[] = {"delay",8,218,-182.287186,31.343327,-92.287186,81.343323,0.000000,"delay"}; +item11[] = {"delayed",2,250,-242.146393,97.758194,-152.146530,147.758163,0.000000,"delayed"}; +item12[] = {"done_delay_",4,218,-223.476700,196.196793,-133.476837,246.196762,0.000000,"done delay?"}; +item13[] = {"delayed_1",2,250,158.328552,121.378693,248.328430,171.378662,0.000000,"delayed"}; +item14[] = {"done_delay_",4,218,128.683578,195.123138,218.683441,245.123108,0.000000,"done delay?"}; +link0[] = {0,1}; +link1[] = {1,2}; +link2[] = {2,3}; +link3[] = {3,4}; +link4[] = {4,5}; +link5[] = {4,7}; +link6[] = {4,10}; +link7[] = {5,6}; +link8[] = {6,3}; +link9[] = {6,7}; +link10[] = {6,9}; +link11[] = {7,8}; +link12[] = {9,13}; +link13[] = {10,11}; +link14[] = {11,12}; +link15[] = {12,4}; +link16[] = {13,14}; +link17[] = {14,6}; +globals[] = {0.000000,0,0,0,0,640,480,3,24,6316128,1,-525.019470,515.356506,433.758392,-224.394806,923,910,1}; +window[] = {2,-1,-1,-1,-1,744,26,1070,26,3,941}; +*//*%FSM*/ +class FSM +{ + fsmName = "ZBE_VehicleCaching"; + class States + { + /*%FSM*/ + class init + { + name = "init"; + init = /*%FSM*/"private[""_vehicle"",""_zbe_dist"",""_t"",""_trandomc"",""_trandomu""];" \n + "_vehicle = _this select 0;" \n + "_zbe_dist = _this select 1;" \n + "_trandomc = (1 + (random 2));" \n + "_trandomu = (3 + (random 2));"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class ready_ + { + priority = 0.000000; + to="begin"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"typeName allUnits == ""ARRAY"" && typeName playableUnits == ""ARRAY"""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class begin + { + name = "begin"; + init = /*%FSM*/"if (zbe_debug) then {" \n + "diag_log format [""ZBE_Cache starting for vehicle %1"",_vehicle];" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Cache_ + { + priority = 1.000000; + to="Cache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(count (crew _vehicle) == 0) && ({_x distance _vehicle < _zbe_dist} count zbe_players == 0)"/*%FSM*/; + action=/*%FSM*/"call zbe_vehicleCache;"/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Cache + { + name = "Cache"; + init = /*%FSM*/""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Alive_ + { + priority = 2.000000; + to="End"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(!alive _vehicle)"/*%FSM*/; + action=/*%FSM*/"call zbe_vehicleUncache;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class UnCache_ + { + priority = 1.000000; + to="UnCache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!(count (crew _vehicle) == 0) || ({_x distance _vehicle < _zbe_dist} count zbe_players > 0)"/*%FSM*/; + action=/*%FSM*/"call zbe_vehicleUncache;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class delay + { + priority = 0.000000; + to="delayed"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class UnCache + { + name = "UnCache"; + init = /*%FSM*/""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Alive_ + { + priority = 2.000000; + to="End"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(!alive _vehicle)"/*%FSM*/; + action=/*%FSM*/"call zbe_vehicleUncache;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class Cache_ + { + priority = 1.000000; + to="Cache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(count (crew _vehicle) == 0) && ({_x distance _vehicle < _zbe_dist} count zbe_players == 0)"/*%FSM*/; + action=/*%FSM*/"call zbe_vehicleCache;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class delay + { + priority = 0.000000; + to="delayed_1"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class End + { + name = "End"; + init = /*%FSM*/"if (zbe_debug) then {" \n + "diag_log format [""ZBE_Cache ending for vehicle %1"",_vehicle];" \n + "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + /*%FSM*/ + class delayed + { + name = "delayed"; + init = /*%FSM*/"_t = time;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class done_delay_ + { + priority = 0.000000; + to="Cache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(time - _t) > _trandomc;"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class delayed_1 + { + name = "delayed_1"; + init = /*%FSM*/"_t = time;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class done_delay_ + { + priority = 0.000000; + to="UnCache"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(time - _t) > _trandomu;"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + }; + initState="init"; + finalStates[] = + { + "End", + }; +}; +/*%FSM*/ \ No newline at end of file diff --git a/init.sqf b/init.sqf index 6322ef9ba..995109bf1 100644 --- a/init.sqf +++ b/init.sqf @@ -71,6 +71,9 @@ if (isServer) then diag_log format ["############################# %1 #############################", missionName]; diag_log "WASTELAND SERVER - Initializing Server"; [] execVM "server\init.sqf"; + + //[AiCacheDistance(players),TargetFPS(-1 for Auto),Debug,CarCacheDistance,AirCacheDistance,BoatCacheDistance]execvm "zbe_cache\main.sqf"; + [1500,-1,false,200,1500,1500]execVM "addons\zbe_cache\main.sqf" }; //init 3rd Party Scripts From b452270776ed20ff46f436262bed943f2f863302 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 12 Jan 2015 00:58:49 -0800 Subject: [PATCH 276/544] Disable ZBE FPS limiter --- init.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.sqf b/init.sqf index 995109bf1..aa57a7eb1 100644 --- a/init.sqf +++ b/init.sqf @@ -73,7 +73,7 @@ if (isServer) then [] execVM "server\init.sqf"; //[AiCacheDistance(players),TargetFPS(-1 for Auto),Debug,CarCacheDistance,AirCacheDistance,BoatCacheDistance]execvm "zbe_cache\main.sqf"; - [1500,-1,false,200,1500,1500]execVM "addons\zbe_cache\main.sqf" + [1500,0,false,200,1500,1500]execVM "addons\zbe_cache\main.sqf" }; //init 3rd Party Scripts From d0023eb7b6dd2242ec9e4d32d8453fe5006a238e Mon Sep 17 00:00:00 2001 From: Ivan Date: Mon, 12 Jan 2015 09:56:25 +0300 Subject: [PATCH 277/544] Admin logging added for GodMode & players makers --- client/systems/adminPanel/playerTags.sqf | 1 + client/systems/adminPanel/toggleGodMode.sqf | 2 ++ server/antihack/notifyAdminMenu.sqf | 19 ++++++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/client/systems/adminPanel/playerTags.sqf b/client/systems/adminPanel/playerTags.sqf index 8eb2648c2..174a36f74 100644 --- a/client/systems/adminPanel/playerTags.sqf +++ b/client/systems/adminPanel/playerTags.sqf @@ -22,6 +22,7 @@ if (_uid call isAdmin) then adminPlayerMarkers = false; hint "Player Markers OFF"; }; + if (!isNil "notifyAdminMenu") then { ["markers",adminPlayerMarkers] spawn notifyAdminMenu }; setGroupIconsVisible [true, true]; while {adminPlayerMarkers} do diff --git a/client/systems/adminPanel/toggleGodMode.sqf b/client/systems/adminPanel/toggleGodMode.sqf index af154d0ba..5a917c647 100644 --- a/client/systems/adminPanel/toggleGodMode.sqf +++ b/client/systems/adminPanel/toggleGodMode.sqf @@ -27,11 +27,13 @@ if ((getPlayerUID player) call isAdmin) then }; hint "You are now invulnerable"; + if (!isNil "notifyAdminMenu") then { ["godmode",true] spawn notifyAdminMenu }; } else { player allowDamage true; player setVariable ["isAdminInvulnerable", false, true]; hint "You are no longer invulnerable"; + if (!isNil "notifyAdminMenu") then { ["godmode",false] spawn notifyAdminMenu }; }; }; diff --git a/server/antihack/notifyAdminMenu.sqf b/server/antihack/notifyAdminMenu.sqf index 2d4909734..a0b0fc2ec 100644 --- a/server/antihack/notifyAdminMenu.sqf +++ b/server/antihack/notifyAdminMenu.sqf @@ -13,7 +13,7 @@ if !([getPlayerUID player, 3] call isAdmin) exitWith {}; private ["_action", "_value", "_cfg", "_displayStr", "_message"]; _action = [_this, 0, "", [""]] call BIS_fnc_param; -_value = [_this, 1, "", [0,"",[]]] call BIS_fnc_param; +_value = [_this, 1, "", [0,"",[],true]] call BIS_fnc_param; switch (toLower _action) do { @@ -24,6 +24,22 @@ switch (toLower _action) do _message = format ["[NOTICE] %1 used the admin menu to obtain $%2", name player, _value]; }; }; + case "markers": + { + if (_value) then { + _message = format ["[NOTICE] %1 ENABLED player markers", name player]; + }else{ + _message = format ["[NOTICE] %1 DISABLED player markers", name player]; + }; + }; + case "godmode": + { + if (_value) then { + _message = format ["[NOTICE] %1 ENABLED GodMode", name player]; + }else{ + _message = format ["[NOTICE] %1 DISABLED GodMode", name player]; + }; + }; case "teleport": { _value resize 2; @@ -54,6 +70,7 @@ if (!isNil "_cfg" && {isClass _cfg}) then if (!isNil "_message" && {_message != ""}) then { [[_message, getPlayerUID player, _flagChecksum, true], "A3W_fnc_chatBroadcast", true] call A3W_fnc_MP; + systemChat format ["Now everyone knows about: %1. What a shame.",_message]; }; [[profileName, getPlayerUID player, _action, _value, _flagChecksum], "A3W_fnc_adminMenuLog", false] call A3W_fnc_MP; From 741e82d1c71a97df7c94353a28757e69ffeac114 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 12 Jan 2015 02:59:51 -0800 Subject: [PATCH 278/544] Cleanup the call.fsm Delete the stuff added by the BIS FSM editor, ... this is such a simple FSM that those things are not needed. --- persistence/sock/call.fsm | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/persistence/sock/call.fsm b/persistence/sock/call.fsm index 642e93155..290175686 100644 --- a/persistence/sock/call.fsm +++ b/persistence/sock/call.fsm @@ -1,31 +1,14 @@ -/*%FSM*/ -/*%FSM*/ -/* -item0[] = {"_",1,4346,100.000000,-75.000000,200.000000,-25.000000,0.000000,""}; -globals[] = {25.000000,1,0,0,16777215,640,480,1,22,6316128,1,-85.912735,315.605164,318.635895,-242.199982,436,609,1}; -window[] = {2,-1,-1,-1,-1,774,25,985,25,3,454}; -*//*%FSM*/ -class FSM -{ - fsmName = "KK's call.fsm"; - class States - { - /*%FSM*/ - class _ - { +class FSM { + fsmName = "call.fsm"; + class States { + class _ { name = "_"; - init = /*%FSM*/missionNamespace setVariable [_this select 0, _this select 1 call (_this select 2)]"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - }; + init = "missionNamespace setVariable [_this select 0, ((_this select 1) call (_this select 2))]"; + precondition = ""; }; - /*%FSM*/ }; initState=""; - finalStates[] = - { + finalStates[] = { "_", }; }; -/*%FSM*/ \ No newline at end of file From c494979a13c4c9ebb23915069063b2b88132a1e8 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 12 Jan 2015 03:11:32 -0800 Subject: [PATCH 279/544] Cleanup globals used to return values form the FSM --- persistence/sock/stats.sqf | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/persistence/sock/stats.sqf b/persistence/sock/stats.sqf index 880aceed9..5a60aef02 100644 --- a/persistence/sock/stats.sqf +++ b/persistence/sock/stats.sqf @@ -256,7 +256,11 @@ stats_write = { def(_fsm); _fsm = [_var_name, _this, stats_write_wrapped] execFSM "persistence\sock\call.fsm"; waitUntil {completedFSM _fsm}; - (missionNamespace getVariable _var_name) + + def(_result); + _result = (missionNamespace getVariable _var_name); + missionNamespace setVariable [_var_name, nil]; + OR(_result,nil) }; stats_write_wrapped = { @@ -601,7 +605,11 @@ stats_read_fsm = { def(_fsm); _fsm = [_var_name, _this, stats_read_wrapped] execFSM "persistence\sock\call.fsm"; waitUntil {completedFSM _fsm}; - (missionNamespace getVariable _var_name) + + def(_result); + _result = (missionNamespace getVariable _var_name); + missionNamespace setVariable [_var_name, nil]; + OR(_result,nil) }; stats_read = { From 602492fc1a1e6bc2d761ccadc7dd26efe211d872 Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Mon, 12 Jan 2015 03:40:41 -0800 Subject: [PATCH 280/544] Update init.sqf --- init.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.sqf b/init.sqf index aa57a7eb1..a28ff0bbc 100644 --- a/init.sqf +++ b/init.sqf @@ -73,7 +73,7 @@ if (isServer) then [] execVM "server\init.sqf"; //[AiCacheDistance(players),TargetFPS(-1 for Auto),Debug,CarCacheDistance,AirCacheDistance,BoatCacheDistance]execvm "zbe_cache\main.sqf"; - [1500,0,false,200,1500,1500]execVM "addons\zbe_cache\main.sqf" + [2550,0,false,1000,1000,1000]execVM "addons\zbe_cache\main.sqf" }; //init 3rd Party Scripts From 46be3da24f63079d1c57665883141863960f3ceb Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Mon, 12 Jan 2015 04:00:08 -0800 Subject: [PATCH 281/544] Update default_config.sqf --- server/default_config.sqf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/server/default_config.sqf b/server/default_config.sqf index f270e2163..7c3268d0e 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -8,9 +8,9 @@ // This file is overriden by the external file "A3Wasteland_settings\main_config.sqf" if present // General settings -A3W_startHour = 12; // In-game hour at mission start (0 to 23) -A3W_timeMultiplierDay = 2.0; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) -A3W_timeMultiplierNight = 2.5; // Sets the speed of time between 8 PM and 5 AM +A3W_startHour = 4; // In-game hour at mission start (0 to 23) +A3W_timeMultiplierDay = 2.5; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) +A3W_timeMultiplierNight = 4.0; // Sets the speed of time between 8 PM and 5 AM A3W_moonLight = 1; // Moon light during night (0 = no, 1 = yes) A3W_teamPlayersMap = 1; // Show all friendly players on the map at all times, regardless of difficulty level (0 = no, 1 = yes) A3W_globalVoiceWarnTimer = 1; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) @@ -49,10 +49,10 @@ A3W_warchestMoneySaving = 0; // Save warchest team money between server re A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts (0 = no, 1 = yes) A3W_cctvCameraSaving = 1; // Save cctv cameras between restarts (0 = no, 1 = yes) A3W_mineSaving = 1; // Save mines between server restarts (0 = no, 1 = yes) -A3W_mineLifetime = 2*24; // Maximum lifetime in hours for mines across server restarts (0 = no time limit) +A3W_mineLifetime = 36; // Maximum lifetime in hours for mines across server restarts (0 = no time limit) A3W_objectLifetime = 7*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) -A3W_vehicleMaxUnusedTime = 36; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) +A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) A3W_storageLifetime = 0; // Maximum lifetime in horus for player's private storage (0 = no time limit) PDB_PlayerFileID = "A3W_"; // Player savefile prefix (change this in case you run multiple servers from the same folder) PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in case you run multiple servers from the same folder) @@ -69,13 +69,13 @@ A3W_playersList_saveInterval = 120; // Number of seconds between player list sav // List of classes for vehicles that are saveable // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; -A3W_locked_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked upon restore +A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked upon restore A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) A3W_vehicleSpawning = 1; // If serverSpawning = 1, spawn vehicles in towns (0 = no, 1 = yes) -A3W_vehicleQuantity = 200; // Approximate number of land vehicles to be spawned in towns +A3W_vehicleQuantity = 225; // Approximate number of land vehicles to be spawned in towns A3W_boatSpawning = 1; // If serverSpawning = 1, spawn boats at marked areas near coasts (0 = no, 1 = yes) A3W_heliSpawning = 1; // If serverSpawning = 1, spawn helicopters in some towns and airfields (0 = no, 1 = yes) A3W_planeSpawning = 1; // If serverSpawning = 1, spawn planes at some airfields (0 = no, 1 = yes) @@ -96,7 +96,7 @@ A3W_payrollAmount = 400; // Amount of money rewarded per territory on // Mission settings A3W_serverMissions = 1; // Enable server missions (0 = no, 1 = yes) -A3W_missionsDifficulty = 0; // Missions difficulty (0 = normal, 1 = hard) +A3W_missionsDifficulty = 1; // Missions difficulty (0 = normal, 1 = hard) A3W_missionsQuantity = 4; // Number of missions running at the same time (0 to 6) A3W_missionFarAiDrawLines = 1; // Draw small red lines on the map from mission markers to individual units & vehicles which are further away than 75m from the objective (0 = no, 1 = yes) A3W_heliPatrolMissions = 1; // Enable missions involving flying helicopters piloted by AI (0 = no, 1 = yes) From 9e901e3cf597bdf0a0807ba574f7e1b0ae7c0216 Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Mon, 12 Jan 2015 04:22:05 -0800 Subject: [PATCH 282/544] Update notifyAdminMenu.sqf --- server/antihack/notifyAdminMenu.sqf | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/server/antihack/notifyAdminMenu.sqf b/server/antihack/notifyAdminMenu.sqf index a0b0fc2ec..b2b68a13d 100644 --- a/server/antihack/notifyAdminMenu.sqf +++ b/server/antihack/notifyAdminMenu.sqf @@ -24,22 +24,6 @@ switch (toLower _action) do _message = format ["[NOTICE] %1 used the admin menu to obtain $%2", name player, _value]; }; }; - case "markers": - { - if (_value) then { - _message = format ["[NOTICE] %1 ENABLED player markers", name player]; - }else{ - _message = format ["[NOTICE] %1 DISABLED player markers", name player]; - }; - }; - case "godmode": - { - if (_value) then { - _message = format ["[NOTICE] %1 ENABLED GodMode", name player]; - }else{ - _message = format ["[NOTICE] %1 DISABLED GodMode", name player]; - }; - }; case "teleport": { _value resize 2; From bb60ba1ac1a829ca1ce3b11d1371e3a0c2a5e22e Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Mon, 12 Jan 2015 04:25:57 -0800 Subject: [PATCH 283/544] Update config.sqf --- addons/parking/config.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/parking/config.sqf b/addons/parking/config.sqf index 175679843..7cdeba0ae 100644 --- a/addons/parking/config.sqf +++ b/addons/parking/config.sqf @@ -9,7 +9,7 @@ pp_markers_enabled = true; pp_markers_properties = ["ICON", "mil_dot", "ColorKhaki", [1.2,1.2], "Parking"]; //number of seconds to wait (after joining the sever) before a vehicle can be retrieved (0 = no wait) -pp_retrieve_wait = 60; +pp_retrieve_wait = 300; //amount of money to charge player for retrieving a vehicle from parking (0 = no charge) pp_retrieve_cost = 1500; From ca5e60a15ebc7dedfde1b340ff5d65930992c8e6 Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Mon, 12 Jan 2015 04:40:48 -0800 Subject: [PATCH 284/544] Update description.ext --- description.ext | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/description.ext b/description.ext index ef7df9f4f..dd30b32ae 100644 --- a/description.ext +++ b/description.ext @@ -81,9 +81,9 @@ class CfgDebriefing { class Reboot { - title = "Rebooting"; - subtitle = "Thank you for playing!"; - description = "Server will save database and restart to increase performance. Please, give us some time :)"; + title = "Restarting"; + subtitle = "Thank you for @ A3Armory"; + description = "Server will save the database and restart to increase performance. Please, give us some time"; }; }; From 4d994b16b231ab21049a194efe92ee30ebd60192 Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Mon, 12 Jan 2015 04:44:04 -0800 Subject: [PATCH 285/544] Update description.ext Oops --- description.ext | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/description.ext b/description.ext index dd30b32ae..07d5dbc7e 100644 --- a/description.ext +++ b/description.ext @@ -82,7 +82,7 @@ class CfgDebriefing class Reboot { title = "Restarting"; - subtitle = "Thank you for @ A3Armory"; + subtitle = "Thank you for playing @ A3Armory"; description = "Server will save the database and restart to increase performance. Please, give us some time"; }; }; From cc9ab094a2c6c6ad9f6e826991aff3fd94f59507 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 12 Jan 2015 04:57:43 -0800 Subject: [PATCH 286/544] Spelling adjustments. --- addons/camera/functions.sqf | 10 +++++----- description.ext | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/camera/functions.sqf b/addons/camera/functions.sqf index 6a889d67c..34432e0b6 100644 --- a/addons/camera/functions.sqf +++ b/addons/camera/functions.sqf @@ -603,7 +603,7 @@ camera_update_nightvision = { false SetCamUseTi 0; }; case 1: { - camera_unit commandChat format["Setting camera NV "]; + camera_unit commandChat format["Setting camera NV"]; camUseNVG true; false SetCamUseTi 0; }; @@ -628,22 +628,22 @@ camera_update_nightvision = { true SetCamUseTi 3; }; case 6: { - camera_unit commandChat format["Setting camera light-orange-hot "]; + camera_unit commandChat format["Setting camera light-orange-hot"]; camUseNVG false; true SetCamUseTi 4; }; case 7: { - camera_unit commandChat format["Setting camera dark-orange-hot "]; + camera_unit commandChat format["Setting camera dark-orange-hot"]; camUseNVG false; true SetCamUseTi 5; }; case 8: { - camera_unit commandChat format["Setting camera orange body-heat "]; + camera_unit commandChat format["Setting camera orange body-heat"]; camUseNVG false; true SetCamUseTi 6; }; case 9: { - camera_unit commandChat format["Setting camera colored body-heat "]; + camera_unit commandChat format["Setting camera colored body-heat"]; camUseNVG false; true SetCamUseTi 7; }; diff --git a/description.ext b/description.ext index 07d5dbc7e..c6f7f92e4 100644 --- a/description.ext +++ b/description.ext @@ -83,7 +83,7 @@ class CfgDebriefing { title = "Restarting"; subtitle = "Thank you for playing @ A3Armory"; - description = "Server will save the database and restart to increase performance. Please, give us some time"; + description = "Server will save the database and restart to increase performance. Please, give the server some time"; }; }; From 5249323ff6ec8f1815ed27639f5fec16a628f81b Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 12 Jan 2015 05:57:45 -0800 Subject: [PATCH 287/544] Updated mission.sqm. --- mission.sqm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mission.sqm b/mission.sqm index bbcd769bc..a941e96b3 100644 --- a/mission.sqm +++ b/mission.sqm @@ -85,7 +85,6 @@ class Mission "A3_Structures_F_Mil_Cargo", "A3_Structures_F_Households_Slum", "A3_Structures_F_Civ_Market", - "A3_Structures_F_Civ_Camping", "A3_Structures_F_EPA_Mil_Scrapyard", "a3_map_altis" }; @@ -2658,7 +2657,7 @@ class Mission }; class Item38 { - position[]={20857.92,2.3399255,14654.278}; + position[]={23823.162,7.3760862,16418.084}; name="Mission_5"; type="Empty"; colorName="ColorOrange"; @@ -2721,7 +2720,7 @@ class Mission }; class Item47 { - position[]={14311.896,97.153267,21831.371}; + position[]={16806.289,6.3426394,21895.252}; name="Mission_15"; type="Empty"; colorName="ColorOrange"; From d1a958ae0184ad53d0f3ecfb7a47e247218a65ef Mon Sep 17 00:00:00 2001 From: Ivan Date: Tue, 13 Jan 2015 07:25:09 +0300 Subject: [PATCH 288/544] Addon allowing to disable UAV control for everyone except owner --- addons/UAV_Control/client.sqf | 14 ++++++++++++++ addons/UAV_Control/server.sqf | 2 ++ client/init.sqf | 1 + server/default_config.sqf | 3 +++ server/init.sqf | 3 +++ 5 files changed, 23 insertions(+) create mode 100644 addons/UAV_Control/client.sqf create mode 100644 addons/UAV_Control/server.sqf diff --git a/addons/UAV_Control/client.sqf b/addons/UAV_Control/client.sqf new file mode 100644 index 000000000..eb9bace32 --- /dev/null +++ b/addons/UAV_Control/client.sqf @@ -0,0 +1,14 @@ +if (["A3W_onlyUavOwner"] call isConfigOn) then +{ + [] spawn { + while {true} do { + waitUntil {sleep 0.5; !(isNull (getConnectedUAV player))}; + _uav = getConnectedUAV player; + //Add keychain check in future + if (((_uav getVariable ["ownerUID",""]) != (getPlayerUID player)) && !(_uav isKindOf "UAV_01_base_F")) then { + player connectTerminalToUAV objNull; + ["You can't control this UAV. It doesn't belong to you", 5] call mf_notify_client; + }; + }; + }; +}; \ No newline at end of file diff --git a/addons/UAV_Control/server.sqf b/addons/UAV_Control/server.sqf new file mode 100644 index 000000000..00d6474bd --- /dev/null +++ b/addons/UAV_Control/server.sqf @@ -0,0 +1,2 @@ +missionNamespace setVariable ["A3W_onlyUavOwner", compileFinal str (missionNamespace getVariable "A3W_onlyUavOwner")]; +publicVariable "A3W_onlyUavOwner"; \ No newline at end of file diff --git a/client/init.sqf b/client/init.sqf index 20a44ce01..56715fe5c 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -129,6 +129,7 @@ A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "client\functions\drawPlayerIcons.sqf"; [] execVM "addons\far_revive\FAR_revive_init.sqf"; [] execVM "addons\camera\functions.sqf"; +[] execVM "addons\UAV_Control\client.sqf"; if (["A3W_teamPlayersMap"] call isConfigOn) then { diff --git a/server/default_config.sqf b/server/default_config.sqf index 7c3fde510..d7b10ee16 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -34,6 +34,9 @@ A3W_healthTime = 60*5; //seconds till death A3W_hungerTime = 60*60; //seconds till starving A3W_thirstTime = 60*50; //seconds till dehydrated +//Ownership settings +A3W_onlyUavOwner = 1; //Allow usage for uav only for person who purchased it + // Persistence settings A3W_playerSaving = 1; // Save player data like position, health, inventory, etc. (0 = no, 1 = yes) A3W_moneySaving = 1; // If playerSaving = 1, save player money amount (0 = no, 1 = yes) diff --git a/server/init.sqf b/server/init.sqf index 59ba3ffc3..b6a49c6e8 100644 --- a/server/init.sqf +++ b/server/init.sqf @@ -272,3 +272,6 @@ if (["A3W_serverMissions"] call isConfigOn) then // Start clean-up loop [] execVM "server\WastelandServClean.sqf"; + +//Addons server-side config values to clients +[] execVM "addons\UAV_Control\server.sqf"; From bc92dabf7e84fe8e6ec912e65ba686b0cac925b6 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 13 Jan 2015 12:32:52 -0800 Subject: [PATCH 289/544] Do not delete map ATMs when ATMs are disabled --- client/functions/generateAtmArray.sqf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/client/functions/generateAtmArray.sqf b/client/functions/generateAtmArray.sqf index 7cd392fbd..18175f7cb 100644 --- a/client/functions/generateAtmArray.sqf +++ b/client/functions/generateAtmArray.sqf @@ -42,8 +42,10 @@ if (["A3W_atmEnabled"] call isConfigOn) then } forEach nearestObjects [_x, [], 3]; }; } forEach A3W_atmArray; -} -else +}; + +//Not nice, leave the ATMs in the map as-is +/*else { // Delete all ATMs { @@ -55,4 +57,4 @@ else } forEach A3W_atmArray; A3W_atmArray = []; -}; +}; */ From 75478692e0b35228b4f1ee6fef2b37d5defe7775 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 13 Jan 2015 12:44:30 -0800 Subject: [PATCH 290/544] Do not draw ATM icons when ATMs are disabled --- client/functions/drawPlayerMarkers.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/functions/drawPlayerMarkers.sqf b/client/functions/drawPlayerMarkers.sqf index 288944560..7607127dd 100644 --- a/client/functions/drawPlayerMarkers.sqf +++ b/client/functions/drawPlayerMarkers.sqf @@ -52,7 +52,7 @@ A3W_mapDraw_thread = [] spawn { _newArrayIcons = []; - if (!isNil "A3W_atmArray") then + if (!isNil "A3W_atmArray" && {["A3W_atmEnabled"] call isConfigOn}) then { _deadATMs = []; From 3bd8273e8dd28ab68cab3bf66ff5eed380746509 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 13 Jan 2015 19:11:45 -0800 Subject: [PATCH 291/544] Remove duplicate earplugs code --- client/clientEvents/onKeyPress.sqf | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/client/clientEvents/onKeyPress.sqf b/client/clientEvents/onKeyPress.sqf index bdc5234ed..f464b4d9b 100644 --- a/client/clientEvents/onKeyPress.sqf +++ b/client/clientEvents/onKeyPress.sqf @@ -88,19 +88,6 @@ switch (true) do _handled = true; }; - // Ear Plugs - End Key - case (_key == 207): - { - if (soundVolume <= 0.5) then - { - 0.5 fadeSound 1; - ["You've taken out your ear plugs.",4] call mf_notify_client; - } else { - 0.5 fadeSound 0.1; - ["You've inserted your ear plugs.",4] call mf_notify_client; - }; - }; - // Earplugs - End Key case (_key == 207): { From d9f76e97b961a22e0d6c480929a734d8280766aa Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Wed, 14 Jan 2015 01:38:53 -0800 Subject: [PATCH 292/544] Delete union_jack.jpg --- client/images/vehicleTextures/union_jack.jpg | Bin 63094 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 client/images/vehicleTextures/union_jack.jpg diff --git a/client/images/vehicleTextures/union_jack.jpg b/client/images/vehicleTextures/union_jack.jpg deleted file mode 100644 index 6fd8ff8fe207a482f1cc6b08a29c9b95c08e842b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63094 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 jzhvKGylpxQ*u7m*R4cr}y88IvYr((I1BWT^|Gx Date: Wed, 14 Jan 2015 00:55:58 -0800 Subject: [PATCH 293/544] Refactor the UAV control addon Also, add a layer of permissions. owner - Only the UAV owner can connect group - Only members of the UAV owner's group can connect side - All members of the same team as the UAV owner can connect --- addons/UAV_Control/client.sqf | 14 -------- addons/UAV_Control/config.sqf | 1 + addons/UAV_Control/functions.sqf | 55 ++++++++++++++++++++++++++++++++ addons/UAV_Control/server.sqf | 2 -- client/init.sqf | 2 +- server/default_config.sqf | 2 -- server/init.sqf | 3 +- 7 files changed, 58 insertions(+), 21 deletions(-) delete mode 100644 addons/UAV_Control/client.sqf create mode 100644 addons/UAV_Control/config.sqf create mode 100644 addons/UAV_Control/functions.sqf delete mode 100644 addons/UAV_Control/server.sqf diff --git a/addons/UAV_Control/client.sqf b/addons/UAV_Control/client.sqf deleted file mode 100644 index eb9bace32..000000000 --- a/addons/UAV_Control/client.sqf +++ /dev/null @@ -1,14 +0,0 @@ -if (["A3W_onlyUavOwner"] call isConfigOn) then -{ - [] spawn { - while {true} do { - waitUntil {sleep 0.5; !(isNull (getConnectedUAV player))}; - _uav = getConnectedUAV player; - //Add keychain check in future - if (((_uav getVariable ["ownerUID",""]) != (getPlayerUID player)) && !(_uav isKindOf "UAV_01_base_F")) then { - player connectTerminalToUAV objNull; - ["You can't control this UAV. It doesn't belong to you", 5] call mf_notify_client; - }; - }; - }; -}; \ No newline at end of file diff --git a/addons/UAV_Control/config.sqf b/addons/UAV_Control/config.sqf new file mode 100644 index 000000000..6df95f96b --- /dev/null +++ b/addons/UAV_Control/config.sqf @@ -0,0 +1 @@ +uav_control_permission = "owner"; // Scope for who is able to access the UAV controls ("owner", "group", "side") \ No newline at end of file diff --git a/addons/UAV_Control/functions.sqf b/addons/UAV_Control/functions.sqf new file mode 100644 index 000000000..0d68d1a59 --- /dev/null +++ b/addons/UAV_Control/functions.sqf @@ -0,0 +1,55 @@ +call compile preprocessFileLineNumbers "addons\UAV_Control\config.sqf"; + +uav_control_get_group_uids = { + private["_player"]; + _player = _this select 0; + + private["_group_uids"]; + _group_uids = [getPlayerUID _player]; + {if (true) then { + private["_member"]; + _member = _x; + if (isNil "_member" || { typeName _member != typeName objNull || {isNull _member}}) exitWith {}; + + private["_member_uid"]; + _member_uid = getPlayerUID _member; + if (isNil "_member_uid" || { typeName _member_uid != typeName "" || {_member_uid == ""}}) exitWith {}; + + _group_uids pushBack _member_uid; + };} forEach (units (group _player)); + + (_group_uids) +}; + + +uav_control_check_access = { + private["_player", "_uav"]; + _player = _this select 0; + _uav = _this select 1; + + if (_uav isKindOf "UAV_01_base_F") exitWith {}; //allow quad-rotors + + private["_uid", "_owner_uid"]; + _owner_uid = _uav getVariable ["ownerUID",""]; + _uid = getPlayerUID _player; + + if (_owner_uid == "" || {_uid == ""}) exitWith {}; //UAV not owned by anyone ... + + if (uav_control_permission == "owner" && {_uid == _owner_uid}) exitWith {}; + if (uav_control_permission == "group" && {_owner_uid in ([_player] call uav_control_get_group_uids)}) exitWith {}; + if (uav_control_permission == "side") exitWith {}; //this is the default enforced by the game + + _player connectTerminalToUAV objNull; + ["You can't control this UAV. It doesn't belong to you", 5] call mf_notify_client; +}; + +uav_control_loop = { + private["_uav1", "_uav2"]; + while {true} do { + waitUntil { sleep 0.1; _uav1 = getConnectedUAV player; !(isNull _uav1)}; + [player, _uav1] call uav_control_check_access; + waitUntil { sleep 0.1; _uav2 = getConnectedUAV player; (isNull _uav2 || {_uav1 != _uav2})}; + }; +}; + +[] spawn uav_control_loop; diff --git a/addons/UAV_Control/server.sqf b/addons/UAV_Control/server.sqf deleted file mode 100644 index 00d6474bd..000000000 --- a/addons/UAV_Control/server.sqf +++ /dev/null @@ -1,2 +0,0 @@ -missionNamespace setVariable ["A3W_onlyUavOwner", compileFinal str (missionNamespace getVariable "A3W_onlyUavOwner")]; -publicVariable "A3W_onlyUavOwner"; \ No newline at end of file diff --git a/client/init.sqf b/client/init.sqf index fbfc6f34b..6e3c4d414 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -134,7 +134,7 @@ A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "client\functions\drawPlayerIcons.sqf"; [] execVM "addons\far_revive\FAR_revive_init.sqf"; [] execVM "addons\camera\functions.sqf"; -[] execVM "addons\UAV_Control\client.sqf"; +[] execVM "addons\UAV_Control\functions.sqf"; call compile preprocessFileLineNumbers "client\functions\generateAtmArray.sqf"; [] execVM "client\functions\drawPlayerMarkers.sqf"; diff --git a/server/default_config.sqf b/server/default_config.sqf index dd0ce7769..ef9b3a1b8 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -43,8 +43,6 @@ A3W_healthTime = 60*5; //seconds till death A3W_hungerTime = 60*60; //seconds till starving A3W_thirstTime = 60*50; //seconds till dehydrated -//Ownership settings -A3W_onlyUavOwner = 1; //Allow usage for uav only for person who purchased it // Persistence settings A3W_playerSaving = 1; // Save player data like position, health, inventory, etc. (0 = no, 1 = yes) diff --git a/server/init.sqf b/server/init.sqf index df766e893..247949920 100644 --- a/server/init.sqf +++ b/server/init.sqf @@ -382,5 +382,4 @@ if (["A3W_serverMissions"] call isConfigOn) then // Start clean-up loop [] execVM "server\WastelandServClean.sqf"; -//Addons server-side config values to clients -[] execVM "addons\UAV_Control\server.sqf"; + From df098811255d8a08a685b950e450aef1f5bb3f2c Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 14 Jan 2015 02:59:51 -0800 Subject: [PATCH 294/544] Updated mission.sqm. --- mission.sqm | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 73 insertions(+), 3 deletions(-) diff --git a/mission.sqm b/mission.sqm index de6186f82..dbc67c24e 100644 --- a/mission.sqm +++ b/mission.sqm @@ -75,11 +75,11 @@ class Mission }; addOnsAuto[]= { - "A3_Characters_F_BLUFOR", + "A3_Characters_F_Civil", "a3_characters_f", + "A3_Characters_F_BLUFOR", "A3_Characters_F_OPFOR", "A3_Characters_F_INDEP", - "A3_Characters_F_Civil", "A3_Structures_F_Households_House_Big01", "A3_Structures_F_Households_House_Small02", "A3_Structures_F_Mil_Cargo", @@ -2089,7 +2089,7 @@ class Mission }; class Vehicles { - items=29; + items=35; class Item0 { position[]={5892.3325,225.05762,20124.521}; @@ -2386,6 +2386,76 @@ class Mission vehicle="Land_Scrap_MRAP_01_F"; skill=0.60000002; }; + class Item29 + { + position[]={3574.9937,11.526847,12800.598}; + azimut=302.65201; + offsetY=0.15; + id=183; + side="EMPTY"; + vehicle="Land_Atm_02_F"; + skill=0.60000002; + init="[this] call A3W_fnc_setupMissionATM"; + description="DO NOT MODIFY IN EDITOR"; + }; + class Item30 + { + position[]={14492,18.768188,16383.846}; + azimut=185.518; + id=184; + side="EMPTY"; + vehicle="Land_Atm_01_F"; + skill=0.60000002; + init="[this] call A3W_fnc_setupMissionATM"; + description="DO NOT MODIFY IN EDITOR"; + }; + class Item31 + { + position[]={25618.681,20.873209,21353.276}; + azimut=136.1844; + offsetY=0.15; + id=185; + side="EMPTY"; + vehicle="Land_Atm_02_F"; + skill=0.60000002; + init="[this] call A3W_fnc_setupMissionATM"; + description="DO NOT MODIFY IN EDITOR"; + }; + class Item32 + { + position[]={16774.646,18.403027,12594.591}; + azimut=270.281; + offsetY=0.15; + id=186; + side="EMPTY"; + vehicle="Land_Atm_02_F"; + skill=0.60000002; + init="[this] call A3W_fnc_setupMissionATM"; + description="DO NOT MODIFY IN EDITOR"; + }; + class Item33 + { + position[]={9507.4814,118.30473,15937.552}; + azimut=4.3657; + offsetY=0.15; + id=187; + side="EMPTY"; + vehicle="Land_Atm_02_F"; + skill=0.60000002; + init="[this] call A3W_fnc_setupMissionATM"; + description="DO NOT MODIFY IN EDITOR"; + }; + class Item34 + { + position[]={21647.465,14.035986,7676.2676}; + azimut=230.96605; + id=188; + side="EMPTY"; + vehicle="Land_Atm_02_F"; + skill=0.60000002; + init="[this] call A3W_fnc_setupMissionATM"; + description="DO NOT MODIFY IN EDITOR"; + }; }; class Markers { From 217b8b7a75b578fb96159f02107b1c828f0a67fe Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 14 Jan 2015 06:53:31 -0800 Subject: [PATCH 295/544] ZBE adjustments. --- client/headless/init.sqf | 2 +- client/init.sqf | 2 +- init.sqf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/headless/init.sqf b/client/headless/init.sqf index a442eda0d..37e255a77 100644 --- a/client/headless/init.sqf +++ b/client/headless/init.sqf @@ -4,4 +4,4 @@ // @file Name: init.sqf // @file Author: AgentRev -execVM "addons\fpsFix\vehicleManagerHC.sqf"; +//execVM "addons\fpsFix\vehicleManagerHC.sqf"; diff --git a/client/init.sqf b/client/init.sqf index 37536d7e1..a7f370a4c 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -132,7 +132,7 @@ A3W_scriptThreads pushBack execVM "client\systems\hud\playerHud.sqf"; [] spawn playerSpawn; -A3W_scriptThreads pushBack execVM "addons\fpsFix\vehicleManager.sqf"; +//A3W_scriptThreads pushBack execVM "addons\fpsFix\vehicleManager.sqf"; A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "client\functions\drawPlayerIcons.sqf"; [] execVM "addons\far_revive\FAR_revive_init.sqf"; diff --git a/init.sqf b/init.sqf index a28ff0bbc..099879f5f 100644 --- a/init.sqf +++ b/init.sqf @@ -73,7 +73,7 @@ if (isServer) then [] execVM "server\init.sqf"; //[AiCacheDistance(players),TargetFPS(-1 for Auto),Debug,CarCacheDistance,AirCacheDistance,BoatCacheDistance]execvm "zbe_cache\main.sqf"; - [2550,0,false,1000,1000,1000]execVM "addons\zbe_cache\main.sqf" + [2550,0,false,100,100,100]execVM "addons\zbe_cache\main.sqf" }; //init 3rd Party Scripts From c94a440200cb240873f24e0e05a07437c01d3899 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 14 Jan 2015 07:02:51 -0800 Subject: [PATCH 296/544] Updated default_config.sqf. --- server/default_config.sqf | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/server/default_config.sqf b/server/default_config.sqf index 7815fd7fd..3aedd94b5 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -31,9 +31,9 @@ A3W_unlimitedStamina = 1; // Allow unlimited sprinting, jumping, etc. ( A3W_bleedingTime = 60; // Time in seconds for which to allow revive after a critical injury (minimum 10 seconds) // ATM settings -A3W_atmEnabled = 0; -A3W_atmMaxBalance = 1000000; // Maximum amount of money that can be stored in a bank account (recommended: 1 million) -A3W_atmTransferFee = 5; // Fee in percent charged to players for money transfers to other players (0 to 50) +A3W_atmEnabled = 1; +A3W_atmMaxBalance = 250000; // Maximum amount of money that can be stored in a bank account (recommended: 1 million) +A3W_atmTransferFee = 10; // Fee in percent charged to players for money transfers to other players (0 to 50) A3W_atmTransferAllTeams = 0; // Allow money transfers between players of all teams/sides (0 = same team only, 1 = all teams) A3W_atmEditorPlacedOnly = 0; // Only allow access via ATMs placed from the mission editor (0 = all ATMs from towns & editor allowed, 1 = ATMs from editor only) Note: Stratis has no town ATMs, only editor ones. A3W_atmMapIcons = 0; // Draw small icons on the map that indicate ATM locations (0 = no, 1 = yes) @@ -76,11 +76,9 @@ A3W_object_saveInterval = 1200; // Number of seconds between object saves A3W_player_saveInterval = 1200; // Number of seconds between player saves A3W_playersList_saveInterval = 120; // Number of seconds between player list saves - // List of classes for vehicles that are saveable - // You can add/remove classes from this list for fine grained control which kind of vehicles can be saved -A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; -A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked upon restore -A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought +A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of classes for vehicles that are saveable +A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked upon restore +A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) From ed335b52b85ee9a7fba5d7e1089610c9d0ec01f2 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 14 Jan 2015 07:06:05 -0800 Subject: [PATCH 297/544] Removed old ATMs to test new ones. --- client/init.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/init.sqf b/client/init.sqf index a7f370a4c..476262a8e 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -138,7 +138,7 @@ A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "addons\far_revive\FAR_revive_init.sqf"; [] execVM "addons\camera\functions.sqf"; [] execVM "addons\water_edge\functions.sqf"; -[] execVM "addons\bank\functions.sqf"; +//[] execVM "addons\bank\functions.sqf"; [] execVM "addons\cctv\functions.sqf"; From e9c8eb95826cbdf7052ad60c1c044262954c8ea4 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 14 Jan 2015 07:43:37 -0800 Subject: [PATCH 298/544] mission.sqm fix. --- mission.sqm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mission.sqm b/mission.sqm index dbc67c24e..928ba824e 100644 --- a/mission.sqm +++ b/mission.sqm @@ -2391,7 +2391,7 @@ class Mission position[]={3574.9937,11.526847,12800.598}; azimut=302.65201; offsetY=0.15; - id=183; + id=190; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; @@ -2402,7 +2402,7 @@ class Mission { position[]={14492,18.768188,16383.846}; azimut=185.518; - id=184; + id=191; side="EMPTY"; vehicle="Land_Atm_01_F"; skill=0.60000002; @@ -2414,7 +2414,7 @@ class Mission position[]={25618.681,20.873209,21353.276}; azimut=136.1844; offsetY=0.15; - id=185; + id=192; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; @@ -2426,7 +2426,7 @@ class Mission position[]={16774.646,18.403027,12594.591}; azimut=270.281; offsetY=0.15; - id=186; + id=193; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; @@ -2438,7 +2438,7 @@ class Mission position[]={9507.4814,118.30473,15937.552}; azimut=4.3657; offsetY=0.15; - id=187; + id=194; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; @@ -2449,7 +2449,7 @@ class Mission { position[]={21647.465,14.035986,7676.2676}; azimut=230.96605; - id=188; + id=195; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; From 3121c63f9fc1697c0ec0b39e732544c3171e087f Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 14 Jan 2015 20:18:42 -0800 Subject: [PATCH 299/544] Removed old ATMs and ZBE. --- addons/bank/atm_functions.sqf | 157 ------ addons/bank/bank_functions.sqf | 40 -- addons/bank/bank_menu.hpp | 154 ------ addons/bank/bank_menu_functions.sqf | 347 ------------- addons/bank/cash_functions.sqf | 43 -- addons/bank/config.sqf | 20 - addons/bank/constants.h | 35 -- addons/bank/defines.h | 1 - addons/bank/functions.sqf | 7 - addons/bank/icons/bank.paa | Bin 1522 -> 0 bytes addons/bank/interact_functions.sqf | 168 ------ addons/bank/macro.h | 142 ----- addons/bank/misc_functions.sqf | 89 ---- addons/bank/ui.hpp | 489 ------------------ addons/zbe_cache/main.sqf | 114 ---- addons/zbe_cache/zbe_aiCaching.fsm | 332 ------------ addons/zbe_cache/zbe_clientObjectDrawAuto.fsm | 166 ------ addons/zbe_cache/zbe_functions.sqf | 94 ---- addons/zbe_cache/zbe_vehicleCaching.fsm | 237 --------- client/headless/init.sqf | 2 +- client/init.sqf | 3 +- description.ext | 4 - init.sqf | 4 +- 23 files changed, 3 insertions(+), 2645 deletions(-) delete mode 100644 addons/bank/atm_functions.sqf delete mode 100644 addons/bank/bank_functions.sqf delete mode 100644 addons/bank/bank_menu.hpp delete mode 100644 addons/bank/bank_menu_functions.sqf delete mode 100644 addons/bank/cash_functions.sqf delete mode 100644 addons/bank/config.sqf delete mode 100644 addons/bank/constants.h delete mode 100644 addons/bank/defines.h delete mode 100644 addons/bank/functions.sqf delete mode 100644 addons/bank/icons/bank.paa delete mode 100644 addons/bank/interact_functions.sqf delete mode 100644 addons/bank/macro.h delete mode 100644 addons/bank/misc_functions.sqf delete mode 100644 addons/bank/ui.hpp delete mode 100644 addons/zbe_cache/main.sqf delete mode 100644 addons/zbe_cache/zbe_aiCaching.fsm delete mode 100644 addons/zbe_cache/zbe_clientObjectDrawAuto.fsm delete mode 100644 addons/zbe_cache/zbe_functions.sqf delete mode 100644 addons/zbe_cache/zbe_vehicleCaching.fsm diff --git a/addons/bank/atm_functions.sqf b/addons/bank/atm_functions.sqf deleted file mode 100644 index de2b2abf7..000000000 --- a/addons/bank/atm_functions.sqf +++ /dev/null @@ -1,157 +0,0 @@ -#include "macro.h" -#include "defines.h" - -if (!undefined(atm_functions_defined)) exitWith {}; -diag_log format["Loading atm functions ..."]; - - -atm_is_object_atm = { - ARGVX4(0,_object,objNull,false); - ([": atm",str(_object)] call BIS_fnc_inString) -}; - - - -atm_is_player_near = { - private["_pos1", "_pos2"]; - _pos1 = (eyePos player); - _pos2 = ([_pos1, call cameraDir] call BIS_fnc_vectorAdd); - - private["_objects"]; - _objects = lineIntersectsWith [_pos1,_pos2,objNull,objNull,true]; - if (isNil "_objects" || {typeName _objects != typeName []}) exitWith {false}; - - - private["_found"]; - _found = false; - { - if ([_x] call atm_is_object_atm) exitWith { - _found = true; - }; - } forEach _objects ; - - (_found) -}; - - -atm_actions = []; - -atm_remove_actions = { - if (count atm_actions == 0) exitWith {}; - - { - private["_action_id"]; - _action_id = _x; - player removeAction _action_id; - } forEach atm_actions; - atm_actions = []; -}; - -atm_is_out_of_service = { - ARGVX4(0,_player,objNull,false); - - if (!isARRAY(bank_towns_whitelist)) exitWith {false}; - if (count(bank_towns_whitelist) == 0) exitWith {false}; - - def(_town); - _town = ((nearestLocations [_player,["NameCityCapital","NameCity","NameVillage"],10000]) select 0); - if (isNil "_town") exitWith {false}; - - def(_town_name); - _town_name = text _town; - if (_town_name in bank_towns_whitelist) exitWith {false}; - - (not(_town_name in bank_towns_whitelist)) -}; - -atm_nearest_town = { - ARGVX3(0,_player,objNull); - - if (!isARRAY(bank_towns_whitelist)) exitWith {}; - if (count(bank_towns_whitelist) == 0) exitWith {}; - - def(_nearest); - init(_dist,1000000); - - {if(true) then { - if (!isSTRING(_x)) exitWith {}; - - def(_loc); - _loc = [_x] call name2location; - if (isNil "_loc") exitWith {}; - - def(_pos); - _pos = (locationPosition _loc); - if (!isARRAY(_pos) || {count(_pos) < 2}) exitWith {}; - _pos set [2, 0]; - - def(_cdist); - _cdist = _player distance _pos; - if (_cdist < _dist) then { - _dist = _cdist; - _nearest = text(_loc); - }; - };} forEach bank_towns_whitelist; - - (OR(_nearest,nil)) -}; - -atm_access = { - init(_player, player); - - if ([_player] call atm_is_out_of_service) exitWith { - //find the nearest city to the player - def(_nearest_town); - _nearest_town = [_player] call atm_nearest_town; - - if (!isSTRING(_nearest_town)) exitWith { - player groupChat format ["%1, this ATM is out of service, and there is no ATM near, sorry.", (name _player)]; - }; - - player groupChat format["%1, this ATM is out of service, the nearest working ATM is in ""%2"" city", (name _player), _nearest_town]; - }; - - [player] call bank_menu_dialog; -}; - -atm_add_actions = { - if (count atm_actions > 0) exitWith {}; - private["_player"]; - _player = _this select 0; - - private["_action_id", "_text"]; - _action_id = _player addAction [" Access ATM", {call atm_access}]; - atm_actions = atm_actions + [_action_id]; -}; - - -atm_check_actions = { - private["_player"]; - _player = player; - private["_vehicle", "_in_vehicle"]; - _vehicle = (vehicle _player); - _in_vehicle = (_vehicle != _player); - - if (not(_in_vehicle || {not(alive _player) || {not(call atm_is_player_near)}})) exitWith { - [_player] call atm_add_actions; - }; - - [_player] call atm_remove_actions; -}; - -atm_client_loop = { - private ["_atm_client_loop_i"]; - _atm_client_loop_i = 0; - - while {_atm_client_loop_i < 5000} do { - call atm_check_actions; - sleep 0.5; - _atm_client_loop_i = _atm_client_loop_i + 1; - }; - [] spawn atm_client_loop; -}; - -[] spawn atm_client_loop; - -atm_functions_defined = true; -diag_log format["Loading atm functions complete"]; diff --git a/addons/bank/bank_functions.sqf b/addons/bank/bank_functions.sqf deleted file mode 100644 index bd1152427..000000000 --- a/addons/bank/bank_functions.sqf +++ /dev/null @@ -1,40 +0,0 @@ -#include "macro.h" -#include "defines.h" - -if (!undefined(bank_functions_defined)) exitWith {}; -diag_log format["Loading bank functions ..."]; - -bank_get_value = { - ARGVX4(0,_player,objNull,0); - if (not([_player] call player_human)) exitWith {0}; - - private ["_value"]; - _value = _player getVariable ["bmoney", 0]; - _value -}; - -bank_set_value = { - ARGVX4(0,_player,objNull,0); - ARGVX4(1,_value,0,0); - - if (not([_player] call player_human)) exitWith {}; - - _player setVariable ["bmoney",_value, true]; -}; - - -bank_transaction = { - ARGVX4(0,_player,objNull,0); - ARGVX4(1,_value,0,0); - - if (not([_player] call player_human)) exitWith {0}; - - private["_cvalue"]; - _cvalue = [_player] call bank_get_value; - _cvalue = _cvalue + _value; - [_player,_cvalue] call bank_set_value; - _cvalue -}; - -diag_log format["Loading bank functions complete"]; -bank_functions_defined = true; \ No newline at end of file diff --git a/addons/bank/bank_menu.hpp b/addons/bank/bank_menu.hpp deleted file mode 100644 index ace33c8d6..000000000 --- a/addons/bank/bank_menu.hpp +++ /dev/null @@ -1,154 +0,0 @@ -#include "constants.h" - -class bank_menu { - idd = bank_dialog_idd; - movingEnable = true; - controlsBackground[] = { - bank_menu_background - }; - - name = "BANK_MENU"; - onUnload = ""; - onLoad="uiNamespace setVariable ['BANK_MENU',_this select 0]"; - - objects[] = {}; - controls[] = { - bank_menu_header, - bank_menu_balance_label, - bank_menu_balance_field, - bank_menu_balance_cash_label, - bank_menu_balance_cash_field, - bank_menu_amount_label, - bank_menu_amount_field, - bank_menu_destination_label, - bank_menu_destination_field, - bank_menu_transaction_fee_label, - bank_menu_transaction_fee_field, - bank_menu_button_deposit, - bank_menu_button_withdraw, - bank_menu_button_close - }; - - class bank_menu_header : ui_RscMenuTitle { - idc = bank_menu_header_idc; - moving = 1; - x = 0.30-10; y = 0.10-10; - w = 0.39; h = 0.63; - text = "Bank Menu"; - }; - - class bank_menu_background: ui_Rscbackground { - idc = bank_menu_background_idc; - moving = 1; - x = 0.30-10; y = 0.10-10; - w = 0.39; h = 0.63; - }; - - //Bank(atm) balance - class bank_menu_balance_label : ui_RscText { - idc = bank_menu_balance_label_idc; - x = 0.32-10; y = 0.47-10; - w = 0.13; h = 0.04; - text = ""; - }; - - class bank_menu_balance_field: ui_RscText { - idc = bank_menu_balance_field_idc; - x = 0.49-10; y = 0.47-10; - w = 0.18; h = 0.04; - colorBackground[] = FIELD_BACKGROUND; - text = "0"; - }; - - //Cash(inventory) balance - class bank_menu_balance_cash_label : ui_RscText { - idc = bank_menu_balance_cash_label_idc; - x = 0.32-10; y = 0.47-10; - w = 0.13; h = 0.04; - text = ""; - }; - - class bank_menu_balance_cash_field: ui_RscText { - idc = bank_menu_balance_cash_field_idc; - x = 0.49-10; y = 0.47-10; - w = 0.18; h = 0.04; - colorBackground[] = FIELD_BACKGROUND; - text = "0"; - }; - - //Transaction amount - class bank_menu_amount_label : ui_RscText { - idc = bank_menu_amount_label_idc; - x = 0.32-10; y = 0.47-10; - w = 0.13; h = 0.04; - text = ""; - }; - - class bank_menu_amount_field: ui_RscEdit { - idc = bank_menu_amount_field_idc; - x = 0.49-10; y = 0.47-10; - w = 0.18; h = 0.04; - colorBackground[] = FIELD_BACKGROUND; - text = "0"; - }; - - //Transaction fee - class bank_menu_transaction_fee_label : ui_RscText { - idc = bank_menu_transaction_fee_label_idc; - x = 0.32-10; y = 0.47-10; - w = 0.13; h = 0.04; - text = ""; - }; - - class bank_menu_transaction_fee_field: ui_RscText { - idc = bank_menu_transaction_fee_field_idc; - x = 0.49-10; y = 0.47-10; - w = 0.18; h = 0.04; - colorBackground[] = FIELD_BACKGROUND; - text = "0"; - }; - - //Destination - class bank_menu_destination_label : ui_RscText { - idc = bank_menu_destination_label_idc; - x = 0.32-10; y = 0.47-10; - w = 0.13; h = 0.04; - text = ""; - }; - - class bank_menu_destination_field : ui_RscCombo { - idc = bank_menu_destination_field_idc; - x = 0.32-10; y = 0.14-10; - w = 0.35; h = 0.30; - onLBSelChanged = ""; - }; - - //Buttons - class bank_menu_button_deposit : ui_RscMenuButton { - idc = bank_menu_button_deposit_idc; - x = 0.32-10; y = 0.62-10; - w = 0.35; h = 0.04; - colorBackgroundDisabled[] = DISABLED_BUTTON_BACKGROUND; - colorDisabled[] = DISABLED_BUTTON_TEXT; - text = ""; - }; - - class bank_menu_button_withdraw : ui_RscMenuButton { - idc = bank_menu_button_withdraw_idc; - x = 0.32-10; y = 0.67-10; - w = 0.35; h = 0.04; - colorBackgroundDisabled[] = DISABLED_BUTTON_BACKGROUND; - colorDisabled[] = DISABLED_BUTTON_TEXT; - text = ""; - }; - - class bank_menu_button_close : ui_RscMenuButton { - idc = bank_menu_button_close_idc; - x = 0.75-10; y = 0.67-10; - w = 0.35; h = 0.04; - colorBackgroundDisabled[] = DISABLED_BUTTON_BACKGROUND; - colorDisabled[] = DISABLED_BUTTON_TEXT; - text = "Close"; - action = "closeDialog 0;"; - }; -}; \ No newline at end of file diff --git a/addons/bank/bank_menu_functions.sqf b/addons/bank/bank_menu_functions.sqf deleted file mode 100644 index b388f5e58..000000000 --- a/addons/bank/bank_menu_functions.sqf +++ /dev/null @@ -1,347 +0,0 @@ -#include "constants.h" -#include "macro.h" -#include "defines.h" - -if (not(undefined(bank_menu_functions_defined))) exitWith {}; - - -bank_menu_dialog = { _this spawn { - disableSerialization; - private["_player"]; - _player = _this select 0; - - if (not([_player] call player_human)) exitWith {}; - if (_player != player) exitWith {}; - - - if (not(createDialog "bank_menu")) exitWith { - player groupChat format["ERROR: Could not create bank menu dialog"]; - }; - - private["_list"]; - _list = [] call bank_menu_setup; - [_player] spawn bank_menu_loop; - - private["_my_index"]; - _my_index = 0; - - {if(true)then { - private["_unit"]; - _unit = _x; - if (not([_unit] call player_human)) exitWith {0}; - - - private["_index", "_uid"]; - _index = _list lbAdd (format["%1 - (%2)",(side _unit),(name _unit)]); - _uid = getPlayerUID _unit; - - _variable_name = format["unit_%1",_uid]; - missionNamespace setVariable [_variable_name, _uid]; - - lbSetData [(ctrlIDC _list),_index,_variable_name]; - lbSetValue [(ctrlIDC _list),_index,_variable_name]; - - if (_unit == _player) then { - _my_index = _index; - }; - - }} forEach allUnits; - - if (_my_index >= 0) then { - _list lbSetCurSel _my_index; - }; - - //Deposit button - buttonSetAction [ - bank_menu_button_deposit_idc, - ( - ' private["_variable_name","_amount"];' + - ' _variable_name = (lbData [bank_menu_destination_field_idc,lbCurSel bank_menu_destination_field_idc]);' + - ' _amount = ([ctrlText bank_menu_amount_field_idc] call parse_number);' + - ' [ ( [' + str(getPlayerUID _player) + '] call uid_to_player), ([(missionNamespace getVariable _variable_name)] call uid_to_player),_amount] call interact_deposit;'+ - 'closedialog 0;' - )]; - - //withdraw button - buttonSetAction [ - bank_menu_button_withdraw_idc, - ( - ' private["_amount"];' + - ' _amount = ([ctrlText bank_menu_amount_field_idc] call parse_number);' + - ' [( [' + str(getPlayerUID _player) + '] call uid_to_player),_amount] call interact_withdraw;'+ - 'closedialog 0;' - )]; - -};}; - - -bank_menu_loop = { - ARGVX3(0,_player,objNull); - - private["_bank_tax"]; - _bank_tax = bank_transaction_tax; - - private["_my_variable"]; - _my_variable = format["unit_%1", getPlayerUID _player]; - - waitUntil { - private["_money","_bank"]; - _money = [_player] call cash_get_value; - _bank = [_player] call bank_get_value; - - ctrlSetText [bank_menu_balance_cash_field_idc,format ["$%1",strM(_money)]]; - ctrlSetText [bank_menu_balance_field_idc,format ["$%1",strM(_bank)]]; - - private["_amount"]; - _amount = [ctrlText bank_menu_amount_field_idc] call parse_number; - if (!isSCALAR(_amount) || {_amount < 0}) then {_amount = 0}; - - if ((lbData[bank_menu_destination_field_idc,(lbCurSel bank_menu_destination_field_idc)]) == _my_variable) then { - ctrlSetText [bank_menu_transaction_fee_field_idc,"$0"]; - ctrlEnable [bank_menu_button_withdraw_idc, true]; - } - else { - ctrlSetText [bank_menu_transaction_fee_field_idc,format ["$%1",strM(round(_amount * (_bank_tax/100)))]]; - ctrlEnable [bank_menu_button_withdraw_idc, false]; - }; - not(ctrlVisible bank_menu_header_idc); - }; -}; -bank_menu_combo_focus = { - ARGVX3(0,_control,controlNull); - _control ctrlSetBackgroundColor [0.1,0.1,0.1,1]; -}; - -bank_menu_combo_blur = { - ARGVX3(0,_control,controlNull); - _control ctrlSetBackgroundColor [1,1,1,0.08]; -}; - -bank_menu_setup = { - disableSerialization; - - private["_display"]; - _display = uiNamespace getVariable "BANK_MENU"; - - _bank_menu_header = _display displayCtrl bank_menu_header_idc; - _bank_menu_background = _display displayCtrl bank_menu_background_idc; - _bank_menu_balance_label = _display displayCtrl bank_menu_balance_label_idc; - _bank_menu_balance_field = _display displayCtrl bank_menu_balance_field_idc; - _bank_menu_balance_cash_label = _display displayCtrl bank_menu_balance_cash_label_idc; - _bank_menu_balance_cash_field = _display displayCtrl bank_menu_balance_cash_field_idc; - _bank_menu_amount_label = _display displayCtrl bank_menu_amount_label_idc; - _bank_menu_amount_field = _display displayCtrl bank_menu_amount_field_idc; - _bank_menu_destination_label = _display displayCtrl bank_menu_destination_label_idc; - _bank_menu_destination_field = _display displayCtrl bank_menu_destination_field_idc; - _bank_menu_transaction_fee_label = _display displayCtrl bank_menu_transaction_fee_label_idc; - _bank_menu_transaction_fee_field = _display displayCtrl bank_menu_transaction_fee_field_idc; - _bank_menu_button_deposit = _display displayCtrl bank_menu_button_deposit_idc; - _bank_menu_button_withdraw = _display displayCtrl bank_menu_button_withdraw_idc; - _bank_menu_button_close = _display displayCtrl bank_menu_button_close_idc; - - - _bank_menu_destination_field ctrlAddEventHandler ["SetFocus","(_this) call bank_menu_combo_focus"]; - _bank_menu_destination_field ctrlAddEventHandler ["KillFocus","(_this) call bank_menu_combo_blur"]; - - private["_x","_y","_ysep","_sep","_bank_title","_w","_h"]; - _x = 0.14; - _y = 0.14; - _w = 0.55; - _h = 0.40; - _ysep = 0.006; - _sep = 0.01; - _bank_title = "BANK MENU"; - - private["_button_font_height","_font_family"]; - _button_font_height = MENU_TITLE_FONT_HEIGHT; - _font_family = "PuristaMedium"; - - //bank header - private["_bhx","_bhy","_bhw","_bhh"]; - _bhx = _x; - _bhy = _y; - _bhw = _w; - _bhh = 0.045; - - _bank_menu_header ctrlSetPosition [_bhx,_bhy,_bhw,_bhh]; - _bank_menu_header ctrlSetFontHeight _button_font_height; - _bank_menu_header ctrlSetText _bank_title; - _bank_menu_header ctrlSetFont _font_family; - _bank_menu_header ctrlCommit 0; - - //bank close button - private["_bcx","_bcy","_bcw","_bch"]; - _bcw = 0.14; - _bch = _bhh; - _bcx = _bhx + _bhw - _bcw; - _bcy = _bhy + _h - _bch; - - _bank_menu_button_close ctrlSetText "Close"; - _bank_menu_button_close ctrlSetPosition [_bcx,_bcy,_bcw,_bch]; - buttonSetAction [(ctrlIDC _bank_menu_button_close),"closeDialog 0"]; - _bank_menu_button_close ctrlCommit 0; - - //bank background - private["_bbx","_bby","_bbw","_bbh"]; - _bbx = _bhx; - _bby = _bhy + _bhh + _ysep; - _bbw = _w; - _bbh = (_bcy ) - (_bhy ) - _bch - _ysep - _ysep; - - _bank_menu_background ctrlSetPosition [_bbx,_bby,_bbw,_bbh]; - _bank_menu_background ctrlSetBackgroundColor [0,0,0,0.65]; - _bank_menu_background ctrlCommit 0; - - //bank deposit button - private["_bdx","_bdy" ,"_bdw","_bdh"]; - _bdx = _bhx; - _bdy = _bby + _bbh + _ysep; - _bdw = 0.11 ; - _bdh = _bch; - - _bank_menu_button_deposit ctrlSetText "Deposit"; - _bank_menu_button_deposit ctrlSetPosition [_bdx,_bdy,_bdw,_bdh]; - _bank_menu_button_deposit ctrlCommit 0; - - //bank withdraw button - private["_bwx","_bwy" ,"_bww","_bwh"]; - _bwx = _bdx + _bdw + _sep; - _bwy = _bdy; + _bbh + _ysep; - _bww = _bcw; - _bwh = _bdh; - - _bank_menu_button_withdraw ctrlSetText "Withdraw"; - _bank_menu_button_withdraw ctrlSetPosition [_bwx,_bwy,_bww,_bwh]; - _bank_menu_button_withdraw ctrlCommit 0; - - //bank balance label - private["_bblx","_bbly","_bblw","_bblh"]; - _bblx = _bbx + _sep * 2; - _bbly = _bby + _sep * 2; - _bblw = (_bbw - _sep *6) / 2; - _bblh = 0.04; - - _bank_menu_balance_label ctrlSetText "Account balance: "; - _bank_menu_balance_label ctrlSetPosition [_bblx,_bbly,_bblw,_bblh]; - _bank_menu_balance_label ctrlSetFontHeight _button_font_height - 0.003; - _bank_menu_balance_label ctrlCommit 0; - - //bank balance field - private["_bbfx","_bbfy","_bbfw","_bbfh"]; - _bbfx = _bblx + _bblw + _sep * 2 ; - _bbfy = _bbly; - _bbfw = _bblw; - _bbfh = _bblh; - - _bank_menu_balance_field ctrlSetFontHeight _button_font_height - 0.003;; - _bank_menu_balance_field ctrlSetFont _font_family; - _bank_menu_balance_field ctrlSetPosition [_bbfx,_bbfy,_bbfw,_bbfh]; - _bank_menu_balance_field ctrlSetBackgroundColor [1,1,1,0.08]; - _bank_menu_balance_field ctrlCommit 0; - - //bank cash balance label - private["_bclx","_bcly","_bclw","_bclh"]; - _bclx = _bblx; - _bcly = _bbly + _bblh + _ysep * 2; - _bclw = _bblw; - _bclh = _bblh; - - _bank_menu_balance_cash_label ctrlSetText "Inventory balance: "; - _bank_menu_balance_cash_label ctrlSetPosition [_bclx,_bcly,_bclw,_bclh]; - _bank_menu_balance_cash_label ctrlSetFontHeight _button_font_height - 0.003; - _bank_menu_balance_cash_label ctrlCommit 0; - - //bank cash balance field - private["_bcfx","_bcfy","_bcfw","_bcfh"]; - _bcfx = _bclx + _bclw + _sep * 2 ; - _bcfy = _bcly; - _bcfw = _bclw; - _bcfh = _bclh; - - _bank_menu_balance_cash_field ctrlSetFontHeight _button_font_height - 0.003;; - _bank_menu_balance_cash_field ctrlSetFont _font_family; - _bank_menu_balance_cash_field ctrlSetPosition [_bcfx,_bcfy,_bcfw,_bcfh]; - _bank_menu_balance_cash_field ctrlSetBackgroundColor [1,1,1,0.08]; - _bank_menu_balance_cash_field ctrlCommit 0; - - - //bank transaction subject label - private["_btlx","_btly","_btlw","_btlh"]; - _btlx = _bclx; - _btly = _bcly + _bclh + _ysep * 2; - _btlw = _bclw; - _btlh = _bclh; - - _bank_menu_destination_label ctrlSetText "Transaction destination: "; - _bank_menu_destination_label ctrlSetPosition [_btlx,_btly,_btlw,_btlh]; - _bank_menu_destination_label ctrlSetFontHeight _button_font_height - 0.003; - _bank_menu_destination_label ctrlCommit 0; - - //bank transaction subject field - private["_btfx","_btfy","_btfw","_btfh"]; - _btfx = _btlx + _btlw + _sep * 2 ; - _btfy = _btly; - _btfw = _btlw; - _btfh = _btlh; - - _bank_menu_destination_field ctrlSetFontHeight _button_font_height - 0.003;; - _bank_menu_destination_field ctrlSetFont _font_family; - _bank_menu_destination_field ctrlSetPosition [_btfx,_btfy,_btfw,_btfh]; - _bank_menu_destination_field ctrlSetBackgroundColor [1,1,1,0.08]; - _bank_menu_destination_field ctrlCommit 0; - - //bank transaction amount label - private["_balx","_baly","_balw","_balh"]; - _balx = _btlx; - _baly = _btly + _btlh + _ysep * 2; - _balw = _btlw; - _balh = _btlh; - - _bank_menu_amount_label ctrlSetText "Transaction amount: "; - _bank_menu_amount_label ctrlSetPosition [_balx,_baly,_balw,_balh]; - _bank_menu_amount_label ctrlSetFontHeight _button_font_height - 0.003; - _bank_menu_amount_label ctrlCommit 0; - - //bank transaction amount field - private["_bafx","_bafy","_bafw","_bafh"]; - _bafx = _balx + _balw + _sep * 2 ; - _bafy = _baly; - _bafw = _balw; - _bafh = _balh; - - _bank_menu_amount_field ctrlSetFontHeight _button_font_height - 0.003;; - _bank_menu_amount_field ctrlSetFont _font_family; - _bank_menu_amount_field ctrlSetPosition [_bafx,_bafy,_bafw,_bafh]; - _bank_menu_amount_field ctrlSetBackgroundColor [1,1,1,0.08]; - _bank_menu_amount_field ctrlCommit 0; - - //bank transaction fee label - private["_bflx","_bfly","_bflw","_bflh"]; - _bflx = _balx; - _bfly = _baly + _balh + _ysep * 2; - _bflw = _balw; - _bflh = _balh; - - //player groupChat format["_bank_menu_transaction_fee_label = %1",_bank_menu_transaction_fee_label]; - _bank_menu_transaction_fee_label ctrlSetText "Transaction fee: "; - _bank_menu_transaction_fee_label ctrlSetPosition [_bflx,_bfly,_bflw,_bflh]; - _bank_menu_transaction_fee_label ctrlSetFontHeight _button_font_height - 0.003; - _bank_menu_transaction_fee_label ctrlCommit 0; - - //bank transaction fee field - private["_bafx","_bafy","_bafw","_bafh"]; - _bffx = _bflx + _bflw + _sep * 2 ; - _bffy = _bfly; - _bffw = _bflw; - _bffh = _bflh; - - _bank_menu_transaction_fee_field ctrlSetFontHeight _button_font_height - 0.003;; - _bank_menu_transaction_fee_field ctrlSetFont _font_family; - _bank_menu_transaction_fee_field ctrlSetPosition [_bffx,_bffy,_bffw,_bffh]; - _bank_menu_transaction_fee_field ctrlSetBackgroundColor [1,1,1,0.08]; - _bank_menu_transaction_fee_field ctrlCommit 0; - - _bank_menu_destination_field -}; - -bank_menu_functions_defined = true; \ No newline at end of file diff --git a/addons/bank/cash_functions.sqf b/addons/bank/cash_functions.sqf deleted file mode 100644 index 185c44c82..000000000 --- a/addons/bank/cash_functions.sqf +++ /dev/null @@ -1,43 +0,0 @@ -#include "macro.h" -#include "defines.h" - -if (!undefined(cash_functions_defined)) exitWith {}; -diag_log format["Loading cash functions ..."]; - - -cash_get_value = { - ARGVX4(0,_player,objNull,0); - if (not([_player] call player_human)) exitWith {0}; - - private ["_value"]; - _value = _player getVariable ["cmoney", 0]; - _value -}; - -cash_set_value = { - ARGVX4(0,_player,objNull,0); - ARGVX4(1,_value,0,0); - - if (not([_player] call player_human)) exitWith {0}; - - - (_player setVariable ["cmoney",_value, true]) -}; - -cash_transaction = { - ARGVX4(0,_player,objNull,0); - ARGVX4(1,_value,0,0); - - if (not([_player] call player_human)) exitWith {0}; - - private["_cvalue"]; - _cvalue = [_player] call cash_get_value; - _cvalue = _cvalue + _value; - [_player,_cvalue] call cash_set_value; - _cvalue -}; - -diag_log format["Loading cash functions complete"]; - - -cash_functions_defined = true; \ No newline at end of file diff --git a/addons/bank/config.sqf b/addons/bank/config.sqf deleted file mode 100644 index 1c70a711a..000000000 --- a/addons/bank/config.sqf +++ /dev/null @@ -1,20 +0,0 @@ -bank_transaction_tax = 5; // % to tax player for transfering money -bank_maximum_balance = 250000; // maximum amount of money that player can have in bank -bank_towns_whitelist = []; //list of town names that ATMs should work (empty means all towns) - -/* - For reference, here is the full list of town names in Altis/ - - There is a notification that tells the player which one is the nearest city that has an ATM. - - Note that not all cities have ATMs ... be sure to verify that the cities you put in the white-list actually have ATMs. - -["Lakka", "Stavros", "Neochori", "Alikampos", "Katalaki", "Orino", "Koroni", -"Gravia", "Poliakko", "Sagonisi", "Athira", "Agios Dionysios", "Ifestiona", -"Galati", "Telos", "Therisa", "Anthrakia", "Syrta", "Topolia", "Zaros", "Abdera", -"Frini", "Kore", "Pyrgos", "Charkia", "Kalithea", "Agia Triada", "Rodopoli", "Nifi", -"Agios Petros", "Dorida", "Ekali", "Negades", "Paros", "Agios Konstantinos", "Panochori", -"Chalkeia", "Kalochori", "Aggelochori", "Neri", "Kavala", "Oreokastro", "Panagia", "Ioannina", -"Delfinaki", "Selakano", "Feres", "Sofia", "Molos"] - -*/ diff --git a/addons/bank/constants.h b/addons/bank/constants.h deleted file mode 100644 index 0770342d8..000000000 --- a/addons/bank/constants.h +++ /dev/null @@ -1,35 +0,0 @@ - -#define FIELD_BACKGROUND {1,1,1,0.1} -#define DISABLED_BUTTON_BACKGROUND {1,0,0,0.4} -#define DISABLED_BUTTON_TEXT {1,1,1,1} - - - -#define GUI_BCG_RGB {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"} - - -#define BOX_BACKGROUND {1,1,1,0.1} -#define DISABLED_BUTTON_BACKGROUND {1,0,0,0.4} -#define DISABLED_BUTTON_TEXT {1,1,1,1} - - - -#define bank_menu_dialog_idd 300 -#define bank_menu_header_idc 301 -#define bank_menu_background_idc 302 -#define bank_menu_balance_label_idc 303 -#define bank_menu_balance_field_idc 304 -#define bank_menu_balance_cash_label_idc 305 -#define bank_menu_balance_cash_field_idc 306 -#define bank_menu_amount_label_idc 307 -#define bank_menu_amount_field_idc 308 -#define bank_menu_destination_label_idc 309 -#define bank_menu_destination_field_idc 310 -#define bank_menu_button_deposit_idc 311 -#define bank_menu_button_withdraw_idc 312 -#define bank_menu_button_close_idc 313 -#define bank_menu_transaction_fee_label_idc 314 -#define bank_menu_transaction_fee_field_idc 315 - -#define MENU_TITLE_FONT_HEIGHT (((((safezoneW / safezoneH) min 1.2) / 1.2) / 32) * 1) - diff --git a/addons/bank/defines.h b/addons/bank/defines.h deleted file mode 100644 index 4f85ce549..000000000 --- a/addons/bank/defines.h +++ /dev/null @@ -1 +0,0 @@ -#define strM(x) ([x, ","] call format_integer) diff --git a/addons/bank/functions.sqf b/addons/bank/functions.sqf deleted file mode 100644 index aee0530ff..000000000 --- a/addons/bank/functions.sqf +++ /dev/null @@ -1,7 +0,0 @@ -[] execVM "addons\bank\config.sqf"; - -{ - private["_h"]; - _h = [] execVM format["addons\bank\%1_functions.sqf", _x]; - waitUntil {scriptDone _h}; -} forEach ["misc", "bank_menu", "bank", "cash", "interact", "atm"] diff --git a/addons/bank/icons/bank.paa b/addons/bank/icons/bank.paa deleted file mode 100644 index 690868620b277078c5377fb206e022b0d6850272..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1522 zcmb_cOH5Ny5S=0g6qSOlpCI~xr&SX)5rRR`zJ}1+NU>@ky3>N6g|J~|G{&YH4K4)n z!vY#uxbU+8!MucsmRO_2kZ3drT7iYy;D-tl0z~R{=C)PPL_*^9zPz40Gw00Q`|edU zv)O3RHy0bD0U$6mbb{mkMk`^4M%ZjDG!a(eLwK*rv`fPOPJGUzBsT_bZQlpeo-=f`YAK_Yb4mr<6UAn-u`d)zr724 zm2#i5z|Zq{t3h}g;*PT zona|%<>>ps*LL#jP$1PaiMa{C`BN#p8v6GWTVI@h4VM)TbfV3F}QnpJvK?o zeC0p(Ln%ootWv4eELT|suviFn46vrc@{PekANkSb*>F0KKaw1d*Huiy6>-XIh}56Z zmlJ#$UC8+)NwQ~kWtXJmpm;SJ+X7Jnj);DtUvcCrrMcwSp)LP}^{~-p5x#7Wt8j}# z>$BR`oS1wkk?U*Go{UYLG2n>!kHZd^h=cg-XtU}2KPrx7EFq$wG-3$GvM~=~2^S=G zVzAW^yo~%b1F+hK;&ae{1eKRow(V0ri2bM2e z`&ffGZNL9F-uRZ)YLm)->1jYi2P>_Kj$Jwb3}m@Lof%Xdn?5!0MWti0_H(oQ_31H= zZ4$tWI*L!}r8Z>QX0ry0FP6o9bW@v+jR1*lY(TL@g^v-yl9||<|Dh@`X6TZa@{tal zb&pH)a1h30pt6pcO5Cpw-;ZF;aOLy(_Ud@zzi`3n%zKwp@5RCM@jKQB`qy8xmY`nf zn$QPKt>s)lgaZrryii~m>mL|*qMkmmsBp0*u7l?zj>De>kkyH|!OoU4n#RiwG9I=D zJ1oj!!qm23+N~)#Fvxe)iD`YS;#|VLq86e}69l|ZqiH=))&}ZDU-o>OUU!26$$kP< CUsvz| diff --git a/addons/bank/interact_functions.sqf b/addons/bank/interact_functions.sqf deleted file mode 100644 index 0d4e5a99a..000000000 --- a/addons/bank/interact_functions.sqf +++ /dev/null @@ -1,168 +0,0 @@ -#include "macro.h" -#include "defines.h" - -if (!undefined(interact_functions_defined)) exitWith {}; -diag_log format["Loading interact functions ..."]; - -interact_deposit_receive = { - ARGVX3(0,_player,objNull); - ARGVX3(1,_sender,objNull); - ARGVX3(2,_amount,0); - - if (not([_player] call player_human)) exitWith {}; - if (not([_sender] call player_human)) exitWith {}; - if (_player != player) exitWith {}; - if (_amount <= 0) exitWith {}; - - [_player,_amount] call bank_transaction; - - player groupChat format["You received $%1 from %2 on your bank account",strM(_amount),(name _sender)]; -}; - -//setup the bank deposit receive handler -format["bank_deposit_receive_%1", getPlayerUID player] addPublicVariableEventHandler { (_this select 1) call interact_deposit_receive;}; - - -interact_deposit_other = { - ARGVX3(0,_player,objNull); - ARGVX3(1,_target,objNull); - ARGVX3(2,_amount,0); - - if (not([_player] call player_human)) exitWith {}; - if (not([_target] call player_human)) exitWith {}; - if (_player != player) exitWith {}; - - - if (_amount <= 0) exitWith {}; - - - private["_player_variable","_player_variable_name","_bank_amount"]; - private["_tax_fee","_total_due","_bank_tax"]; - _bank_tax = bank_transaction_tax; - _tax_fee = round(_amount * (_bank_tax/100)); - _total_due = _tax_fee + _amount; - _bank_amount = [_player] call bank_get_value; - - if (_bank_amount < _total_due) exitWith { - player groupChat format["You do not have enough money in your account to send $%1, with tax fee $%2",strM(_amount),strM(_tax_fee)]; - }; - - private["_target_bank_amount"]; - _target_bank_amount = [_target] call bank_get_value; - if ([_amount, _target_bank_amount] call interact_check_trx_maximum) exitWith {}; - - [_player,-(_total_due)] call bank_transaction; - - player groupChat format["You have sent $%1 to %2,your tax fee was $%3",strM(_amount),(name _target),strM(_tax_fee)]; - - _receive_handler_name = format["bank_deposit_receive_%1", getPlayerUID _target]; - missionNamespace setVariable[_receive_handler_name, [_target,_player,_amount]]; - publicVariable _receive_handler_name; -}; - - - -interact_check_trx_minimum = { - ARGV2(0,_amount); - private["_minimum"]; - _minimum = 10; - if (_amount < _minimum) exitWith { - player groupChat format["The minimum about for a bank transaction is $%1",strM(_minimum)]; - true - }; - false -}; - -interact_check_trx_maximum = { - ARGVX3(0,_amount,0); - ARGVX3(1,_balance,0); - private["_max"]; - _max = bank_maximum_balance; - if ((_amount + _balance) > _max) exitWith { - player groupChat format["This transaction would put the bank account over the $%1 maximum.",strM(_max)]; - true - }; - false -}; - - - -interact_deposit_self ={ - ARGVX3(0,_player,objNull); - ARGVX3(1,_target,objNull); - ARGVX3(2,_amount,0); - - if (not([_player] call player_human)) exitWith {}; - if (not([_target] call player_human)) exitWith {}; - if (_player != player) exitWith {}; - - if (_amount <= 0) exitWith {}; - - if ([_amount] call interact_check_trx_minimum) exitWith {}; - - - private["_money", "_balance"]; - _money = [_player] call cash_get_value; - _balance = [_player] call bank_get_value; - - if ([_amount, _balance] call interact_check_trx_maximum) exitWith {}; - - if (_money < _amount) exitWith { - player groupChat format["You do not have enough money in your inventory to deposit $%1",strM(_amount)]; - }; - - player groupChat format["You have deposited $%1 into your bank account",strM(_amount)]; - [_player,_amount] call bank_transaction; - [_player,-(_amount)] call cash_transaction; - -}; - -interact_deposit = { - ARGVX3(0,_player,objNull); - ARGVX3(1,_target,objNull); - ARGVX3(2,_amount,0); - - if (not([_player] call player_human)) exitWith {}; - if (not([_target] call player_human)) exitWith {}; - - if (_player != player) exitWith {}; - - if (_amount <= 0) exitWith {}; - - if ([_amount] call interact_check_trx_minimum) exitWith {}; - - if (_player == _target) exitWith { - (_this call interact_deposit_self) - }; - - (_this call interact_deposit_other) -}; - -interact_withdraw = { - ARGVX3(0,_player,objNull); - ARGVX3(1,_amount,0); - - if (not([_player] call player_human)) exitWith {}; - if (_player != player) exitWith {}; - - - if (_amount <= 0) exitWith {}; - - if ([_amount] call interact_check_trx_minimum) exitWith {}; - - private["_bank_amount"]; - _bank_amount = [_player] call bank_get_value; - - if (_amount > _bank_amount) exitWith { - player groupChat format["You do not have enough money on your bank account to withdraw $%1",strM(_amount)]; - }; - - [_player,-(_amount)] call bank_transaction; - [_player, _amount] call cash_transaction; - - - player groupChat format["You have withdrawn $%1 from your bank account",strM(_amount)]; -}; - -interact_functions_defined = true; -diag_log format["Loading interact functions complete"]; diff --git a/addons/bank/macro.h b/addons/bank/macro.h deleted file mode 100644 index 7cdedd47a..000000000 --- a/addons/bank/macro.h +++ /dev/null @@ -1,142 +0,0 @@ -//null abstraction -#define _undefined objNull - -#define isARRAY(x) \ -(not(isNil {x}) && {typeName x == typeName []}) - -#define isSTRING(x) \ -(not(isNil {x}) && {typeName x == typeName ""}) - -#define isSCALAR(x) \ -(not(isNil {x}) && {typeName x == typeName 0}) - -#define isBOOLEAN(x) \ -(not(isNil {x}) && {typeName x == typeName true}) - -#define isOBJECT(x) \ -(not(isNil {x}) && {typeName x == typeName objNull}) - -#define isCODE(x) \ -(not(isNil {x}) && {typeName x == typeName {}}) - -#define isSIDE(x) \ -(not(isNil {x}) && {typeName x == typeName sideUnknown}) - -#define isNullable(x) (false ||{ \ - not(isNil {x}) &&{ \ - private["_t"]; \ - _t = typeName x; \ - _t == typeName controlNull ||{ \ - _t == typeName displayNull ||{ \ - _t == typeName locationNull ||{ \ - _t == typeName taskNull ||{ \ - _t == typeName grpNull ||{ \ - _t == typeName objNull \ - }}}}}}}) - -//safer version of isNull that will not crap out when passed number, array, code, string -#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) -#define undefined(x) _isNull(x) -#define defined(x) (not(undefined(x))) - -#define getIf(cond,v1,v2) \ -(if (cond) then {v1} else {v2}) - -#define getUnless(cond,v1,v2) \ -getIf(not(cond),v1,v2) - - -#define OR(x,y) \ -getIf(defined(x),x,y) - -#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) -#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) -#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) -#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) -#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) -#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) -#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) - -#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) - - -#define AND(x,y) \ -OR(v,y) - -#define def(x) \ -private[#x] - -#define init(x,v) def(x); \ -x = v - -#define setIf(cond,x,v1,v2) \ -x = if (cond) then {v1} else {v2} - -#define assignIf setIf - -#define setUnless(cond,x,v1,v2) \ -x = if (cond) then {v2} else {v1} - - -#define assignUnless setUnless - -#define initIf(cond,x,v1,v2) \ -def(x); \ -setIf(cond,x,v1,v2) - -#define initUnless(cond,x,v1,v2) \ -def(x); \ -setUnless(cond,x,v1,v2) - - -//Assign argument at index o to variable v if it's of type t, else default to d -#define ARGV4(o,v,t,d) \ -private[#v]; \ -if (undefined(_this) ||{ \ - typeName _this != typeName [] ||{ \ - o >= (count _this) ||{ \ - v = _this select o; undefined(v) ||{ \ - (#t != "nil" && {typeName v != typeName t}) \ - }}}}) then { \ - v = d; \ -}; - -//Assign argument at index o, to variable v if it's of type t, else default to nil -#define ARGV3(o,v,t) ARGV4(o,v,t,nil) - -//Assign argument at index o to variable v, else default to nil -#define ARGV2(o,v) ARGV3(o,v,nil) - - -//Assign argument at index o to variable v if it's of type t, else exit with d -#define ARGVX4(o,v,t,d) \ -private[#v]; \ -if (undefined(_this) ||{ \ - typeName _this != typeName [] ||{ \ - o >= (count _this) ||{ \ - v = _this select o; undefined(v) ||{ \ - (#t != "nil" && {typeName v != typeName t}) \ - }}}}) exitWith { \ - d \ -}; - -//Assign argument at index o, to variable v if it's of type t, else exit with nil -#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) - -//Assign argument at index o to variable v, else exit with nil -#define ARGVX2(o,v) ARGVX3(o,v,nil) - - - - - -#define DO if (true) then - -#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) -#define xSet(x,o,v) (x set [o, OR(v,nil)]) -#define xPush(x,v) (xSet(x,count(x),v)) -#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} -#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) - - -#define isClient not(isServer) || {isServer && not(isDedicated)} \ No newline at end of file diff --git a/addons/bank/misc_functions.sqf b/addons/bank/misc_functions.sqf deleted file mode 100644 index 68bf3cba7..000000000 --- a/addons/bank/misc_functions.sqf +++ /dev/null @@ -1,89 +0,0 @@ -#include "macro.h" - -format_integer = { - private["_value", "_nan", "_separator"]; - _nan = "NotANumber"; - _value = _this select 0; - _separator = _this select 1; - - if (undefined(_value)) exitWith {_nan}; - if (typeName _value != "SCALAR") exitWith {_nan}; - - if (_value == 0) exitWith {"0"}; - - private["_string_value", "_digits", "_remainder", "_sign"]; - _string_value = ""; - _digits = 0; - _sign = if (_value < 0) then {"-"} else {""}; - _value = abs(round(_value)); - while { _value >= 1 } do { - _digits = _digits + 1; - if ( _digits > 1 && ((_digits - 1) % 3) == 0) then { - _string_value = _separator + _string_value; - }; - _remainder = _value % 10; - _string_value = str(_remainder) + _string_value; - _value = floor(_value / 10); - }; - - _sign+_string_value -}; - -cameraDir = { - ([(positionCameraToWorld [0,0,0]), (positionCameraToWorld [0,0,1])] call BIS_fnc_vectorDiff) -}; - -parse_number = { - private ["_number"]; - _number = _this select 0; - if (undefined(_number)) exitWith {0}; - if (typeName _number == "SCALAR") exitWith {_number}; - if (typeName _number != "STRING") exitWith {0}; - _number = parseNumber(_number); - if (undefined(_number)) exitWith {0}; - if (typeName _number != "SCALAR") exitWith {0}; - _number -}; - -uid_to_player = { - private["_uid"]; - _uid = _this select 0; - if (isNil "_uid" || {typeName _uid != typeName "STRING" || {_uid == ""}}) exitWith {objNull}; - - private["_result"]; - _result = objNull; - - { - if ((getPlayerUID _x) == _uid) exitWith { - _result = _x; - }; - } forEach allUnits; - - (_result) -}; - -player_human = { - ARGVX4(0,_player,objNull,false); - (alive _player && {isPlayer _player}) -}; - - -name2location = { - ARGVX3(0,_name,""); - _name = toLower _name; - - def(_all); - _all = (nearestLocations [player,["NameCityCapital","NameCity","NameVillage"],1000000]); - - - def(_location); - def(_cname); - { - _cname = text(_x); - if ((toLower _cname) == _name) exitWith { - _location = _x; - } - } forEach _all; - - OR(_location,nil) -}; diff --git a/addons/bank/ui.hpp b/addons/bank/ui.hpp deleted file mode 100644 index 7786af8fd..000000000 --- a/addons/bank/ui.hpp +++ /dev/null @@ -1,489 +0,0 @@ -#define FontM "PuristaMedium" -#define FontHTML "PuristaMedium" -#define CT_STATIC 0 -#define CT_BUTTON 1 -#define CT_EDIT 2 -#define CT_SLIDER 3 -#define CT_COMBO 4 -#define CT_LISTBOX 5 -#define CT_TOOLBOX 6 -#define CT_CHECKBOXES 7 -#define CT_PROGRESS 8 -#define CT_HTML 9 -#define CT_STATIC_SKEW 10 -#define CT_ACTIVETEXT 11 -#define CT_TREE 12 -#define CT_STRUCTURED_TEXT 13 -#define CT_CONTEXT_MENU 14 -#define CT_CONTROLS_GROUP 15 -#define CT_SHORTCUT_BUTTON 16 -#define CT_XKEYDESC 40 -#define CT_XBUTTON 41 -#define CT_XLISTBOX 42 -#define CT_XSLIDER 43 -#define CT_XCOMBO 44 -#define CT_ANIMATED_TEXTURE 45 -#define CT_OBJECT 80 -#define CT_OBJECT_ZOOM 81 -#define CT_OBJECT_CONTAINER 82 -#define CT_OBJECT_CONT_ANIM 83 -#define CT_LINEBREAK 98 -#define CT_USER 99 -#define CT_MAP 100 -#define CT_MAP_MAIN 101 -#define CT_LISTNBOX 102 - -#define ST_LEFT 0 -#define ST_RIGHT 1 -#define ST_CENTER 2 -#define ST_MULTI 16 -#define ST_PICTURE 48 -#define ST_FRAME 64 -#define ST_SHADOW 256 -#define ST_NO_RECT 512 - - -// Respawn Dialog additions - -#define FontM_R "PuristaMedium" -#define FontHTML_R "PuristaMedium" -#define Dlg_ROWS 36 -#define Dlg_COLS 90 -#define Dlg_CONTROLHGT ((100/Dlg_ROWS)/100) -#define Dlg_COLWIDTH ((100/Dlg_COLS)/100) -#define Dlg_TEXTHGT_MOD 0.8 -#define Dlg_ROWSPACING_MOD 1.3 -#define Dlg_ROWHGT (Dlg_CONTROLHGT*Dlg_ROWSPACING_MOD) -#define Dlg_TEXTHGT (Dlg_CONTROLHGT*Dlg_TEXTHGT_MOD) -#define Dlg_ICONWIDTH (Dlg_CONTROLHGT*4/5) -#define ST_POS 0x0F -#define ST_HPOS 0x03 -#define ST_VPOS 0x0C -#define ST_LEFT 0x00 -#define ST_RIGHT 0x01 -#define ST_CENTER 0x02 -#define ST_DOWN 0x04 -#define ST_UP 0x08 -#define ST_VCENTER 0x0c -#define ST_TYPE 0xF0 -#define ST_SINGLE 0 -#define ST_TITLE_BAR 32 -#define ST_PICTURE 48 -#define ST_FRAME 64 -#define ST_BACKGROUND 80 -#define ST_GROUP_BOX 96 -#define ST_GROUP_BOX2 112 -#define ST_HUD_BACKGROUND 128 -#define ST_TILE_PICTURE 144 -#define ST_WITH_RECT 160 -#define ST_LINE 176 -#define ST_SHADOW 0x100 -#define ST_NO_RECT 0x200 -#define ST_KEEP_ASPECT_RATIO 0x800 -#define ST_TITLE ST_TITLE_BAR + ST_CENTER -#define SL_DIR 0x400 -#define SL_VERT 0 -#define SL_HORZ 0x400 -#define SL_TEXTURES 0x10 -#define LB_TEXTURES 0x10 -#define LB_MULTI 0x20 - - - -class ui_RscText { - type = CT_STATIC; - idc = -1; - style = ST_LEFT; - colorBackground[] = {0,0,0,0}; - colorText[] = {1,1,1,1}; - font = FontM; - sizeEx = 0.02; - text = ""; -}; - -class ui_RscBgRahmen { - type = CT_STATIC; - idc = -1; - style = ST_FRAME; - colorBackground[] = {1.0,1.0,1.0,0.75}; - colorText[] = {1,1,1,1}; - font = FontM; - SizeEX = 0.025; - text = ""; -}; - -class ui_RscBackground { - colorBackground[] = {0,0,0,0.75}; - text = ""; - type = CT_STATIC; - idc = -1; - style = ST_LEFT; - colorText[] = {1,1,1,1}; - font = FontM; - sizeEx = 0.04; -}; - -class ui_RscPicture { - type = CT_STATIC; - idc = -1; - style = ST_PICTURE; - colorBackground[] = {0,0,0,0}; - colorText[] = {1,1,1,1}; - font = FontM; - sizeEx = 0.02; - text = ""; -}; - -class ui_RscPictureKeepAspect: ui_RscPicture { - style = "0x30 + 0x800"; -}; - -class ui_RscBackgroundPicture { - type = CT_STATIC; - idc = -1; - style = ST_PICTURE; - colorBackground[] = {0,0,0,0}; - colorText[] = {1,1,1,1}; - font = FontM; - sizeEx = 0.02; - text = "dbg.pac"; -}; - -class ui_RscButton { - type = CT_BUTTON; - idc = -1; - style = ST_CENTER; - colorText[] = {1,1,1,1}; - font = FontHTML; - sizeEx = 0.025; - soundPush[] = {"",0.2,1}; - soundClick[] = {"",0.2,1}; - soundEscape[] = {"",0.2,1}; - default = false; - text = ""; - action = ""; - colorActive[] = {0,0,0,0}; - colorDisabled[] = {0,0,0,0.1}; - colorBackground[] = {0.8,0.8,0.8,0.3}; - colorBackgroundActive[] = {0.7,0.7,0.7,1}; - colorBackgroundDisabled[] = {1,1,1,0.5}; - colorFocused[] = {0.84,1,0.55,1}; - colorShadow[] = {0,0,0,0.1}; - colorBorder[] = {1,1,1,0.1}; - offsetX = 0; - offsetY = 0; - offsetPressedX = 0; - offsetPressedY = 0; - borderSize = 0; - soundEnter[] = {"",0.15,1}; -}; - -class ui_RscMenuButton { - type = CT_SHORTCUT_BUTTON; - style = "0x02 + 0xC0"; - default = 0; - shadow = 0; - x = 0; - y = 0; - w = 0.095589; - h = 0.039216; - animTextureNormal = "#(argb,8,8,3)color(0,0,0,1)"; - animTextureDisabled = "#(argb,8,8,3)color(1,0,0,0.8)"; - animTextureOver = "#(argb,8,8,3)color(0,0,0,0.8)"; - animTextureFocused = "#(argb,8,8,3)color(0,0,0,1)"; - animTexturePressed = "#(argb,8,8,3)color(0,0,0,1)"; - animTextureDefault = "#(argb,8,8,3)color(0,0,0,1)"; - textureNoShortcut = ""; - - colorBackground[] = {1,1,1,0.8}; - colorBackground2[] = {1,1,1,0.5}; - color[] = {1,1,1,1}; - color2[] = {1,1,1,1}; - colorText[] = {1,1,1,1}; - colorDisabled[] = {1,0,0,0.8}; - - colorFocused[] = {1,1,1,1}; - colorBackgroundFocused[] = {0,0,0,0}; - - period = 1.2; - periodFocus = 1.2; - periodOver = 1.2; - size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - - class HitZone - { - left = 0.0; - top = 0.0; - right = 0.0; - bottom = 0.0; - }; - - class TextPos - { - left = "0.25 * (((safezoneW / safezoneH) min 1.2) / 40)"; - top = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) - (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)) / 2"; - right = 0.005; - bottom = 0.0; - }; - class Attributes - { - font = "PuristaLight"; - color = "#E5E5E5"; - align = "left"; - shadow = "false"; - }; - class ShortcutPos - { - left = "(6.25 * (((safezoneW / safezoneH) min 1.2) / 40)) - 0.0225 - 0.005"; - top = 0.005; - w = 0.0225; - h = 0.03; - }; - soundEnter[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",0.09,1}; - soundPush[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundPush",0.09,1}; - soundClick[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; - soundEscape[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; -}; - -class ui_RscMenuTitle { - type = CT_STATIC; - idc = -1; - style = ST_CENTER; - colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; - colorText[] = {1,1,1,1}; - font = "PuristaMedium"; - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - text = ""; - shadow = 1; - colorShadow[] = {0,0,0,0.5}; - linespacing = 1; -}; - - -class ui_RscDummy : ui_RscButton { - x = -1.0; - y = -1.0; - idc = -1; - w = 0.01; - h = 0.01; - default = true; -}; - -class ui_RscEdit { - idc = -1; - type = CT_EDIT; - style = ST_LEFT; - font = FontHTML; - sizeEx = 0.02; - colorText[] = {1,1,1,1}; - colorSelection[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",1}; - colorDisabled[] = {1,0,0,0.3}; - autocomplete = false; - text = ""; -}; - -class ui_RscEditMulti : ui_RscEdit { - style = ST_MULTI; - sizeEx = 0.03; - lineSpacing = 1; - colorDisabled[] = {1,1,1,1}; -}; - -class ui_RscLB_C { - style = ST_LEFT; - idc = -1; - colorSelect[] = {0,0,0,1.0}; - colorSelectBackground[] = {0.7,0.7,0.7,1}; - colorText[] = {1,1,1,1}; - colorBackground[] = {0.8,0.8,0.8,0.3}; - colorScrollbar[] = {Dlg_Color_White,1}; - colorDisabled[] = {1,0,0,0.3}; - font = FontHTML; - sizeEx = 0.025; - rowHeight = 0.04; - period = 1.200000; - maxHistoryDelay = 1.000000; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; - - class ScrollBar {}; -}; - -class ui_RscListBox { - type = CT_LISTBOX; - style = ST_MULTI; - lineSpacing = 1; - shadow = 0; - //colorSelect[] = {0,0,0,1}; - colorSelect[] = {1,1,1,1}; - colorText[] = {1,1,1,1}; - colorBackground[] = {0,0,0,0.15}; - colorSelectBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; - colorScrollbar[] = {Dlg_Color_White,1}; - arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; - arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; - wholeHeight = 0; - color[] = {1,1,1,1}; - colorActive[] = {1,0,0,1}; - colorDisabled[] = {1,0,0,0.3}; - font = "PuristaMedium"; - sizeEx = 0.030; - rowHeight = 0.04; - - - soundEnter[] = {"\A3\ui_f\data\sound\onover",0.09,1}; - soundPush[] = {"\A3\ui_f\data\sound\new1",0.0,0}; - soundClick[] = {"\A3\ui_f\data\sound\onclick",0.07,1}; - soundEscape[] = {"\A3\ui_f\data\sound\onescape",0.09,1}; - soundSelect[] = {"\A3\ui_f\data\sound\new1",0.0,0}; - soundExpand[] = {"\A3\ui_f\data\sound\new1",0.0,0}; - soundCollapse[] = {"\A3\ui_f\data\sound\new1",0.0,0}; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; - maxHistoryDelay = 1; - - class ScrollBar { - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.3}; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - }; -}; - - - -class ui_RscListNBox : ui_RscListBox { - type = CT_LISTNBOX; - colorSelect[] = {1,1,1,1}; - colorText[] = {1,1,1,1}; - colorBackground[] = {0,0,0,0.15}; - colorSelectBackground[] = {0,0,0,0}; - drawSideArrows = 0; - toolTip = ""; - idcLeft = 20010; - idcRight = 20011; -}; - - -class ui_RscCombo { - type = CT_COMBO; - style = ST_MULTI; - lineSpacing = 1; - shadow = 0; - sizeEx = 0.030; - rowHeight = 0.04; - - //colorSelect[] = {0,0,0,1.0}; - colorSelect[] = {1,1,1,1.0}; - colorText[] = {1,1,1,1}; - colorBackground[] = {0.8,0.8,0.8,0.3}; -// colorSelectBackground[] = {0.7,0.7,0.7,1}; - colorSelectBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; - colorScrollbar[] = {Dlg_Color_White,1}; - arrowEmpty = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_ca.paa"; - arrowFull = "\A3\ui_f\data\GUI\RscCommon\rsccombo\arrow_combo_active_ca.paa"; - wholeHeight = 0.45; - color[] = {1,1,1,1}; - colorActive[] = {1,0,0,1}; - colorDisabled[] = {1,0,0,0.3}; - font = "PuristaMedium"; - - - soundEnter[] = {"\A3\ui_f\data\sound\onover",0.09,1}; - soundPush[] = {"\A3\ui_f\data\sound\new1",0.0,0}; - soundClick[] = {"\A3\ui_f\data\sound\onclick",0.07,1}; - soundEscape[] = {"\A3\ui_f\data\sound\onescape",0.09,1}; - soundSelect[] = {"\A3\ui_f\data\sound\new1",0.0,0}; - soundExpand[] = {"\A3\ui_f\data\sound\new1",0.0,0}; - soundCollapse[] = {"\A3\ui_f\data\sound\new1",0.0,0}; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; - maxHistoryDelay = 1; - - class ScrollBar - { - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.3}; - thumb = "\a3\ui_f\data\gui\cfg\Scrollbar\thumb_ca.paa"; - arrowEmpty = "\a3\ui_f\data\gui\cfg\Scrollbar\arrowempty_ca.paa"; - arrowFull = "\a3\ui_f\data\gui\cfg\Scrollbar\arrowfull_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - }; - - class ComboScrollBar - { - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.3}; - shadow = 0; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - }; -}; - -/* -class RscCombo: RscLB_C { - type = CT_COMBO; - wholeHeight = 0.3; - soundSelect[] = {"",0.15,1}; - soundExpand[] = {"",0.15,1}; - soundCollapse[] = {"",0.15,1}; - arrowEmpty = ""; - arrowFull = ""; -}; -*/ - -class ui_RscSliderH { - idc = -1; - access = ReadandWrite; - type = CT_SLIDER; - sizeEx = 0.025; - style = 1024; - - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.2}; - arrowEmpty = "\A3\ui_f\data\gui\cfg\slider\arrowEmpty_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\slider\arrowFull_ca.paa"; - border = "\A3\ui_f\data\gui\cfg\slider\border_ca.paa"; - thumb = "\A3\ui_f\data\gui\cfg\slider\thumb_ca.paa"; -}; - -class ui_RscSliderV { - access = ReadandWrite; - type = CT_SLIDER; - idc = -1; - sizeEx = 0.025; - style = 0; - color[] = {0.2,0.2,0.2,1}; - colorActive[] = {1,1,1,1}; -}; - -class ui_RscCheckBox { - idc = -1; - type = CT_CHECKBOXES; - style = ST_CENTER; - - colorText[] = {1,1,1,1}; - color[] = {0,1,0,1}; - colorTextSelect[] = {0,0.8,0,1}; - colorSelectedBg[] = {1,1,1,0}; - colorSelect[] = {0,0,0,1}; - colorTextDisable[] = {0.4,0.4,0.4,1}; - colorDisable[] = {0.4,0.4,0.4,1}; - font = "PuristaMedium"; - SizeEX=0.025; - rows = 1; - columns = 1; - strings[] = {""}; -}; \ No newline at end of file diff --git a/addons/zbe_cache/main.sqf b/addons/zbe_cache/main.sqf deleted file mode 100644 index 64d40013c..000000000 --- a/addons/zbe_cache/main.sqf +++ /dev/null @@ -1,114 +0,0 @@ -zbe_aiCacheDist = _this select 0; -zbe_minFrameRate = _this select 1; -zbe_debug = _this select 2; -zbe_vehicleCacheDistCar = _this select 3; -zbe_vehicleCacheDistAir = _this select 4; -zbe_vehicleCacheDistBoat = _this select 5; - -zbe_allGroups = 0; -zbe_cachedGroups = []; -zbe_cachedUnits = 0; -zbe_allVehicles = 0; -zbe_cachedVehicles = 0; -zbe_objectView = 0; -zbe_players = []; - -call compileFinal preprocessFileLineNumbers "addons\zbe_cache\zbe_functions.sqf"; - -if (zbe_minFrameRate == -1) then {if (isDedicated) then {zbe_minFrameRate = 16} else {zbe_minFrameRate = 31};}; - -zbe_mapsize = [] call bis_fnc_mapSize; -zbe_mapside = zbe_mapsize / 2; -zbe_centerPOS = [zbe_mapside, zbe_mapside, 0]; - -[] spawn { - while {true} do { - sleep 15; - zbe_players = (switchableUnits + playableUnits); - { - _disable = _x getVariable "zbe_cacheDisabled"; - _disable = if (isNil "_disable") then { false; - } else {_disable; - }; - if (!_disable && !(_x in zbe_cachedGroups)) then { - zbe_cachedGroups = zbe_cachedGroups + [_x]; - [zbe_aiCacheDist, _x, zbe_minFrameRate, zbe_debug] execFSM "addons\zbe_cache\zbe_aiCaching.fsm"; - }; - } forEach allGroups; - }; -}; -// Vehicle Caching Beta (for client FPS) -[] spawn { - private ["_assetscar", "_assetsair", "_assetsboat"]; - zbe_cached_cars = []; - zbe_cached_air = []; - zbe_cached_boat = []; - while {true} do { - _assetscar = zbe_centerPOS nearEntities ["LandVehicle", zbe_mapside]; - { - if !(_x in zbe_cached_cars) then { - zbe_cached_cars = zbe_cached_cars + [_x]; - [_x, zbe_vehicleCacheDistCar] execFSM "addons\zbe_cache\zbe_vehicleCaching.fsm"; - }; - } forEach _assetscar; - _assetsair = zbe_centerPOS nearEntities ["Air", zbe_mapside]; - { - if !(_x in zbe_cached_air) then { - zbe_cached_air = zbe_cached_air + [_x]; - [_x, zbe_vehicleCacheDistAir] execFSM "addons\zbe_cache\zbe_vehicleCaching.fsm"; - }; - } forEach _assetsair; - _assetsboat = zbe_centerPOS nearEntities ["Ship", zbe_mapside]; - { - if !(_x in zbe_cached_boat) then { - zbe_cached_boat = zbe_cached_boat + [_x]; - [_x, zbe_vehicleCacheDistBoat] execFSM "addons\zbe_cache\zbe_vehicleCaching.fsm"; - }; - } forEach _assetsboat; - - { - if (!(_x in _assetscar)) then { - zbe_cached_cars = zbe_cached_cars - [_x]; - }; - } forEach zbe_cached_cars; - { - if (!(_x in _assetsair)) then { - zbe_cached_air = zbe_cached_air - [_x]; - }; - } forEach zbe_cached_air; - { - if (!(_x in _assetsboat)) then { - zbe_cached_boat = zbe_cached_boat - [_x]; - }; - } forEach zbe_cached_boat; - zbe_allVehicles = (_assetscar + _assetsair + _assetsboat); - sleep 15; - }; -}; - -[] spawn { - if (zbe_debug) then { - while {true} do { - uiSleep 15; - zbe_cachedUnits = (count allUnits - ({simulationEnabled _x} count allUnits)); - zbe_cachedVehicles = (count zbe_allVehicles - ({simulationEnabled _x} count zbe_allVehicles)); - zbe_allVehiclesCount = (count zbe_allVehicles); - hintSilent parseText format [" - ZBE Caching
- Debug data

- Game time in seconds:%1

- Number of groups:%2
- All units:%3
- Cached units:%4

- All vehicles:%5
- Cached vehicles:%6

- FPS:%7

- Obj draw distance:%8
- ", (round time), count allGroups, count allUnits, zbe_cachedUnits, zbe_allVehiclesCount, zbe_cachedVehicles, (round diag_fps), zbe_objectView]; - zbe_log_stats = format ["Groups: %1 # All/Cached Units: %2/%3 # All/Cached Vehicles: %4/%5 # FPS: %6 # ObjectDrawDistance: %7", count allGroups, count allUnits, zbe_cachedUnits, zbe_allVehiclesCount, zbe_cachedVehicles, (round diag_fps), zbe_objectView]; - diag_log format ["%1 ZBE_Cache (%2) --- %3", (round time), name player, zbe_log_stats]; - }; - }; -}; -// Experimental, disabled for now -// if (!isDedicated) then {execFSM "addons\zbe_cache\zbe_clientObjectDrawAuto.fsm";}; \ No newline at end of file diff --git a/addons/zbe_cache/zbe_aiCaching.fsm b/addons/zbe_cache/zbe_aiCaching.fsm deleted file mode 100644 index ab8196df8..000000000 --- a/addons/zbe_cache/zbe_aiCaching.fsm +++ /dev/null @@ -1,332 +0,0 @@ -/*%FSM*/ -/*%FSM*/ -/* -item0[] = {"init",0,250,-193.483002,-91.140106,-103.483002,-41.140106,0.000000,"init"}; -item1[] = {"ready_",4,218,-191.749756,-19.800257,-101.749763,30.199743,0.000000,"ready?"}; -item2[] = {"begin",2,250,-195.216248,65.128845,-105.216232,115.128853,0.000000,"begin"}; -item3[] = {"cache_for_AI_",4,218,-306.548492,126.416489,-216.548492,176.416489,1.000000,"cache" \n "for AI?"}; -item4[] = {"cache",2,250,-305.433960,217.955521,-215.433945,267.955475,0.000000,"cache"}; -item5[] = {"unCache_for_AI_",4,218,-193.956940,129.134674,-103.956940,179.134674,1.000000,"unCache" \n "for AI?"}; -item6[] = {"unCache",2,250,-193.956955,218.653885,-103.956940,268.653931,0.000000,"unCache"}; -item7[] = {"reSync_leader",4,218,-259.751007,291.135986,-150.551178,348.335876,2.000000,"reSync leader"}; -item8[] = {"allDead_",4,218,-396.858551,304.806641,-306.858551,354.806641,3.000000,"allDead?"}; -item9[] = {"end",1,250,-519.399902,383.839478,-429.399597,433.839447,0.000000,"end"}; -item10[] = {"delay",8,218,-453.643311,137.457932,-363.643311,187.457932,0.000000,"delay"}; -item11[] = {"delayed",2,250,-496.324066,202.799103,-406.323944,252.799118,0.000000,"delayed"}; -item12[] = {"done_delay__and",4,218,-484.096313,272.248962,-394.096191,322.248962,0.000000,"done delay?" \n "and setPos"}; -item13[] = {"delay",8,218,-60.272964,138.074768,29.727036,188.074768,0.000000,"delay"}; -item14[] = {"delayed_1",2,250,-34.876671,226.961761,55.123352,276.961761,0.000000,"delayed"}; -item15[] = {"done_delay_",4,218,-71.912933,312.674255,18.087072,362.674255,0.000000,"done delay?"}; -item16[] = {"unit_died_",4,4314,-396.614685,84.259239,-306.614685,134.259216,3.000000,"unit died?"}; -item17[] = {"disabled_",4,218,-363.643097,367.045807,-273.643097,417.045837,3.000000,"disabled?"}; -item18[] = {"if_player_is_leader",4,218,-158.950836,-149.471191,-43.840740,-96.007736,1.000000,"if player is" \n "leader then" \n " exit"}; -item19[] = {"exitIsPlayer",1,250,-49.279797,-188.350754,40.720234,-138.350769,0.000000,"exitIsPlayer"}; -item20[] = {"grpNull_",4,218,-646.310730,185.444565,-556.310364,235.444412,2.000000,"grpNull?"}; -link0[] = {0,1}; -link1[] = {0,18}; -link2[] = {0,20}; -link3[] = {1,2}; -link4[] = {2,3}; -link5[] = {3,4}; -link6[] = {4,5}; -link7[] = {4,7}; -link8[] = {4,8}; -link9[] = {4,10}; -link10[] = {4,16}; -link11[] = {4,17}; -link12[] = {5,6}; -link13[] = {6,3}; -link14[] = {6,8}; -link15[] = {6,13}; -link16[] = {7,6}; -link17[] = {8,9}; -link18[] = {10,11}; -link19[] = {11,12}; -link20[] = {12,4}; -link21[] = {13,14}; -link22[] = {14,15}; -link23[] = {15,6}; -link24[] = {16,4}; -link25[] = {17,9}; -link26[] = {18,19}; -link27[] = {20,9}; -globals[] = {0.000000,0,0,0,0,640,480,1,39,6316128,1,-738.175598,360.836456,541.471069,-137.843567,1071,662,1}; -window[] = {0,-1,-1,-1,-1,886,78,1749,78,1,1089}; -*//*%FSM*/ -class FSM -{ - fsmName = "zbe_aiCaching"; - class States - { - /*%FSM*/ - class init - { - name = "init"; - init = /*%FSM*/"//I'm a very tall midget" \n - "private[""_distance"",""_group"",""_leader"",""_toCache"",""_fps"",""_debug"",""_t"",""_groupcount"",""_trandomc"",""_trandomu""];" \n - "_distance = _this select 0;" \n - "_group = _this select 1;" \n - "_fps = _this select 2;" \n - "_debug = _this select 3;" \n - "_leader = leader _group;" \n - "_groupCount = ({alive _x} count units _group);" \n - "_trandomc = (1 + (random 2));" \n - "_trandomu = (3 + (random 2));"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class grpNull_ - { - priority = 2.000000; - to="end"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(isNull _group)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class if_player_is_leader - { - priority = 1.000000; - to="exitIsPlayer"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(isplayer _leader)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class ready_ - { - priority = 0.000000; - to="begin"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"typeName allUnits == ""ARRAY"" && typeName playableUnits == ""ARRAY"""/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class begin - { - name = "begin"; - init = /*%FSM*/"if (zbe_debug) then {" \n - "diag_log format [""ZBE_Cache starting for group %1"",_group];" \n - "};"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class cache_for_AI_ - { - priority = 1.000000; - to="cache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!(call zbe_cacheEvent);"/*%FSM*/; - action=/*%FSM*/"call zbe_cache;"/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class cache - { - name = "cache"; - init = /*%FSM*/""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class disabled_ - { - priority = 3.000000; - to="end"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(_group getVariable ""zbe_cacheDisabled"")"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class allDead_ - { - priority = 3.000000; - to="end"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"({alive _x} count units _group == 0)"/*%FSM*/; - action=/*%FSM*/"call zbe_unCache;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class unit_died_ - { - priority = 3.000000; - to="cache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(_groupCount > ({alive _x} count units _group))"/*%FSM*/; - action=/*%FSM*/"call zbe_removeDead;" \n - "_groupCount = ({alive _x} count units _group);"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class reSync_leader - { - priority = 2.000000; - to="unCache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!(alive _leader) && {!(simulationEnabled (leader _group))}"/*%FSM*/; - action=/*%FSM*/"call zbe_unCache;" \n - "_leader = (leader _group);" \n - "if (zbe_debug) then {" \n - "diag_log format [""ZBE_Cache leader synced for %1, uncached %2"",_group,_leader];" \n - "};"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class unCache_for_AI_ - { - priority = 1.000000; - to="unCache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_fps > _fps) && {(call zbe_cacheEvent)}"/*%FSM*/; - action=/*%FSM*/"call zbe_unCache;" \n - "call zbe_setPosFull;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class delay - { - priority = 0.000000; - to="delayed"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/""/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class unCache - { - name = "unCache"; - init = /*%FSM*/""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class allDead_ - { - priority = 3.000000; - to="end"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"({alive _x} count units _group == 0)"/*%FSM*/; - action=/*%FSM*/"call zbe_unCache;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class cache_for_AI_ - { - priority = 1.000000; - to="cache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!(call zbe_cacheEvent);"/*%FSM*/; - action=/*%FSM*/"call zbe_cache;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class delay - { - priority = 0.000000; - to="delayed_1"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/""/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class end - { - name = "end"; - init = /*%FSM*/"zbe_cachedGroups = zbe_cachedGroups - [_group];" \n - "_group setVariable [""zbe_cacheDisabled"",true];" \n - "if (zbe_debug) then {" \n - "diag_log format [""ZBE_Cache ending for group %1"",_group];" \n - "};"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - }; - }; - /*%FSM*/ - /*%FSM*/ - class delayed - { - name = "delayed"; - init = /*%FSM*/"_t = time;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class done_delay__and - { - priority = 0.000000; - to="cache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(time - _t) > _trandomc;"/*%FSM*/; - action=/*%FSM*/"call zbe_setPosLight;"/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class delayed_1 - { - name = "delayed_1"; - init = /*%FSM*/"_t = time;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class done_delay_ - { - priority = 0.000000; - to="unCache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(time - _t) > _trandomu;"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class exitIsPlayer - { - name = "exitIsPlayer"; - init = /*%FSM*/"zbe_cachedGroups = zbe_cachedGroups - [_group];" \n - "_group setVariable [""zbe_cacheDisabled"",true];" \n - "if (zbe_debug) then {" \n - "diag_log format [""ZBE_Cache ending for group as leader player %1"",_group];" \n - "};"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - }; - }; - /*%FSM*/ - }; - initState="init"; - finalStates[] = - { - "end", - "exitIsPlayer", - }; -}; -/*%FSM*/ \ No newline at end of file diff --git a/addons/zbe_cache/zbe_clientObjectDrawAuto.fsm b/addons/zbe_cache/zbe_clientObjectDrawAuto.fsm deleted file mode 100644 index 5a7b1c343..000000000 --- a/addons/zbe_cache/zbe_clientObjectDrawAuto.fsm +++ /dev/null @@ -1,166 +0,0 @@ -/*%FSM*/ -/*%FSM*/ -/* -item0[] = {"init",0,250,-40.348839,-141.860458,49.651161,-91.860458,0.000000,"init"}; -item1[] = {"ready_",4,218,-167.674408,-71.511627,-77.674408,-21.511627,0.000000,"ready?"}; -item2[] = {"lets_go",2,250,-173.621063,12.372364,-83.621048,62.372364,0.000000,"lets go"}; -item3[] = {"low_fps_",4,4314,-287.400940,67.013428,-197.400940,117.013428,0.000000,"low fps?"}; -item4[] = {"lower_objectDraw",2,250,-292.347900,146.164780,-202.347870,196.164780,0.000000,"lower" \n "objectDrawDist"}; -item5[] = {"higher_fps_",4,218,-173.620911,71.960388,-83.620911,121.960388,0.000000,"higher fps?"}; -item6[] = {"upper_objectDraw",2,250,-176.589066,151.111725,-86.589050,201.111725,0.000000,"upper" \n "objectDrawDist"}; -item7[] = {"higher_than_allowed",4,218,-271.057495,228.868118,-108.523643,298.068298,0.000000,"higher than allowed?"}; -link0[] = {0,1}; -link1[] = {1,2}; -link2[] = {2,3}; -link3[] = {3,4}; -link4[] = {4,3}; -link5[] = {4,5}; -link6[] = {4,7}; -link7[] = {5,6}; -link8[] = {6,3}; -link9[] = {6,5}; -link10[] = {6,7}; -link11[] = {7,4}; -globals[] = {0.000000,0,0,0,0,640,480,1,9,6316128,1,-442.873993,156.923859,387.660034,31.384771,1032,613,1}; -window[] = {0,-1,-1,-1,-1,811,52,1492,52,1,1050}; -*//*%FSM*/ -class FSM -{ - fsmName = "zbe_clientObjectDraw"; - class States - { - /*%FSM*/ - class init - { - name = "init"; - init = /*%FSM*/""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class ready_ - { - priority = 0.000000; - to="lets_go"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"typeName allUnits == ""ARRAY"" && typeName playableUnits == ""ARRAY"""/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class lets_go - { - name = "lets_go"; - init = /*%FSM*/"setObjectViewDistance zbe_aiCacheDist;" \n - "zbe_objectView = (zbe_aiCacheDist);"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class low_fps_ - { - priority = 0.000000; - to="lower_objectDraw"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_fps < 20) && (zbe_objectView >= 150)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class lower_objectDraw - { - name = "lower_objectDraw"; - init = /*%FSM*/"zbe_objectView = zbe_objectView - 1;" \n - "setObjectViewDistance zbe_objectView;" \n - ""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class higher_fps_ - { - priority = 0.000000; - to="upper_objectDraw"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_fps > 40) && (zbe_objectView < zbe_aiCacheDist)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class higher_than_allowed - { - priority = 0.000000; - to="lower_objectDraw"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(zbe_objectView > zbe_aiCacheDist)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class low_fps_ - { - priority = 0.000000; - to="lower_objectDraw"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_fps < 20) && (zbe_objectView >= 150)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class upper_objectDraw - { - name = "upper_objectDraw"; - init = /*%FSM*/"zbe_objectView = zbe_objectView + 5;" \n - "setObjectViewDistance zbe_objectView;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class higher_fps_ - { - priority = 0.000000; - to="upper_objectDraw"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_fps > 40) && (zbe_objectView < zbe_aiCacheDist)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class higher_than_allowed - { - priority = 0.000000; - to="lower_objectDraw"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(zbe_objectView > zbe_aiCacheDist)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class low_fps_ - { - priority = 0.000000; - to="lower_objectDraw"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(diag_fps < 20) && (zbe_objectView >= 150)"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - }; - initState="init"; - finalStates[] = - { - }; -}; -/*%FSM*/ \ No newline at end of file diff --git a/addons/zbe_cache/zbe_functions.sqf b/addons/zbe_cache/zbe_functions.sqf deleted file mode 100644 index d6869854e..000000000 --- a/addons/zbe_cache/zbe_functions.sqf +++ /dev/null @@ -1,94 +0,0 @@ -zbe_deleteunitsnotleaderfnc = { - {deleteVehicle _x; - } forEach units _this - [leader _this]; -}; - -zbe_deleteunitsnotleader = { - {_x call zbe_deleteunitsnotleaderfnc; - } forEach allGroups; -}; - -zbe_cache = { - _toCache = (units _group) - [(_leader)]; - {if (!(isPlayer _x) && {!("driver" in assignedVehicleRole _x)}) then { - _x enablesimulationglobal false; - _x hideobjectglobal true;}; - } forEach _toCache; - }; - -zbe_unCache = { - {if (!(isPlayer _x) && {!("driver" in assignedVehicleRole _x)}) then { - _x enablesimulationglobal true; - _x hideobjectglobal false;}; - } forEach _toCache; -}; - -zbe_closestUnit = { - private["_units", "_unit", "_dist", "_udist"]; - _units = _this select 0; - _unit = _this select 1; - _dist = 10^5; - {_udist = _x distance _unit; - if (_udist < _dist) then { - _dist = _udist;}; - } forEach _units; - _dist; -}; - -/* = { - private ["_zbe_leader","_trigUnits"]; - _zbe_leader = _this select 0; - _trigUnits = []; - {if ((((side _x) getFriend (side _zbe_leader)) <= 0.6)) then { - _trigUnits set [count _trigUnits, leader _x]; - }; - } forEach allGroups; - _trigUnits = _trigUnits + ([] call BIS_fnc_listPlayers); - _trigUnits; -};Old function that is no longer used, left here for reference*/ - -zbe_setPosLight = { - {_testpos = (formationPosition _x); - if (!(isNil "_testpos") && (count _testpos > 0)) then { - if (!(isPlayer _x) && (vehicle _x == _x)) then { - _x setPos _testpos; - }; - }; - } forEach _toCache; -}; - -zbe_setPosFull = { - {_testpos = (formationPosition _x); - if (!(isNil "_testpos") && (count _testpos > 0)) then { - if (!(isPlayer _x) && (vehicle _x == _x)) then { - _x setPos _testpos; - _x allowDamage false; - [_x]spawn {sleep 3;(_this select 0) allowDamage true;}; - }; - }; - } forEach _toCache; -}; - -zbe_removeDead = { - {if !(alive _x) then { - _x enablesimulation true; - _x hideobject false; - if (zbe_debug) then { - diag_log format ["ZBE_Cache %1 died while cached from group %2, uncaching and removing from cache loop",_x,_group]; - }; - _toCache = _toCache - [_x]; - }; - } forEach _toCache; -}; - -zbe_cacheEvent = { - ({_x distance _leader < _distance} count zbe_players > 0) || !isNull (_leader findNearestEnemy _leader) -}; - -zbe_vehicleCache = { - _vehicle enablesimulationglobal false; -}; - -zbe_vehicleUncache = { - _vehicle enablesimulationglobal true; -}; \ No newline at end of file diff --git a/addons/zbe_cache/zbe_vehicleCaching.fsm b/addons/zbe_cache/zbe_vehicleCaching.fsm deleted file mode 100644 index 1f912e4fe..000000000 --- a/addons/zbe_cache/zbe_vehicleCaching.fsm +++ /dev/null @@ -1,237 +0,0 @@ -/*%FSM*/ -/*%FSM*/ -/* -item0[] = {"init",0,4346,150.952545,-124.118782,285.369690,-74.118797,0.000000,"init"}; -item1[] = {"ready_",4,218,165.697510,-39.548157,255.697510,10.451843,0.000000,"ready?"}; -item2[] = {"begin",3,250,38.540627,-61.665623,128.540588,-11.665672,0.000000,"begin"}; -item3[] = {"Cache_",4,218,-117.644142,95.191376,-27.644142,145.191376,1.000000,"Cache?"}; -item4[] = {"Cache",2,250,-106.302521,174.015152,-16.302505,224.015152,0.000000,"Cache"}; -item5[] = {"UnCache_",4,218,7.342773,98.661247,97.342773,148.661255,1.000000,"UnCache?"}; -item6[] = {"UnCache",2,250,-4.480785,172.472382,85.519241,222.472382,0.000000,"UnCache"}; -item7[] = {"Alive_",4,218,-100.188004,325.950256,-10.187931,375.950226,2.000000,"Alive?"}; -item8[] = {"End",1,250,-268.281616,305.079041,-178.281586,355.079010,0.000000,"End"}; -item9[] = {"delay",8,218,156.989182,48.521881,246.989182,98.521881,0.000000,"delay"}; -item10[] = {"delay",8,218,-182.287186,31.343327,-92.287186,81.343323,0.000000,"delay"}; -item11[] = {"delayed",2,250,-242.146393,97.758194,-152.146530,147.758163,0.000000,"delayed"}; -item12[] = {"done_delay_",4,218,-223.476700,196.196793,-133.476837,246.196762,0.000000,"done delay?"}; -item13[] = {"delayed_1",2,250,158.328552,121.378693,248.328430,171.378662,0.000000,"delayed"}; -item14[] = {"done_delay_",4,218,128.683578,195.123138,218.683441,245.123108,0.000000,"done delay?"}; -link0[] = {0,1}; -link1[] = {1,2}; -link2[] = {2,3}; -link3[] = {3,4}; -link4[] = {4,5}; -link5[] = {4,7}; -link6[] = {4,10}; -link7[] = {5,6}; -link8[] = {6,3}; -link9[] = {6,7}; -link10[] = {6,9}; -link11[] = {7,8}; -link12[] = {9,13}; -link13[] = {10,11}; -link14[] = {11,12}; -link15[] = {12,4}; -link16[] = {13,14}; -link17[] = {14,6}; -globals[] = {0.000000,0,0,0,0,640,480,3,24,6316128,1,-525.019470,515.356506,433.758392,-224.394806,923,910,1}; -window[] = {2,-1,-1,-1,-1,744,26,1070,26,3,941}; -*//*%FSM*/ -class FSM -{ - fsmName = "ZBE_VehicleCaching"; - class States - { - /*%FSM*/ - class init - { - name = "init"; - init = /*%FSM*/"private[""_vehicle"",""_zbe_dist"",""_t"",""_trandomc"",""_trandomu""];" \n - "_vehicle = _this select 0;" \n - "_zbe_dist = _this select 1;" \n - "_trandomc = (1 + (random 2));" \n - "_trandomu = (3 + (random 2));"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class ready_ - { - priority = 0.000000; - to="begin"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"typeName allUnits == ""ARRAY"" && typeName playableUnits == ""ARRAY"""/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class begin - { - name = "begin"; - init = /*%FSM*/"if (zbe_debug) then {" \n - "diag_log format [""ZBE_Cache starting for vehicle %1"",_vehicle];" \n - "};"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class Cache_ - { - priority = 1.000000; - to="Cache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(count (crew _vehicle) == 0) && ({_x distance _vehicle < _zbe_dist} count zbe_players == 0)"/*%FSM*/; - action=/*%FSM*/"call zbe_vehicleCache;"/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Cache - { - name = "Cache"; - init = /*%FSM*/""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class Alive_ - { - priority = 2.000000; - to="End"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(!alive _vehicle)"/*%FSM*/; - action=/*%FSM*/"call zbe_vehicleUncache;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class UnCache_ - { - priority = 1.000000; - to="UnCache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!(count (crew _vehicle) == 0) || ({_x distance _vehicle < _zbe_dist} count zbe_players > 0)"/*%FSM*/; - action=/*%FSM*/"call zbe_vehicleUncache;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class delay - { - priority = 0.000000; - to="delayed"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/""/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class UnCache - { - name = "UnCache"; - init = /*%FSM*/""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class Alive_ - { - priority = 2.000000; - to="End"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(!alive _vehicle)"/*%FSM*/; - action=/*%FSM*/"call zbe_vehicleUncache;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class Cache_ - { - priority = 1.000000; - to="Cache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(count (crew _vehicle) == 0) && ({_x distance _vehicle < _zbe_dist} count zbe_players == 0)"/*%FSM*/; - action=/*%FSM*/"call zbe_vehicleCache;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class delay - { - priority = 0.000000; - to="delayed_1"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/""/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class End - { - name = "End"; - init = /*%FSM*/"if (zbe_debug) then {" \n - "diag_log format [""ZBE_Cache ending for vehicle %1"",_vehicle];" \n - "};"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - }; - }; - /*%FSM*/ - /*%FSM*/ - class delayed - { - name = "delayed"; - init = /*%FSM*/"_t = time;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class done_delay_ - { - priority = 0.000000; - to="Cache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(time - _t) > _trandomc;"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class delayed_1 - { - name = "delayed_1"; - init = /*%FSM*/"_t = time;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class done_delay_ - { - priority = 0.000000; - to="UnCache"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"(time - _t) > _trandomu;"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - }; - initState="init"; - finalStates[] = - { - "End", - }; -}; -/*%FSM*/ \ No newline at end of file diff --git a/client/headless/init.sqf b/client/headless/init.sqf index 37e255a77..a442eda0d 100644 --- a/client/headless/init.sqf +++ b/client/headless/init.sqf @@ -4,4 +4,4 @@ // @file Name: init.sqf // @file Author: AgentRev -//execVM "addons\fpsFix\vehicleManagerHC.sqf"; +execVM "addons\fpsFix\vehicleManagerHC.sqf"; diff --git a/client/init.sqf b/client/init.sqf index 476262a8e..5ac8fe786 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -132,13 +132,12 @@ A3W_scriptThreads pushBack execVM "client\systems\hud\playerHud.sqf"; [] spawn playerSpawn; -//A3W_scriptThreads pushBack execVM "addons\fpsFix\vehicleManager.sqf"; +A3W_scriptThreads pushBack execVM "addons\fpsFix\vehicleManager.sqf"; A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "client\functions\drawPlayerIcons.sqf"; [] execVM "addons\far_revive\FAR_revive_init.sqf"; [] execVM "addons\camera\functions.sqf"; [] execVM "addons\water_edge\functions.sqf"; -//[] execVM "addons\bank\functions.sqf"; [] execVM "addons\cctv\functions.sqf"; diff --git a/description.ext b/description.ext index dd7b6fb9c..265661013 100644 --- a/description.ext +++ b/description.ext @@ -60,10 +60,6 @@ loadScreen = "mapConfig\Loading.jpg"; #include "addons\gui\gui.hpp" #include "addons\parking\list_simple_menu.hpp" - -#include "addons\bank\ui.hpp" -#include "addons\bank\bank_menu.hpp" - #include "addons\cctv\ui.hpp" #include "addons\cctv\laptop_flat_menu.hpp" #include "addons\cctv\cctv_menu.hpp" diff --git a/init.sqf b/init.sqf index 099879f5f..2df48cd89 100644 --- a/init.sqf +++ b/init.sqf @@ -71,9 +71,7 @@ if (isServer) then diag_log format ["############################# %1 #############################", missionName]; diag_log "WASTELAND SERVER - Initializing Server"; [] execVM "server\init.sqf"; - - //[AiCacheDistance(players),TargetFPS(-1 for Auto),Debug,CarCacheDistance,AirCacheDistance,BoatCacheDistance]execvm "zbe_cache\main.sqf"; - [2550,0,false,100,100,100]execVM "addons\zbe_cache\main.sqf" + }; //init 3rd Party Scripts From 6a36445a535f7909e11bc8b290cb630ad9381176 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 14 Jan 2015 20:34:21 -0800 Subject: [PATCH 300/544] Updated storeConfig.sqf and removed textures to save room. --- client/images/vehicleTextures/camo_fuel.jpg | Bin 101771 -> 0 bytes client/images/vehicleTextures/carbon.jpg | Bin 121286 -> 0 bytes storeConfig.sqf | 34 ++++++++++---------- 3 files changed, 17 insertions(+), 17 deletions(-) delete mode 100644 client/images/vehicleTextures/camo_fuel.jpg delete mode 100644 client/images/vehicleTextures/carbon.jpg diff --git a/client/images/vehicleTextures/camo_fuel.jpg b/client/images/vehicleTextures/camo_fuel.jpg deleted file mode 100644 index 1e36b5ae00998f41a8becbd4c10304755592c19b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101771 zcmagE1yohR7cYEhloF8c66tO((jY0_ARU*ybczVl-HjmK-5r~sDs{@DZwr97-H0O0+5MgSG~Z~JosU`x81f;|B^01-A!0|0+E z5s0i@TpR`2*zBEIjm;cP%vntx?ASbv9oaZo+1UW$cOH($reJdyN)vNSYkLs&d21&% zrL`G|T8l@KUC~j(+{#+k3u3P3rKE1^1vV8hqkbnsDeNKWVdrRP?qW>oVP|XaEa(BE z{s(hGSpV-Z8#U!WrnrDX)M9_7Qfe!HppLIJgCQcm+B6DF4-{VbUOG7J{mh(*KeLdje7aODT7EcUE^URtJbB8;5{^ zz+WDmoGh>zEY6oA@m=QUoIK`wTxL^;wQe50TV(ff;|E7I! z@9bi1Z)*N;TI>JPiv2%n1tlQn#x4#Jbq5FAe|ztPm4l0evz3D*rGy$UrIxk5nS;CY zU&HMn*O^K|y{&!T->U{^%fDt0V!6PC8 z$gi*|*>P}1U*q9ZaiDzQ5u@g$;i9GECE&&e;Njqq;9sDiq9Vc=!vS#c2-pA>2M(f` z$}37^r_Zs}oVe`Ys>M}lkh-T#AaPu;xkUqVYo;aQX@73^sC{s*#k<%t{gOAcE$M;- zzyk<~NT@Fm;Q>S>q`%AnYy>I}F`QQ_#!l3fpJTsuPr=y1xS2p`xDZ7*1LA(>*7QtE zT&Ov}rrk1)&*Mh=vkaiaki%ocZ~(w(G|Y~8DdxGX9yrCx@!?sl}$H(C5g9Zf|R3>%%vN^;e}kTTPJp7LMYb8ivMU;@#| zq|pNN#%~n-)4zBgDvqG1cXE;LDrbiNyvCz&u1^DT8DbOY&E9_^mRT5T_+NwoRx1{w za?+;Hs7?-$9Bv=)cEo@qMbZeo z)n2R<_|IiF^A1b3G zDAXfTQm@GHPN{(lv1094-{De?rbfA%*Am~NP1OeWA@6deS3|XlLPVx3BymLPs>87H z3-o*8ku(R2+FHe8Tcx4#_u15~V;;eHUvgv~z`H$fpB}7MAtF$l;o@i15~6ab_50RP zV{Xz8vDKuxP1Fg5UbYH^U9BLT;5JNvE?LCWNlQz*9l|PQ3KpM^eWjz52*Naz zRxlp3-92rrikEU36PXX~wfGbXQi@)-e>E`P5CR!RuW2fl6OreYQb0w5*9a)m%nB9{ zmWn^g?d>XrhHL=yFbzn&k`;FIsCKGC(S&W_vgj!e0p zO+@v8%F*^fl70Ai%ged?<*eJN9X+=uj5I=N42OA}(R`xagWqaNmRBOkD%H~u=1bOJ zwhr{PL{?gbB0Px+9iSuTIlsjRY~ShG9O((iFoN@IHMGwH^& z@)3i!W6W2SAf1dYN%;qTDTuZvi*4T|+Ej)m>p+j&9gd||X{bYZT0ZfB5cOkb4eTqu=TGV=Ra`D$}{h`qC+KwEJk$Ii!aRegnIh)6+obb9no) zEtaR%PLiz6FHH(QZe55r`RXh%n?VnA0Kki&`ChIC^c0KW{%zqS%qUouG5YmKzh9_| zn3^>2l)H%*SabbaI(Rtl^a*w#y%F4HGCUXyw1%TO-XS20vNhtnXFRSw-dXvFJqf~P zs18HC;=*J0Zq72aFw$jZlGn*xVE=e*K6wX%C<5>Ed#3E4WgN4rWGzb@k;i} zHCgy+q_sRd9Q@R4$=up6dwr6~c-vKz$=y8-0xY+UlD4mYBU48?$2%(+OWrANWn%NT z&60OwB|GrRLffLzGhHtl?vmHV8GJ6}8=C^)1g0&IxQ!#F$QQF-sG(c;MsR**3HTkUR+2)Sv({s?yo#hqP;0u1 zl3o^rm-TEfO@1;(`kYO}=roVo6f2qsyp9uPyIxbLoJ51)8xssu!BO`PFC%fX#eaf_ z8Ot|mza3@5^I(}mS-ms*X?yl&Uc`pr6WhYu?wOJ^>YB#~W7ymmi|gN8TpM||RBwdu zpK?TKn74FZ;C&)MBEXy5D6R7$DYQ_QnHP!XDWJE+avSvWBW_BInzvs`28(UDTd(WT zRy&A2EG#P&)M^|Nqo+96Wtb-85VYVA|03uo*6~9lM%e3Mek-7RJkD5TL)_OLDjvST?V zpjSxP@nu2LSWf=v;&f-&ohu-Ithzz`2hiioQn<_-@Eku7L@C``ao#5*nYfu?5^(a8 zTz@#~h1O;$2q(rhXD{3f+WzGamo%lSCL`4=YBt1zW4}&z3jmJ~h-WuytIY+}X3X^q za&
3!Ae$WHcEZSL?`2;>vK82nQm51;T~)@9H8&W+cYr<%iN}?Uw%o7l3Q`+3QqS z$>H&IM7Dh^NP12Yrv?&`G)-R)LEA_$zzjV&+H9mTRWVLV+GFH`f<(Hv*Zh}{1k&H6vU8Ma(yiQ2$vz*Ez|ec&007Xxo0xXq z{>Di>z8zuv{F3k}GS2Y%VZ=eDx9iA3jr%w{?W&xR7_;9%hJeeiuyFXIQ{cFEvSh>q zbdluVfw19c3C>Ey<3QSJN22wLmZS67W?7&a_dIy^=0iSgvi%=Z!aOu-V*b5tA+E^0 zUXaR+_Z#?)@BT9J__w?<_6;(8*0gD*-=b`xDQ)uTje>%;RI#@l&1_Wh3r$cl$?tV-H7I-Nzu=|M36-AZP8x`2^l7a2*$vlYI?G}s>Ti9{ zGaq&gyc29kD###kS&*ipwP_)QT(ttHr_0c4am56K5m5S<>*u&X0K@3{!Hj(bA;4Id z)x9mes<&Rhw`@g5U@2zbjKp_f>L|j#^#l{&yB}SdtzC75S4try8U7*LaSy@mp|0AF zQG9qL33q7l*|S7q$V$ZX;`Gc2lT{}>-&d=jSa)C~iC))NLw`lU;CS%>!T|5_KMfR2=X{tl3TRs0gIg#5W4 zo6QcYE46nzEMm{K>S=$%#7|xw&3ooX#|2&E%+C2@_hX3=D)ENh<&f2VN*Jn}aaCx2 z*O}ovED3TqPtB>>JtTJy;$G*Np4YRR{H$lTBO(A6dR(cwT1^FYahTvT6pi>Pq|LDv zhaP*)Q%b&`HZHa5WYNAB`D___Kv?aIXboEzq|icV-cv^uj4qhNSTr&ZR_}YIyRdxj zV9&BLzo8(Bv^B<;!fll99{>bPcMRKS#5T@fq`yYGwt~FVWZr+tfwQclm%OL+V8kv1wXq|q6XMtZ-^_BXgR;~n@mQK9y7~lG7 zCtA{1+qr>HJk~vTLkI99_Pa^ujOE`rKZm^K_$?vU>*sSo^802SbSP)Dx8lApyimr^ zFuR$ae{g@4IbA7fpa6_+GL zaAq~6a@JrD%)%9KWUM~BXZG{3lQ-WYzm(75HZL2LYQ55;^c&S`@@cWje2gQQ2Z_>x>a$LvZo^UD`&n=EK zy4z9ow@(h2xp5oSvbO>UPO}r9dn+8{enUsEg#}f{*}J1V;Cw42f9-UCVW^bfXw4_J z`4Q%yH}UjiAeOEBf^J8|9gN{MHQuT(**g9(F19aQ@F-$p_)vrLt$l`@PIyDSImv}l zh-?ir;Z(I@iET0fVDGc~gCuqrku4r%Uf ztSnTUY!2J_(DAXCZNKfCQTox@d#aL(SfhXmvVo<%Mh6xi>yQiriG|yGiZ1=Xkq>KF z5`E>t4Da>7(S{5er&J6PF*cNBx^p8wD{LB=(9|Fo$5RylV8uE6+Thn5tgz?O{M0;c zc5~c#83nT@*bcHjmHAv1Pr5XOVe0+97ICHtrw}(8*^hyY z#?LE@-oA18n8>f9JnE7*e(aSL@_U7b3~{Hp2O0trXj5n91SKtGIa1&Eu3qX(C;|6 z(ssR=I>f$snYMJ+79}lz$KR;sN!_ar^WDho5uZB9H1`Rw{D9r~#;mNQ1cIK5#%%Z7 zki&G@KWPvA>lW@n0MI)kSmkP#87UV@;IRf=&dg^M7!i*E;i8oVQeVCoM;@3%KFm>#F|F;;^J-=@3};a%p;0=?b3L2Y+kchGP99bV)x!2m$CCBoW@BRhTM zoNcW0&}E%L`2y#H+zAvMeXZoy@VnKoew*jlXSX7UDSs;fBcd%$aqQzg8Af);moRr5 zons<01WkX$z6Sldp^-Nl;b5UA$D6tARe>ayVl_5y2bnH=f2>w}!ZHQdfx<2TEmCNi z;Ye0sf^T2ErHiSKym)xy5`FXB|G>E|z2srN#>RYh$dyE|NUXtHUKU!lkqx(D%n874 zPkLOFgMMPUKkR`ViZry19ItuVn!dL^;>lSi9w=UdFag*h8h%M_J-y%JW+G}m>99^_ z&?DP{`l0&F%df50Uic24y!DN6ZeO+W6s66nmpKnl+AUHN2}zq49zDxPqj1xsPQBi+ z5%qa~TVfa8Q@j;|w5vMC-G=W^go`u8S8=yUzWpCau0-aKnTLPvP~&ts5ogDm>F5-JKcyVi*}C(_+q`G?i;K_7OT{+b&lu#(i~8o38i zX(%=t+V19_LW`zxQ)+y;l>KcA?HftXfTp<(v-TBt3f~QB0ZymFv zJA3d>qtunv1r|RRBQs}MK?6>ZGcb#%#TYJujoH{lhZlx*(3DWe$41as!{EYn3Ry_G z{o%2zpl$x0kB{z6x%+8PyOCibBthf@rvYoU++**77YcpVnMTt0gXUc$E+d;Xa3paP zVA=Jh&{|WFEz7|$A*IrC=Hp$W?}6SlW6EaTyY#t88w{^o63Qu6Dj^;Epb;B!vU{tYe#QO=n`;D-v!d($0b8E?D)ib%D&#gC_QUo)1)eUWHXZXsb5_-YpLuEi&-U zft;v(VCFSA#UXOm#6am(Y>5l%m6MzTy^ z2l;sf#GrI|No;^V?{@&BdRNqsc}rdb>vvt+7DW--kI`+@zFxoAy=S%F>=bJkj`TL! z*)+5APy`tut?qO{9bvi7Z+|wYmH%r#Jx4#G1p{#O_8ReI|jZt$1eq2XWY(H9QNFX800FGLkktnoYbO@ zT?%AN*?cS$;EuonZ$==6Om^vu8s`l>BW{Q*2Qc#?>&u3wmYALKII)uzW=$lOAvbry zOOMyaS9VPcx@SA6870)^+v(0NP*9o;g|(WL9&MGEo@XV;z*Zj|2)?YnC?ejYQqp0m zbV5)K7t>q7VLIRS7Z0O5>MR{{L z?)&N?6YY!`*q!q;^Xyw1-DNFK-tZaqS6S^Z-^oF9p!uzL@$FpL%_5iWb7oMt#)U!V zd+>_D>vP$DZ$lBETRC4>0hnWek?H|;D+_j;+xfWj&(UxH|^4*7< z3^iUmg11Qj=7BHa68kPLe%3NxMu8v zrFoPNZ%)`{RhOZloy+d&LrFI7REO;Dp+~TiOy(Vv-F{ihejX1ofyL9jGACrtT$hc) zMH>7_OQ#2cEZ{mu{wkTlo1NP@ht|Cwbh)ys+}p*i~j!WTC<>{*LWm- zY>h|N$JzV$E8Hxs2@9PW!>jsN#SLsdq?e{4RSEma2AQn_y`RLke;nt)EAO@B1ts|d zh7I3No*l+K3(vV~g%cPK1Tec0mdH_O`{RXs*Q>UrguXC$s2>jx;LbUY1rl+@!BFyX zuV#KWs`3<>!g=f-<#R|IYYvQTcG%C7KAh9!(39VrdL>^suCwrYl%5L)4Q8CkB{MN86_CLdVAu&)%Y8`r`o3LtNH&E|b4;9J`one!+qZA77Su@| zk$PEalPW{b67nor9}Z(Qxr&q|HijLB&mJJ_n z@Y)g7sv~ElE7L8W0`t9Q^OYIqj+cclVV4`Pq|uB@nEU!JQH&yL1k${a5|CiGlY(=( zCeQKaKCFd_e5Lg%H{F_9BHNX#Z&$-hf6L84T+2?DdvckTiNL2+CqDl;lYWi5(xicb zqld>u4ta7(87}{mw#FHj`(t6<8zW6!yZh8&%By1a)qXQ}m^uK$N3YB7SMC$?&%e17STof{?$0!{2s@V_> zN&xQMKcnN)ILC(827bTFsN3YHOqUiRlU6J51@1~aJ}MoQyd;;9&Y87`HnQB+q8nm3V#`ZtF3`(o>9rac}fq=b8t*W~WO?hn>%TCS9Ph zuXxHo)s5%z+L!OO^ck{Ruo~}JnxD#fBMS5WKN_EziLFQV;jpiFIO%>BN2;^#R&mPW z`N5M9)THEm^$&1lv+APn8&K<|>#

Q^z&mBIj6V_>~o_C@@g7BR&4QA#eMtG^;)f`FA-F{h+`bliF8OSGDYx}chTg=u}>pM17| z1NQIL6q<8!AbbZq#bW^;u=&U_=Yz06fV@k|TKw3}KJ~FrxIRJ(d9YOCLgW?pm=6dN z1H2&V>Mu zGwc&@?+@GdYk>t4*y|vN&8$4}_Q&W7(RNi30R@66OeEZ$d(gp)@3^jG^%Zzn%7?oHD;qBQbn|v)tY}t?9?;8_!YXiDkfNjm^o51_imYl+hiMzov zs|Lfwl#}`45eUP8rxzVb&SQQs#o7^tcSy0mekTt|v$VaoKV#7ABf|HQ`I9WIddNW8 z_Vb!^=f0-BYZG6%tb(GK^ItcT)<4v0&Jrx& zg1yXzv)^kaM+64um`y;pl@xs6}HV1%uASbqcoyUI*euC#qHFK^&C zsBXTSW>;=S$vpTPFhgMR_1RN;2omY!ow}px>%>)TbBBIui~kt>ZHEo^!dAD4jn_|X zGWJFgPaa=IctiI}PjguvaAdkqxE-J%(X{0Ugm~zDLw?Y9rHgO>JQ5Z zU!Q5rnItIl*jqn}*ftu!#7UCF?QHfP!m>Z^@tunL52ljFrt=mbF2 z;K_}fL^=cKHz+}sCaG*O_foaxJoDo;Ndr;P6_HJFfC2Avq5}zP>xeTmR4o>=qRCTP z_6V~7s?c&oL`7!)4HlIzJc3D$Y;^gAQ9o81CbBtWW@~l~i(dQq%UyRU&&9epU9dt1D z`~k&v0Sk?LLFc61iR?UQ`)}$MEzMP@b9dfyrTfC|dgq0<93_d?@hnOFUUd1#c!E9D z{t0P~ifZd0AWi6ScDm%ZyG}Ccw<#AssW;Ll#0Lknwv9ms5Y4^xGjYiTaNPMRS(Mui zMitIq{X>qcbAF+SfxgzVfiFZt519V_*j%A z0VpK3A+}@|aXn0_ej?g;rZcf^3>zc(HsgDnb~ylr)=Qf(!SvK$}yKxrW_ELocy#9$np_hLQQRR)ME`6!FVYU&-K9AEN_S0uOEg0fL_VUjNy>>=S>j*;%^g3En{BWcs5$ z&1QQThVdfY=^r5bw}s$kv+0#VkePwW+6d{@l-YyuNs^s6gM+Y-S1~^E@O9$4hW_Rv zuFEUucFbVZ-)jbUKf6Ofq;f;Y7*XNT8NQl;9_ zS8V8-guIV4tgxRIy5rqgqS>@se?^B`RnkN)fm%AGx|k@DIEiEtX(ko2#q{?<)Xc9K>eu{7Ao$x}* zZ+c~mEXUfzdP~&15!m}>z}u{xv9$Qtq|b-KJzoWt>>VEYnQUG`CZVmJ|FG0yvya?S7rfkZ>e;4 zLBRgd<)u|GT}BY9Sq=~#*}-f?ZdT#vXxnm>r+>slP;o3_{|6{8;`O;}?{MDAH&EM7 z-z;ba>6<}epBFnUG0waWm9?ZzyMk^B$9=vy z6PNNPzU>W@jU(Lwe>xkEVJsT64Re8t$IW5b#+hl4M)9aiYGP{oX4rb>4S;utIK|5~ zMfy5P^|4k#Ra?A5A^|Sh8TB!lq!wQ6>Van>Ov|a41%jgKAv+L{)i5Ecn2$K}X|rHU z1)#5%w(SGecc**OQPdr6(!&>cG{mx!vC@Z-pM|etc4@bvm4Mp36XC+M^c$80_4mBA zyc$|>e+HvoPWK1dF)a2795pk3-2M(m;wpULl|^lC%!Y@>^mWl-9BFPLtBCN9X{iO% zx4E2!9-Ze`j3t#k@qU_D!hS>AKar&o$HjL$pHTzu{iUDw%?g;hKd3u$jw&CrSWvfY z>DHG~85t3F!@di7dnCr#5(+_o({Hwj#xQ-1K}Ie4G4PaH<}|X@L#;Is@g) zEus4@^(21?-H4Y&B~=C$yX`gYia<~(OB~Ury`mksMP)+D z4^nwdHM5tdDyEJkFW{9&g-WJg6^!tLh|wsqE7FOY-xj1Cz$y`2eej*kCcnNQ)x~bJ z!54YgtD~$bP-}hpUKtiX_6={^I2MhBb`%x&O7X-k)+j2KsGO(w$*wKo!%FDlF=1$2 zdF)su`XxSt0lpj~BP1sKjRfI5->~)?-hRC}0-6@l{gIa2%db2t*th{2(%wOOgy3Dv z7s&OKljBcs7w7AXw?zt7lB#-&F%k2Xj} zQ$Z;2a}L4FkYX@EP3q936|1>mfMe&X&zIV$B*DUf9vJiaC?4qo=SByx*7I0!5b zR5#>F4+Cjb#&X>p!4h19Q+;M~DF=BZ(i)CUvRzc&NL-)XRP;l$lEgIUa9wXsF2bO-=F%2pX3~{QH_oJf^w+3OD0x3^ zn4$H#JF+kQ^NX#xE%Z|fjyy!;gxw6;sjtYsFD#(sB0E-{Y5ID}ta8Euf{1ew;)WPF zih*D9Jr{9##vmTlCIzn|NiamjvKUlNu`9sw^r0uQFY^`pzDLd+^fcpq7yX1xKkzn_ zIfG_-KrZDynjzvVkV8`vx*mf~q)%RR-M+p#r`vGRm{DzH1Zrv=HR{2m`9$yFfEp{E zq*1H_q~=Bv1TV)$=)fx*Y3qbpK$_GPtRW`XjUB)A8fDBIWuydIkO9xy(+4UZ}c2eWsyt|0=lGM;0?8D`(LOn!g@0->) zJ;@g$dSkjqu`7nZ6zN^@EOdkw*2J$7TKKuuR}wkHv{etvi5kr3 zj?1NfBhM5|I3=fjg9+4 zi*7>hi`n2i`*o_J53i+()JEgrx#{xO?+>}wf`~!YSXW>53!o%=%!Bh^**6#!a;3s1 zc{H&3Q&tceB~rAAsd_TRvZ{Y3Q%ge9RFWEWX()%BKda(X*=&{YzIxuQk98^s6AxWv zJkO+~VtQ9&Ya!Uqnw}wsJ_K)<4>wH>r^!x=pv(PqDYoi}W)kma& z)r81Z--UhUPzx7Ox|77}K?$nh4n;@peO0r{!EOf&D@FJiJkI0}%jQr5czB}ml7tjS z%L;h@fK}(T`Qcgy(m}}h*NBhX`g_e+W~tRBhQD+VMeYMUzQkFeVgwVJy%r-}w(@5c zNwMh+>Y9@=$)%fFN5VcnckvBTxz?2(k~e3B8{F(w~ZlJaE|xX<*XUsK8m5HIltdgaLN zOT!~-nrq4oa;+i}X-n_K7Q+{nf54N}Y$i>~C2l7!DaH~1!Dx8$S`@8EdE{rWH6lIS z`$$vm3~l9enqH1IQgk3|pdI#ljm#$MN+xE%j=hvvI90oc&Y3Rs86SF=g!mfAI4@+7 zGD2~vRvUl5PYpMm&lR6k)89v*@utrc5ur~r!4r(t!MO93+V3RUoqL-VRzj^5#mI)3NoddWE#pRBrh2gGs9qzqH{)yk zXvzuyC_!L`TKp;|b1tPUFA+O_ulhq@ndI@z|Bd-CUK74PsSrJhO?Y$_&doe zw5-n7c~l@lj7r@VOC7^1H4-(g=`u3)O@BLb-Ok|89!zFDe03BalhW8?#*zAPGJp-u zjc*IAzYkxfh~yW}5=fOQ#Ym93qWTYf(I3TUkFsMDgllpG#bIq^VN{ zxD6d2FFuGHqa1Y^ojQoaQqls`%)OG01oaDQ@TQ0WvQETb3 z;hZ{o(xgr$xn={ePQMQH;H>s_DMk5dV5{oU_EPRBCfwwSNL74XTu^4sWym; zbKi_BNvwB*&oS&U2G%57rPA&F0o#m6$F ztUeJo-*Rw7fN_U3a7oW0KXngwdNuHxak?&6q1C5QY5_PxN`-1`V)oR03X~Z38nJbV zSim7BAtLwCs{o56h922ltB@oPJQWqSP)==R9GB$gap$Ba#`mPlpJh>1{SbHtcVHQG ziWJ_h?e)t${{62HZtpl*d}3&s*kV1Xw0UbhzjywS>QjpES0SJcIyHCA9&Kwb+KDCn zN%r7Lcr3seO|yRR9$SCDzWnD~Y0YOwR!+9AiIIAadC1GX+4iF&&28&o|0s4o(!F{N z$B_H@ekyv+NWGWcKe~or#B>`=*IPL&7df=qDg*d^4|jMRCXOdPkI@C9{TlcrSo+&x(7Zk3}n&Fp)+X7+VGJ&3jrk zOd3%h6!?+TITcP?ziuyuhh%DKIGp3coJ#LkTp5~zy#hO7<+OKpm@f49la z4XnV1*Gy3>Aq^`ks%9a51C67pKPVYANrMi?baAQ&lh)hfB-C_qv$W31*gy9;rDkMN zDg+j~vFMk{6*C1CJ?qZbcQ692B8x8~!FoNpjPKDgne4D5O&4$PSL^+R1B$908%Bv# ze-N%%4VSa82EUfs*=UfNxx4ky?q-!Qu;DB#84}iJQhhsc$*(?oq$r;f`=db;@?zU@ zSgdl#d}|`1X@r3Vsw=0DRIIx<9&sWir7Wjbz+))Sm&ddVl2WA=S7&UZO2sH|fv@e+ zci}gLa?EkY;Wpg4#}zRr6XY%`nY!)BEdd~M^+2nf`?jC~p8}L| zzrRMn+f?aFz%AsOqaGt!zV*lqGzOb91pU~nACxPa&~dfL<*Z;VoYBdAL7gZdU3cY~ zh=_wd7LU5&YGD>>CB|ea1<{o=9y8+m0byh`TRM%7*{hL&_|OVb54k`F5@;F+=5>gh zUvIyy3VwBQ8=D^0h|jqhwiz4f@XeIrhvoXvMOBqF4dGo&2Q?I5XH4^lY#tN&LSx@W zpBs6?smi>(_xG7lIAUwl(z8T8a;idpW?JhE1sh&j^q;Zwv6E7%l;JuYe*k(U)ZrPm z*3POldcrH*6u1|1Ho@LsG&PG$cNmGjn&ysDzW;rn#U8cMht`Q$92UlbZr%S~3S84L zh8V%V5vK4!77QL<$a3M7X<{JV%2b!+G_@RXE}Rn>cSP?mj`{(OCkhl%%9^Cfs8A7& z(F8@AmTvJ%?9O?s)b8?8XQGqq&o?vYa9f9zgyVl47D463u3^-oB-7}K&zdjX=s%5v zeXHl4jH%##|chJAnn7gR319YR#CzM2;3ZPB%e|+z=XE&pUdbp~@E*))QxV zD#-0@5hZny_Gps473`1^tBSr@d~vrby81C^rxVka`=-qLaQHl5glmkhdZ-dA%ZF;i#iyza40bsi|@Rb^t{<-=K5cCsDN zf1Xyjl3_=mj{dt7K9j9IlTdt6?`1D@dEXcHtvW&yRD}Gc*`8$(0*Y{EOGTb$uctQ+ zCm+mnb!qsqKTIx}HuNGkmdMPMotf;rmdTQoOas4m$IGIS>BvPLQDVikL(E8BRVLl} z#$b#nsAfN;T-_Y1j-<*g{#kYa8@p)siZVrdumob7R<6l0;b_BkLj7c+^){}?CKkl- zA&3gKSBf20%HHM3P)$-%jNP6eGSTQcjvI@j$6v(|$I-9VKiU)>Asd%U=_4>WKU~A0U(N)!y)RIb)S3}DNHsH{tr!O;THAxynO^j1VL(P5SEgZ1(p<)Zje~Imk@U8E|Ko; zRB4uur9-+wVrfviTS`EG`}scC^AB)cocGSmnb&>KoaRcZzc-zfL@g04B9nMc)Ha1c$1^kZ%WBq>?JPx_NQ0}N)FJjXAPCzIMC6@De7xcVPO2$_MprOxL zt@1Y+IdR!AF$3_b4w`Q|+FXB0&!^Dfo2W~A-+u`3{X;eV$wHBjc+9b7hGvRS+^9Dn zmLy*HbtvZab(~Mz3y)X;L>uV4daQ=>OXQ>GkQb+{adTM_l}W*e1L3YlJT8^>qmT@9G533u0I0MD+ALXG%gK`f#t;7(pNh@y$~lY zG{siC{Ke|0K9qnfua@$eCe>HwR8$3WzVBKz>6jnc)4mOfb2kkcO*n{w#G4Sa4ZM{D z0dxyRv_oXIA+G79uRt1oN%AGQh$ud$Wl+HJ7W4W-bBjH5cVQ7N(>97xdF+ptPw@sejN(7bWHTO8>o2KfoWk8V8)UdT zmm>y!z04FIVkih$|6y#xAR~+q@O~8<+AAxK)F(usEM<*idVQsijcVMMC7ZT)F~=a? z{Zxz$El%BzP|p%)6s0 z%&PILupye930p`GtHzx2wl*yuVrtxJvZB4-&SY>!r(5f?5P39`o=+1^83EpH7+$@t zK98CQYP|Q2?rTxS!spuVH&rABh@PupyHJglQA1%H#U!0#38{6|<%CMmJ~@kGwwv!Z zv6u%N~t$pa1G;+aN zy!<4RTfdmeW*n}e{b&g^`oxTUY6?_Y4DtT-E2dXfR=30C1WI?}=9p{3_;qn#J^n0H zYBHJhu3w!@<*%?a4$3W|*njVg6R6L55c-n&adVBMk(C$IS{Ux4P%b+N9(OZj~tNob(thzD}Q{{x#^ z7ty)J9+_(%?aDx8&ijaMSIQX25+0wYIs;1OJ3~HBp7+DwH^j%o-|ud+e*+VLj^WFw ze@@MhG5KxZbvbY4dc!^G$wh%VY3%?FIq?!H=-AiWHETA}f>Bi9JhzWYZe|ihNB%v= z)o7kojb@Qyx})m82Ws7g&pxR}`O`HY=yxk608f4$?(Rioe$}e7&wo4V;aiWKn2)<$ z%{#iWfu+7ajgEZwQ64CXcLYnVdYhlC8*vc@2nP|ONhQXw*pZLX%jO+U1#&!Wm*`}m z%cyua2#UJhwCLE&^~YpN$I^2F&eD*#>ImaF5V8-)(`1~qV^B~ATYxfl!DW0(IdQw4 z8cwoKc_a-5xi2?7u_NZ+EWTrs*$<#$D^$B^6v1ApeA&K@=97ldBg-}_pyA5PRBUA( z@Tfxv$$)Zg-4@t<_-^pmw|65%&DF6)W{xq_;0u7a%(2D5$7gXa;5rtf33Q;w)oOK9 zFsj~?SyJg4?43^b#go*%Q$>UNV{8w3Z!2PAVm|Ynh=C{uX1bkEnCvRQo&;K@6vF&C z-W{9=QmnsfTJ8#QMME3RjlCtVO9p5JH4rq5IW@#o=7Jd{Q;VU;8{8ogmaFq=H zg)bvP#3i*vWn@IEfetGb7I?Y{hw4hRslysj@dMHSP~_)6?o8UfeXw!TXTC^hQe?dL zE|38jry7Zi=(uImU$XH-*fhPXIOcDdxI_;1*eWdTmB+&L<`(2#ACGtZC`49pP^I(B z1pF71gN6X7K}MtUi1tRw?3lWwm1yxWBll8L0&APiyc=iD0giJkc1SPH$Svf6O)=re zi$QO?h}_NcEMY|6^T%^^E)&}(6;nB--nL6JA3_-s<>|`c_t7Tvn%h;=?Y4<8{tR}K z@;138(f=Pggs_4w{t60mTUrf30(p^vuIAkg&wF%BMkqJ%6w`PGF6eE}F`w15z0s)E zN>QWe7wtFkH9C!`GeYxm&X5!rrxQJ)4hSOp*Gin#bG_@1VvMLH%wLJsu7-m{Z%;c- z(A~QZaa~~p7RX560*L6TmUOm0DaiRr%{*tb`rMiM8S&88?^dIICv!#svQ8I|?f4P zZhB151W7&=W}R+RS3zXeFlC|VTH~Ztc+yixzI5bbagve24h8^PQxDG`FysR>Bn}(5 zBB}z1!zBkhiVv(Y93{v(1#o7{bpnKb!XtXN&cA)Dug@|<{Y{8^04e-MY&C?RGTx_S z2oX&$-^CnT!H{|4Qw7|(+L#^UO;8MrV`2ya39+htG}z^+CQzGW)(P=5L|pZhyl&S~ zl;@9lO0*=znZ1X|XI?x|Nn|uR(SVREPu;x;xNzT!Tzel>xs?o!9jN2aE3>{90RRFz zIl52Z@G&)PzRqJiYtR3+VENquq_sm)TPatPyf!B&@?&hnt)H`qrto~a;v*xaH4Xtx=|T9J+On|d?(36bQ6PyUGMDdnKZ6!h!Ub@;%8_u8AQo&fht z>bapHCJRU^=}?H-GM_~*%;z3n^KO7N6$b@@^vkN_v>1GKGC_7zV?94(^*@q>vJU!O zoY(I0#(W|zNU)+b(PdE-jeLsHDM*q~4OxFzq>i_!biIK9lK)WEG)UA)wggSKx`J*d zjktrvbzm;w`kwXGejSxsa}z0%6I=xg`FT`}4TLfCI&?7d=q%VwN8p-G&i~M*EHRF} zA4@lx*4(xd@5nD$EQ~T{NUIYrhwStq>14c!j_BAZ!EFW#TPjL@$g)6?8>UNG*o>(_ zAf^oR>_3f-goA$}r+$W&^SfwM2mt^TVuKx%M%5{2w5+!B-4nbGyWV-_lU{NAQ2nN* zG-6%i|A*To;NfW8mKso{1rU*)m=Eiqju@b-Wk}otD-yX_yfw<_sGts~8!HZ)#lXUgeB=U=~jXDwo9 zEz!+(7IW0QXCQ6S-*Fp**w*>^8ztU6DNnWMS2FP29RA19kV6l`WNO>NzV+J)Z{hQ- z68dz(0-+FfNs4#}w~VqmR$ph*xEV1ObV})8-+~g^5R<=OkrY9oWVO3hgl9>EwB>96 zs~)h#;o+?p+}z)C3L5yeWo)UEU_I`}ZupUv;m@RrTW(A5I8qC#aL!wK#Sb5Vo}0%L z%_@+IdGUqvHMX0c>YU*AK3Q!&9lDAI1xptWi#NPheq*B|xHk>e^n6+?J4>lVY2hv+ z6E5d?Hs5!|s~ukn`#(&OJoZ$Zi1V>&d=A&5MN8G;*qNP=acQpCw3s)+K!=&OZ)U~IQ-Ek8y zv3G&mT{PNciU7MggnLxx^sfG#&cIEpz6rxXoc4$&uK`idos~u5W;tSDH9Xv0psf$7iCp(g3YLiynQ&PX{r&huDMq^z>#MwDPRlY|iF@Y=x zqTli*iu|X`Oe*yp<-OSOa)9fR=P{bACw>F0d}i~nct1uV%178#)+qqKyML+BcS7;S zlRlHXNYJkjO2oGSYn?XRv?Xk=2p-eJ0C_qH!6d;QJ(_;PV%xb_KEAqD+)}j-97RxWG;3%h| z9-$vKDQESk%(wYY2N9DMAv~MGp|EI-gHUt5y}BWa{F@E0P5uB9i3c%LY!l`Ih&B{u@q;#k zgHlCzN*a=CFeQTQV+yUxH1PM4CQ2Lw$8#=4m{%zR-zK1Z`_#nL0L~PmDyC#6#1L|> z?gT#~IFq_g3-&?f??0x5^I}7M1)<*(fF;ogK~8)^u4L%T znvE0mdg_$@>n8XT^O0`9?^p1(&GI^Wbf2v zb1V0FUH6B~(2pT^e>=26De*=} z!11Jm``*o$0gnuk3#vp`f&HYVoorE~eSgAQQYPJ$r~z8;xGQ(7ZPZ3`g*P+7r>!+Q z8$I5{yW4$Z7Plh3AJ}iOeRcPgDOogRannO((EcA8L>_KNg$uAG>J8_Yo|5l8w}%QSq?l-*ypYthIYxP&Qg2um)e1n12fpLn$oCnbkcHHR<41 zmb+2y=lS3spEj_&)+TZ1Y$HYjtK%+Tind~L=CWe_FPG<3Y0E~LUg8v&Q;fgDO0^JW)YtH6+fhvt|yFbfFUQ#K9Nh=SKOSMgN=FKVVzhY`z7r$FR z_kW1Bbo<$IL|E$pnsD_>*kpQnBYuWx7g}ABA5&v~Y(j2S8@-o3t_;8K`X5z5@5FnG zaasQPo+_UdlY8rkdzZSMwWnaII)IbEr`{4-L2^pb!l76+bZ#Pc_}Z;ru{$>CRqA!x zbXkzz_D0q$ia%dD(uUB;MmBYz&G;I8XHzpbw|g2la-3h~o2cREk$pDs3=F8Q&#@08 z_|WBuoLsJSu{zF~gHm3IR%^2ZV&(W@3m+o0EWzT{*fe;e2(K&K01wfON#BTn7{BS% zI-a}~{D<*(Fe*l<6?M8e>7p~)eNa|V5`e{)*=|=QxT`vro zfo4P}Xvp6}&ikag=Wk0Sp~{T(OwSl|mZ;np@1T{&B^$l^Se{qi`n`DrENPSa7%qir zM)AL?edZU&VFm-^X_TNB7PN~*+;2O6Ik;04{lj=E$zKs#XDsCpF0K6P0>#BdW~GrE z*$up|u5^#Me5EWW+Gt`JRz)>o%liA9oz6vFUKpL05CHv;wal3@D?R3~U)AL7imyz~ zlFY#pun6O0DR1Ytum|G;No$XgI1ySUvLaH*x|*DrO~$>m%!#x?|mIR9n~p4LTm))d%JX zR;47$#AAEQCB@%JCHc|hfhFstc}9qO9&#yJ?jnVOe$ZiAaRpbF|M2%cyFO+ox0`>w zHC(V|!ndX4w#& zNliQKMJHy)x$pK>I)KKc>w0Es4%tG;xHDW)9BweoXE9(kid-BUmtw?zMHj|Ur0x0O zl1V5!nlUR^Lc`LuQT{H^J!)=#_6!k`b}8{^bfmRaH70B1Oh?MS!;s<yQK- zByITobEv!3mntl)x4GuuvDth{s_RuuX7oZa6nc^F;Jr|sDV$7*D$BdsA_$wqf#~B+ zkaOe%CqgppgHrJ8?DMlP8DW*|t zBUh;ULNPtd)F6=46UgWN95G3aWmuEsY3os;{^R6K^l8BtoTzY9tGE>lMqH_`A)s>% zBQJ0j{C`H@E<^UZ zeK-j>u&xFiQ$;!0F@zJ6G{? z*>uIhE`JUHgAfJIP)|dnB+sH7)~h$o%YDy&c~EPub035)i!bUjkEXIe*j;H_>v_YM zCVTe||6v@pACW2zFV54kf%1pa^bA~A1Ltf*;=h*o7#wst@VF;@b6{13D}=EVI(#f6 zuxF5>l&vwWLv)z5^Dl3**qcXqB>KI|?i*GTAG-MzxXW}~g7XMaT@OJhn-`_W?4dJZQwJ)U^G$dvI#_6ycatfo=>_p!b?YiET_>n%&L-QIeemd?C?LnArh`!EOY z(a)`f(X7{Nd{UCg)fFbS=K<>Qnaq6jB%dA{O+^jVCX(t_#0B9>E$3Eo`xYIgldRrF z!vot?$d%XBwnRo5R%TA#JIzB2WinfJp0XUz^YNC5tR{GHdMSw?4WWKMPxIx@jd3W+BfC56{KMkXlwo;9T?OF_XI)iobt< z3vtoI#=fi91=6o!1q{}n#xxW*229>f=nhuuR`~|Zb73FWmcyx@cl}g# zWwczfuE_lfSHD@gtR7d;@%W+H(=qN!H<1pz2p^c+0Vp_JN6tk@dYTtbyfB^0g) z{@6$>%;HTCn{Dg#E-Oa5f|hoMiLcV|+zDVMMs6?kQ}tCy9` zeyc4j-yNc2Asv%$AI{U1QAdtbGEn~a(IG0Wllpjft=_rp_4cJPqs8QTW1jExzZKZN z#+&pag=zG8@|M&Fw{MkFaLqaw2;l19;%TQ<>>bcoIod%V0So8KySJrNOZHh`m5wL) zpiLs;f49X}jgitxrKM%-f(*s|sg$+M&c!ND_FmN~^^9uw@pb<&;uXgzt25uY_{bM+ zg#5#JIx$ZrZTpLlh`B0h8Sgk=-;(&!lj^63@x$YMsGafxy9 zi)Vb{8eN<$Frh?hM&URb;@C5}mWi(=N_$(a2(p~)T5V}%Wko@k&S>o-Jy5;Hy!6{Q z(2P@Q#qf)T&9&~jc{@(jsW;uGslNm!zN@2R%Rt{UhY#WC2MBiQG)=?QU#WN0S)TsA zXd#a4YC(`Nu}nXnK-cm`JfTs(=1g3j#IewJZZBW15_cK`+Vh|5 zZ91vyY%68$F_#*2oC@Uypx!`^ zEnfuzBQM#*=cV&{KcV``hF`Wn6+Ik%KaS^rRSTbU)ZWRVXk6#g|E8KkP7Ie`UJsSiruUyi$S$kb%9x99F7AiL@ zRWpt@%vBf&Jn7u|20u}=#1<~|?^JprwGw?*la1_y(VmJm+44uC@GBSzN$u1XQ*!LvQ!f zW3yj!UzL)>pt4p5or6vw&Q$7H_58Awy)= znD#Gj{CzAPWLkgJC=^|*Ll{3egY8{b1u*i+JlZ8<-A#sAaXF+NFI@I zee5EV^!Br>JlN!xfj~j;ak4lHD!O#fx!QOi@ zN||8(S(wocENhu_F{zw$hbz}QO^PSh@Jqhj$e*Y`J6j{SS{bbn(ZtqVJSYb^aHz4C zz*4B=^pi{=5A5p!4uzzK%O)1dOai}vjnqcYNUe`8 ze~#xqwYdkPxQAnBY|4{W(wA%=0nK;ro`>G0S+3sM1W1jVgMzpPZO! z%i={Pbi1E?-e&B@r-rij;|{revobW~sqj!Xdf|DNFL)cglYBy{kbH2H7-Zjzq#AXy%?ukk+Ij)vV5rkOId|ip5 z_Fff>Y}p?}&++1gTmL@{hT)#mIUe|7o8i+~nxAO*Q9s?UgGElqw5vo8nG$cEHPvcA ze9E~e8zXsi$@cq}kTy>4B1n6i_%J;IVnL5?1lV*#z4AEFhSi87o+|E3TeIihn2WO< zCM|q(nHcsp)|1I(#W;E1I797u`ffO zLx{PL)otGhc%R<6I<+$oe`3Io*+CMED_p2k)(HM;sc0$pd1XBH~O z1fW`mK}$St83i;oDAcZUtN=4Sg4CiJ;K4_ptRJh_QcL-{aPvQtx@*?JFxx0wuhCqz z!()sFXa1wT)r&*2&~lx@?g%Ms$7dh+I#@wleyU1;G|5Y^>iF`$Ho7qCN`Ds5-1Hxu zz5h8Mqv*nzmHaUpx`T*FzHtWG3vMh(ZYqTAjxL|*<8+YT?nLD@UP9&K@x=RncGmof zNMKd?Wn z<3aG%1(%iPEM_tNl=*dy*8LwJypZ}7&C)4*Cw+iy zp>&K~Be?4^oR5Kw`G}UEd&kdn&p;v2}v z74~+W#>2n-bf!;=F^ZMxS^cmR$6F5YBIy|;(NlMe)E^MY=-;pb@srppW5ppK9=ZAb z0wy^@HfDytg~rs2(e6$8B+$WcET;ibQ?^0IwMAV?y3vuT;6TE!_HjGT6+}FmKE`jP zr8I^?DFxMYD2X|5g!xQujPMoG0Ck746V=Yw+v8o(R1-Dyf<+&d{kOmOCd9ApdzcPd z=F68QdSelelhCXBt3Tz>-pPF~`$OYH7zscSC?&k+82MGLn9D{|Ww*h0JgYC}1%-Ix zBehpfk_nKjsl~}a=>kOoEgc7Eh3{igZfA+2v^web1=Pj6DhOMmN<{LXb97hhZyvEa z;iwcDl>URuAz_Wq-CHva!y#fXWqz>@RIbmTmX88R)ho* z8<@I;dlmm+CU52mo@Lq~%04D=#sW;LS0s~Ms+-8gK;NleK-~&jzJ2{LdoWXB_^0Rv zqaJHR@HM}LpiR$PJ@oM}Z-nIDzls<{6na|8Rr#{Y&X#Td`i#*yy+fdP`exX1hxle2 zr&If4zMBlUxok=O+4A`BE9IhGn%H6_P-Q4-98c9a$5;3-$6O0}RH}1>KrC8Ru5S(1 z4_&coIrrEO_V^eD|`3w4uM&GIJZEKps; z$spK)k=_h$7f(s_`JoF2vctZHX4>7VT4&KJt;7cZ9l$0m&g^pS1T0!2Ilv^JnGjk?EEJ+=69EmR{usEe$e6a4)5>QZcv%JA+2B#q>t*<3)+xR_9PS*otMhFb8}DC?Z`m_6 zHL^3pQ%Px~qQiLK^Vy?Rd~c|?>{D~H+3DkoEQq=Wc51Kcy_N1xWUFda?A@c!s8@&U z${}Pn+b84nO)tG2JWcdSO4mOIT>T#pB05`y06_O6^HxqZr7VH!E24 zuq_qM>**F!{w73pamM(inuQtrA=4%{=mI@Y+1$XAQvC!sj0M2SDce5ks4oks=f37F z$}*x{)185R4qFz>00%cO?C6VS*{vh(xV}!}49kta?hMNWN!sr6^pLR{o$&CYA^I8s z>2ehRQmG10zN{iDkJL;yhr~AIW_GH-!a=p6IxwPiYrGMcj`Ta!J2I&VlYzU@_xT_? zeq|eK!xL_j^7|Iqi$I~oR3{F;*-39Wpe$)eQAt(`X{K}rzTcL8NY|s>q_IB>;%k*z zKQk@GPb7X@6uuj^BNBHuYvva&(oZW`KWr`x)h+)3RRfQJBeDsHD7isVE|=9hf_}>| zwgsgb-G3MXf~`O6>My4eYek!#b-NDn*k4*!9)5NV-C7>&x&TgHS2y(`JY!d>iHE@L zxN+SllWWE08;-;ZUlX1KceI;-^ut-o9GxO&nzA248j_`cieMRaL8@S9d9POzYEBNzC z^nH$BB{JHAYq76;`4*-?R=RAh%rzHCik?{{28_y9GrP4f>j|K5aIT69zFNzR^0%(4 z>VKsLMMLU?u0`U`OAz9P&9#9^Nq^y2-+cfu8zv9?>jU4SmZ$`W3KFsnVC};@BUPIAe-bd8E@O5H^5XauWm7~P? z-&}y<(Qdw5o~|o7foUvxqpuOxRjWL3ev+U#n?#NlC&p1!L^To~y@Z}bZagSMx!ldd zQCj;rLaDz6Dys;0;Z>fY+-zGUBPcvVw<%5wn-)a-TPY^)D@vECKd2c?jRT92E0ZL( zOM*;jvz{_+ZMSWIb5I~zQyZu1Rox=ziMnCXpVK9{|pOi_^#jlry`+i*HkJc-WcX)C_43dzFL-z z21Z&H2g5&}|5kPL_IA$Znvr*1Bft`u%Y-D#Qt&6D1gX^$`{<74?g9`|a= z&{f&)phcr_Fog$`B&P;Rc?9?3-DG=7ITSu`ryf6JfoM}rix?NR``XZbMHo~^QvolS z$LtwUjl3UG2=KPtWiqT=-jbq<0vg;Z6|I zNT4k{IE(6-M&d!YbG>2Ke^Rx{$uqG<+IFN9=(%Kl^3$VpKL#>EMr#!ggt*qrB#7OC*yq)#DQXo=(g^x778L$>k&c zhw-uHx__2c9Cl!?D>QUzAuo0Gd&6{@19We%r75>H32#ZVrg_&se=yxhKU~Mvo>@r^Kq-0-+P5t~X(4C{9{$W+rSgx}*vHJhY@Z{~jFDiikiuk27F6 zZgcV(ufjiWbB>w3{`|RYXP^}v1B>;rH@JPDp}^0mOt#QY27kTN=g0mjC6Xa#xXsUe zEBjtwxC3zq1N?Lsaz#32Mj}$=$yR;7u`Ny1nsU2@LN8la>ojgl+jBn{M3;JeccuQl z0=_*n?5EWoZDOQkHFV&|waXnao4^Wtf5N_LFp!I*@?0VWeYF6-07*sy-&+K&ov0=X z!*T{CS8xaP?MYerdm5j>t>rNao;frrBs{pi|A&DN`lSKdodl!9)W7+W(iGhq06}}p zkCOxz$1p44b&fqUV*QSC9ZRuRtDdf23#hh2-|WrD+%;9Oz@*!sS))DdvyvO+nsap_ z^B+~#D^FtUj#_@4!kxseE0j)Dbi(&Cq@n&JuxVTqtuiW}G%}c#-GY?CxgyrDS&Etq z_*SG-K7p=N?JX=R@p7#Qt3-~2f;sudI)Ej6@=JlgqQROhbRqMTnH$mnja)^Q*fyX9 zJ9~Q}UH9LdGER(U zufz5TcHgeeZTZfy=~KfE*M@M@0@O>prZ)I)4F}zR8 zJNlDpP2g_DO2fv*D)0gM>4k5`vGwJJ#%+BSL5e==;&6QI)~P6PW7a}+!jkmeK2Ro+ zclP)93OocWd|n+{^PA#Msf{JEl}-SRdJh{^BQecw`?zBN|VWZg4HUZY0Y$lwJ(owRc1sZWIEvEVXYz+&*|5yJcqV>y_(7tpo>Npr%WqFwUME$oFCIr8f$9q;lEoqU* zoH!cYf7Q$JZOXp*?jJ@tOQC6f?fDE_tEvae$kv&!?!?^{amuLA`l&Y{wI>bS5WJ*qUa5eEbZD=Cb$ z2k5`Eu8K_dfQblK`&6e0%Vnw0RbAlZl}9Q48MW5WOr>cI04^4QW)Ctmf;$=NBt- zSCONX8xr{)oL_gA{n9ksY1H96J_6ZfOW||NQVoPVgT8k}gnoowPL||f%ywDRRy@*< zax3+EUzI)X*5u5X<~0FFV|hiKYcacCy2CwLa6#tip+AL{OBwCfkn~ z_R@UVL(JRpXwdngSY{AhZI5(4w7$L0U?iIeEnigpa7eaE7gsPX8nlfV5eqMHFE253 zTa44AM!{va@~QgGOLH7vM_}%hYj1oJT+OBU&d5G0kB~-q^hm|UPlpStkk0DKEpl4g zmMsg^ZK+xyMA1X1Rx#(g{hxkXS3Nc^vzjic*nGvHR|MLT;{7;C#r!@y_e7W%!((KQ zgV_qnoYe%HfTm3hYoXQgTpk^c-)Wj8s^OyY_pJyvl6BcE&LvW9(p-ss3^l>1e;935 zTTcXn=Ij!Cf@3Kae@VSiN$o&AJ^6>hD8C;tWHtB?Bf$zG=H1~U_OZ()>tN+XnTBlS zv1f<6su!_TTRqLxo}G&!4{IAwS(Bk4p317NuZWj0GM_t~^=Qsw;b0PI#bG|iBVC48 zFYAhp8g?1j64^88)eG9Erb0a?{kG{*pM+RuuF+d~l)mVAJ4xa`>p`$etX0Ovi<0HY z%B~;5mOa&!>iERI{dhrDHNAA%RCTQFt396`I7BlQh6MNBAO&9X4cFgm?yyWp) z$GN#)n%jJX#o&x?rH{FB>z&XO5QXzXKmF!J`0VJA}aj#Ou%Kl>glTEw@M9P z(r6k=)Ko>|D0{PQJ+n|mlTIyPH2l7I{W}$7TM@T;2P<;I-MTRECu+Zr&hIt%rn8u= z@~#$$P1kx|_qx6%nz@!)dl7Gf;*~wkOB-VQ-=NMYg_#HjR;6 z{9RTISu?32zh;o!&Is)upPAxL z&=JZ7s)$|VJk16OF6Rmf&*u@7tx94io+P^~{=f&FA}0B1Sb?-c(uGR;eaBK@<^~!L zp6&lY*?*j3P3x4(2m1J%6^&rZE?U0)ERwz@1xEVp0f9XV*ybE6W3cJiT-T*2~R*3at+ zVhFQk*)PUC?JI{AlR<9U+7nY0S-zQW7txsUcHz$?Lr9iZ`%2BZ;X{8^b9;1Eit1y% zOB6p>$%EDa1|3C_K;5}nxt3P(%unHZ4GKvB;^D@_E;Dth))6bqDCN?5; z7XQtkcGzV{LgZ<_>B}iCZEY+KK@v)g^d>!v&{Z|C3|Z=)V>s2@Kv4O1q<*Ia$|0Vn z97_JNWFH4=*^^GZqGiu_ICCTFN9(mgHe$`GYPpP7gua7r{Xm`k152>rtqTjPBM$m) z+CbG$oDxwoWx>f+wyQ%Lh+FIn&YrKof*n=Ou;pG|O_dk8NXAs8mdp(K8w31JgOC*5 z?v#9)93TsYbs@Q%``Ax#!K-wlzx|+^zKp5o8N&QZ(T0{0XLONEUb0_A=|2s6M%J#f zQkb=H0wB8kwvGJK`ajHoJMB;mF3fy%_&+RSjh0T2B^gw)?`B-d3 zx2mY+_>H!C<)F2Vi#XV9kwXE9IqIHd^j|ajhpV#IR~66F-7tFmqiKcG_iM`lE zi2GX0GaeehMnjX3%U+|mqg-72lIoP;WH`B%-w@9wlwKZX7a2^{H-Re%NT02$d=rnR z@Za#JE!p&^6T6T3;-Xah5<<+Lj|s0YG_ozen<|>OT9SAQu=3R)25C^d0e_r1M{n@y zC+;!GbhYRq@2<=Gp66o}0%!_bwA&-{H?~Nm8~#j%)iP%a;45CZ3Xf;tlg@4_Vs301 z_o%Ne?Ar>al6TiWSo8}~7s;0;6P|#YOdmFE>oq`}O=0pR!>q8hMBO7BR=oVNQGAUw z*O_6Kg2}6GpzEK$p;QH6ZIENipPE2BISbt?Z55h@bN$0` z<@~IiN<+YKLAR%^pf?xMQ9_Y^en2JamU&@*=t&C5VuYko7gY#cykJkFxh+>gn=f3d zVBTHxfRWNlciEOh0+J7`SoW3oBS*vvB$~$>EU^H9a7_sNxg}a&KSw|~wStGS&3hIQ zY+t58JvgKe1r`H~ww7Ca#9W&O+QSuZVyN-i$G*ryu_m>U>|PDE1aJ|wsVsR5y(bK( z!=14L^~UHRS3*FZ9{##{)TgNhKoLY_VLen+;NFoeQ*-8?c;4N3s_PY%82qQz-~7^?3_KHYkOF8s9(`v)8Mq3Frc#p zM-NP)AIL$25KCCOUgo{(wQ}7Tkx!q=b%>L%vyUWt-5IOV7E~;T^HqHN#^_Yt8g9~1 zZ99C=BId4ViCdmTETXhSS_Nv);-;$d6r)H&*LW+6zxz8Jp}xas!-p=vDXJt4N{CRN zC%X}qj|@DVWKu`ilT-+Nz|X=ISwNj4@ct7Zd75*gFLixLi1J-DvL(TaXa z+K`SyX_+;a;SqcauOhu@G5noQ=l72@D}P!Q0KxxDE0BF|*2l;20#hxC{;b>`I|M2rpj2)-?i0;m=Wded+fVm$K- zhC#S-P_cgcaZJ5?R%Rs3_rXVQD?a(x?`}RLczly_ zIE6=(cDgqVB#d1KN-OPM7!}g3kBx^doV<4Y`DALd*W!=Rr9NKy1TB@8vT>0#sbr<* zlPxY`U~=OeK83pnkzjvXO?CO%2%+p-eT3^xacx`Wr zcGaft3G6~eh@&Xv7Ehp-i*;>j;X! zi1MHxcdw-9%2c06Pp-6T?>Q}VI>(G9HW+5(YG&S*%>gdFvt13J4mWCZ7OZIxdy3Il z1>~aB-B5^@M7EmFTc}xPwrcNE3j_ijJ1<2P2)gZ|&L>-xTzXdUFVK+C|M{PBmF?6* zy_d||267){QrUn9>6$JQ(GS7OrKAIb&$BsA4qkDmrM+GF6l+fqn+Ab_Q7eXqa)?;w ziA1KX@=SNj*tYMVuxtzY3l?>U&(n!WpZI?G6S-Kp`Vh0xlhxYK?Y5{fGYx}`LQ16I zma}^r(EeC5PZ}kVk`&CQDp8xqg;GSX{Wf8!CA%{3>-fFDg-u|-e_0`6WpM{LEr>avZMU{F6srN%ub zB`(n5ZB&PR6;y$Ku8p7cUNb#9(97& zi)~#3-$~bRCZWWMJC#CvcuY+j`#Gh7Z^Q2N3?-}WQ&XbZ>Erd7ayZ1w%{Smp-uK`+ zF=(p`cTv{v&9CS6OlE>@<}9D)2{nXQzy(SH=ZAJRR3s&_2kMPNMb##qrQZ{%Fn8T6 z6g>3!h-8Y^NSCNE5++#Z-sdf=zWykIBOejjwv29iquKQ<50Uj7;7X`hU1=@$j~PR% zA8xyz;Vrp%!%T5%})dmU5}K5%g5-c^D#Vei}BJ`OcM=?3xpVVR=0c|NZ(#rLZv*R}tB znOXsY|cWxrXd=*#7Wo8qof@V~!Dij;&P zEghq~yJO@4=^owPDIwjAZbnL%pmYwDZUhvNZlwL~^L@^9&i-aQyzAaqUCqA#@SAiF zKIv>H7?u8tToWhQ`P_k#n+0kkGicA6~iOIp6Y$dffE0 zOfsWAS8Td>?T7fg`+LNPEMik#`|!P!@#gfR&fPzNf34HUNE#v{!Ajp(qe@}&soC#R zfsq!rJbj%@ta|azBIMTfMr0FT{M&3`%jT<0)f^P|;Q~2l{@z%`zq{`n3$B|OC!>_U zqz53(Z<4Mx!|T8~1{Xq%7~$XPNQ`o}-8%~tlks}&jFSwP$wuf>p)#+&%*?XkU)-%8 zeZ6fd@U&p?$JZKZ6XI;~1|GxXywpm`2K0rbs*N3V#?CD8W zBRp+@e!fs8;;b-k+{livTWi*7Fyv&i*w`t0XxU0&HD*h|F#IWL`G8DnWl1SCBX&Cj zO9iT1@$e6D#(!kf6n`L};THpI#VMB%U=L~=+1JW9@P>X>_cQ+oAgy<10kf=Kds){W z#mRkaH6EnyINVLrxWvF`zdgd@+BbNzz1UV5OKx-RSnI_9{^i^;vqpS&J2IO?ZiPxj zlS(9Ul_2+3*o3r@5!zVpN$$a>s=7cZeUE#!P%bL?~dSl z6Fm+V(sK8D+uccdklPG<{s9IeZrh#c!C*1BaiXlK*yz_*d6OozN!O7Uih=4X(2&A5 zw=B)(Srj(&6cM3gGIzQD74_%tXpNT&WbB(;3%I3Q>63Z zub+ALIJ(xen#i{gH}72O#yBY;*w^IK#1h>%oP0%zNshUv{5eDEf$3WcjfoPkw^S}r z4S2w%%w}-Xsz_kNta!fhn*BJLEsO@Qe35@pKRsSBCCfDVqG&YPv{#@fkRBxQSyH3! z`g(PAIOgL&!0;AA3I&U8to4=Y@se=XRdfur_NPH`wBnfv=ZaTn-B>vE*`*Y9w@|#WV2(V zc3+~b^o?7B#jPed;XRAnni>2?c<8&bQjWyrnm7qm% zB}h2^6}cm*W!qVmFEGLF(-&zS!<~4D$9gw26J0FkikEx$m8>aaKFHZCGMgMhv*}jE z?BMpQpszYCv?x-eCWWHv%EMMG`^SiXuo(l5^?K{giIpiA31NY@WwUT z>z2S4)o$l?J6>VpWv{NM>YFfd+GRBbi)?hN%or_X7Ns>@dq10}FC>_+Wa(!vz&m@g zolLzAt&14&@wulQ*Ze;`eBo65h9O9-yYeP9W!>dorP{u?1bJV0dj8}aCFIkmoD!^p zG}UuOpDDjzM}c@JgH3Ho<>#{!8pBui6^*;a3wfq5zOj^|=P@14J3qWI@8q4#*u};F$FK9k{7@4Mo44z+7~4v-RXbNUE8~2p$TUiihR= zZXYB+sb3()S+uQA$(ufT#cf#$uQC6$$4408`=WFR1e&-K#p!7*m#()K^&51x92m5Z z_-rVXqPjTEx?&JbVo5ynA-m~aXRyo@JM|{h1OP`HVIvq9i;*QXSHsN$y{iHmN@6x3_&VHNVxP08x z?CnKLV675bpf?QcN^c)ed-aP992;G=T(-}7PPbs zpC2pr#~+n{wrg&80JSQd^HsSZ!!Lh_DbtUf5bsi;43-6`rZMc4>@W91VA+s(+NJoH zXJTQvx5RIzMtS@knOL==j)h_6Je#5Xz|Ftbtntjk23@0~h;+eKz&111K7r`2a{OCv zx(fuRs5o7%_x6?YpP3^9Ha7sa`JF1PJ~xk2=+NehtZ+gLc-@{jfDtB&CFI?o-UIU7 zI-OB!rdcqFo{csM>~-jkb`B8$sSo11#M{y7+BF;N@z=SSjeht`MYcXV+&R^WO7v6Y z>sUM@VozzQx_sLUQDIe9NKhfXr#I-HI8@r{-__f_V2?yhKa;=f5GuREm+P|e%KVgv zIWKf}n9~v>%Q|Qk=Uo!o41<(hUwUkh+qm@ft{7GXg1Yv0K3zt$@vSkt`yA3wvd?N! z_`ga~r<+J8x)3zN+ZwMo&gk}N5Y_FFf7bgYsnvU9CLqp&>K(4_YQN^V_|cKW#Q9Y?_%k`DIF3(Nyaj+_aOr^$^Ws5W4zk&V7; zN=cSibxVn^{PU)nA2;6T+PTW{4P3P!AuW+HizPsB&pXVFNoOp?sV(7<=az^dG1w|pP6G3UN(P`y3DIz z%fqWIi>PO0M{B@c+#4K2lS53N=@I$-Z{?9(DK?9y`YRnAH`xjr0&U;DO<|EqY7-f{Z`t7~o|R~B*CnZd(#qPItO z%|rYIs&Q8woVLw(I6&oj8|LiOeEI9z&&Sj@HbbHU?mS=L?n!EudMM3UetA<0cle;S zq7Nw$D{hA3@zNRSsnn<57~Zh6usZRr-jiDCh_wBp8+l-TwY&%!micpbInTOwyu$w8 z$nbCP={2Vh$&D3@lI26|JV8Ar)`#ktL~_z3N8>D_-0O9Y%(H&GtNb5-nzSP4>~jX} z`8E9cK9~;vxyAlId+N6O@kbtz0%pBMf1ud#U8r2|gS>{6HFca$YqVlosW6Hex^S}- zMoYh^JO^yODLF9C#GEmh0c{3Yp_oESlS)GH(W;z#Qp+^6?FqEtSpHS7L`X?1gMKf{ znMmT?LnO2)*k*4LBawzm|Dk(G=%)7xpe^9Tp@%X~FNqpcMxB=jH_xjYHAxlr2-gSN9<(*% zJp})Vd!vxHFI63mh$wAvgt6q8Ey7052Eo?7D!H;Q{M8HJWHG0`UX5--xFv&p5Qrk^ z>K^w@?=N6Gg{`qJ&XT1u8C`=c;d9m(zc7Tl#IbwTptakXb(B?}#~MU(_zgC*?K3$b zV$zl|e^XsuZdgbmC6k<1flkd{uWHNGU&)K#0%<{NGzypQLWB*j)f5!9gROi5bQPSy z-!Woy zBiw2B6CG#j47t~0ht-v<#9wr3qi4csEJ}t%oJ4B-zJ3C>c^8DUp=~!Vt2Q*?o(b?rq;(aftr+UUl!n=i-+j*43y48 zbXhy4{L+!)=E*r(gB1PSftHO@tV5vr%IL};i6;(+wjhV2L>r#})-SoOo;;FKc#gxH zc}~xSy_}y!O_!3ri$~t;u6l<@Ok>f9Y1z*>ycyWJc!p)hI$fD&1GSJvC3)IV$z&Xz zgDn{AMGMijV9;cy^Q+A5W`b*GL(7M<{5*gsh^6`m(6inZ^BiH~ziuZ+aMsD%$eH0p z6~~kB++SI>#AN!q9j_sha)s+X5umt|S9dLm+JTP=9o}fi7G)F2YNH?Y+LdYKpB3<=V z#?20BxWhgK#;=Y#x4Fu9F61|k)`9wl6Df<9$km3D^|wC38gKK2rs|f>KX6KJs+Lyg z)-QUGi0~<;8f4|3cxM?o&ec-xQc0J+``dEW;26)3NFpa1o4=1lSUgg;sTiWr^m;$5 z0{!&VIG_ygu8$}{JnD>D$02##yf;P(aaBZ<=-u>4epzyE`@fGobR14ltg6S8KE`kf zjWsJZG&EWUGY?qS1v{+YzXz#3tCvaYz`oBPa_6>*>YsaytIwAbG3rl7oT;Zns0)$< z(I@i+4d7SdO$IW3r0rIyy4wl$(RK()*Rgq_IE4Ah7`nS91{M8xYc-3+oWLgzm7 zJ<9gmpsJ@NH>!v|Dww9{gEp?i^>e;|_iVzD8v*5rd99R>3Qtd`)4{V5;9o_LzV5NE zkMp(7Br2EMy2^2?yFJsp`{{I%{xP8peV-k(6^={!r~}Xg@FXAzf$++^V5Swae(*yX z@(>pLtx>Bm{&~?xLZM#F%7azE=R_Ry=n->!WmCObUFZHohCo`Qh~0C;TO4P2@0y0(JiU$Po!ywU$5ht;U7NEYm zKQ@q2>8l(r-1jHY>73dZI*bM}9SvdctvIWr68e?*;ASc&rcg2|uJ`D8*jz{$9MHUmD0*bJpEaM*87R(O1I=#=IISQ7#^}n1<{R8AJ z%|CB$g8l(M`Hr4xum^q~zBhRKNh0wJ>GZBg;N@#5^Us^~mj=oIH(dxBT@o-mEvER< zH^A-l)z@;li-924xVmz zPQs43FOstKZG;~M3WClJtJZ5-lD)7+x7VT8dM@F(Ib}Bj@oL8Aw%%$>5T3$=q4{XC z;hqY&noL!L3{|d?fY*g84t{x!GBxYP%zFdGWEP^&>N=dtK;V}@(D9ZkGxcSgJB=Snw6vP5J0Bc`iX-AQt_ z7NHf_t5UICCZ1`RCG`*TDo!?gVfq2n)1C9wY7n0;Mf(8&pNTXNyhruBwXiEh-glZY zVf+%RxWV2O##L>^TAR}T8ehyS%>@}kR%T^RmW_l3LS2DJu`_g`Jxnt)eianfX}ywW zoV60B;8SqjjiCc7*R&04E?N#rzVH%O?@0_`M{gt5RI6C7Ik7j&7Ya7La^)ktiS{qV zTRyUC;KgqO8}JfL4|1o-@sQVrEsW-Au0ov11%|4NrM&HTXndiHn^n(4%C_JqL9d+j zSsSwcsRip`LA{k^#p26qRk6yc)9F*cE8Y%hi2WL=b;IB3@`7)67$$gm9vchjy7r$Z zAEm4A9CTgy^P)mY@{)yb+SUieu%6}An8~9fC9wpono!Y@rHtuVVczp{JEfc-KZIl6 z0Lg5IF2mi{koFcxU8dYbe)Bc+Pgkh_vgQ{Y_*G|a5qE3fL`iK|8g?hkO@4Y~=YC?_ z;Z^q$6Ge1drxPh55aq5A;Xh;AAl$UEo2~ z4j(jwQ#0QY(>=8#`C##8s1Iv~PFgw~>6HcQygw>_Z3|oCv`;p7`LIO_e$>WV45Z^_ zfqC!2Efw-2YgrN&G&1;25yN6DejMd*(av9CS2|_1%cYg6YVF(%caaDDRY3-8sdYq6 z4|qHMUSRqM;O-5;cL5f22}X|udgZ3UZ8H_-UQKec`~$3QYkhwlX1fvlF5JA!W|X^e zXIG=xsR&BB!Dug2axuYDPnptdn)o6xF#i-mkLwgM>svr&P!s+<>orj!MZQ5?2&-g? z1p0U8j!&EX*nh+P4=_Yi0~Xc|9mfc$gpc&Y%=z$c84QrUDX>v1ZZM>J1Wu9!!5hP9 z`_QnqHKc?#x$0WowQb60EogG8a)VK&pw)Lm1;acJareASbX}@3fx`G=U|6v+D%~9E zr5e$@wOD*aYUHA9`Os$RoRH0qcq;u<%Kna2)uRz=23(zCxYvD8KfUq1e#=?po>PZB z+do1XDv;(+r7JrUF?fc1F;*kK_x-v42XGFiyGx^;9y;7WesP%MFxT}Fx@6pTM1~NI zY6c|efK+*VRxNV`waSfy;2wWq@%BKQDJL?&S(nOIJB_hQrO;8{7QL@_MS0>M^}BiY zv@X!vd0-r;{^Jp>U=E{|{DG_fcPPqrKldRlr=XM?C6L(jHygd=2>)Inv(94Q0;h?a4?T8AVxq#p^-M)#V5 z1=!6H1zmN|fS3}S5ga~u0V7{lje6E7kX1OX+>!(wVjhx`H`&UC$0b@&{Vjazqb2fd z8i;qruHx;fEZ@NTAc|_078TZi`z)-mNWDqwaK3?(g$T(!qH#;NZf}0Rw}UL@PRB_< zb+>Q6v+tgYloz>%=Uu?>bA`TVEJuII8E(_h{Ru`b1FfdzVSg4G4@=J@gd!$v!};cW zuV(fbGVR@wIqC2L#8>({Kj$dCHZ%t5Hc+*yG9JIXf|YB&>bB+j;0ziox6I$K->NXO zyiSfwcBQWF&e0SedbCU@S2FOd&lQ5Np&6+Kr?dN?{K+sJf!>YU@9j>r=Obwc&k%45RG)@`)`Naa3zMkj#^x zC$Qu*8EVm!Ia(*)V43Pe{$M9is#AZT>6P?%`Wa))&eqQh1vNx#-`DU}XvPyOq7}v% zcVR*kYky9{7n{x-7~kZn*$guLs=V8o&Kr8x;w#XpF$jRW&$bx0^`f&8k$e2jd7rG3 z9{C~OSf$Ta$k5RvsQ|*HHE=vy%BE6)@>PsTjmOyb z8c))PveP7U4eMZj#C}Y^$|dVn4QhfEgZjJ&X}RSpRnDPm@#Aqi4&_hu-)m5G;gOp) zkd1c(v#QyYwuF@mKg{(i`UNocvAm^JuqOk>UUr;P*{sAcR z$1XF@3`keLNz*#;5`v=ZAGR;D@`Wxr(?d7hP zr^+vPiVL0vj0NtE|E`rz4~YGn9hDmlU@`i;dTv+Yh>WEP^Z{FeY-`b9TD$OXcZFJV z-oD8G;AyO`wEFTKYcP$jCxoeGcCOx2J7*IkqpLMVuD`F}0h=IX&;)L|`!eH!a0MWJ zD&4V_fN2vrMO(ztPcy284Gk_xx-qH|I?ND& zj@FLQbzg;&O(ixWGC!^ih@}zNWc9!Sj2BlO3Mh+67leEK9bG|KkXGqiM<2GnVPXwd4$rjow~KI4|v}vNqMVdezDQ;cEX1~u~pdC`1RS)gm=bw*{tvC_KXi)A?Rc4{Q+O-C$H;DAlm#!3Ojj$eR6WbN(N;|`5Wv{qaW%$1 zcuOx2wkm!qQa(+t)`u$E$FKhbaIONW=_{SaMNfzi_^Gy|TWWac#oqc2JW@Z3utj7h zG`|Nlq99jOysa;6UqH`W4@l~CFkg4p*%mdA;1SvU!XImo3k@bw3duP_EtVrel?{}<<~|S zg^y?l&!|vYoKpAn3BzO`LwjBdzA60El(#n?Dot!VH(E&cKR7^x{9j>cOOsA|{uSRR z=%Gk)N$)$c9(H?NKJOuS4x-}5-3-x)UN##k4XH50|Eohtpd}!|C|Ib&K*OVC@KieME0?t> z!8r7?UW(ZDIT9aSnaR;6zt;`NlG|Be-!K#mm2;6{&T470AA@4N02&!DM~G7-9lq{` zC)XcQyJZ3OKaWV_)v*$<@gA|JS*ZI5KqWw`)ade+3m!d8c0x=G&CVisG{VsY&H)Ui zI=slrbGWe zm&PQH5)UtYAFqEB^#^HJZPX8~@iT8sP*apg(!q{mR7%w~cSTNmsAOqdR~T}znMyUa zPV{cotG?pdmdx|0OWi+#xfe^e*_>37o2u+Q_=7ywqc*<6+#7E z{_1?tvIZJ)Qxegn8oBsP&yI!t=Vs1DcM*`86HMI#Ii))XdY^auCf&h_C;&?%M3=4Xbw=rlkttw<=ij@{$6NxJ5qy19a#dYhS23l9yh9xEU`4 z)yP8Q`6}7ieT9XjQ{gASJpJR+X*yK-X{R(+#yNG*l`D4>caM+kaI|`0Xnu*TjUiLK0bnWM--(>(k^0 z^O$0`j@~Qx8Hmri=nlBAT(apXNznE_r+|p+ul74P@rTgc>x(RZQ(KP#nx5C~S6I58 z&1{+86oyzG7sekBlSMB{Y65|5EszoPmR_K8Q_pdL)6JFX^jpiFPB{mrkgyYyC{ zOW=N2mh9f3f}vy1Lq}g)t%i=t9AT{{^L$oeI;nkKTfX{LaSL8eM>?vum3mIM9`~Bi z_sryB&52;{8@#%U9;CeWVY5T0|w#_IY=FdpH+P8pY(9U36Q1C z`KnQ3%fEwC@KKkCo_Yqib`HPN%N6rLiFnc9{6^v_U6@}|kyv^Z4EpfVm-{5&D7Ol} zF&lyB4~j%Kg5^MLu}M9~0KR<7V-`h((%QtUia+gkqNMwj&x!<;q>8)*5v$Y_RT z%w`=L8+Um-H}Ym#CX7Ts##7)@XdeZK4W}cM@@qmec?Uao!ZL=&|B$O;I)2hPi7!pB(C^ra6=PdI?_TPh$PkOHZfGdd#Z>PcrjxBGR~ z5@q^-@aa}JC<)h#fJE$mrfRu@-??&U)$pUV&wTen#_s=3XKp`PTzF>~vEGqrMS>gc zFks1`C2K$(T+%tHBQWt_r=3E|t_&gDwL^&5JueyIZyl{@NK>M9Vk1smF!>8Kf2QmG zD5TU``66X2EX_lbrVhZk0$OaT5%!$?Q2aX4+naJo&M2S1D{A%e;Ol+tl)CXWy>BF` zSaDbqCtHMuG11eomw-)v-4pM?cgKR%fkWH*9{@KjmX}vX=NohD5#uv@0k25q)#=NHZW3GjX$-zX7|pz5^{)>z z`qt{+mEFxoNhU;@ZZ6=Zh}kAxS5Y7!AD8WswEX7Y$s^g8Z+yjO02!7-44~Gj3@IST zvJg{a=OfU?(+<1JHx2%HpV!Pg?$RP5k8g)Og+Wx7!O_9cfeD+4(wwXjp)iTGUbDB)VF^4Ch2 zhI^z+DZYx_np4u$Q>wh$u;}g?)gK}tz@g~o`5H+}R^`O1kY`Ra5)x74sY}~mYo9Dq z0ZSAOuAH6VgiSq}JluQCX2PktW2Qd~!Q;drJ} zrJ_G~HZflHvj+#X@7WlfrVb#b5(36H1p;W5Q%G|7sy}2C4}Y^G0>T{Xo!fWGIxa~` zK*ma=ziDoPyMLkp=w_qDaht|Q3-3Yo!=NbpR2y>mhyD&qRAjR1E^lY<{Y47M0{Vrd z-N~$OQJgD)kf5xurFp#RAl?(;e5>^Z8*e}jJK<))z}?j}rF8zulNIK}vtj=>%?`p9=Oo*ir=}e$^Fr&ZDY!Vav`%2Y!M_M>C>6_%plYe|1b*33!Ji_(KGD(gUn*xZyn-f=_Hc~8M_Q6 zPh8%e=6Df5C-Bd?;9k^VpfZ-eyu#D4M$^h^3&UX1ME7lN2YR!t5J^%#H_^1lOaGa@ zHB57#3I$^l;c7{s53FMoaLt=wlkE(9oENAM#lU%OP~XbYZ{-E!AQ`uyR&c>3MGS1fUMn8`ol$r~Q4$=>j1F=| zSZ&O`CJ=GFvcAmL=(3Ax=f{$F({X~_@}^qTpvmpvM^Y9~X@?LaT8YCO0-wZO$~Wy5 z0p|Z5y-4}*1h|y7k9N>zEqWcj59_qxA3Ce*E`O%>c%1?jgPjzB8y>IcQc6`e5c1k&R~b|A@D({v))W*xtv#gJ9-0s=NZPyD)Xg^*7l~~Lvg3xc!OKklyiJ|@dWId{ zET=Igdy{rA7aH33)Mq0E(>1~ zq#CU@0 zr++PabNz?tfJ$;yIJQ6KE*!6oVDC^QDSz4*TX_X-Eyo-k24CmPy84W`uZV1#Hw#dS zFcIoWyR!(M*7@`1NT()rwjhhYGCjE-XJoqxfh>91&6QgyLaUB;sb_0X?>-qu!E7;bY@Z;YxtB;esd zFkgf&t3Q7#i)-Ja`&6MXGNthTd;&n2vS_>LuPxADeK$1gy)%);>S|O)rE9>hVZHV9 z8+GmLXaYKmNbN{S>E6m3yL60`pZzt}9W_tGZo>5NbhG)Ju_@t|Q_o)jW+eGOlkrI{ z*~Ctl_`FA1f7Esw%1)n2@K$vB#J~U(5;LsQcq|YkzBl&Ww293%vlk-dh~I0wO82Rj zvJdxe5@aJf%@h&=mkIah1}YaQwk~RT*_=yux^KME%SK^ln>>aZ`YI@p9ykoSBv)=H z)h5gF3lieYd&jWWnj2b$M%csmZ7yrQk(am|cTb{(#< zo4$6T7h9I=d2qap3!NnW#@HU3k-lh73#j3uik~hS_!ZmGQsz$=nP3H1Wu%(tr`J&`P04m>#oe;5d{Y&GwWKDu4Rx|OJ@Y>H< z#d$%pUx|wenQfW3%ikWcOVrW{LfOM!dr7m=UytFi)^`qqv+R|ST1O*_q|f4n(;jQh z;16FSMMxXWU6rerr!742WX$w%Z?VBLcQWP^E5V z1of6Otls^;if&aVrQ5X%>Xgf{Q8V5kRk2-!J0Hf?b|>l&qA|qhDX(~e?-W9h%9kvH z<5vA`R^de67^rF#7~$$&JGW-0gQT+)wJ&Sf%rFLf**s+PTECc&Z6vH(Durd;Na%8M zd8ax}?N5eiL}Gj=u6eg{+P0`$QEPB&eg#-2phfI-e?X|ZmePFkEB&X|+q(o}AGT4# zvV$_o2_`gFx_UvOIHe;zQY9P5*ty+(hL=Y$p5722qKx^fs^xA_I1jjgtNW!4LqAW$K zsrX@9VBEF>7JHsfU8sr;l2d&qDh9?0Qd|%^sHm6NG%5rN1 zvC>gG``E-5?;8F@S7n$CHg2PRP>SzQsMXw^Uwqj5LfS%_j@ch>k3ERz9>)_+mZOew zIjeAyp$NU3wi6m$iKx#>_J14D7so|?@+lM4kfzn_H$Z02J11zuWe(AFXscVg!hqqS zr5H?1D&?zJ$dGK6_RkT*f_}9s2hhrlr2-NautHexar{+(Tv?Dh{vd6O%s>>}QY1eQl=lu>9zD^aDKxy#{WuTCZCf{dXfxJ@7X3y5{1h@CXZS0Yi zLUv(3t)npMfJA5lu{&Qm6Wi-PN{X1CcTaK2^s~d#>YmBIu8ad z6z9=OCd7+e9c|a%B${Q?B;su#7#R-DD`grJgUk;j10HOQSWLl3YP6TwIW~8 z6&lP?(jI~QN^`DxbIc6*1uziXZPwDKwd_-@XrW2!sB(&<-qZ$Zb)$O=&QtVjdm8EN z-q&g-AeonQ-FcCG5;eJ}%%d9xZ&DQ~&*ASBb>F}G9bi-yLI@8E-y^m9U~w*et{-Z~ z{Zt3u8GYD(JIJU(oMobYTg|4pM{&eqNEvaleA0AA3x>)*^1^`I=YF7oOIE2 zh`KN)zIv~o#~b8>TRmEE&!)pa!I^Dsphj5V*&BePXf3_16^aq>09$W~zZ+~hli(o9>ry`G-Z6Ralal%#Dz-j=R;s~^Js&)IJOil+lB0(b4h=I zV)QoczU$`Cy=xLY#?PKaac((CLfUJXydP3tNO_Vmv;{$pwv$9~^zVqowP=*I@AovU zjdWus2M?n>kGq@pc;n)wXLT7N5apiB*JkABpF@&`l7Q(bmPyLh$};oBDdL|u>E&WS z!V2kmKf=C}#YhWkDjL6+ zsPxKW;x4?KzRK7&FKBe&&taaYZj<4q&PDlb#s{k5*tY+J4^$%Z?yb5_t_CUHu^|}b zIbKSuP`X6F-rc5dtAlx*rlIbkUjtS5@?Gx&eWmzKtv1xJ{sYt-ktTM^6MN+hREnk3dUB5oep08h3tgi?6)8Z(l5}1I*uybowQX6RrpuJWjE%N>uO%mmAGt{{tkc zEv`pzMk2Y@@=G*THaO|YhT!2NK^()9YmU{+n~nE8Bd$NpqpV19IJ+6M zXU7JH)U1#{sRzmECJi?4wV-RZ7!mgKNNzYmyxP_^Ul}WHqv@Q4ffJJ~C?{$YQ|nn( z?!D@z)MeOpm2%R>dwNq$?H33?w_AjQM{rB$fOdWhxq2~Y!p~%AfvcVb`;17GCb_dq zI0`jU_^{IfI>7sFmQR{=i`&P_2$cv~Wx+A^F?LQ2-{X_nLIVPWDdo)WUz@NO#$$56 zdHE)wu4&VSs<11gQJ{J15THtKI5jf^D8Q}!>5$U1})^_4^>JtJDQtJ^c|j@TVC!o(V^ zE&`M^2Rc^}>k!Izxtck>_o(wp(4hkfds7a&yp+t8;C^Vf>8nbV5_lcs8JBrFb&y_b-k-Z%ueDe;_kv6SY*LGDB8v5c>?*Bj_6I$hZ2+$U3)g{zf{?el=r> zS!9|!^<^$EgtGU73xXR~;yG_2Yz$Z&ZncBA>q-xHY$t4Ktk?*s$^BRrQ*osz zlUC5R$rE7ov(t`V01yq?{qhDyt<4YiT&gkP2;PwH2TYZ$ z{H_h@A0Q!k@pmqt+WInFydcuaMxJ97301763z|h19Vr8CP2z3beytgZOr=J{l)F@b1$tL+0P<}F1E*r)=n>NKJY*%jXw+S)SaJ^d5VfYiSP)4kO zo*w>uy$dUe-W)4vxvDPk%7$oojr2UfJ?dM5+BXU`x5m^XapqgMs)3oo07lygRE`p9Y<15YEq^ z6i9eMo=i1w@>1KZ(E<{F(F7$6+qh?Z*KKqR5$~$!d(@+!-%wxR79=&Sg{1aiMeQWY zC^+!)3?+!*CR8)lEC(XSCNSD0j3;vwMs4t*{*~6(uH)ib8Go&YY?E-FfUpPfX3dtb zJy}lF+xEIP5LD7Df3*muRYSp1SiY)$&Gvh;#xD^NNz0D@j<;qWS?zUZ_eg$2$w(O* zOz_-gkV;-kyB?o~0&E;i1)-4|f?{One%o8#h9!1IMuVu4M?_L0%pWI?01T*)x7l@PDJLqS?8A7FS!rJDH5fIRc3>z zk`d+MBC(w#2zqVE2yLOK((yOr>m_F9NfA(Bpn$O=!$CURq1=uxv0>hdXo5;E@9CFH zCcR?NCthE+?{Kfm5ST{@zEFX}q`E2cN{7o2 zy`o>DD)3o)Z^d~%P4SCNMZRF^eSx2ExDcz6v=^D=9Ty@m3V6)8ixJtRoq$PLWxuc} zZdN=mePyhpaMa-*10GVUqmv?Rcs&#PZGwc8ty26LY3sG-_!%2uoBctMV0N6f`X7+j zhyr=T;SYx<)?vHt*Fa#wX~-*WiHd)+btlljK}dY3@;Ywbgy`bK83KUZjNU=qIh*co@|g~nTRD#E1}#K9St}d zzhad%*pVVh7CxaoG1dA|L7{%Ux~Mu61Q@PC%TD;o9rhLcYdUm%~+rq z2Zu)BYTGk)S1pl-j}_h@Bf6G*oJJw+rmT{2UJFfnUy`EyXYOC$uaJnN#D4amRRc9% zs*0plGBQ(EE0hT-u0Fzw!&Yw%#?s^E;hgw?<-VGZk8b`0XuQC-yn~;Z+8O@4GxP=t zDC}HikI2eKcMEidLhaImAuE>G{Z}lhwKPQyY?b>#Q8uV$?`@6?&!n`57NQc=<8Ya5 zx;{u%X?X&ntCJF*LhY%0)DNWwEjG8t8h;}gQWtMd$VkL@3yoH17SJnX8SrUGil#-Y zka(v<<~tRx0QG#@+?Y(`^eKR$p@oGGJWE$Cg+53Ct!#AeoqlVdL)ctZ$B-`uW*HEc zf}%lC`!wJ#1`W~UhIp@UTnwC6IVF1;7g68(2q8R+G30)u!Dw(yNL$Ba5LHk8?hW~q>*PDWVQ_=6*la6(3 z=Ox&k<+oQW*N`LrsJe5#T6lDg6NI!{kb`GM5Qj4_gxzAyf_E=@j5CR%>H67(FYX@X7~Um>ADDB-$H~dns9s5QLnb zFn)8179atbyVvl75OXzUYt0%YWFnw$yj-tyA)Kj-^~2!6YO)uZ3%#N=*+>i#OD#{^-53HMIi47IF%FGO_!_JnG!iVrJMUDA zQCb;t(2s2!9BAXRFqN*5F;!iw6U6@ASM7qtn}ov{wmRvGuh6RS<=f!CNe6mABC8q^bQ~&zNr# z%%QegpNwYtY(neGHZQzJ*Q&*2!ZtjU$n=6hPS_K*dfMq>q1AD)%REDq88lg2Hi)72 zMhOrpH=P?obd5|)9PiSguht6NVU)Z}ahFX}NcdzSRu`OMuU>9<{Hd%<}| zptCo-%!{;2d-Kw?^C}=VWh@VDw5UdGX^{B4PZurz10b%;Q1+3k;jX<_!%HR8Gkx7V z=O#`*Ug>0du$IkzQgG0>gzcC}fswwVrsyN0N_gwx?Eg>~cMtVpMwU48mTxnI#@;CC z={<$F42f<*rsUd*z*P;?>M9XdI96Ut&G#Xo+0Lgxsviv?)Bb@wZ<-Vue}f&31-D z2Z>)0vANYH3q}V91yNV(K7`h1EARiO7DxG?S{(jAwfN@ZA48d~;sPFQDH0D)uw!pd zTD1!-g-0YQj%$B}u}ZRmku3wT&N(0aCJ(GeIPj&3`!>6jXE|qA+EtFIT&(HL^k)Zc zz&Ck|2d`t(IRNL!fGr$|=9?ZqbQOQ_qq;}Z9kfFGt zU(e>;qDApYQY)`kE8QKMejqyV6T7}$gSI{trsa0ndYr(A1rmFI;FXqM2{ zr}D1nrzo0%Oxc?w0jd)ae=sG49X8qI7pz%glEaIXSx@|@CWJu5X;zsB`Hoc$UzC?z z1U+Fz-Nd7%N^QYu2`6tgGv%A0H5#&YpJ~B^OflOi5+MY<;vexF9`4vqju7#d1Xo2V z{vTCm71Vavb^GA%?(S0DwYU>p3I&3@6evz{cXti$?(R_BrMN>WR=g+g`I`=wC+@qUU(Ew$Zu4b2 z73(wXsQ1MauOgGi%wLPFLUrh)Fu$qUH!CrZRLq$W$)ki2G14A1awVpA7Frf`;F!rY zEt6`^-ARr|B`@)KX-zLXm~jeq^yxrBZyDONu<7G*V=H)^Dt=GSFB&LJd9}0RO9ZmY z@!LB6N>+XqG2&B7wzp&+a8I;S#+WQ`1P31GH;+!l1}p#exT(hcX>nZ>e6Jztez-*w zyWVSvVE>(=Cq|xKssxhPw`?#mUj#|f#Qqxfe*hqwacQq!lREw0MVO3P zdH5%!UcHR`tckaX$TZuU=Gp22P&^Hdi@q;hk-pMb8mjJo!;LR0Ov*1}SOc1oKGMiZ z$>@D@^zNGF2{dEkDV7&lZr{+KaIM)Dp0YJA7!X;JDu5|WAm{W>j$Sk&2~9PB&%e^= z4dw1A2r7U2qqS&>Fa1#1)(9k}zE5as6d|gCjiCk8byjxk{-dHT^YK{ItFiDD| zkA%|E2cZ}*FIBIjv|lpZA^3J1iv<8~9A`}ZKn#7beCvS8)zP1tqGNo*maRBz#9-z+ zddrMsI`0rXb#4p`xb9=*#jmU+)5i;!fxV{>x2dShbeY*E%Y<}7c2wn1&X_>;P?T&= z(Y&-=7ZB}`uS6tzyfo%l4Y#dN3kC5NT2n_9M>pkdj0wm0nV42yhQcA=`?rc{mr;Ak zDRk1PFT(i}hC}m}t=_^J+nM92`F@@PG`ZounurEW;CKmgl##7zi}wBjxc|$8t-iR> z&>NPyw~gU2$0m!;5wDm=drEkcaxr_T5u%20<;YS0S4Kq^s~BVI%Hx`vvWFT)>6olS zU?Elt)MQTvXn`~``*=$n0w<+lT!=~AT9ugAdQ7i5x4w7bgLZUIE`Y%QOJTquv z5B!p_=I-70D^wArT2EuV??66vWz~%1IBJ4g04nJLE6<4wo0Lp1PeT`mh!*gA_GJ?} zc+;eZlj;QtDRY4BzQwY8Bre={*st%=_-P+};GMAx9;;e~BUDHm6r|2NSfTH)G`583YUu2bqWac^>>P#L{9J91GYn$tmiRjK35QGF+WZ3R15Y_!xit-&3Lf zC!S3p8>L|I8wbWN@}zdZ1)Tv z^*;jpYn>g>yq=$&n9cpH8qVIOIOQwVJLxz+bMrj*HMhN((#$XqoW z{^2fOas=oJ!#zjC1~G($46ofu*iKhwRENyUhM^-M((=_{2QJ5{g?#U`9?W`3-h`#% zSwzws^Lj_rb&*$e6D!15Ir`%%0f5sc?Uz+vc#4hkIv5uE)?(|CsgmwNBaf#Y4aGWT z|G3Gx3!b_A5BOH6>|DhDoG}AzBIQLJN*)4^-A3z)Pxmaugm^hs!F0()T}>m{E6~Z? zH{TDhM>}!PT|2lZkU%Y1GbP27FIGZRPS22A=yPKr5}?)VZK#F1XRw}dKG+k}pOQZf-<>h*)`ry3n zF+^i?g#cY+1UMAP5$q=(g8EQ&6_$_LI^#WZe#vU3B<<^nM>)upmqUgXmPlyPXjg21(Prlk;VxJ=Cm= z{3gNsTruNrtVaUV4j{AIrvEf35&-24JZ2ZIev`i5AkjzQ<~m@C&$>l^+uo3KhMYaY z%vQ?rzEOs)T`rLQkt{K-=!kwtTeG_SG)K^MI7;6Ti^a=9`t4$~$QClc>GF`(CtX$4 zxtB!rU0wGSjN@mpgkV)f$wypqsLKcwVjXg!>8^-q&#*XhoqMSmI@6H4qUyW z6`>F~8D#iS39BO*(W~(ku)72lvE>v5dSYYHALW8TPu**`3k8p;&kce7(;OMX=z-6= z0v)A}Rr{aU8dKFy&D=2{p00T_c(FSJFH|OWOGgr3lKo{wF`8|h^3lTOJxn}^mPM>W zEEjfc8aIGLZ>8RgLTY9*9x?vG^ldl|k_~1XYGhS47nKToP7>brdJ0{1oH~XzOJq|H zEU3&`RvFS+giYphS^)g8S~4B=;aMQW9xE~qo&XK!kyTY?E2J`~GGEBdSee6H@SI$> zd_*Lf!yOKksfFdSMf=Zv&ZN9Jgl472YAM<6>oM691=MKCzal$td`q?3H|&QUF27;D zY_#__+gcE3&KrW|4Iv`BI3x~nUTAwJ=^!GW)@~tW+?RI0I*LkJe!_^ z)a^x6zDO`$Yy?1{X@vi>Ldit^lk^gKGjy2mbmD6l*YRvl{MSeN5H0C_?C%eiGT$G+ zil-U18JMzpAoE`j>Fq%>3Cruq4qoqYX%(BI+$i{%8X)GmB{Z54P6e6|J zZ}eG7`rHe2l5Vdw4ZIDKQ;%em>dj|pePrJ-#VMDBu}R(1jx+=he0Z9g{X?IDWcavDEk5@lI)&R8S2SIj2i^fx&| zFot*~Eppvt_=olM=VMfV7 zPp*#i2raDrp=G&6xtS+oDjn`<)38r*RB`^1m24b>`4(uZf=UzSw;Uo$yX!5}LB&#g z{^u6_d+zsw6|{c1&c8}u{1i(cE%UV$1Z2BGquZPZjv1M4X-o^BF9W7jv4WRfMj^N2 z+8Nr=+u4C_oX^a0!Sk>oJe%9p64yb9iG*a_W`>YsZN_x7oDjW@ytqo$N;r(+8-b%~ zAaMs}Ff}Ec58~rU!EdZj-0y}E?cQVyg2dQSAn%*BWlS|Fhp0rFx$xynLueP)%9YtD zu?*aEloby`9Q_=EUZlOM8i}?nq(qcBJH$mwdUwPF`^sKwQ6P=H*h(*#h77nfJ(ZfF z7fl-6G4}-)%;yj@W$PX%J*;3zLo$jsLr(06&`X!W{vUQFuIbcVAYrGhNy|_^c1B-R$fL0-v&~7*DrV<>5GmyV4;&ik+-cv- zm8{ex6EDwhESt8#meUdX(N;u;dt`}E$UG>c91$7JHqTqGIw}}~R1bctq5zK45~+zL zL7GJ1GtW>ovc^T1Qfnu6s1(OY)mVIpn!yaHjfjRy>l zXt%x@_S2p*f$JcqKD>*3WBdpvprX*4WX!aHZuLh=mm8Xtma;x0?gd5aY(>|>beV4mE+?w4NzBL_I<<5T8r$Ih z&sT6DmL{!C=EAuPvYbgwd9roqBNL0@)v&3pv;HfSGDPMyaxrJLjLHv`n3wOh+ zrhBNSX=nB*IXzuCMnkg%~^+0UKmXJs7rAHkYcAe6qwx%y^xj2qvAW2(X zrcn5d5w%DG#0wuXy^1-tHF>rp`BtebFjHd2LGGzcVjXOIIO04F^os z=|`ZKUCRWAdq=!#{R0&I2e_N3hH#+aObWduh#xeP-$wszV^ao~zxbFQHTuCwFGpRA zwL_Ogy{=+4zc3a5KQXuldp7$R3k0`SBv!X%Y$EN~&p$1_1d)NQ@7;>9l66~Fu_vc) zBgr#vEH*}g4@5a{e29Xia6`N|UpdTz*BeSV0m_&zsarb{t^8=mVx^TX(5FezuTRo0 z(7FEQd)c`QXF1r)6V11{Unvnz(J~YNqr@Ua->Ev`7Qyed|drfgKJvt~5(9doO{=))4-z87vrn&|( zy?IMaj>r$|WAp08-Y#fV427s_atbMPo%;$=JLpdR11#peQrkSE-wsSX3|EGs{qckd zjAd6$tuu+76I1F&E(8&;@$61gZ16>f;@FQ7lX%e-ma@*oU0x{H(FXJb7xo@a?-p<= zT*=NkO96zF6G{H~N>DM)ac-4H^=OKfA+O8~?B8<<41OUA8g?Rj+jlrYY(KC8h&T1i zl|WFPGB((@fKh;~{s0L*&!{&9(_E(L|Ca#Q*ksCX+DzlA3z&2gQsS7|-?4s{35roN zK>B#g)C2NZK_e+v#jFs7w>~uj6qKB=uLF-H?}pZpYCsTy-2Q;(jB6MvG&Lp&rl)JsK+=pps z#Yn?dqeAFiEDH%SJ5iUvnqc~vS}`0kSzYxZd#`f6@?K*~VQJDP+I^>Y#zOTqUxW|i zYl#4E#x#A4+&K#!E2Qc!lLfoVCx53M6wU-77f7V1d*LMi6k^bp8J1uk$biZ~#h~rM z#`hoS${5gv(=!QBWYXb#Wp!EexFt@dNnwjw%MF&5E1&L+FUh(o=!v&%->VpDv5#rN ztvDBsr?X|d2y5Thc9{$KX^n@AB}@w`J2?jIrr+Z`>25dYDSRN4_B{*#Vj?3&vc4jK zmtx7&+m!?y| zmg}vb{~PoJJumaGS+tDj!g|whaO!xnFmo2=g`+#;GtwvIXMg-}v_m55gQ2wWE!z>{ ztELRl=ndK1;*wnTxP_RlyVK7PjTztUUlLD6A>q*;*>{C9-tVB3}8m(Pe9 ze3&L#BDQ`xa=w18ksQqKSTqGI7MU}&dDz3&v=|Uro4f%w^=I*h;kWfu+G4>~=d*ag z$FF9;hW9?}2Ed2rWwbiEm*=RqZ$8R+oOMIcHE@$$@HcQ98&20Y+N24xAV3)aJJF7q zZ2{)n@P;+i%AI0-(SGt9)sO$8*BrMsEz~$huKy<9S2%r%=@5rGJ43ZfidfMX@hCl` zL-7ftQtV3Y(rhEnvmsLOPIsRVVnzLPD3tZHt3&XM8gSS#68}pcM67_qRnU^RPIOi+ zg_w4#b-nY(GtCk7>=StBJi(SgXHOuIKXb7N~U zH)Q?)ssvC_kW85aaHcKpFPa!_c=``-eX1CXI9|l)SUed(?+)=2nFte!t`{5KHoCyK z!OMlRSQ?E~E|1^GxcE0_U2>(Y4Oy$gCbRBKo!2Z+T6E!=ZU(wV?q$JDQ!TCrOPL8=FhriwQ&0;^x5h6zv1v26Spt|DR#gR}* zvNCyw=M9}eCc;eNyfK=i^NKx(&f1|){WrChVhiNc^REgYdTT03*k{KYMDpc@?Nu-~ z&9fSF9R`VM1)c`^@?Qr_SF$4C4_k1ldzQLkoYy>714|mMasueZ7B9z4+E?zJ#^cZb z0iHL9&`naZn3ZJM0xuKfyK`6!jYg99<`z_>Pc>A=W0(S%2+{NWaTh8k%UWn0fw8PS z;z$vSH0>R1LU(60#m?abTTp!ve5+w63{yW;v? z3gT=Q5LsDLz?!1cj#a%pq?6$b43J0$R!5d%kV~6GMdkGGj(F;QP^j=U+GC{gzUpT@ zSL?tNGs;sZ?);5y_HN}zxPC?KWDLdIgtN`UAFd|JxXDUL&M;a9L ztDkDIG1tCl&WW+hIM4KJ!g}snQv+Q_R+7qL5@a89%2e5B7L*<2AL)!B9RpM*Pr6ih zphB73muX?^t~#>fM~CO+cR}%>Uz;aO9q>Q2%3)0id%t)=HAuUFqrgGTVWqarPumkp z++Fw{v`sh~3f)O+sNU8x=BYuoJa`*6hGFzm__^CHStCrW%g_-$H-LU#=Q>QOvM<*z zTY@UVc65JKmz2`$NGvSlRn^LiY6G-w9juT}Av zIEv4|B=`qC%H?(QS|al&D|yfoS7dd7LWAueGKis0nzJ%v%~PZK=u_8N48vePU=!w^ znB7!26U+oRQD7zTZ~>KY02lxqc=@LdF0)a61sJ&_0uSVT)SNu+rouu*YYU|V%E&@D zMiYTAP-3Q{A?AkboSq!fVFFo_&oQuJDAb(}6fJj0x`Q&FqHLPlG{m*mc@twomd#@l z6a_|9M7DC|vaFCuO`5og0dU864yyI+GMVSmiXIZkE#1E)1JL7#YG}>k;Fl?1SYKkf z{VCK}Q%gZ0DKF>;+JzE#osso!6|E@PSP$(&`bZC3r&^vS`Dt;?-3Xd7Za1wjd~f$n zv%;Bl3CkH*x3&wEi_+_=HW+qHqY-UOjy(08F)v9S<~jSTD|_d0l8c6)`M$&a{S`rL zs!%4F|D6ObsNbey3A@~762Ytck@c{NWC}+^4O7OuKgDLt-e@Rg9VD5G38&5hFr@nX zQXIl;qpHh))Bx=?H0mcW`*owI`|%SEfm<{u?L+<(aS?J8Ca!A^E9TreZL#Ws&02Ay zosxpcOcJAZo^1ELmL z-5y4>(Hrf@UI7Al88mOtVylksbXy+>0l|lcO^UkU>%D}^gGBKZ2rdK56w$o9Io45&4R>|AB^Y~Y1|4HQFbSr zR;+~jX^-IG#XBjvUak)i+Zg==z#w+$!J*OVeGk+r!2=uY`E5y-r*UQVe6^KW3xPc} zu%u&o?mBfSJ zM+=WHi9EZP5N}c<4bqDoV%at}V@1!`lfAjPGi<1exU15muMlS2PIS_oFcyFRrIlg{ z_bsB|QbJuKIj&k_}C~cV~ z=xf3c5~3?51^So3M_Cd*r}e2rE}P^ge;b1$4%xwelHY^ByvknH{sC4^$n~JLEU7XQ z_~y*ugq+a%rFpFtF*Ymq@Xq*jD8ro$}csAILJjxgG7UvqX>_Sf9S{Xa@ff z#KrC3WGn>NB_sp7pA!F_3}RuH#OwgYO0bTZm6tx!D3k*1ZS?Zj4ZI!ps8l#;n&+Vj z?;Chd-$m)ux2z|~ns!VBT>LdpT8&u!ntr9$d7OvWF27Nr zy7I&^i4}z^2gdD(6{7U{6M`&>jYJ?jg=Y5(eOrcj1*`Fz2k`_ZXd_dM?uj;MoJjW3 zv)Y&e;S61xk)lLV`zL=r zCZ)}RYY{4t)F(Zp#L_k%BqsT-E^r2mIHCka8>mGo)?~tg;P9v-@{LHwJQ;OHbunv| z1lZ!dnz;1B_B`G@*RnB=@v-mw__idz^fhmcwO1q?n|(RJu3*@xZxWyQJiz!|Ky=J9=%Hgu#pgz-@5C6 z)i_cbvx@JM+xd&L1)7atUGJ%$)s>VkDq{Jx{eG=APG$)_;yCpD%22!R&LP5|fWibw z?5GzdH*SnN`*v^RpZK5&ULvIvBQ4YABoKt7*7O%FpOI1uH)<4XS%LxXg+{DiNLTLo zAU+6nfMbY{lH{Dx@rua}wQwxsR6I)O2Xr)fLNFaEW3~v^-TSc7$P>#=Lp%&5ulVM| zs}DRjru+FTkkz|%U6w4E?~RJ}dE9T&gUz3IFi{sSxr?AHrL z=9#e*t+oAj{-6u*StecH3Od41*XDPntKrX$Ua)_Ol}fXu4OF0#IMRdoHNUTS$uJENFC<)!nZe3hEusIkR$9V0AQC}_c_&P4O7yy^5noUUy zJ+ctgrK-bFZYVx%2`AafXeSlME+ISuIBT=OryZb?-0*<;>DZmEV>yL+{kdoPd6sG4 zL;%($=z27&7zb3o1aMaiBro3{pw~1K%WIJ4BPL%olR0rbccyRKS4v?cW)mE3ha|c3 z8(*U?w%X`@dWhoz>IdsPgD#cY^&$&}+1%(R1F`HOjMtB3>*MpL{>WVFHOOEfYyJ(ttA&ZWVF zGs~|Mb{^P*AH_fZ0W|3{&UqGw%dLNoyRKfC9u~RmV zKSZ3%{B;loCmN;GX>IYm0!x$k8uF&KlANmLEWDxW@YX}|6*7}kEVS$Nb|HZyXLKyM zUwy}YrakmlZap_KD8;ZUMcbEhS!0|mD5m;sFAtCRRsyd60Txurcxc*V_s2b%J$iWd zZ3~O>$Bnd|=#pCtK#`0THlw&=ZF>2U zAsYtQ*w!S(fVKtB0+`;Z`|Nb*yBoRMmB$td9f2OL+QpuBddPD`T`-EU@<;ux9c%?b z(*Nk_tDp7H)fVvJhyGwHAo9adbFF4`>=}t=qI8-0X_GIK1q~9)TJcXX!Eoni*pt%Q zT9UJmr#HV#p=WCYJ$OPi~3gj{5}19X>bHL!Pg<;n*tpc?mYn_sEH;skG1vQx0!sF;t6G zX`1J;n?LvLH_jU4ANRZOn|xOQ1N&GP!knTKKaN|_6Cntp=1PfyifWv}7$NJt7!OGX zXmL244=c<+fxUSn4G*(el>Z2?G|vXzhR*ETGmTe7(Kt(QoLlK5^+?Q)7RU%`D}b^9 z6p#nS>d@?oG;mzqwFC~VmTG}A=*>Nte7d;o`$>-yBWaDjN1eK=g zbr6Lo;&u76+9!Cugf2&*A(HzgP<);2I@vz!dn){UkFVrD27$(Y!yp=(Xpz$-tJSiY z=YTAfTw}2(d@?WB)BH-ira;S@3o+BYd1NS&9yH=vs{?)cU`Y~i)L9UBSp|X3AzQbS zi=lz|h~Xilt!R*pM+p~X7UQL`@!e42W{gT^!B%Hq^>lV>**1G(^U!Qz6zS)XAbBOs zhTUHjT1?6~#t}T(SxWZ}^N$71-+)1Wu~4zRcq-&zozOhKlW9G#3>T99U+DCHq|G>7 zFL7{)7Q;qkLP?^>rIB@Wnknd=>)_mBAl>DqHC)7^9DU&6^@7C1Q?G*}{6w#d$a zFD^{Nby}=P!wa?9yu|m1my4&7LO=GMRE)=5s*C{X>&i>fs0^?o#%$hLq7<^0*9@`S zjDw~wGF^e93vWhv*$mcxM#}FA1*T?&Tgy0s(SU!|cbTHfA`^I$#Wx+#Z8_-y)MDOl zye6|7UQgjF6e+JF!D#MAsa#?cqae{*eGc(1PWB5bFRJNBXUtZuJ6ug7dXZ&V8g_y5> zOciHsCoL3^^4e--uT*Xn*AsrW=Ac5J3wm)S9V=jCy_+66N;tL@R@i41$E|iPFN=fI z?rkh@zeCaellc5$hXvMM78`_@xiJ08Tb{(8=_%bTZqr0wWtpX$+SY|H<`1A*BBG&~ zN^kA;8I!EXK3(3l(MOIessxcXS$K7?WUy>qd$Ubq{q zh)B+|qt+;_a*QAR8GQb|5$aLh`+HXDW};forV8bCNvYZe+pn(SMK!wl5mv`BlGGo3 z4%}^>De(IEAL>Iz+dcL%{N^x6ZI3St@F!n{YV^v&j1HR1W-S6DY+>l>1ug=p=qFGW z@df&|p)bPuVaT)?OHfK-n8a zBu*NKNaTnqq0}(}Frn0e@XJcy;cqHM%|!91Un(58MtrA~Jlq}q`<(t>*m8Y-E7kKR zURRgH5^JoW^((SpP&`&3>Atj8L)6AIvjz+&n}q)^DOU9QE`IeQ3oeqWZbSvD0$lSK zn_qx2*4z{&J}M_-@&gqHG1?>3W!~AkO4PQRp4)wz*nKUQ*k|HbBeCk1p|(jc(MyH}e&%rXU*sNqK2G$2kRmZuhtWW!X)Jot9t$efFGC1MkL;~jA`wU6DLI&gquu_ zv(-xYd7{^ZGd$9NvTBDCev!laAmP^DyBbto+UTqNzQbPesvo9B=Cii}vI6PgGkLSu*KG?PuSjV4#jsT)eB#~;{-;u2Q%cLq@M&!KRIS%!E1 z)_Srg!M>C~vdQWJoiQGUo4~dly|>SVkOH5mJL)X6V9YTF5XkbAk;js+UUw9fyh2YL z&GMS@k*2=XhTj!wNL0}L35ETJ2i$s!t zEvnSRSSJ+{WXfs`0aJKgU(9EX+IqMnR|_tgi~ShUH#1A3ny%)ApI1F+;+mh^Vc9md zTD6|yp?g(7stYT@`7*SO5P+jrvB_#XmJ|KU{!d!;R7Vxw|px_?$=v4Po` z*JvL4Jyl94QNbt` zL z;Pglf2VZKMP%(J#n`kO@HKdquDWfAOpNV*tg@w!uUT!_)F2i=&PngRq=w~p7P8;?P zNY$3{*=Ptrks!@c#Mu4M;%Shj?hSvM%lPN)x*y+~-V04NDTN#L;z@?eTA2*tgR~P! zMm05;okna{UweeI11r9bv2A+9k$s{}_y_pYho}vJ2n$~Tr0@oWybMH|PAgx~;)6gr z_JxxHPA6?W3**K925~JlAqL;`LHmVyHFQ(ht1$tYH0CTh{!AsMfUtMtA)*$14nmYmU{l?Bi1(EKhJvmP6)A;&;cy2T2+RHu}UPk?M-X00?xOi>ifc{$>R<{{y^x&`LKI)tb$7h!PpH z;7qgP0C5HnwOFIH7Ln&GM&gairO4B;$+)3WW0l8sQ9?(%oPViOjK~oY`^m#)K&6lL zadaX7F#N-N%cUZfWutOWeFQ*t>22luxi2uf2qHBHC#p=fbf~3b;NZGL=Y{w^ zMHJQkb^&e`+D7w1YK9t1T(p9(3yS^RiLX>S0NSexfqUQB#kvme2^(A=A(O~VC?aHiH|1Y651b%cQFhqRe?3y@7e?}+{R;q&DCuR`YZnL=d9f|4 ztS1Q3;M3@-daw4>lR>p3wfjmj7J++CE zba42Lm-)diNnI!UVU<_yJen((&lw3SxD<^qW*S4UvA1PajiNfrO~GaGdc1s7bH)@u zi=z#&fXUs%*X1yFybrr1oy_<@pFLlV9w)niX~|B!gkpVv6r|wl@8+Vqj#^K8 zxLm{D87d)}(hkx&AtBN>d1QUK+8bL6+G)p|Jv*OUPuiBHm|B;a%3b%Z5U#OT!e*df zn`*GM@3T?|@ka3u-~teI5#P+Qn#I~ei1gen%~-`d5ywDPY=S=xye?_OWD?O)LpUx- z@dWe+ih-4B;XFTjHgYpOs~6ABZ7l5d<1-vdwUhW5&uy#0AtZ7b!yp*YxlUItJx6b} zzkPtJ+HMOqwk`U@m*U6UeBLMFhcPrT>2Y`Vr9?u zDHjX=d(pbaVg1=K+TMi;IOAiwd6I&9TepRJDQEPamFd04X#6$iG^83trj2AkKJ?>q z<>l7d=b43mT(kM4*h;0ZZE=hkk}-sR^5|+1TWLWd!JOA(=u+LE|L%rq*O(Fapi_zX+JuCBW>JysKeIg`&jdF9q&4exl5<;2e# zjPP@kl}fVqzLvK?Yz{9gF4SKKyT(@*?F|)!#Y6(S+1M-U7<&Re8am{RvJ?or<7_Wo z7}BG&Ow&}PzGr%bQo_|~JFqu;AI6w`qD_{8$yrmWGF``wnF@&W);oz^|#!HN=A;%ar%!5$FuX@-d+BU zpuHDT>=fuX&XvG~QkgE61 zc(JEaomP_K=^cDKu_))6VA{BiIef3`ta%m?2j}xvZb(yTRJ?{5iV&OYuFdGuWOVSf zs1(oHWQz!y8R!rMGhO}&uN3sSby@gMI>sZ%C9q~s^Hd_suqh(ZNa~`rWEC_aiB>|dQtF@41J@AyGv1zyTii1~>KdG(uMf`a-tFO+fDMN?6KN{>V$0;1fRYZ$V_iiPAop-LgHK^uf}l z=L!^br=R^~cIBKfMs*h{DN zfxYuR{S;H+_hZxVrwzV~a5cUh2W%|cJ#L!dU#T;*wE1IBuyP3TABzf^y+fQ$90dt6 z4U`4l+m?wlMv<(Z$^8UsSl%x?)3eIMZ0U{}Ud$-3uLX1PB~&~3w^fS2J;Ljz*`h2ZRH}$Y zAk5lBbSbLl9~&Z2P-j^rht9liU2CE`JR8tFVqfoC%UE{ugj`;xh=K?+D4qA= z-S&nrUw%-!O%$A9JQN_0)*=obMu+_7F+H)Y z-GNypl_VKgWbhY+yuk1;TDy~;RVX9ig>iK2oErJ53>Y`fl&=sy151$8I%N)PCn4tZ zEm~P|R;Q7W?9MjxFPq98`Tq(NJO;AFu|QZMQ2Q3)rJG;F)g5no@b?XzD_8ieVYGAk@_?(Cx3=}E6xl_PcSC`C#H2L3?d`yMqo9!ZTxpLbi5u3Tkl4VV(!39t zlA0*gCg=$K1o${joZai{mwSaSY041BvGGFO8Og8LyD3FUCIl7)kEwiPXV0o7dQRr3>yiV!hFQS&xdSA+Tl{gXl|KPCHduN3+Z;y$_zM@4gmc*LB5tKjHWD7U)3u^ zM}VOF7spYPtvg!gCRBs$h_R%jp%e~rMzJ=-c_3TWQW7CgsCq3NPJM~nk0a;HV6XZw z+RhaGXG%P>abX4PmWoJl3k45`Q6wr%NCwTa_jUuK$-NoTm(uR>>VZU5_HxYmdd?IP zXCND_)z?tN$<(4S7#v``eH|GP%E}D7ygSJepeMWJpxkV;=pWr?H4EIW3Z{> z%|89~xKX?LYo=ZojVS<)MvCqo-2V$Bw4yX{{_LV}T3|_CvGm$n1%drS-3!Q`JMD^A zd{nREitF+=+@mHtrR@&9&obzXz^1VH#HX!&bN^?j(uKk6mTE4=y<2EY@}!@Gi%j4HsCnmutCdxv9L1{b{N{4sAApVHoLoAdw3%_keSIttTHOE(5xD{zCGCGozBwmfM2m) z%b=Heaqv&oKR}s*<;8x0?9lxKSWQ$?r+e~f12q)3;HsVipggBtz3TWJ#7c^ln;EFe@c=)Xf*C7q7Jr-n z11R2Rn=i`Z_?V65Y<$I7My{1zfrhNmyRWpgwU~;pGFYsOX*xUP94|3O!UL?bXkvNb z>oI`y^(EKoBTmo<#NyS+|8t|_Jf-|YWDusnt^qajIV&s9jxX`sJ`Nphe72}AF+fY> zgQ#U%bc(ll&X|9Y*FXD%RF_DHsM!N;pSTM6@mALz=Pf@P)&qXR%mFv2lA zuokzY>ph2`3Gy`Xl$gm(3a)KC`H28)*e8i*yj?f%f?oojul(yZlOS~n6(kf+$TP+< zm^&|X=khH9=Qp|it{<)}>_h!60r6%d8vkXR_2QfB!n88iM72+zZ>0~vhb}iV@)|gf zvy9@Jm+Z{2_Bvh^A_!gDPP;Iq4GQQa#&@U0O~$9(>hs(nQ=@t$H|P0~@nt31R&0n> zy8RYOV;!v?Ey+<3zoFVYH(DsFp!$O!Y-L-5Zfo%L?d0L>KS1Lzm$KJS{{ZWz@{}a! zq>%jdUvB^NhEvDlJH(uESs!H9AZ5@fjU2X}RlQt>DF==$p$$|F`h473Eekz=W;TG} z(Aq?PM`Bw_n~Dx(iO}AsPggDJGV@@3j19{ZTg*NRu&LRlDp}kT#5D_0aKbNEfB%!&8Tv$`pV*FJ^*+)dx&(n z*ae-dKr@SG2{s3jNEO;L&^^%8St_JBv&K8630R)>GFP*9p#qs(hYPaSS1s|4Vwx6V zuvnw*jDurJB_{52y-yJkHf34~pO47{$Nt~{v%Dvw#v;uI;dqi+;Owy`H((Lpy=rDyt5Ro&yH|(QaY*x^8;Tc^Y=8x-VX5p7bRZ{|7gVPjoC`<) zR6M!~{`V6DSlAW+2_`C$4dywve_-y2-a?>6I28$JfVD&vM*@@FacIb495Ya4IOw!V zpIVz{y-q)cb4J)^o@O{`=2m&iA?6hpH8y7wT7k}e!%AETi|w?x5Otbg`iCbHP7X&g zG%^_%KTt{}G%NLQLCj!VcYVMP!%65)8_T@XSlbNaC0^iWdogq6KEP8*Wsua?I85p; zz~{O)ZG2P5;?onW_@0S&1g15<$hU6xYY*`cWp!B~eTzu|y*s0cq#&D@d|byDs^V4l zfu~LIPomFA956+%1Q^bDo*vfn#j2A=VYamP4J9cuVF>We=GXpTY<$I2w9aINfNEX< zUc|g}MMErQ6+k}?0zk>g3kYhJP-0COIfR56RC1)uX_`?2#kGRO(GF-rzwzui8`1Aa zcJBQuV4QWP%yG14Vng*lz7|D(l2wutFO_Hc=HyiR5jnD>rQ;s}vS;1xSg-n16fQ>= zTA*nUSP@LBAu6r-AF zmQdygXo;{h+O0EZD*J!4 z*{@BTpiGKi?6gD32i`7)XgG&_^cLPo)bp4Yz1jNXs;7t^T%V>VZ&l4F?bi@bNz;sD zNA#?9-EKvzJeg4Vz-=06sS9x)`3%Vlpe&7Z#%!(_L5eX8PX%iiByr;k0mC*08$~_6 zo!L}k=dBUlNpboif$NVvp$W2jPiNu_6TqY*)@=U5y6v4$xMVry~44U1e3wn|r>%$umFGVBq=scW*@rEarFmh%gt* zpSTouIQ|z=^hWA9OX43J$A-O&J31`ca5)XHbhXb8-Ae21@E8-8N>%N-Fi-qwJX0;HK?0XLP&0@o!ezH9AtfiZ(SK=9&EXcef z_d#8lbxz}A&(-U{wO@+YBHn(gPP7seDTQ^Z?A!MDs5{yke^TweIL_d8C?Gdo3OCKB z)?W6fb-Cp-V%w-%k*>#6gzqQ!0@1TkJ9lnsMvRm=kL3-~qlf|+6M?%&MoohAVJZM_ zbWtmR6ofd*l7L8?LVY3TwNT>E1{glN<#{tA7cbO-LN1J*hr(|lA7bUN_XZxI;|`5( z)x+qt#q-b#(kvlG4g6VUrtJ&kaQaGn;li^9sEp3Suwr;qCT_R&$~Xxiv(6otI-gv3 zHeazWShvaAu=T5LdNO67$aP{>l0~lu`wFAMGaEQ6x=J-q5{*7mzMM(y0*}x@B(190w zA>8sy9#QQ=FC(?1%_=ZqR_wGOg)|jDSR~qd%5H3T4&O7~i;kjJiE`qTRAqA!=)H7t z=_Fh3jpF|$+}t@BCT%@^qm&4+r~S5`r~KQ z<*gRu3Xy@d_?Z&1_~tj4M^Kyo6a#aoY;T=?F7VQ4p0+Elgv(M+@_gsVfGM6-T4iT5 zhs|O88=|AJBkDSMZtc5}*J*UQ0QsNao!`?I=>E3a?C4BWq4_LvEBq2HQsAkkU*hUp zCxqVsthjWhi`KBlPEnufyV4T9xQPFhEc0o5T2eXJ)qY83x@0-^>eitwDG2kG;15-G z5wnz^Y(!t(e;s%D_?qFE!)dDA?_tZ>$#>^@y0O*EAGsZcYPBOZgaj&Br;so673ZTS zR2l5Gjk$Gdo%yi=H>TY&wWS8kW~;RcHpX^IX{}#UroJ->tj1C*BNKD2g(Psp0vgTD zu=Af#J-XN8kTZ<;9SnpK$*m7;84?gh@JkHUCRDp&b~>ra?8bh zn_?9~72VvSILKq;RVxv+`^L#U9NY&rwG}i_7mJVQmFik>!{mJx9nBDO;2C&doO}xw(lO_6raI=Pswo8ktOHK zw%QH1{AE|I_S!%&e}Bd;9#WL%gJ~_;mM_L?=w6cnk&-5Er78n7u0>0d>Xo;VU3?Qv z*LI#~H8yblm(e#j+MriFm*i(y`H7UvYb$M%yzM5p#FK56Mqc2+N%QAbgvgb&CL7y`jrI!8u@+)Haa}-i z$)W7P347}jC@S<+pys0kHlanDp!_R#Gl8$`!s2Q`xeAh?<~~rUq%YR{g1FwQ+B&QD zrXL^$m*utZ&Dqe39#^2U&7qJtISSjw?}hgbxbKcuAQ#P;<=B~;N!2n(FdhDdB>XDm z^*~m|L-QjnzLKc>eRDavII61N@4S`Du=o$)x`vqu^p77k^Ncv`Kt;JV_5x_>Q$vPHzJ~!edH>Nbs$GA0m=_^>P z`X!lbLUi?}8(>I*W}jQnjR%)+^uE~t;&Z9}ZI2qkKg{D~js^ob6T?ufuS`GuZFn62 z+Sj4ozv;}8CFI#q{h6Z$!bOoeW0LX@fCJZEPR<(!GtA?We@ltu>`hb5EKHjq6|EJp zHx?LW6}P1BNj6y->FDyiE-AeU%W_2S&M?QKKRe~&FC1j*oyF*JpDp4VqSNcPzh{Y7 zYCOjh16EEZ)JD?C0ibhgk$@4@Lgwe&T`9qOr+qXF%~^MmqMD=6=Z;%9X5IuWdukdI z0+A2jd)dC*N1!5FBMBuA>55d<&_}P(Y37~Tz5*ew>Q_d?oTb>CDy`k=h#LX*X9IM^ ztFHL*t1VaehQ*it&gd_DqB?* zGFYno@cQ!Fs$w3X3KvYPAbL&V*lQKCd#Zj94HH1&a?JAS{RxinEw6>JX_ zgcBn)I(5Phyt^Xc<$_j)!nYA*IUqZb*Krb$)bQHLCq5wF$t;*=wSkS;WqiSTz%E}y zGejrj&@w%@yAx($&l{(ataj&xY>+IIDON77W1rkJF+dnN*k*Uh_`tqswT|a<@aY9{ zx}zmL&TBOkTpm`yMt4w(C-*-0_6zOZr7tnJ4o-Clz)fmN;GH-&E}|7>bgTW;&f3O$ZN(&0R;hta zCQoC(CPAJrWnqe4&Egnihgl z|8KYFR$qUG;wwNbMp(ARV@CN7lBUY4Dy1|@iYzU~l<{!@j<9gI?)u|C3X|4n>viz2 z1fE`KM$=(YB-Lf0z9S>DVXjy8Lvg+oJuM>|-Cum-&=k`QFv(;cJ4=}LT&g?ybu;2O3LF38M~Z(H8Ep9YtZW*J)(mAb z4*yLQOsfS=Rvq{F7{VRPAzCs^T+7egznc{zQ-s}}hQt^)K-`thPo}5-0gyrp1-c(I za*suHAVJv{3oZ03*varRG1xZ|oSVIXhb~l4IQFJ0n>F&aElgTG6^Z`xn`v0Ez9}t2 zqcO&6bzr&8We~!5;Oxr-dVV8*1Bly4gFw(tJM7yu0c(3^RE`KMb95yPL$%3(cmkuo zlKuSx$F*_JPVVPLRL+RNYnp%s7<;$axG%<^_5IS>Nd?d;HTjBZu3Gx9Jt-TNg)SbH zQ_c|6-G4{q0{HKm_YRMrn0@9Bv@n<}BqY+f5f>K))}l1<^~ zgPY#|oitj6mu=C`r2g8UgkU$bfz@~|Uu!e?Nl!&%BuXZEDB%-p`RtWG&J;z$)3lo^ z2U4G=Di?$e>N$fa*9~GWM@j(0o_+8Tpjo|K#U0drQp!r_`vW2^D$$HS>eKLv|HkY` z+|Pzaxa?D|t6eU&I6C`o?Du^rbv6rO;b(9SeeThh7%NCkZN}>!1IgDn>#Q*Tw%;P$ zfitiWMF;SS)Dnw2@kkHVBV;kU7xFqrdDR?)e|2P`mhn#k^GBsg>U1}e^8Cg_!9dKJ ztGDeP`U>AA(BBR7MMbt{WC0@2LNi@wpQQe1+w47@&72}cFahqdtFbGD7u@ogEWWiV zHMB{~Nh}a(7ynblO?EigRUYv~gDo^mdnijMrS+)%B)3%s^^gp0#m1;M>xsscRhe^T z&}|rDMmPZ(dtFs}kvYpRxP0AL9V|3-p)1Qm_-j1;UxJnT4X39hB>^h(G!f87M{OR6 zOlm$yVCoR{HG3!|Lna|!C#N=((XEi3YuN#Q1gl&olRl6{{GVf3HPH?z$nG}br;WWf z&0ATr@bo`t=~~zdrSNKY9g7=UJR(*%ZL$kJ2e6XkKu{phU!rG(94Cn+l2rP>h2_va z8nMhU0!_)q#wJEm-i5~&jLF7~?{+-SBa=Adc+>TCyE?)r<|jfNg$wJPL~$-?fza(V zXS-CYDmae`7kZTW>^JJp!+R%{Dbu}J>8R8yIP^#*)BS7Txy2n9E6jl97s;=-?Udk7 za!UQ)6sKx#{HCM@`a4|%WyX%gi=ADt`Yv0mcujKEpFsBqylc~EseYS27x(fPPUw5a z!96cBUtFgt-@)hl_soBqIRlc2gb0NM29-IQQuIyi#A*POL3jvn6$AgP!}Aa~=6s#f zo%fN8Lj))ua-gG-@X|m!Q=Ms>SbI6>uk}}>bvP|z*dp?>U z&piT9^8ls~b>|B?q)oNG3rj z5Tq<_nlmBY z_RI%M2m316Ldqb438oCv7G0ML6RCPUJN;m91}P@x#>(vYU=Va10BV#Lq?jIzu~tA~ z(j{oi%94PHzs$3&F(Zt*n6+~nF>by*++Eo=Gjy`!Rc4avIU;pJO;n8fWPJx=AHeIbNe$|%lBiM^gck5>(A=FmQdR5+| zby3O+LpOJs@GavN4Fit8U{F`aQa<`>_NFtX&Vh%*IW5YickSy<(oMLeR~;lAy>OEN zuoOlfu)^U1g}`Om$e5EH)0D6aJ=nr;sbh&oDQg5;-qRZ`K*R5yV!5ad?;QFbc1(j@ zznvmtQqvGs)+<#Jtzl>TWV?F(8GW+4U_68M?m^$Rw^MpXQM2LdG0Lpv{c5W*Wz5z{ z4jF&!Nm|6DhSRNQS6{@&k#s5@&HIExEp)kyMkvYN-b6I8vRL>D5&UhKq%n z6Dxx&T{I>$`c6inlidIN*;IjOqW|E7RLr;~KKtxmaRz7Ob=5a;TnR!QhUDc|4m=EE zC~2gK6I4maJSWA_ZGf>yqBH7_7J^Ny1$COPONE`D<*@`rR6(N&{3T4B!=99vR;JG@ z!9>rtd?JD6)~SUx06CC*U&3wx*)+3)FL4i_{?=65cKW`T&sTh?QqPUQ zclPK!1JWuNv|maunRmV8j(z2_`P;Dp!jpZGxaUy*?kBIaT{s%4&RKVeA%X|f#h zv7hl`?0@`gVw3nPglx{1yaP=u)En{ks+3f1T!0>fy(QbZ$30NSzB%UO;p!yJUNxPr zH60Zj-wW6V4bmq%EFP^fl*fu4i$k)U=p5o7>&r{x9N?2pN+L~Tc`=9uOE9dB6b6^x zPY9|6FaK_lO0qz#i?P!5K-M|=8WZY(FpUY)h!VUKB;TB)n{Q@tUO9{qs2Rb?7oFgy z%HqiWjO$B+9qTtJ%hDONxv=9E2-9U-ly=v7ohPP@B}!4bu}>>=)ZHpv#FoF48Xr+x zEj%KYH<&ifu}t_@em3%UykcRjL5MGI=9O18uoA$5-bQ}^;8dz+PS{L+-4v{+&7c9V zs^sn5#i_V2O>n<&OXX#*4aQ|)Ib(`QiR zZFJ1LOOi955b|kXo!Om`umo|$gwv^`jsyEgb=M1+*l(ra;Rub0+(nbFZ=2lAEP8?I zC$w&?AG1_Q*o}|9+Bf#y+KiXe;1u|PLgJBGc0_@?Zn^Rjd_;B2(R#Jo+K?-0f5obJHbmKfek|m)|H#q`96R(vT?EoGKbOr>{%VP}?gKh;_}hso|2!=m zpn_bw(4`mV9y0EbOQ+VIMx|1OYA%nF)Hqf#sEd1r(_H4!7u)LhZV4ijkLsz!UM;3I z?Biw5DXh_dGyMME@Nz#&yP-!{3d&o|0jk?Kf=yK{Fs2Bv2(Sf8LSWDhWn%0WfkJX8 z8G2m8yrhcXG_d^56t?)X++tzWFbEzWRSfzhY(;}L3{>gO<9{%M-=pu0lRx>vN+OZ; z&pUcV;@r#ZyFy~`9kh)Y)GWN;)L?i{$bZo4HH>Ktq)J_lfV+amUR*3M2$n*(JNn?S z6ThH{Hwa+a{YlnHbDt=d>HgX7CX-J#Sn0iHGyPp}Nb|(GJn1k+wbaLD)F9`h$1{fN zH$;hfD_Vwy?u7V{H}-Z}54VKza+E4gt1d1bmR`t8BIXP8>&B)&2UCfcYI9}&hT_55 z7$rarinjbfZu+y=x^YZP^3`x#<5RArwy8H-G&~5xxC>JQ!VmDgq zCCGaKBoJ;<8C?%1*7_W66Ys5ZxZ?;vHkPX9yb|@5>z!{80M**fX;-bxd*v5;`JV6o znHLQ&R{YH>N{#Eabiy~>N7;uSA)u%Z)4IC3I3WOr9`8Wo_>bcr;p=j8)13@jJkd6n z@P}E0-@-jSD6V4}|DC|TsAkUcW8@6iRqX_zWeJkC5v&z}8=OulPR%haH^~>AEbNzr z75R&ZboZ>vzAjJx*9I-4u18+&v|UqEWT&u5Dy`pS!6?z?M`R%XZS1AUb*+lCT2p1| z!1U_fi>_Egdbt9P_BwLnRT}1R-E6B4hf1-Be1$YR-PDgrOnHsv$-dLzfK5=6^*oB) z&6i)n@?4MW_ggmQ1k}zf=Jf~aD)Rm9#}%|tM*{)pBG7aRR~>k__z~1i{sbzo7#OvdaK$j~Rb1fweavDI=wZ|Jk1d}%~JK@%I%A|nI|@i?jC=+Ix( zS!+yRuayFearUh26T;L9E_mx|x<{a`zlG4tjH7h>W~ED(cy^95pe)Qu`iI_eAX_vE zw7~y9KV?gSgiL8Bcw|b5=0M3MJ`!9t#j*SWe`57|c|x%;xn{>uHA6dTZ2tfi`^ThM z^(eF?K0J5E3En?!s(XEST%{5QPId|d000*9ZnwQF>LjgRy!hoYGv$kVmnuSBNOH%# z(#&HV=q85c9CBZbALQ3$FI$doF%94!u~5+gnbTci)iCpSVX{O$* z+yp=sw%=EhEFZYvw+I21ck19pwx?-SxLe%ar#2hm4t&s}1$mMtZU0`a>nGy=HB_Vk za8~`fLtV85t3s2LsYJA|T{6)Iu+t#J-=S<7ORAJjW9Raw8~n6N%O`BqJp5Ft`QGGK z&be8ctNqmoMfBBz6MT_LK7%C2ABB8(%ydr(l(8>Lz`wn$Mf!oXK#0-awmfkaxdgVl zw=`oesrAWM8r-8>x^>OM@N3F$54!Wwbt+fJu){?z7N#IO>$WzFA0K*U{3gO@)2S4{ zya~cvWD03&GdQ|6jhR<3{y4}*Jj9HYi2n=uw(9tYBSb@^x-LUqai?j-AxInkK88%* z(GIMGaMl3LACPvEV4yVIE~TeB1-Iw1a^-Yr5@$*|p7XCZo=^Cv1B6;javX41eW*7; z1(%LJ(8K0ub9>!9=FDl~;d_@JX<-rmBUPA!(TKnYqMYzeUZ*dBz2@gRurn*JMj1`a;4<=QJLa z`UhfsNjKIkYk37P0n%@or=7ifFXrz)zP=VC<4iDK2q7PG6Zx!18o6Y=p|4L(KeKy^ zSNz$4D8dg_l?rjkn=%#NZEZkp6}C|Bx7ZUGuX%eLzDtFj9U-4(Ptz`VTG^PV#XLoI zo3Zp@80*=OGSoOycHj-xv0hsil;#72be!d}l_7=Lw-*PgiugKaRsh8>SY{;j#o!H0 zjKdB)J;apy4+V>XdwQM7?_Gk=)Jbkgk$$%OBuW)5+*QpWUiYGTsp#DPI8+rbUsT3@ zmDx}QQjKSSrsw(@w@@R+cSO^zS%@>SJJaqIoK*EZ{dq0nv}Qt3UEE5BT=BM_#L4kb zUp1_7XNmGrO#v3BUu28NC+gnzCP=BG340@PuJx*bJIH>pA+>|?Hw`CaaV3({wwSON zE`1>8k@q-mc~VCWPMlQCOwm$%h`u7oi`Ihw%q!87%h7*s;M+)+9d#OlW2Dl=K?B`r zvYl&MZ{c#(7LP8SSM#?2LLY^$7m0mKZ^cRfisQD}o#^nmiSGEe4D34h^YAGpZm__k+N!AGfcj7%*g&NNW-5EBwk|z(V1&0XiG@u9AkG9EG7!!{KfSY)onlBLHz;$3jo^TsE9v& z%V{XgjnI7CP5M|z`JTFobdgA>w?Fyg_xy`DkwdN|1>l4M-trCGip|~9t`t9gF&8>9 z>x>-IGz2*w)3S0X{m(w6HHkm>qBK(uuQ#DUX^I)sYo!N$zM{F`+r?Ahv7c{u-ZD@2 zp2d%x8x@2)I>rA+3h=0{X!dNA(yuq~>J>0u7I6=<=qZ0RGTNt(Lse)HLSZHJ5g_1~HP_Jy?deGuudraaw)l^t^o=HyQ(P*H$D zT~bS!F!5a}+aeA5Ov#)uXy^z?-_Q6UQ{WmPOH}7Ec$8HZnVTWb*2Gce=TiPaY__3-Xv{;1g`(Wkb!$d|B z&7j|DS&$Y+`PbS%8Z{unupu@OquyE@evGbv80O8&3m1f&(aiyLvg`EIta&o*T3}++ zZp3N80A6;XGO*#7*e-(cRBHntn^TcCB(1FD6isZRhxiIr-09E^hw>*!ehkfeM3W-} z58#Ata{>{erCJuzGjoJ(qO$N}{et5VeFbT!lH{4|$NMB3wIJ=2O210qlVUOahV*0~ zFjxUp!ozbY|6NS*Zw#H2k$V~uyMT(M55uJ-T=z%fSFDS73@w)^x77X*)+_bM1~r>S z63IN?a^VwV<_j0*j?ON>6}8#%DVmTaM7-S?bXBV6j(bXKbX)g#Lbm#|bb(D}f}zf8 zGM!0oJN}I8wVJmo3%TEcl!QKgtF7X<=l<-twGf3x(~F@)LrTH?-7&@Atq}#!V0O(h z(=@*I7#jE8;hL1Y_!~$2+L2c>c zGO&M3s+KRjDe(IbwrbSbb{=IViZ;+Ha0ijNg)bVL%kQ^Cd}KH%)#;FAO&~v*H%W2+ z7=H+esVUG{*7o+)Q>QBP2;?xY7O=CAAp6(FC>~d&yFSi{kf+PJaE`RR==3??b78d~ zUWno6*AcgKJ=;b|Kdx-^LF>dGYdOy6)PzJchfcEPdZB02WVev^kD%v!4QUTH7@i+|qqZe#x+t zSeb#1o|c2lH|d6WU)ao#inD@~xlAh+Bn^;vng_bL-=c2$)3T#BfdH1OjY}sO_o%^@ z{p%PmA$-c{Zc4>s8E%fq-%I`&I1O_hCxb^q`8-ZM_4LZUX`AxmZfLlVRx>O>!3NQ7 zlS6$+A5{8dAg;5ZZp4+ynw^vpD8O?Q_oI0_`Uy|G^1`mW5bn25-Z^`^zf;QtL${un z3$AOq)nY%Yi-#YTD%TAO)^qgL>do0yMpKI|2`6Ec+bPVLVlRBzxBn9rf4)b>1hgIR zRp#$0pFUS8jxdQY1lU5FtENih9!u}~^1MEarcG6tGS)+3MMyMU{b`$|7FE$xTm|iqYZOY`A(e}(fGTP?4bVS7ys@Hh6#@^^j>478>!y~ zuQz)ua3{c?sw7oSV#mNnfwv=?&sn68%1`2H&uKT_#Czf=H?;R^Wv0q?-1ec+i(qa< zyC_ZRyn55MJANz#O7Y2nt0~YwPo_aP80)RhrtMpU0})0wpS6&WBhb4X?Y5eZP&%O9 zb1yu_W&$$vP`*}@kOP!$gmm+er!koy*88*nHdDG#LQhx2eZyCi$HR%>$}sTIXA!E4 z_lBF-w0#gxhag8K2*_a+jDyRB7nttTaDg_BAw=T>P(2Y-3WUBQs-K4<(#UeAuQ6Pg z8$$ksn0ZBkNQOmDo9XY_!CtwT?ptN#{Ywbc(Z>d$4~T(MxVF))?|*y>(>?1z-vbIH z&8rL&xsy49kRPEkSa^bQi*2|R?9S9UHGYn0A3j>e9#g~OqM6v1<@kTn`hG&2sYq3| z+noH7RP#;cc(p6+Gw_*S&BR{30MkDDcYkx4{BZ}kEvT3) z(~#evWKD!~fJ~Io1AT@!#tJp>iJZ*zis5tp40^c`ZDQlus!p#bV$U=|zg3b6_n0`A zE&T@|+%V^i@v`u=RNB<~=ICFq%crr0V@%Nt=a=)izeRI{yMLdF=GGN?x?&OIn3BmG zilxqKFR#lagpC%vu$^Kg;N8Jqy&<~R;+((W#ja@SWr+|vc=ajL+ftV7T35ab)p|Ar zZba*tHL$MwG>MeDdA$>UHjU6S2+LNQqF+))A(}M^5rJsn!8p+Lx7|UE*YtQ&4l&;R z)@{9EDOeS+l&SjoDw&v~_!EV}H)mhXVzfCW?oBQ9HXNLzH;NA|atIjz%{ICEtVKR= z*miwsqj3DWHMS^M3G|PTa)xeIyrF5@Q>;=;$B8KvcSic+audCj67bFGK>L>ySP?r? z(N3mZo>VS8=j>mD%Qe1QPOiZfWLGa&JSLv{uLHU*2(tJGqg+MIrCumMoh+{6hS1Sm?lM0cxFgi|E zbB9zpI-K}6Bb|?~2CoaB(`|*Rpu!Q>1K)!9dwpoXGF(2}_-hhAaAHs4V z7p&TAvJ-@fAHNXu_eTD93RY`n3~v$rJ14_XQ4HGSFzDe{_v|Fn_%YXY0=j1EoXPv=Mu) zM4c;6ZTz)f8QdwQbIl2#0yq&wpme>mRG^7r+P<~Z@%xlZn@c=Bu1=4$U7&@Q`3Ggf zTDL#BAvqH)WsObxHswhVO?&f)FEx(b>a-9@$3ws-DV6sRxf!)IsBb^7_|xkbE{s1> ztqoVU<8Khhi-c=x%XnEh(nM*vHXn$x>3XF;Ub9?**IPfyF2#NBumTcSpay=K^wTS~ zU2)s}E><7-YQkTKRPX)+suiJ}DPaT$JFfy|CfkW)#fucn#aiGi-BqFLw4x630lW68 z%0Ky3gSg$k!sh&GC%;#Cf1;1MhAC5Gk*b5M26aNm$U|PA6+rP!KKvO7l;%762LOMM z4nL+&=-^Db78%uP%~P$;Ni+YH0P%Vi%+5dj^anjgtAD-{Ta~Wz!W2mp!PfI=4cbSC zrDmBWqZEIPlN8=kzrPqsKw~pXK55h&=_%vk%?aNng0affq#V`ZiBkW6wQ={?{#zBkw8(d1 zV^U{B{{V>RIfP%esc^`#OYeq>Px-z?)XPU|cwFY#-IDG(L?Xzkwjqv^D`!%KYG}Hm zOy5q2BIBA0Ynrf20!2P(CFLKP1%C=^+@`h=T2`zOC5lS3f%U|oG$hzlb6g?mj)@>g zJgLyDaHjKS6l}0Q_Jyz7@TSS#;~t%GY=B$S^cqp>0yXtUWN@{35G|O6>Vf*)j|}&i zmW>{b#8afu)`X_x!nTKDtG{-C>Q)Ggqi*J`Tu=(D*$=S&FUBxaN!;f!h@)X6pB%ec3gGgCnHZZdpoK8|yn^lY6 zUWkAJkkxAhd)D5e>WJ~}8#U$Hq~I_!k{;vlLij|OYgL}3!A_gq;IK=2`9nw7=+-@njV@rJf`VXK%TdK$MiBPI;C!t zSTZgs{7>9UPv3)m5SY}|BEkInQ}6fRbQbN{hD#e>qGIo@ex4x6ZS@=a57dj)ssNcq ziu+pG4s6kEt<<{Tw?tzyVQ*yK6%Xdil87v4UC!osQd8+mxnnnf!W7}VxV!u}&pv@K zo;#nUqPqq03FjdWsVa3<_6178dimI4H8rNYR!s%Gx*XAC~CJ75w z9rY}5-9G>msLif3++*^yq_GeaTx^}A@{u_Lt_|1_qtRmr@&I(y(jdHb+-l0iyrYbH zUDr4^1S_(mjtM3TBlm*LVI1E-q!JzNLG8ymvDZba4HlMBQAXVJhEgK!@-2gQcEw2# zFRqL+Tbpn@VmPTf?qL*?3sejtoN_+2_2U`MQCdP3E4+&Pv-I+i7^29#h{ZK?AjcUam z**GjXb?qmb>MbA<#GWawO`QBZO_?0=g%%uxDyX)MYBrN)5lAxgAxh>nlq@a*m_(~k zsdGrH2TUR&)o%hJk20n}Akw}_hP`KY>97B`8!QzhS`=F55?rh|6(`Xf*tc?b}D@HHce=T*273ND8fQ9N^B+1RWklxXb@!+P2BD>_}YNjYO zv~8Zet{dd0y3NDz*mRejGPo=Q^FnPMg`ObUK8R;&f7uqGePW1R(7FA_OG6l}wD{y2 z`4J$a?)YRTEy9l)#J#3UW@LdxjBQSfQ{N%NxJ!^m@}vUt+|b3I%kywe`L#a|8xqs8 zOMd&G%9AL}B=z8A$)RQHm=PZ9FkOM-ny!;jDVkCLw|~+dl|<%qX{#%PwKYz^^!nW z4L()zXLWLCoVI~?v+R92k5wF)qli3F>B)R->r2V3o#ZJZFq=nN^vsCEIbq1~9*OyE z22q0m{1T-Y2#bCuMNTEB%S~X=*^6Hvd1&p~6%m4bm<1e(0vHu!)leg~t_)w?P6pNsR>g-hX ztLKPo1&=F8p{?lUs01TW^n8)oFWQm2 z4v(K>GpN6S@uO6l=&M-`CEn-z8zC_VH-Gu7u^d4N7=u3&A_fQv96}Wfab$SachI-~ z?vAT0+O{5OIi8=ag)=sgE?LY$gDLas8T(z#X9I21*HphSkw(9vd305ap*O!OrLMn4 z8xbUPGd#=~Nd#}719N^#O zW^${eM9_LHW2W~SVdU9JN1eDlM90BZvrwY2yxw=TjaOdfT)5Mm$?tQO=kBg&(0~1D z&XaA1@7c85c~irXHK1H+VCzKmh?vyWl;D6iaPNhy{~LW|iYkl1(5F}L$o4jBiU@F)G5^$a{gmG0X4p&HPOgc z&j?2DGp|ZA;1v#@VI}%v<7qv!0AeoOWu8V-C|;Sk;He-^Zk2qj|J;X<={wDBW6kn< zceDC0jeua~2neXqAY7n{Y~tp$ahTu=u@t$ozyqf?O&Mnxan+{X;>K7XmlDl-!DSxw z@2go$Gl@d5p$1rV8n*f!!r;KFem--AfS-YrW;P3VmY>mQF1%CW_>cGb)( ze}|Hbzy50wks@60*IwNsj2E&a!j18uNrRf{I8|rO_s-~Ua-H)XwV=3(@&k7t#_-O(17#6#=?lt?OFg~r#~Gj^H5ZWwfw5AJ z#5! zA&f;vSL)k0`oh2tW;=JN!&rQabwVfd)F}HHkAP1%9;M0dwq42f=H@&QFD@Q~xq@Dc zg!uohrKfDskj-P7{y~GG3<%Mv!X}aXHYhJPU+3CSfEcixm>>Sy+;bX*nl9t0DbIk( zOO-QIoVc}%!jVBXT_4^AKdM=qc^777Uh6r&blAP+S$V9r*RkO&k^blO!o^TU-=Au} z7HbVLg`YA$?cVFH9t3A9LL0MCUW=u^8-j3jgS;fPPBhahwK$IBTSW^E04qabGfU`sp z*$eb+Tb>7%oqXF!i*)ga-%I&t_putGf~9e ziL`d}OJg{ym>GDeLbv68U5S>njTSn}y%m?Af$z>q=2iQN%dPBb4J-y-i#QoL{65zB&A_YM&*Xbh)L-zWOx2HMqa6q zex)<*ZKwA-YdJ+!n%p!d2Cuj#-rP{5Ggsw2J9dpW6+ouywtgj$k9nZp9AF~3!=#Sm!)WSXBddLEczJl1!jg!kIaw4mj4`pxS(7t;z%M@fG!uk)5+c0Ag!8kEkJ!hUt0 zi+;A2{dXb2I^0fjixO{KOa!YUXBS?+Mu7LQR5F7AM^-4F0La3Qrn!mfv8u&I26BI)$G<&e_to^=Hn<ruf_TAAo5HpOy|*93AtN*rjtUncyJYu9i8DC^)I}yTpzdD&=<+iS0U{5oTz4o} z&(WPgvfv8KIJL;KuS!bek{iJ}ACCGzEW++18ZH3X1gSs35!Gk?D)wyr$*;aMnOknN zFvf2fw@t_F_qB=7nnN+q!G}PET-$p|Elw)I&y*RBcsIJ`qa1w&HpbTjuf(i5nlqXt ze0jLALEoH53|luOFo-YBKrmryH;5#Yds1FiuAj~E^%fMgfQ?9nx;jBy^>I>IVxEaA zo(7-DALAboJ8)xMxoT=;X%u@AAc0z-Qn(}d$=BHM!Fz4Td9*xrIY0q{K7u@pv{|yr zf64fep7>n*oA6G)dg}(V^fdQ~^(6ANY>I%OL7GLX!o)JLW6zi)ozrzaS+5@i<*QjC zyhu&=)Q(`NH=Cauvzp$91grHVFR~zTc z)LG`wo~Yd#ey_;)Ql~0uKsOfFd)=vH5j*92)s*^N4lHOHd@hHnhTVppK9~3wem2y_ z-1YTBbQCkT1>vT#IN+-JRFcU9Gflj4a^4aL{=yzyk-z>6$TJlIQ_a{8hGoqS@B)mQLjfq|zQTIJ2#Q=Gf<@kCcd|_tx|MUmT+h=F%cNdY==sN{)0;6L`(%*brztH8 zS5zmVZ0Hm%TJ$j;4&PvGGT` zHU1+qtt@bJ3VNwL^IpbL#anP$VRu6Ipfx~4?U^qY@KcnA>*{7C3HHFcj=!@~#j2k; zk#rr-@+X=WH#`+u7v}0gWVc|{P?KL#2lDsT7|@+g&{*1yAjf;UGK(|om-XMjK0Zoc zV7om}()a*fi2w`v9}JpNt!(fDsxG7d6U}bWh-41VKWjs|rOddYlwXe}Z}}gZxdWRT z>ehRtA@;HqZy@c6z8Z?X8Hy5iByidNaZ(^^m_44YCuaFjKNb4^tmuNQ2M>KLVVm`b zPB@Gc!!Vd*S#tmgf_?XWH#dlNk^CX4~)>65e8mgp*gF{zMigcdnuZRH@1x{1Gl2k&_uF+lSI zxXP%oN6U$=V)6*VwFH91_BO9UO$z0+>|awbwj#g=_#<7m)CW2$C1#x_LEjJhEudTr zCp)ggz=8b?DfFG)G*eFa&P(BNh4M>OK-2FuQx8A!oppJ3`1)%FicD`{dZ?D+8ny0D z;U)b3%gQJRL$nP2DxlQca@f`U*&SD+i*E(id!>X;lrx-f`aGdr>2f zLcyU~MN^ScwS`FZdm^*>)&MVm5_5dI_5*(f7JK8~SR#=uCeiGXx}IHIW$ao=;f6Xa zPQ39^LAPb4Og8edTLQ@MOxeaa=o6E?ipPOi-E8+Qqy@-^@!f8Eh#R&hI(RI-4GHVr zuIvdVi)Jr#I4Yp97d*8m{tm3~r={Bo0{LW0xlGwAfmwKobFiDFxyHGOu_%$a6ASRM zHmnT0gK&o@<|^%OD`0)_V?Z{4=WsoR0k#gy^lLEC9Ck<6H7-{tdO|dqbk5^^bwI{X z(EHB5rb+ngEY3+K_r6uL;a=j!i_^Xj#ygJJ(+fw!V^F3P<0r=9SIZgL)k!irS^;Vc z;f;sI7y}*qx8etJ4}RfVeWKEf3W7NrA{{;^HeCJGrsQ(sK70i$$)VwO66`j-Q!=(9 zpTefXL*W?3ATAODXkK_#GRg_i0mVJ%n5_Fc6;WC6i-*iN;+p`qzrhewouR6~wzOh} ze6r8N9NM_BsZ&FLAwCGBKoi6TLgR zA|?2JokonUOiNtrgWlBfhrFKVwNZuWU%pZbi|QUOT%8Uf+w)(*84{|)sGt@q{iP^f zIC9EcSnwA_`Exl}#Xh;7k_f0-LG>f$Jf(`2qzcn1;Mk>d8rXksHY=gZg4~UN% zJf$mQ$|Be@N*!8MT^|H@GG`9=vJna$rm_qu^yE4j;m@gmLD>K6!;codOl#n`FXO}!et|GY@LF5c;RFYRgLIncf;k0oZ`rj3Y#AAtUNIZzVax_(^gLGYQ5TIP8 zHqO&?;-@}&>r~BN!UOab* z2g@R-=ZE92*!*1scm2OdxU_y6q9|BhnE4ivi~6iz5k z=!UEP-+CWo3Hh4Q-Lm6^*6p z$7ZBouv3e5sJ8s9Pa!8UTyD0b3n}gYXxMQc!i(%%u>?(4hWS*eH0jSxCRaw~q$Sn1 z?Z9FnUeAv2HJ{r4f)d7Z39y>WqqZN;&abvcoR({3RS}Tsak0#z92a4i_*R>TIy_EC zC;atR&HS@*oNncyS8(DbH+MZK##*)m-RK)k9yWBi#w{q zGn7PA^0aZYZynbk(HB`~tT<-G2Fv*xY?iVZz|sJ19^uwD=aI(HGk0T?wzTqq zz}seoRp-UIr1os~pH@~(g)7?nk0mI^SD0p9N&<+NYI!WHxzwNb;^k2y{i;*t`)uQz z*s(tvlUL$K#q`Fp$=&kl3KgjoCPKtc>@xM3Y#Nj_Q8!UqDAaT#Y{O;cPXjPMeQ|6L z?g0ASdfD+HsUMHZ~M&Lbg2;TrpzoU(C-1(_mA%sn^faL$!x>k7SRy%gQ|LF%IA zjf~v}eqGk&a>NUShng!B4r2%|E4hM+rlHCODnWfW@mXSZkPBh;B(tpr2j-ulEBEHr z=?^n5$Wsgf-(E#{bp-Tp)K5Xw-whzCAPv7@|AawHs~iJ}piL>V5WF`q6!4 z7}M?2KgAidf(vw0-9UzrV|w|qbT5tqdG*J42;(B9yVhs!_TbcMU#r;)hHkh1V8YCK z#EuN3<}-3r{or+xjf5$<5A6#ZBIKF*x(TPoV)uq92kB z)H=^6)~9W?LZV*E+3ptzsy_CJpU2AcL|+S3)(f9)rW1Ay{_qoXT{NXnq^8{E;c1 zu&KHWs8oKc9YPgl9}D+cDt1qwoXT{kQj;vxXxFD3-*ZoES*fy=hKo=_t)~jPEa=AE zEU-A7M&$woX*SpFxNG!0Q0?$j5LRSA8B~rh`y^_IX1^AFS(RwlPM>eQktXFLwbLR< z5ml^gI+Q);qZR7!oPj(>R}0At9~9%)H1j6u@-p61CjgkPW_-~mjjXci@_IG<515Y` zW*l-E%@DQ0HvO6*<4Ft4B7HArG0gm(;~kmfzhS2g!GPfAh= zJq9Hl%l6P$6e%Bbq9n&h?zsh@5ST+oJ^G>5LPlO#h{Gi%!|bnnynJG)QD-Vj9+rDM zqT?bf&+^cpX)c7%M}wjSIoH@5Y{k&KKVy~f)mPSc;CUxV`hp$Cq(#*b%7`iboe1@d zwbQ@-sYP+!70)tc8>LU0SsPjsbRse!9COT~wsG9m8kY+jgC__w1!oY|9+O$m;^I+g zwF?fko4PGQsZyvT8kq30BEGeq2}(As`<*gneH!ML|9aD7zs)*;RZ_(Y2Of3HoYaZt z9%E}twZlG0|L$Lvf8R`!577>qgLQ!yT(p0bIlP_9xe3ikt5uyugBkXkztgPSI^`Q@ z`pMq;?MAfiTDKe&wnFtjxg;Z8mFYO9APnPwH)!H`$mIP}MJs9m;xWs#>Q>K#&~Zk` z$1DI442aiHQUfZZR0A5jDD5hFQyjqthv3tV%m@LnkDn^CM*ECn-3&(T@gT~JF1u<;duX$wf%7Nca3 zDAG|3*cRNmW%pa(%BlOkw{1M!k2>5>nijiae>wLxVj99+7fIX6S_l_Jen&~>rIkjT zR41E!s513==j#93po&X{*e3}766+r>D$7g}FL_X&Cyg7CHOW@4S>eY1z_XbmC>X0) zM7)+|!F)>L>6TnPE8yVDn>QU4(dKFByX*j_^f=Htuy5Th9$0aD)e$D2@~VGsG$cw# zOIE9QjIh~Bj-QSVGG&SU43um}AQ#xG(t!~F5gC6@I0%HOqJ5^bt1V!kM-fa5UU$JD zTKBfHO;NlgC#j*-oNmXCi;=>uSfa;3x(Tm?vz4{tcbQV8|B#-i6xm*wswwsDmm^oy1uG4(!sAk zqdi3n4ip`Cu)~_dwF(~fN2gYF*oOWn{iV5TE3ye$BDKvyj@3AJB@FV()o}3vC5rx|sq{Ag0X}4hR?J#yfaT|k;|*b6+B4;QYuBY`O8wVY z^@1p4Xo4icvBaV1JK9hgIO(q~hcaof6N_HBT!xtlvmCeg_u>F?JZPf3x{+j+sZ*o; zkK}OOSl?GAqbNVO_jRt-;$Tu|1*Cg4zETFRa&S4EU))=V+kSaRACafq55pts^kt#H z1}g(t(96x5p!S9#UA!GvSZXncbP)CacggQ{Tt=#qJRL7T+t`3>rxn-sZM1#SdQI&@ zX-DvHvu-tBBVX`AnGrQ^XGvU=TFS(nGX;VJjIbpGY-4q^KciL>nk{uNL_Pe9tVp-z zxRN!lw^`2GhSrHV@^HB-U@2<}|8VZHd>@!4@f!t^!4s$paesc&@G1RdDK0j()9IjC%4HBKuutR3M(AsRU za~%uLz-eFxzq&`k7rlVdpmY*oxUE38vQ6Ugeq04*K_>4-zhaf%9-E5(|7>Ss{y;+% zk5!!V)sf`u^?)t#3Y?{Qr*Npl91b*F3M+YC?Gzlmazt{J*rNK(x-(w08Xp+ftlqlz z^njOGb9(fl1{iy2ULm~b_?bKqL!1~cd$dnRlsZ-L@{R<-!Wsz!YwssYlBAJW$*Kvn zRL>`L|G&c**sg5Zmi!$$P+-39BK|eq^eY_iYyC}dN5uVOx@97ViCt=Ar)cA#!N6?d z{&&z5ahDr;nP74yeXL^(&o0&HOwI0i{^pNZ2sSx;+a$sJ@lo7_`VoC_P1XVrS-b4(!(G!I1~W%^;_58YO^`8TlGE1*(6gVLQkb*C zF1%)<04@3(mDHLH`8ff%-M}#>xhIwvFXpKIA!v7TU6n1=5C-A~=deG@8Jo$%IjOBH zBi#n&{7=wlC_8V!k{R`}Y6N{`H<}<0%R6WC@G;SE3bT}cC${O!N|dBFI(>;M=n2Hp zGVGOe@S?m1hOz&GLHDQkLw`Y)e?bzBBNgehCvUCA52C&XS@Aja4c~PHd|3cWM9dfT zUMWInjY-n`4B;Q}k>AqMCwHb#S`QdfQ8qKEcI9u2_Rxo*sy-&c<7 zQjn2fCfLu_M^eKh(2i#}KMjYjHrJr6a>E@r+A(ah2Tu~5Zy~l$)1n+F0Id`mCbQ*5 zP3IP|J*;cq{^v8_ku5s+@b@PC1_S4~%UfM<>sV{2EH5JXy{s60e zV>zC9ue0AmH%BK}rZ0-^hqNc|Hlvu#DuA-cQm5AVxk8D0xE-fOn^U7VAuV-J1p%jw z#3mT0<*3HD3Gyi^wSTICEO@ixdRa}phoinhfkw$?N2zRTP>@iy6q6H!MVR6fZnCb` zQ?st$1XJIW%V&ZD=8mh}I9*f|Kioz?S~Y?e)a z(IrR-smbT|^luj=N^grh6dci?c0+<*pDkqc8RCs-O7|aw&l{9%=#nG4Iq1`(Zie0s zG<;9Fz-f9-?8Q{(FjNrGK*?`7z$W0qIU0w~@QIo!UrmIGnZpoCc~9TpuO^+rm!f5Y zGR5!PzLhJeGn%s2Hy=rPI!-u&=1*Q>(DGV28f1BmQp9BILBGV&yKta7C}dFR{7#cW zi4NcnE!S+xYgCSXI0=K^vC}@_;ATxPF~=7LjiX^kEE=bf9qf4( zKE-{;hvFTYwO1PwN!54(ZG&spJk93WZn1IFufsw~LVms_M10WT^p&K9!JkyGoLOpY z-_eOj@%;r=4W*^Fl%&md^-}SB0MDxQ3=*6;1Z0YxUW%;wq@#Yv`f*+=M8(CD7$_k9 z>c)+U;c0`C0w3hCAM}F}4;5(CcwgJ}jV=54sYY3x?CzZ6bL9eGpo@O5GE>hZ&fw2@ zLzf=W%}w&BMr!H9^N3Knmg+8u*fIU}VqtXIGx|+ayApjn+DH5(%~dk(Hj8+my;R8p zY6FSbQzNG`h`mybG32o^xr}p87w`y+H}k;x!nY{--Aeiq{`u-lYj|0_wc1GQr)^(V z9r_{iK0{r<6E9-~7z#>h6f7O2+qi%~v>V3C)_vZ+GtU9a@6$ROM#^tlzgoVtl)#Z% zaBPmfoj70qX?gTvr+)a5boTX!4}y(Dm2T}RfK_@1(^cc=U(j;*G(zlVSSr7n9l;pJ zfccd6C}a>LQ3LPjnR=vrPP7_6cfN6GicK->RllqB;st%Z9oRzUy9Il>9Fbl$2+2*W zyUHYmm}rkNF>RtWt)Rw;S0{pf%9?p*fL(uITl>sqE`_zZI+5X{X&jk3M8~w_g>Vg4 zmAZY~1;4|AgCEh_TzK$YFD(3PX#lpJ{JXO3Z%Qu24~vF;NyBcmvu=ud5S-%mf%cYl z8pn7p*!MGs5uHOiqAS8~qbN;o@M6WBZkX&F53W_2$>py`^D?~V$2eY4YV_T?2EF9Q zTCJQ+yN}C$B!)StI$FKlTUk`FjE{SDN3c5B`myd&do~iqO%0IQD3eN9IAVOt-)h}Z z14y*4?<$fhA#Sy-qlhL=U=GP9-0PJVF#GhtlhE(w_E!22_$`)mNj|TT4vbB@XZvkj zbswsQD^?zqC~Q%*54`Dg4IZ6Z*QIas?>GbN|Dg}+gG_RDV!L%Xf*1%bqYx`&{&UHr zp~Y6DTdSS8?~~=lVwEYqFVguvyf{+kzxQP_hA*|lO{rwI*4K{6s@a7h&8QQr*a($w zGTc81?A$RAxCOVIfwSo^tYiEJu5_DPzwX|H{D(1?Q&cPQ!ktiSD@>qzX)z`>Jtk2w zbfP>#4z++UEU1$acZr0ChweFmxY)T|^R(T|Y~}r$?MgLPb+tzTQPiExmQ`F=-5c8b zPG@512TV54oB9mT)g`DWqhC$6y1T{jcuA`sArfQ<=K0rBCNUH4&FPIlGpbld{-fJ# zG|y|a^*h-kiQ7Ec>B0L%c>T>n)w@Odd`unXX3po-V?Q07GG6dot3{u%`o%0kv-nWC zikEE8XQeUHfBMTZ`$F26M%7AkUm%esr70;X0+V2G_`6Ga}@gP$=e{l~%)tq~R7 zVteWZu@Ucq^~N_7rX2HbxvcO6O%U4(!iX0(?8T;%4Rn^LqGN%|`S$>KVh*82 z&)%8U`q*yiT|lb~|MnZ)#RwBL>KykuF8_Px6>8B8SfItk?x03q~+;* zmTe;YTvs$3mk>Mi<85eNT!r+F5jF}pmxS%t>&`1lpHi*+)WE&sC*cy9HXLWuii^N+ z5F}kl3dC}PY{;AA9E{@4*uO+~kAT&|@!@*2v-pDwWW{h#D|vllWREZ#rtnT&=0En= zQf!MqDr8b{lH||56K8g2`-}@ux%zct@&XLRf)--KZ)zTL3zoi%Y0>8jiHPI&;lt}W zg0;wy|Ro^-q#A7wEA zf>tAO(rqpmKX~ZohEwT$+AEEPlq&_drCB=oi&P+5+*v8OmMqK^Ka-XwW0Tvd7j@AH zV;%~GNmgU7u1Bel>-d&+Q(9SF+*`#0Azwpnywlw!r$-c;Et;g~>7XKSBx{?%u<*8Ra;MO4fBX?Oe>w@yljt&i05o zPguWp9N0zwvnc!pg?C9PYQ#Mb`94*;k*vNrYEoP~U`!Mh-0m{XDD*dRruUVJx-KU{qkREqg#U=71Hzs)}M((u9{}(iSgzt9_6=&V_QcTjaaq zbWiN|nqhwFne06Bc5E-D3+!rp`WZB^Qt_kWRdi0mY^VmO2HT25OFXH;{#g`>f*X7KB5CanMezOslj@W4VJ&(hQR&_k zq4T3<<^79K7Hw1oeqx<(E_Q8DQ$g3K62EuvPXkl)ye*PBe>XjqKI1Yye97ean!*NWv~ zaY<20#9orsn2EhM85MemVaIY-680JUoOO|XMvje4&u%@1vrKd3z5RZF7A0xAxP<&r z%FfL9jpZ?_!zN*?uinP-R1Olww31fVz0qE-8=0vd=UFaFGc8yj4Oo{&6G$B1#uq2M zuyub@Y%VIKC{sZEqKlDwX=FJg&k*f~G_5{k$yoi4*~6~X57rh7cm_*tW#j?q%M9N> zV!_Ea_(6V@HsnejtD}?QrF0ogrc^q#hB}cn*KeHTZ&F||I(OxFdoNlIQ8SCjLo9lPa zxl>Uk%tV313m zbs3ebglcd;=Yf9qnfe%-I(>DG(N{b-d)*rp@Pgj$qGc;>)}2zh;d5c?FLHFy%Y_|) z6=_`QVkc6u>b!YWM8I7cWG6P)KmzeR@}f|_Ri6DCBbdX#$v;pH)Mfbx`eHa|ozTj6u z@4Ez0C0qX{DtL+ME|oWJ-BMN#X~~{6brh%x-0Q_`sp*bW1;6z=mSii~6=_!bk<0Z@ zOSAm*AyXB{{M$H{7i{dSVAd%mZu{MT#Cz|Yqr&5TQ!FfUpz{G+kQec~Xt-5m-wJv+ zGvj4&$GJFD9j~%(z9a=btL2@U+E3>CfRm%MgF+&J8WO^^|puoNZ~ehpY9Z{Sue0gndWN z4QFi`fId5FnxY~F7h_Z*qVEc2s=hxf-4dJK+Kb#0#HK*Rjf|miH9?s_Oz-O35nwJ@ zv&v>ha~MQ_Iu?+^2~UR=_a$LQ(l0g<7{x0I&*q#|(3R!rEPf~o(gDUG!l5Gk0#HLs zMdWi8;XjHKAEuBO#|2ZkY%H*-yC@qM2RIq#`z5xq$O2THEdvpC--Tk_-!<-^`3^Ap z*cs2HbSUJ@3V$3|AuFjc&K--oTDf@D-2{zX3$M`KBQDiYAi(zL99UD8f7E>N-TI#k z{iS|kwmlK(1s;XY(Vm32RMdV%57&|OS7W+vh_B4Y6QO zO{j2!01QSl12z5n{lI00^_~M9J?g=EbmX9*R&fWrDx$ew&W|ef{wNJ#zT?csIr_^d zx{y7x=}CRH=Q6^)&tj3^-8oA?>*OTPIfiUys&KCjvncjbN&gh`Eg`p!kKx&)Hh7z) z-Cc<>klB%oa%2F9X+y9&mlMCD7my@hJxBb==qFXdaiFt?l2}NMC?Vyj2&T zYihHNe1a9qx+bc;)+@-FtC#e^kGkJ`tMxnK9*g~+4#obn_%lGF5gT@ztnxv}@NQXQ z7@NOf{G0Wx7u!k}Uf^vB-Vo~phDL#LnEW7b^+)cK72&PkFi)o!Mln&B;4x1-s};9Ltr;zORmu(qdVMxg%3}JzP>B zVec+;a>zCigx3;_8O}g@F9s6!N(D+-Wv;~>6blaOWBI#I9EvnS%(*HEfDjqpDBm4d zjR3s3oQAev3spO@ykB(0?K#?&ZSB?k3u;f9J}mjw-KVsnimQ?Qyr6l3YfC+`Bn*Th z&+Eq*z(u>xT?RISrRtzA>A$t8>G1!r zqEkRnvN2PydaAGN4YC(8VM=?C!{5knAXNvDXiWz`bhzfN#hVsr2a|$zva72uIQfo< zD6$Qjm^p9x1H}yJ5tRF9?Pb6GXh;3>?Ek6i z^Dyv3Z}(5sW5{bY{x0tMaD27&{$=q80zs!MMX{1NA~)Icgx~4i!J?;Zs^qEy@%YCc z@UQ7zRQ|p)uOqvWU)Tw=CFXTw^C3$|FArdidgl?xF~?W9XDOH#aFItBHayB_Q_}~~ zz0lV(YZ-%`Ig-pMt!QHQFYqn+-nV)2r{?q~M=^K>NV=d*2TI2tjv=bLODk*sBEc#l zrZ0#?-;CVmt$R-E^(wrMx$>j^?*UGiG#|u?-%A}L$71e^h!s2oL zbM9T#La)Ad9XS}O?J5@QftI8-nNdv?RmCn%@>2?kiw)aPzxlA52dlazGP^xW}w z^@9&9+onRnFA_sWYMknXUqDw_^D*P1u;kV5%goY=Ym0-{u*&En_fu0`!MYX^2@)FO zc~%2@nD2O3(7Q_${XuA9=rtfO71^ADO%1vyCOy%}MbC^; zbx{z+ks(dJjj+R|3XLmA#LiK_;mz4fdKkG%WK5AS$Py4f=S;k zRvW`@8SrY$scoPmrEw{a+43?P^U9Q@lge5R=ewt@yI9=R0RsGm3A(>n2V$CJ_C+=4 zOii8kts4Sml@x{@*c%%4A9$8Jqds6_Dxz|_Y5LeZ)&x!>eXV;W0l#6^WHV+$yES3= ztCl9B-{xV6y*FxoTCv(q+@j+unEEuya_FdUv>kVX#2*;Ce&lNgi6zl7cdCI_L%8Wh z>Q3!in5LCm^$S&STHp=Hnz2#ho-n+jQqs}>Ju6?3t6&oVjE`?Xo91u;YkNlm&?Wn+ zQ82@7K=i(dQBk_GVkTd*jCgBNkIDt0!nr&U!035*CgkA7%K`6-;XzIRTGU3#Am6VB zUh4;d%NiJuGQK^~x8L~|D?jAIxsVW?UH^i9X8v9Y)2Qf@qi+h*3@~?m4;cLb3wFcc zw5oisjMN9tj}LF*H;Wqk*OU0_1ISj1XDWt(a>I6s~EZ=)3e|;97VL+h{Kc^-?X{l39 zW*}P@QT@$cbj)RwF8bn&?r6P?rZb|F*lv2Hx*n;!A0J|RiZ_m>=4w*V@xY2KmBQ{C z+n$3bE)&Ya%f^)SGJ9Lu?`U1l3k#{Fsf-~AB2BECs1G?Do%l&&tnhHLR)Y?8F^+~e zAq-k_dTk&MyV*e^OHu-*U6SW{^qtol>w3|YJnSmO^Szb~sK#v)GA)fm*|w#?pG+Rn zU&NbPuwP$uHzSfA_TZg~fgr3?qvj|0P+zfB_j?s= z_53S$47+-IE5lz)kH{M5Xu2zluX7X_ z^hDW91Z_w}O+zwx8%h`xHA_33bt4o?QMy3FAQ3%5d~`2b6mR_fi8LKS01NZ@oSjhlGaaiAs8eNebn;4ag zKJt=nbXfm(c&GJu^#9| zAfa6aGoxkoTQUGqn)P5!aT$4G^gE92dB6phe13klED65v0lAZt!~GQy?lN*;$0z<~ z5#p8dn`uq->R+;jDVREp4@~A2PQ0W>o_WLlZdr2p zVbrgh+WQ3ssG*<_&ZSH8=VN&+EdN3G?A`psIWT7*UjT7{7YIuum)ZvXCCqb>s1TLV zu53?R^R}kCZ1dy*Z9^8|Bs>utUn$l(3@jRWHAXB^irQ%x9~`NhJ&yhqapdooPpMfZ z_iRixHp?;j>+KbS!!medUT3w;qlOI$Ps-?srYMgnGH>}(U1GtV14vmK`)eLi%b)iF7)CAQC z01KxpRseW{mPGY;MhfWD=%%WW?P(|QqE$s3nus%HZ#mA!oZPBq>XZx01Ik!5XtIrf z%2RDoZ8K_&%P6i=dt4P(X(8&J@eM;to2SXfVX4AuxT#lz3Ly^6J}Bf8evGvqD^%%k z&%nm=L)Wsn?%J@$-TZqzOOwpzKu>yRd%|py00`X`Y>GQHn>+g5fwwvGf|FG-WCnzb(6VdHhlTk($piS7H zTj*`Y==A8ZM^_Q^=q(A=R#fF9qt9?Y%i5U!O6rHLq!@WAV#E zMWhGl!|M!i!_WzisdQP-3f4CSJJfV**s<8%sJhI$|8u>CDpY0TSynLwzd~qXoE@Qk zP#>5MOg^{qE>{Meq@tW@?!oU2uJ}I93lx2lfRA{qNfI)7{z=UH9 zB5%-Or3CF_c9|dhDX(OXzOXGbG)02scS)18y&zLrS$Wz$PspPK+NEs=!nHcP&E{t# zUA-;GERV|s7aCkWjA0=HZmO}UpDoB(k^X~!K}Sq;Gf;E(UpR$*!Wg#okCK(5>Z?aK z*KeDIiU_w@k@`(07cvj(r$S(yW>EGuTYXCfJx*ZZALv7W^v9KpqX^$f9`NeFcrbmH zh$6^07}odpbn3PSyE}uslv#zVOHAojW6+6Ek6P2kfVAoz{{s|V}@V&P`cTtm7my z^d%hN3|Oj6dpcUVmvRCQMi>W#l_^`R&+m_s^VX5IL%zM0`@RU3uS5T7dVP*cibEEv zj%i6K5@w=Al_a3t4bX+Rr}+`5F!K(URUSFWWnc%<<{)t4w@L(*$IF8NQZr<8W`Jm7 z-AnVuN|)uFJXqGZmi8B#Rg<17OlS2I<`-BNHLb4psGBC6hF)CCArSrgmRoFzCdzPa zKE1;1#IPyPK)wB=ZKh%KdwJCV9Napxqg0t)SKG#WLEW`)B5 z(i3fr5>=#Lo6zzMW=Dpi7eQ~{uo%k`$?qm5=6P?)R43=?7Wz5m*fueQIahxjP05r! z2}qieO&##iL(hjiaE5HLb@Amy35QuPYkQ{5x9TO$o@xVDfY2iFaFC}Ph(<+HXU+tv zCf7#8o~?;G1B5HlcxZ+G-zLV1YlA+}dqfw(hvpKQVQR?5V$-LnDO!)dLL%V2e<=kx z`I>B_4tJfXg@oT%=>^V1bbTMBALmHn4~|XORLe#%9yKF(o$<0`eE1BoO{W$2{?qMa z@H4P)o7+h%1!%Yrta4wSTaBA@yz1hUmcV%)-l(X43ihPkHm%gEV@7WG7&gkJ3>6JghLUy|nv@oZurb)uB?U03M#OCU+3T}?mB4vIJHph zP;UnZu3KVc{ANmDrqopb=8}|-4E@<}GCq28XcEHDp#-vba5VTqGuqULytx@A1JY)- zcM0xSKndHHhPFg-`{@~e@2tj@E%Qe^Md?Ymyli&vFgtzx(alVcZB9){eKU9RvV)rHTeS9FDOtt6 z0%IeTv_7DTd##nxn;H#fsjsGlg}05bVBb;p*`ZYPqOF)6Ba{Q{6%1n3uH5svYS2yi zFDT3=-J_>m#shw%tG_j6ZJ`L+~(fDcQzgNsiq)c&welV9GMOB&%UPuDB+c#7OXjK4#m7 zv|+s*18BbkA_XE)V0rKWwijQb%@-i~B-jL{h$^{r=NxXi&ePdzeP_Z7lWA|F@OSR` z^+cpZN#ym-ObvaX{)gbuUHD&+yF=ZySoxUUEM$cbK)jSg>lb|k&7{B80b;pk%3Qz1_s=?*Uh zMZLqu9(exG*qnmXF|m((?aQ;}+PDaY2v#)Z|7Zk}x#GS^Q}<;ufhFh^#|Z zhgFKp-v=54=Xu8CiK=2micKhOc0=V$S2rtPFlBCXGzBW|$w+QFnhaF0uv$^)2}Yy# zf!rbD=^5$xoM-+*Cd{i4AW)*S{&3)0{7krgSi-Vi-)E8>u@bN*;Nnxo_wdf-(%|HG z>-)VNEx6OT8zoTyo3ML|gJDU-r{Nwv=WWxbfu%g&`d?HLV>pE6E~qsuJ0Iwp61CU-0r zA8jvac%Yn@+7bEfD~LuFCrErOJoJb@QH!Q33$@gT(%bX&#j=ez@gKSH_J_pJQeg=r zMrdrk*aO5Oo`UhbaR;{%n01DZofz*=vN#I?QiRyga!0XiJ|g?pW)f zfk!zdBw8N(PY0?qiJ4H*rG9RtcymwQz`%@%micnri1%_$;4MANvJ5ZAi)+KZDK($w z@DKhO%vxnBj3%*-pIV7vZGF zH!{1t{j;Q4Xf5nQ;#VS&Ajomxrln(zN#?l%L`5DB<~P?YO97rVdONrk<{>Fm^0sFd z!62l)2iTSj-RjZ{wiCv4YslF;5xAtXmh$$i@LvQJnLmpchLxWReb99QLIbFx!Dm_( z&TB&%vY^7zz%M6YzfX$iRQoW5V9G}oR>FvI*vJIuDx(chl{aD?=ejaPFMGlItecy; z(Mlbwy!7pQc&Z!afS0IFUR-W^_-5{~4_%}YGYlZg=;(>(;pF})z*!=VZ*!$Q!RXl@ zWL-(x7ql>R5uZm7jp0Iyq4uQLWC6>jfAv}XoT>$rK2l`CRRqpk8gSlBXlUs}uu^FB zTo3DKj}$WvjuQ1mTk`;mA^i1)5S#NB?-=F=<}a#_;%A~JnNzB&H9G;J7uCUon-(0l z7*`ed*ik{^)i|`3_K%wf_OL9P~gX3QlP zwYoTxn%5AMDcF)geTkxL5ePx-Y?GVb*FWs>=b7vLqT7n~XqmIn(4^Tz_k;VqgXuq~ zI@r_9b*RoG_iE#|z0Je#&Oon9TcG<|M(lcH=y1Q6Ee64jqzVu9%C*Cy85ppLiUjS( z z53yG(T`7ip+VZBgr6CVOd_NbDY)G>POL8eGx>U+D_|_%|yF2DcMyLqHT=Z<5CQ7qW zZ{;o2q~uGqnj?RPI_uzt`wT+%`{!nl9EZrB*{zsYfX?Cn{#UnuVsIR?Us`decsORg zEObt@BwTlI!c{~cW;0#smzV}btxP-QcW0?DpMrKWL;ibK4aAiK$(H|Wy)V^DdUU{|?{zo6YQOD{qtPM-0; ziiIEB5Icv2siQov?scpJ*=oe=8;c{tpIaQ(=Zs9HTPLaGECypX<)1wIchJmsVu*>F zsE9C9=Uj)Se1zB|m#+*71x^quwDlvCrVv`A>JeS&N*Lkt$oAa>YUh1~s;#7?@*OKD zs$a`7f)xK?`p~wz$U}cwJFiRFFNon-zYp*hB&g%3^u8fz70dCCcJXiyu6GvyMTo`M zaBYY!i*0J&_-$;myXQw5c*QEUvFp-+1|TL;f*qspQ2+xky2KYXjU^h13ZaTY$;wY* z6|9cG_QVBa3}oZ=qI$~a)J!9fKkZcXm|R&r0*@q=MyMcxa!akgut5&)E&M3MR zNTm3|@^XB?zD?B4ii@}!tG`*S!U7_zJF|hA;p9eEH#Qk1+;eQwBtxwDT~cXT1_6YL z1i`wO=1zQFHnPV`OC+d4DkRHznmT1`*>*Y|N$;gyy{gdMZ11I8trb7LtH0;80Es+c zmE4%D%N*XM#Rh&-cfxL`XmwFy`3vg&H$v^fZj^QZ!R#+FN?5v{H};jn_|4m zS0Q|3a!Ke}BOx>@K&We}YXR~63nEO=n<+{}DMJ>7a#airb}!pqh?6kxkimixsOCir zlOgeX-yN;gG2X{DyeZvvIjYGBG9-jTOv|oyhM-VJYDPAC^O?NFygq?Vhz)(FcmAo< z&j!B|i0SsYl4O9>X9uuvjz17!ZamWRViWpJQ*G*B9cWk*>jiRrV1+hUe~OELPIA64 zyrsEw_5_r|dX!JPpVg3!gh&3L0Ga`1{w*uezdgUWo=HB78@|pQHPcE}cA>pbI@l+~ zbn(SGG|tKy3HsFR^!3`KOBMeBL>qomFR&~>w+KemBpVZ^nWHqhTeK_bwPswm0<6&*G+d^)lx ztpPP*^-0FX9ZI;xSWu3R9PzP77&4L%n!zUnRT$dWJwCAcMS+r5g^npA8vejxZxc@> z4I>OjQ1s;;?gJ#wv7p7Ag&k(irub_bo1aoHyZ-=B=it<3@oCx3;bpBW>t^+L(*FP@ z7HB9}^9mDZlh-zV5Ue{7;&elP`&z zE#3}a6ZJFpYtLuzW9#?7Tl4`>#Z$GLyZBy;-HjYhyU56Ka-mP diff --git a/client/images/vehicleTextures/carbon.jpg b/client/images/vehicleTextures/carbon.jpg deleted file mode 100644 index 9b1901e4d59309682867f911c517345469a0fd6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121286 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 e{2`MQ%e`eOnq Date: Wed, 14 Jan 2015 20:48:31 -0800 Subject: [PATCH 301/544] Update payload.sqf --- server/antihack/payload.sqf | 66 ++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/server/antihack/payload.sqf b/server/antihack/payload.sqf index 1c37949f5..fc32c3f07 100644 --- a/server/antihack/payload.sqf +++ b/server/antihack/payload.sqf @@ -208,7 +208,71 @@ while { true } do _cheatFlag = ["hack variable", _x]; }; sleep 0.01; - } forEach ["DurkSintax_Pro_RE", "iBeFlying", "dayz_godmode", "Main_Fury_Menu_", "Hack_Pos_Orig", "REdasfsfwef", "XXMMWW_keybinds", "FUNMENUON", "JJMMEE_INIT_MENU", "activeITEMlistanzahl", "Detected_Remote_Execution", "g0dmode", "Pro_RE", "xyzaa", "GOLDENS_GLOBAL_SHIT_YEAH", "HaxSmokeOn", "Lysto_Lyst", "pathtoscrdir", "ewrfdfcsf", "Ug8YtyGyvguGF", "LYSTIC_MENU_LOADED", "qofjqpofq", "c0lorthem", "shnmenu", "letmeknow", "DAYZ_CA1_Lollipops", "TONIC_HAS_A_GAPER_NUKE_2", "fazelist", "faze_fill", "PL4YER_CANN0N_T0GGLE", "aKTitans", "Fury_Are_G0ds", "LY_Exec", "inf_ammo_loop_infiSTAR", "Wookie_Pro_RE", "nook3_vars", "Wookie_Init_Menu", "TTT5OptionNR", "Team_Fury_Reck_Prebs", "faze_funcs_inited", "biggies_pro_re", "godlol", "Lystic_Init", "FAG_NEON", "Lystic_Exec", "faze_getControl", "vehicleg0dv3_BushWookie", "t0ggl3", "morphm3", "fsdddInfectLOL", "cargod", "abcdefGEH", "Wep_Spawn_Shitt", "Fury_Nuke", "faze_hax_dbclick", "LY_Init", "W00kie_Pro_RE", "fdsgdr42424", "battleHIGH_vehpub", "WHY_ARE_THERE_SO_MANY_FISH_IN_THE_BIG_BLUE_OCEAN", "MenuInitLol", "wierdo", "mdh_ash", "faze_initMenu", "fuckfestv2", "xZombieBait", "W00kie_Init_Menu", "rainbow_var", "biggies_menu_open", "HAAJASDOKAD_mein", "CharlieSheenkeybinds", "POOP_Main", "colt_lmaoooo", "W_O_O_K_I_E_Pro_RE", "toggle_keyEH", "JME_M_E_N_U_initMenu", "dawr5wdfsf23", "LOKI_GUI_Key_Color", "MPGHALLDAYEVRYDAY47LETSDOTHISBBYYAAAAAAA", "infi_STAR_exec", "M_R_IRecommend", "xtags_star_xx", "ChangingBullets_xx", "byebyezombies", "Root_Main4", "igodokxtt", "unlimammo", "tw4etinitMenu", "oh_nmoe_pls", "plrshldblckls", "Jme_Is_God", "Monky_funcs_inited", "fuckmegrandma", "qopfkqpofqk", "ShadowyFaz3VehZ", "Veh_Spawn_Shitt", "wuat_fpsMonitor", "Monky_hax_toggled", "mehatingjews", "W_0_0_K_I_E_Pro_RE", "InfiniteAmmo", "PersonWhomMadeThisCorroded_Init", "nuke_vars", "debug_star_colorful", "neo_fnc_throw", "W00kieMenu_hax_toggled", "AntiAntiAntiAntiHax", "XMVJEIUI133794_mein", "aim", "GodLolPenis", "vehiclegooov3ood_BushWookie", "biggies_scroll_open", "ANTI_ANTI_HAX", "antiantiantiantih4x", "riasgremory_G0d_Mode", "BigFuckinBullets_0202020DDDEEDED", "monkytp", "hax_toggled", "JJJJ_MMMM___EEEEEEE_INIT_MENU", "B0X_CANN0N_T0GGLE", "omgwtfbbq", "bowonky", "ExtasyMenu_Binds", "PRO_SKILLZ_2015_ALLDAY_Noobs", "dontAddToTheArray", "rainbowbitch", "n0clip", "GLASS911_Init", "fuckfest", "BigFuckinBullets", "lmzsjgnas"]; + } forEach ["DurkSintax_Pro_RE", "iBeFlying", "dayz_godmode", "Main_Fury_Menu_", "Hack_Pos_Orig", "REdasfsfwef", "XXMMWW_keybinds", "FUNMENUON", "JJMMEE_INIT_MENU", "activeITEMlistanzahl", "Detected_Remote_Execution", "g0dmode", "Pro_RE", "xyzaa", "GOLDENS_GLOBAL_SHIT_YEAH", "HaxSmokeOn", "Lysto_Lyst", "pathtoscrdir", "ewrfdfcsf", "Ug8YtyGyvguGF", "LYSTIC_MENU_LOADED", "qofjqpofq", "c0lorthem", "shnmenu", "letmeknow", "DAYZ_CA1_Lollipops", "TONIC_HAS_A_GAPER_NUKE_2", "fazelist", "faze_fill", "PL4YER_CANN0N_T0GGLE", "aKTitans", "Fury_Are_G0ds", "LY_Exec", "inf_ammo_loop_infiSTAR", "Wookie_Pro_RE", "nook3_vars", "Wookie_Init_Menu", "TTT5OptionNR", "Team_Fury_Reck_Prebs", "faze_funcs_inited", "biggies_pro_re", "godlol", "Lystic_Init", "FAG_NEON", "Lystic_Exec", "faze_getControl", "vehicleg0dv3_BushWookie", "t0ggl3", "morphm3", "fsdddInfectLOL", "cargod", "abcdefGEH", "Wep_Spawn_Shitt", "Fury_Nuke", "faze_hax_dbclick", "LY_Init", "W00kie_Pro_RE", "fdsgdr42424", "battleHIGH_vehpub", "WHY_ARE_THERE_SO_MANY_FISH_IN_THE_BIG_BLUE_OCEAN", "MenuInitLol", "wierdo", "mdh_ash", "faze_initMenu", "fuckfestv2", "xZombieBait", "W00kie_Init_Menu", "rainbow_var", "biggies_menu_open", "HAAJASDOKAD_mein", "CharlieSheenkeybinds", "POOP_Main", "colt_lmaoooo", "W_O_O_K_I_E_Pro_RE", "toggle_keyEH", "JME_M_E_N_U_initMenu", "dawr5wdfsf23", "LOKI_GUI_Key_Color", "MPGHALLDAYEVRYDAY47LETSDOTHISBBYYAAAAAAA", "infi_STAR_exec", "M_R_IRecommend", "xtags_star_xx", "ChangingBullets_xx", "byebyezombies", "Root_Main4", "igodokxtt", "unlimammo", "tw4etinitMenu", "oh_nmoe_pls", "plrshldblckls", "Jme_Is_God", "Monky_funcs_inited", "fuckmegrandma", "qopfkqpofqk", "ShadowyFaz3VehZ", "Veh_Spawn_Shitt", "wuat_fpsMonitor", "Monky_hax_toggled", "mehatingjews", "InfiniteAmmo", "PersonWhomMadeThisCorroded_Init", "nuke_vars", "debug_star_colorful", "neo_fnc_throw", "W00kieMenu_hax_toggled", "AntiAntiAntiAntiHax", "XMVJEIUI133794_mein", "aim", "GodLolPenis", "vehiclegooov3ood_BushWookie", "biggies_scroll_open", "ANTI_ANTI_HAX", "antiantiantiantih4x", "riasgremory_G0d_Mode", "BigFuckinBullets_0202020DDDEEDED", "monkytp", "hax_toggled", "JJJJ_MMMM___EEEEEEE_INIT_MENU", "B0X_CANN0N_T0GGLE", "omgwtfbbq", "bowonky", "ExtasyMenu_Binds", "PRO_SKILLZ_2015_ALLDAY_Noobs", "dontAddToTheArray", "rainbowbitch", "n0clip", "GLASS911_Init", "fuckfest", "BigFuckinBullets", "lmzsjgnas"]; +}; +if (isNil "_cheatFlag" && _loopCount >= 24) then +{ +// Diplay validator based on Tonic's SpyGlass +{ +_rscName = _x select 0; +_onLoadValid = _x select 1; +_onUnloadValid = _x select 2; +_onLoad = getText (configFile >> _rscName >> "onLoad"); +_onUnload = getText (configFile >> _rscName >> "onUnload"); +if (_onLoad != _onLoadValid || _onUnload != _onUnloadValid) exitWith +{ +_cheatFlag = ["memory editing", _rscName]; +}; +sleep 0.01; +} +forEach +[ +["RscDisplayAVTerminal", "[""onLoad"",_this,""RscDisplayAVTerminal"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayAVTerminal"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayConfigureAction", "[""onLoad"",_this,""RscDisplayConfigureAction"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayConfigureAction"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayConfigureControllers", "[""onLoad"",_this,""RscDisplayConfigureControllers"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayConfigureControllers"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayControlSchemes", "[""onLoad"",_this,""RscDisplayControlSchemes"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayControlSchemes"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayCustomizeController", "[""onLoad"",_this,""RscDisplayCustomizeController"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayCustomizeController"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayDebriefing", "[""onLoad"",_this,""RscDisplayDebriefing"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayDebriefing"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayDiary", "[""onLoad"",_this,""RscDiary"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDiary"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayGameOptions", "[""onLoad"",_this,""RscDisplayGameOptions"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayGameOptions"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayGetReady", "[""onLoad"",_this,""RscDiary"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDiary"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayInterrupt", "[""onLoad"",_this,""RscDisplayInterrupt"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayInterrupt"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayInventory", "[""onLoad"",_this,""RscDisplayInventory"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayInventory"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayJoystickSchemes", "[""onLoad"",_this,""RscDisplayJoystickSchemes"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayJoystickSchemes"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayLoading", "[""onLoad"",_this,""RscDisplayLoading"",'Loading'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayLoading"",'Loading'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayLoadMission", "[""onLoad"",_this,""RscDisplayLoading"",'Loading'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayLoading"",'Loading'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayMainMap", "[""onLoad"",_this,""RscDiary"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""","[""onUnload"",_this,""RscDiary"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayMicSensitivityOptions", "[""onLoad"",_this,""RscDisplayMicSensitivityOptions"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayMicSensitivityOptions"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayOptions", "[""onLoad"",_this,""RscDisplayOptions"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayOptions"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayOptionsAudio", "[""onLoad"",_this,""RscDisplayOptionsAudio"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayOptionsAudio"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayOptionsLayout", "[""onLoad"",_this,""RscDisplayOptionsLayout"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayOptionsLayout"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayOptionsVideo", "[""onLoad"",_this,""RscDisplayOptionsVideo"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayOptionsVideo"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayStart", "[""onLoad"",_this,""RscDisplayLoading"",'Loading'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayLoading"",'Loading'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""], +["RscDisplayVehicleMsgBox", "[""onLoad"",_this,""RscDisplayVehicleMsgBox"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""", "[""onUnload"",_this,""RscDisplayVehicleMsgBox"",'GUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""] +]; +}; +if (isNil "_cheatFlag") then +{ +// diag_log "ANTI-HACK: Recoil hack check started!"; +_currentRecoil = unitRecoilCoefficient player; +_minRecoil = ((["A3W_antiHackMinRecoil", 1.0] call getPublicVar) max 0.02) - 0.001; +if (_currentRecoil < _minRecoil && _currentRecoil != -1) then +{ +// diag_log "ANTI-HACK: Detected recoil hack!"; +_cheatFlag = ["recoil hack", str ceil (_currentRecoil * 100) + "% recoil"]; +}; +}; +if (!isNil "_cheatFlag") exitWith +{ +//diag_log str [profileName, getPlayerUID player, _cheatFlag select 0, _cheatFlag select 1]; +[[profileName, getPlayerUID player, _cheatFlag select 0, _cheatFlag select 1, _flagChecksum], "A3W_fnc_flagHandler", false, false] call A3W_fnc_MP; +waitUntil {alive player}; +[getPlayerUID player, _flagChecksum] call A3W_fnc_clientFlagHandler; +}; +sleep 5; +_loopCount = _loopCount + 1; +}; + }; if (isNil "_cheatFlag" && _loopCount >= 24) then From 5f043eff7d50d200bc57e5929e73674d7f1c71e4 Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 15 Jan 2015 02:16:46 -0800 Subject: [PATCH 302/544] Saving performance improvement Save the data from an FSM call for performance (+3x) gain. --- persistence/lib/shFunctions.sqf | 30 +++++++++++++++ persistence/players/c_setupPlayerDB.sqf | 7 ++-- persistence/players/sFunctions.sqf | 47 +++++++++++------------- persistence/players/s_setupPlayerDB.sqf | 7 +++- persistence/sock/{call.fsm => call3.fsm} | 2 +- persistence/sock/stats.sqf | 29 +-------------- persistence/world/oFunctions.sqf | 2 +- persistence/world/oLoad.sqf | 4 +- persistence/world/vFunctions.sqf | 2 +- persistence/world/vLoad.sqf | 5 ++- 10 files changed, 72 insertions(+), 63 deletions(-) rename persistence/sock/{call.fsm => call3.fsm} (91%) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index d743c2fbc..52c0db41d 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -223,5 +223,35 @@ sh_getValueFromPairs = { (_result); }; + +sh_fsm_invoke = { + //diag_log format["%1 call sh_fsm_invoke", _this]; + ARGV2(0,_left); + ARGVX2(1,_right); + ARGV4(2,_async,false,false); + + if (!isCODE(_right)) exitWith {}; + if (isNil "_left") then { + _left = []; + }; + + + def(_var_name); + _var_name = format["var_%1",ceil(random 10000)]; + + def(_fsm); + _fsm = [_var_name, _left, _right] execFSM "persistence\sock\call3.fsm"; + + //if async, return the name of the variable that will hold the results + if (_async) exitWith {_var_name}; + + waitUntil {completedFSM _fsm}; + + def(_result); + _result = (missionNamespace getVariable _var_name); + missionNamespace setVariable [_var_name, nil]; + OR(_result,nil) +}; + shFunctions_loased = true; diag_log "shFunctions loading complete"; \ No newline at end of file diff --git a/persistence/players/c_setupPlayerDB.sqf b/persistence/players/c_setupPlayerDB.sqf index ff00f843f..5000e8204 100644 --- a/persistence/players/c_setupPlayerDB.sqf +++ b/persistence/players/c_setupPlayerDB.sqf @@ -5,6 +5,7 @@ if (isDedicated) exitWith {}; #include "macro.h" -call compile preProcessFileLineNumbers "persistence\sock\main.sqf"; -call compile preProcessFileLineNumbers "persistence\lib\hash.sqf"; -call compile preProcessFileLineNumbers "persistence\players\pFunctions.sqf"; +call compile preprocessFileLineNumbers "persistence\sock\main.sqf"; +call compile preprocessFileLineNumbers "persistence\lib\hash.sqf"; +call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf"; +call compile preprocessFileLineNumbers "persistence\players\pFunctions.sqf"; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 814519569..87979ae6c 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -1,7 +1,4 @@ -// @file Version: 0.1 -// @file Name: sFunctions.sqf -// @file Author: micovery -// @file Description: server functions +if (!isNil "s_functions_defined") exitWith {}; diag_log "sFunctions.sqf loading ..."; @@ -23,23 +20,28 @@ s_processRestartMessage = { diag_log format["Saving players all player stats"]; //save all player stats - call p_saveAllPlayers; + [nil, p_saveAllPlayers] call sh_fsm_invoke; + diag_log format["Saving active players list"]; //save all player stats init(_plScope, "PlayersList" call PDB_playersListFileName); - [_plScope] call pl_savePlayersList; + [[_plScope], pl_savePlayersList] call sh_fsm_invoke; + diag_log format["Saving all vehicles on the map"]; //save all vehilce stats init(_vScope, "Vehicles" call PDB_objectFileName); - [_vScope] call v_saveAllVechiles; + [[_vScope], v_saveAllVechiles] call sh_fsm_invoke; + diag_log format["Saving all objects on the map"]; //save all object scopes init(_oScope, "Objects" call PDB_objectFileName); - [_oScope] call o_saveAllObjects; - [_oScope] call o_saveInfo; + [[_oScope], o_saveAllObjects] call sh_fsm_invoke; + + //save object info + [[_oScope], o_saveInfo] call sh_fsm_invoke; diag_log format["Sending restart message ack"]; @@ -289,7 +291,7 @@ p_addPlayerSave = { _request pushBack ["PlayerScore",_scoreInfo]; }; - diag_log format["Disconnected %1(%2): unconscious = %3, respawning = %4, alive = %5", _name,_uid, _unconscious, _respawn_active, _alive]; + diag_log format["Saving %1(%2): unconscious = %3, respawning = %4, alive = %5", _name,_uid, _unconscious, _respawn_active, _alive]; if (_reset_save) exitWith { diag_log format["Resetting %1(%2) stats", _name, _uid]; _request pushBack ["PlayerSave",nil]; @@ -448,14 +450,6 @@ p_addPlayerSave = { }; -ordered_invoke = { - if (isNil "_this" || {typeName _this != typeName []}) exitWith {}; - { - (_x select 0) call (_x select 1); - } forEach _this; -}; - - p_disconnectSave = { diag_log format["%1 call p_disconnectSave", _this]; ARGVX3(0,_player,objNull); @@ -468,13 +462,11 @@ p_disconnectSave = { if (isNil{[_request,_player,_uid,_name] call p_addPlayerSave}) exitWith { diag_log format["WARNING: No stats saved for %1(%2) on disconnect", _name, _uid]; - [_scope] spawn stats_flush; + [_scope] call stats_flush; }; - [ - [_request, stats_set], - [[_scope], stats_flush] - ] spawn ordered_invoke; + _request call stats_set; + [_scope] call stats_flush; diag_log format["Stats for %1(%2) saved", _name, _uid]; }; @@ -754,11 +746,16 @@ pl_saveLoop = { while {true} do { sleep A3W_playersList_saveInterval; if (not(isBOOLEAN(pl_saveLoopActive) && {!pl_saveLoopActive})) then { - diag_log format["saving player list"]; - [_scope] call pl_savePlayersList; + diag_log format["pl_saveLoop: Saving player list"]; + init(_start_time,diag_tickTime); + [[_scope], pl_savePlayersList] call sh_fsm_invoke; + init(_end_time,diag_tickTime); + diag_log format["pl_saveLoop: Took %1 ticks to save players list", (_end_time - _start_time)]; }; }; }; +s_functions_defined = true; + diag_log "sFunctions.sqf loading complete"; diff --git a/persistence/players/s_setupPlayerDB.sqf b/persistence/players/s_setupPlayerDB.sqf index 752468fc4..f44cb318c 100644 --- a/persistence/players/s_setupPlayerDB.sqf +++ b/persistence/players/s_setupPlayerDB.sqf @@ -6,11 +6,14 @@ if (!isServer) exitWith {}; -#include "macro.h" diag_log "Loading s_setupPlayerDB ..."; -call compile preProcessFileLineNumbers "persistence\players\sFunctions.sqf"; +call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf"; +call compile preprocessFileLineNumbers "persistence\players\sFunctions.sqf"; + +#include "macro.h" + fn_deletePlayerSave = { init(_scope,_this call PDB_playerFileName); diff --git a/persistence/sock/call.fsm b/persistence/sock/call3.fsm similarity index 91% rename from persistence/sock/call.fsm rename to persistence/sock/call3.fsm index 290175686..fa7f27644 100644 --- a/persistence/sock/call.fsm +++ b/persistence/sock/call3.fsm @@ -1,5 +1,5 @@ class FSM { - fsmName = "call.fsm"; + fsmName = "call3.fsm"; class States { class _ { name = "_"; diff --git a/persistence/sock/stats.sqf b/persistence/sock/stats.sqf index 5a60aef02..57cb43982 100644 --- a/persistence/sock/stats.sqf +++ b/persistence/sock/stats.sqf @@ -249,21 +249,8 @@ stats_merge = { (["merge", _this] call stats_write) }; -stats_write = { - def(_var_name); - _var_name = format["var_%1",ceil(random 10000)]; - - def(_fsm); - _fsm = [_var_name, _this, stats_write_wrapped] execFSM "persistence\sock\call.fsm"; - waitUntil {completedFSM _fsm}; - - def(_result); - _result = (missionNamespace getVariable _var_name); - missionNamespace setVariable [_var_name, nil]; - OR(_result,nil) -}; -stats_write_wrapped = { +stats_write = { if (isNil "_this") exitWith {false}; format["%1 stats_set;", _this] call stats_log_finest; @@ -598,20 +585,6 @@ stats_keys = { }; -stats_read_fsm = { - def(_var_name); - _var_name = format["var_%1",ceil(random 10000)]; - - def(_fsm); - _fsm = [_var_name, _this, stats_read_wrapped] execFSM "persistence\sock\call.fsm"; - waitUntil {completedFSM _fsm}; - - def(_result); - _result = (missionNamespace getVariable _var_name); - missionNamespace setVariable [_var_name, nil]; - OR(_result,nil) -}; - stats_read = { if (isNil "_this") exitWith {}; format["%1 stats_get;", _this] call stats_log_fine; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 3fc8055f6..80be6adb2 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -589,7 +589,7 @@ o_saveLoop = { sleep A3W_object_saveInterval; if (not(isBOOLEAN(o_saveLoopActive) && {!o_saveLoopActive})) then { diag_log format["saving all objects"]; - [_scope] call o_saveAllObjects; + [[_scope], o_saveAllObjects] call sh_fsm_invoke; [_scope] call o_saveInfo; }; }; diff --git a/persistence/world/oLoad.sqf b/persistence/world/oLoad.sqf index 60ba3260a..dc9bc72ef 100644 --- a/persistence/world/oLoad.sqf +++ b/persistence/world/oLoad.sqf @@ -9,8 +9,10 @@ diag_log "oLoad.sqf loading ..."; if (!isServer) exitWith {}; +call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf"; +call compile preprocessFileLineNumbers "persistence\world\oFunctions.sqf"; -#include "oFunctions.sqf" +#include "macro.h" init(_oScope, "Objects" call PDB_objectFileName); diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index f17e89dfc..0ea1c8a27 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -629,7 +629,7 @@ v_saveLoop = { while {true} do { sleep A3W_vehicle_saveInterval; if (not(isBOOLEAN(v_saveLoopActive) && {!v_saveLoopActive})) then { - [_scope] call v_saveAllVechiles; + [[_scope], v_saveAllVechiles] call sh_fsm_invoke; }; }; }; diff --git a/persistence/world/vLoad.sqf b/persistence/world/vLoad.sqf index 647d68984..fd7131fce 100644 --- a/persistence/world/vLoad.sqf +++ b/persistence/world/vLoad.sqf @@ -9,7 +9,10 @@ diag_log "vLoad.sqf loading ..."; if (!isServer) exitWith {}; -#include "vFunctions.sqf" +call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf"; +call compile preprocessFileLineNumbers "persistence\world\vFunctions.sqf"; + +#include "macro.h" init(_vScope, "Vehicles" call PDB_objectFileName); From 38b7ebbfff28d46b10c943ea57c88a7a5c9a495c Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 15 Jan 2015 04:30:11 -0800 Subject: [PATCH 303/544] Set UAV control to group. --- addons/UAV_Control/config.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/UAV_Control/config.sqf b/addons/UAV_Control/config.sqf index 6df95f96b..53952cf14 100644 --- a/addons/UAV_Control/config.sqf +++ b/addons/UAV_Control/config.sqf @@ -1 +1 @@ -uav_control_permission = "owner"; // Scope for who is able to access the UAV controls ("owner", "group", "side") \ No newline at end of file +uav_control_permission = "group"; // Scope for who is able to access the UAV controls ("owner", "group", "side") \ No newline at end of file From b6b8afbb16b6b1e948d6ec143e0037fb7e6f646c Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 16 Jan 2015 01:09:41 -0800 Subject: [PATCH 304/544] Added thermal and nv back to UAVs. --- server/functions/spawnStoreObject.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index cad3e340c..95dab515e 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -244,6 +244,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore { _object removeMagazineTurret ["6Rnd_LG_scalpel",[0]]; _object addMagazineTurret ["2Rnd_LG_scalpel",[0]]; + _object disableTIEquipment false; }; }; From 81a9bd8fc39d8def901a115c9e3a0220f7bcd6f6 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 16 Jan 2015 03:29:21 -0800 Subject: [PATCH 305/544] Added thermal and nv back to UAVs and UGV's --- server/functions/spawnStoreObject.sqf | 1 - server/functions/vehicleSetup.sqf | 5 +++++ storeConfig.sqf | 12 ++++++------ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 95dab515e..cad3e340c 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -244,7 +244,6 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore { _object removeMagazineTurret ["6Rnd_LG_scalpel",[0]]; _object addMagazineTurret ["2Rnd_LG_scalpel",[0]]; - _object disableTIEquipment false; }; }; diff --git a/server/functions/vehicleSetup.sqf b/server/functions/vehicleSetup.sqf index dfe4729ab..d2891931b 100644 --- a/server/functions/vehicleSetup.sqf +++ b/server/functions/vehicleSetup.sqf @@ -114,6 +114,11 @@ switch (true) do // Add quadbike horn to karts _vehicle addWeaponTurret ["MiniCarHorn", [-1]]; }; + case ({_class isKindOf _x} count ["UAV_02_base_F", "UGV_01_base_F"] > 0): + { + // Add thermal and nv to uav and ugv + _vehicle disableTIEquipment false; + }; }; diff --git a/storeConfig.sqf b/storeConfig.sqf index 533c58894..75bdda166 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -622,11 +622,11 @@ landArray = compileFinal str ["Zamak Repair", "I_Truck_02_box_F", 10000, "vehicle"], ["UGV Stomper (NATO)", "B_UGV_01_F", 2500, "vehicle"], - ["UGV Stomper RCWS (NATO)", "B_UGV_01_rcws_F", 15000, "vehicle"], + ["UGV Stomper RCWS (NATO)", "B_UGV_01_rcws_F", 20000, "vehicle"], ["UGV Stomper (AAF)", "I_UGV_01_F", 2500, "vehicle"], - ["UGV Stomper RCWS (AAF)", "I_UGV_01_rcws_F", 15000, "vehicle"], + ["UGV Stomper RCWS (AAF)", "I_UGV_01_rcws_F", 20000, "vehicle"], ["UGV Saif (CSAT)", "O_UGV_01_F", 2500, "vehicle"], - ["UGV Saif RCWS (CSAT)", "O_UGV_01_rcws_F", 15000, "vehicle"] + ["UGV Saif RCWS (CSAT)", "O_UGV_01_rcws_F", 20000, "vehicle"] ]; armoredArray = compileFinal str @@ -698,11 +698,11 @@ planesArray = compileFinal str //["A-164 Wipeout CAS", "B_Plane_CAS_01_F", 75000, "vehicle"], //["To-199 Neophron CAS", "O_Plane_CAS_02_F", 75000, "vehicle"], ["MQ4A Greyhawk ATGM UAV", "B_UAV_02_F", 25000, "vehicle"], - ["MQ4A Greyhawk Bomber UAV", "B_UAV_02_CAS_F", 15000, "vehicle"], // Bomber UAVs are a lot harder to use, hence why they are cheaper than ATGMs + ["MQ4A Greyhawk Bomber UAV", "B_UAV_02_CAS_F", 20000, "vehicle"], // Bomber UAVs are a lot harder to use, hence why they are cheaper than ATGMs ["K40 Ababil-3 ATGM UAV (CSAT)", "O_UAV_02_F", 25000, "vehicle"], - ["K40 Ababil-3 Bomber UAV (CSAT)", "O_UAV_02_CAS_F", 15000, "vehicle"], + ["K40 Ababil-3 Bomber UAV (CSAT)", "O_UAV_02_CAS_F", 20000, "vehicle"], ["K40 Ababil-3 ATGM UAV (AAF)", "I_UAV_02_F", 25000, "vehicle"], - ["K40 Ababil-3 Bomber UAV (AAF)", "I_UAV_02_CAS_F", 15000, "vehicle"] + ["K40 Ababil-3 Bomber UAV (AAF)", "I_UAV_02_CAS_F", 20000, "vehicle"] ]; boatsArray = compileFinal str From 4ee8e97bf400acaf707e47c7540d8b4eb0be565e Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 16 Jan 2015 20:16:03 -0800 Subject: [PATCH 306/544] Allow only one vehicle unflip action at a time --- addons/vactions/macro.h | 3 ++ addons/vactions/va_functions.sqf | 56 ++++++++++++++++++-------------- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/addons/vactions/macro.h b/addons/vactions/macro.h index f6929bfb5..83e60c22b 100644 --- a/addons/vactions/macro.h +++ b/addons/vactions/macro.h @@ -25,6 +25,9 @@ #define isPOS(x) \ (isARRAY(x) && {count(x) == 3}) +#define isSCRIPT(x) \ +(not(isNil {x}) && {typeName x == typeName scriptNull}) + #define isNullable(x) (false ||{ \ not(isNil {x}) &&{ \ diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf index 2ff4eb951..6d3c76036 100644 --- a/addons/vactions/va_functions.sqf +++ b/addons/vactions/va_functions.sqf @@ -114,34 +114,40 @@ va_unflip_action_available = { ([_vehicle] call va_flipped) }; -va_unflip_action = { _this spawn { - //player groupChat format["va_unflip_action %1",_this]; - ARGVX3(3,_this,[]); - ARGVX3(0,_player,objNull); - ARGVX3(1,_vehicle,objNull); - - if (not(alive _player)) exitWith {}; - - - def(_display_name); - _display_name = [typeOf _vehicle] call generic_display_name; - - init(_sleep,cfg_va_unflip_wait_time); - init(_dist,cfg_va_unflip_wait_distance); - - _player groupChat format["Unflipping the %1, wait for %2 seconds nearby.", _display_name, _sleep]; - sleep _sleep; +va_unflip_action = { - if ((_player distance _vehicle) > _dist) exitWith { - _player groupChat format["Could not unflip the %1, you must stay within %2 meters.", _display_name, _dist]; + if (isSCRIPT(va_unflip_action_script) && {not(scriptDone va_unflip_action_script)}) exitWith { + player groupChat format["Vehicle unflip action is already in progress, please wait"]; }; - - [[_vehicle,[0,0,1]],"A3W_fnc_unflip",true,false] call BIS_fnc_MP; - - _player groupChat format["The %1 has been unflipped", _display_name]; - -};}; + va_unflip_action_script = _this spawn { + //player groupChat format["va_unflip_action %1",_this]; + ARGVX3(3,_this,[]); + ARGVX3(0,_player,objNull); + ARGVX3(1,_vehicle,objNull); + + if (not(alive _player)) exitWith {}; + + + def(_display_name); + _display_name = [typeOf _vehicle] call generic_display_name; + + init(_sleep,cfg_va_unflip_wait_time); + init(_dist,cfg_va_unflip_wait_distance); + + _player groupChat format["Unflipping the %1, wait for %2 seconds nearby.", _display_name, _sleep]; + sleep _sleep; + + if ((_player distance _vehicle) > _dist) exitWith { + _player groupChat format["Could not unflip the %1, you must stay within %2 meters.", _display_name, _dist]; + }; + + [[_vehicle,[0,0,1]],"A3W_fnc_unflip",true,false] call BIS_fnc_MP; + + + _player groupChat format["The %1 has been unflipped", _display_name]; + }; +}; //place-holder in case people want to modify this condition va_information_action_available = { From 910b13dd4a5d7e1e3992bdcbb6a36ea130d7d455 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 16 Jan 2015 21:01:25 -0800 Subject: [PATCH 307/544] Use "getOut" action instead of "Eject" for pulling --- addons/vactions/va_functions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf index 6d3c76036..d12fd533e 100644 --- a/addons/vactions/va_functions.sqf +++ b/addons/vactions/va_functions.sqf @@ -41,7 +41,7 @@ va_player_exit = { //leave engine in same state after exiting def(_engine_state); _engine_state = isEngineOn _vehicle; - _player action ["Eject",_vehicle]; + _player action ["getOut",_vehicle]; _vehicle engineOn _engine_state; }; From c3cee7edc9d9999c2f5ee381f2d9a5d7c815a51c Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 16 Jan 2015 21:28:21 -0800 Subject: [PATCH 308/544] Improve performance of initial object creation --- persistence/world/oFunctions.sqf | 8 ++++---- persistence/world/oLoad.sqf | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 80be6adb2..2667a6980 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -81,7 +81,7 @@ o_isLockableObject = { -o_restoreObject = {_this spawn { +o_restoreObject = { //diag_log format["%1 call o_restoreObject", _this]; ARGVX3(0,_data_pair,[]); @@ -204,8 +204,8 @@ o_restoreObject = {_this spawn { ARGVX3(1,_allowDamage,false); //delay the allow damage to allow the box to settle sleep 5; - _obj setVariable ["allowDamage", _allowDamage]; - _obj allowDamage _allowDamage; + _obj setVariable ["allowDamage", _allowDamage]; + _obj allowDamage _allowDamage; }; //broadcast the spawn beacon @@ -263,7 +263,7 @@ o_restoreObject = {_this spawn { //objects, warchests, and beacons tracked_objects_list pushBack _obj; -};}; +}; diff --git a/persistence/world/oLoad.sqf b/persistence/world/oLoad.sqf index dc9bc72ef..adde49352 100644 --- a/persistence/world/oLoad.sqf +++ b/persistence/world/oLoad.sqf @@ -17,7 +17,7 @@ call compile preprocessFileLineNumbers "persistence\world\oFunctions.sqf"; init(_oScope, "Objects" call PDB_objectFileName); def(_oIds); -_oIds = [_oScope] call o_loadObjects; +_oIds = [[_oScope], o_loadObjects] call sh_fsm_invoke; [_oScope] call o_loadInfo; [_oScope] spawn o_saveLoop; From ae0f0f832c76bfc85fc3e5916073632f9f7de92f Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Sun, 14 Dec 2014 17:51:35 -0800 Subject: [PATCH 309/544] Add CCTV Cameras --- addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 3 +- addons/cctv/cctv_functions.sqf | 340 ++++++++++++++++++++ addons/cctv/cctv_menu.hpp | 92 ++++++ addons/cctv/cctv_menu_functions.sqf | 324 ++++++++++++++++++++ addons/cctv/config.sqf | 6 + addons/cctv/constants.h | 61 ++++ addons/cctv/defines.h | 1 + addons/cctv/dikcodes.h | 341 +++++++++++++++++++++ addons/cctv/functions.sqf | 7 + addons/cctv/icons/camcorder.paa | Bin 0 -> 1522 bytes addons/cctv/icons/laptop.paa | Bin 0 -> 1522 bytes addons/cctv/images/laptop_flat.paa | Bin 0 -> 73937 bytes addons/cctv/laptop_flat_menu.hpp | 56 ++++ addons/cctv/laptop_flat_menu_functions.sqf | 170 ++++++++++ addons/cctv/macro.h | 142 +++++++++ client/init.sqf | 1 + client/inventory/drop.sqf | 4 +- client/inventory/takeable.sqf | 2 + client/items/cctv/init.sqf | 24 ++ client/items/init.sqf | 1 + description.ext | 4 + persistence/lib/normalize_config.sqf | 3 + persistence/lib/shFunctions.sqf | 5 + persistence/world/oFunctions.sqf | 19 ++ server/default_config.sqf | 1 + storeConfig.sqf | 5 +- stringtable.xml | 6 + 27 files changed, 1615 insertions(+), 3 deletions(-) create mode 100644 addons/cctv/cctv_functions.sqf create mode 100644 addons/cctv/cctv_menu.hpp create mode 100644 addons/cctv/cctv_menu_functions.sqf create mode 100644 addons/cctv/config.sqf create mode 100644 addons/cctv/constants.h create mode 100644 addons/cctv/defines.h create mode 100644 addons/cctv/dikcodes.h create mode 100644 addons/cctv/functions.sqf create mode 100644 addons/cctv/icons/camcorder.paa create mode 100644 addons/cctv/icons/laptop.paa create mode 100644 addons/cctv/images/laptop_flat.paa create mode 100644 addons/cctv/laptop_flat_menu.hpp create mode 100644 addons/cctv/laptop_flat_menu_functions.sqf create mode 100644 addons/cctv/macro.h create mode 100644 client/items/cctv/init.sqf diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index e8b8e4c39..fc8956098 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -215,5 +215,6 @@ R3F_LOG_CFG_objets_deplacables = "Land_Shoot_House_Wall_F", "Land_Stone_8m_F", "Land_ToiletBox_F", - "Land_BarrelWater_F" + "Land_BarrelWater_F", + "Land_HandyCam_F" ]; diff --git a/addons/cctv/cctv_functions.sqf b/addons/cctv/cctv_functions.sqf new file mode 100644 index 000000000..beb2e1f1a --- /dev/null +++ b/addons/cctv/cctv_functions.sqf @@ -0,0 +1,340 @@ +#include "constants.h" +#include "macro.h" +#include "dikcodes.h" + +if (not(undefined(cctv_functions_defined))) exitWith {}; +diag_log format["Loading camera functions ..."]; + + +cctv_camera_data_get = { + ARGVX3(0,_index,0); + ARGVX3(1,_cameras,[]); + if (_index < 0 || _index > (count(_cameras) -1)) exitWith {[]}; + + (_cameras select _index) +}; + + +cctv_camera_view_last = objNull; +cctv_camera_view_index = -1; +cctv_camera_view_next = { + //player groupChat format["cctv_camera_view_next %1",_this]; + ARGV2(0,_player); + ARGV2(1,_cameras); + + if (typeName _player != "OBJECT") exitWith {}; + + private["_camera_index"]; + _camera_index = cctv_camera_view_index + 1; + + + private["_source"]; + _source = [_camera_index,_cameras] call cctv_camera_data_get; + if (!isOBJECT(_source) || {isNull _source}) exitWith {}; + + private["_camera_name", "_camera_owner_type"]; + _camera_name = _source getVariable ["camera_name", nil]; + if (!isSTRING(_camera_name) || {_camera_name == ""}) exitWith {}; + + _camera_owner_type = _source getVariable ["camera_owner_type", nil]; + if (!isSTRING(_camera_owner_type) || {_camera_owner_type == ""}) exitWith {}; + + + if (not(isNull cctv_camera_view_last)) then { + cctv_camera_view_last cameraeffect ["terminate","back"]; + camDestroy cctv_camera_view_last; + }; + + private["_rendertarget"]; + _rendertarget = "cctv_render0"; + + //create the camera,and point it forward + private["_camera"]; + _camera = "camera" camCreate position cameraon; + _camera attachTo [_source,[0,-0.5,1]]; + _camera camPrepareTarget (_source modelToWorld [0,-5,1]); + _camera camPrepareFov 0.7; + _camera camPrepareFocus [-1,-1]; + _camera camCommitPrepared 0; + _camera cameraeffect ["internal","back",_rendertarget]; + + cctv_camera_view_last = _camera; + + //update the screen with the camera view + + private["_screen"]; + _screen = call laptop_flat_menu_screen_control; + if (not(sunOrMoon > 0)) then { + _rendertarget setPiPEffect [1]; + }; + _screen ctrlsettext format ["#(argb,512,512,1)r2t(%1,1.0)",_rendertarget]; + _screen ctrlsettextcolor [1,1,1,1]; + _screen ctrlcommit 0; + + //set the camera name on the screen + [format["%1: %2", (toUpper _camera_owner_type), _camera_name]] call laptop_flat_menu_update_text_tl; + + //update the next cell index + if (_camera_index >= (count(_cameras) -1)) then { + _camera_index = -1; + }; + cctv_camera_view_index = _camera_index; + //player groupChat format["cctv_camera_view_index = %1",cctv_camera_view_index]; +}; + + + +cctv_security_laptop_event_handler = { + //player groupChat format["cctv_security_laptop_event_handler %1",_this]; + ARGV2(0,_event); + ARGV2(1,_this); + ARGV2(0,_player); + ARGV2(1,_cameras); + + private["_event_type"]; + _event_type = _event select laptop_flat_event_type; + switch _event_type do { + case LAPTOP_EVENT_ON: { + [_player,_cameras] call cctv_camera_view_next; + }; + case LAPTOP_EVENT_KEY: { + private["_key"]; + _key = _event select laptop_flat_envent_data; + switch _key do { + case DIK_SPACE: { + [_player,_cameras] call cctv_camera_view_next; + }; + }; + }; + case LAPTOP_EVENT_BUTTON: { + private["_button"]; + _button = _event select laptop_flat_envent_data; + switch _button do { + case LAPTOP_EVENT_BUTTON_MOUSE_PAD: { + [_player,_cameras] call cctv_camera_view_next; + }; + }; + }; + }; +}; + + +cctv_cameras = OR(cctv_cameras,[]); + +cctv_get_group_uids = { + ARGVX4(0,_player,objNull,[]); + + private["_group_uids"]; + _group_uids = [getPlayerUID _player]; + {if (true) then { + private["_member"]; + _member = _x; + if (!isOBJECT(_member) || {isNull _member}) exitWith {}; + + private["_member_uid"]; + _member_uid = getPlayerUID _member; + if (!isSTRING(_member_uid) || {_member_uid == ""}) exitWith {}; + + _group_uids pushBack _member_uid; + };} forEach (units (group _player)); + + (_group_uids) +}; + +cctv_get_accessible_cameras = { + ARGVX3(0,_player,objNull); + if (!isARRAY(cctv_cameras) || {count(cctv_cameras) == 0}) then {[]}; + + private["_uid", "_side", "_group_uids"]; + _uid = getPlayerUID _player; + _side = str(side _player); + _group_uids = [_player] call cctv_get_group_uids; + + //make a list with the UIDs for the group members + + + //player groupChat format["_uid = %1, _side = %2, _group_uids = %3", _uid, _side, _group_uids]; + + //get the list of cameras that are accessible to this player + private["_cameras"]; + _cameras = []; + {if (true) then { + private["_camera"]; + _camera = _x; + if (!isOBJECT(_camera) || {isNull _camera}) exitWith {}; + + private["_distance"]; + _distance = _player distance _camera; + if (cctv_max_distance > 0 && {_distance > cctv_max_distance}) exitWith {}; + + private["_owner_type"]; + _owner_type = _camera getVariable ["camera_owner_type", nil]; + if (!isSTRING(_owner_type)) exitWith {}; + + private["_owner_value"]; + _owner_value = _camera getVariable ["camera_owner_value", nil]; + if (!isSTRING(_owner_value) || {_owner_value == ""}) exitWith {}; + + //player groupChat format["_owner_type = %1, _owner_value = %2", _owner_type, _owner_value]; + + if (!((_owner_type == "player" && {_owner_value == _uid}) ||{ + (_owner_type == "side" && {_owner_value == _side}) ||{ + (_owner_type == "group" && {_owner_value in _group_uids})}})) exitWith {}; + + _cameras pushBack _camera; + };} forEach cctv_cameras; + + (_cameras) +}; + +cctv_security_laptop_menu = { + ARGV2(0,_player); + + if (typeName _player != "OBJECT") exitWith {}; + + private["_cameras"]; + _cameras = [_player] call cctv_get_accessible_cameras; + //player groupChat format["_cameras = %1", _cameras]; + + if (count(_cameras) == 0) exitWith { + player groupChat format["There are no cameras currently accessible."]; + }; + + private["_handler"]; + _handler = [[_player, _cameras],"cctv_security_laptop_event_handler"]; + [_handler,_handler,_handler] call laptop_flat_menu_setup; + player groupChat format["Use space-bar on laptop to cycle between cameras."]; +}; + + +#define MUTEX_UNLOCK mutexScriptInProgress = false; doCancelAction = false + +cctv_get_cameras_by_type = { + ARGVX4(0,_player,objNull,[]); + ARGVX4(1,_type,"",[]); + + private["_uid", "_side", "_group_uids"]; + _uid = getPlayerUID _player; + _side = str(side _player); + _group_uids = [_player] call cctv_get_group_uids; + + cctv_cameras = OR(cctv_cameras,[]); + + private["_result"]; + _result = []; + {if (true) then { + private["_camera"]; + _camera = _x; + if (!isOBJECT(_camera) || {isNull _camera}) exitWith {}; + + private["_ctype", "_cvalue"]; + _ctype = _camera getVariable "camera_owner_type"; + _cvalue = _camera getVariable "camera_owner_value"; + if (!isSTRING(_ctype) || {_ctype == ""}) exitWith {}; + if (!isSTRING(_cvalue) || {_cvalue == ""}) exitWith {}; + if (_type != _ctype) exitWith {}; + + if ((_type == "group" && {_cvalue in _group_uids}) || { + (_type == "side" && {_cvalue == _side}) || { + (_type == "player" && {_cvalue == _uid})}}) exitWith { + _result pushBack _camera; + }; + };} forEach cctv_cameras; + + (_result) +}; + +cctv_enforce_limits = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_owner_type,""); + + cctv_cameras = OR(cctv_cameras,[]); + + private["_old_cameras", "_count"]; + _old_cameras = [_player,_owner_type] call cctv_get_cameras_by_type; + _count = count(_old_cameras); + + if(!((_owner_type == "player" && {_count >= cctv_max_deployed_player_cameras}) || { + (_owner_type == "group" && {_count >= cctv_max_deployed_group_cameras}) || { + (_owner_type == "side" && {_count >= cctv_max_deployed_side_cameras})}})) exitWith {}; + + + if (_owner_type == "player") then { + player groupChat format["You already have %1 personal CCTV camera(s) deployed.", _count]; + } + else { + player groupChat format["There are already %1 %2 CCTV camera(s) deployed.", _count, toUpper _owner_type]; + }; + + private["_camera_to_delete"]; + _camera_to_delete = _old_cameras select 0; + player groupChat format["Camera ""%1"" was deleted.", (_camera_to_delete getVariable "camera_name")]; + deleteVehicle _camera_to_delete; + cctv_cameras = cctv_cameras - [objNull]; +}; + + +cctv_camera_use = { + //this is needed in order for the mf_inventory_drop call to work (since it's nested inside USE) + MUTEX_UNLOCK ; + + private["_item_type"]; + _item_type = _this; + + private["_player", "_uid"]; + _player = player; + _uid = getPlayerUID _player; + + private["_closesttown", "_town_name", "_town_pos"]; + _closesttown = (nearestLocations [_player,["NameCityCapital","NameCity","NameVillage"],10000]) select 0; + _town_name = text _closesttown; + _town_pos = position _closesttown; + + + private["_cctv_id", "_cctv_name", "_rand"]; + _rand = ceil(random 10000); + _camera_name = format["%1 (%2)", _town_name, _rand]; + + cctv_menu_result = nil; + [_player, _camera_name] call cctv_menu_dialog; + waitUntil {!dialog || {!isNil "cctv_menu_result"}}; + + if (isNil "cctv_menu_result") exitWith {false}; + + //player groupChat format["cctv_menu_result = %1", cctv_menu_result]; + + private["_access_control"]; + _camera_name = cctv_menu_result select cctv_menu_result_camera_name; + _access_control = cctv_menu_result select cctv_menu_result_ac; + + private["_owner_type"]; + _owner_type = _access_control select cctv_menu_result_ac_type; + _owner_value = _access_control select cctv_menu_result_ac_value; + + private["_camera"]; + _camera = _item_type call mf_inventory_drop; + + if (isNil "_camera" || {typeName _camera != typeName objNull || {isNull _camera}}) exitWith {false}; + + _camera setVariable ["a3w_cctv_camera", true, true]; + _camera setVariable ["camera_name", _camera_name, true]; + _camera setVariable ["camera_owner_type", _owner_type, true]; + _camera setVariable ["camera_owner_value", _owner_value, true]; + + [_player, _owner_type] call cctv_enforce_limits; + cctv_cameras pushBack _camera; + publicVariable "cctv_cameras"; + + false +}; + +cctv_base_use = { + [player] call cctv_security_laptop_menu; + false +}; + + + +cctv_functions_defined = true; + +diag_log format["Loading camera functions complete"]; \ No newline at end of file diff --git a/addons/cctv/cctv_menu.hpp b/addons/cctv/cctv_menu.hpp new file mode 100644 index 000000000..c6dbacf68 --- /dev/null +++ b/addons/cctv/cctv_menu.hpp @@ -0,0 +1,92 @@ +#include "constants.h" + +class cctv_menu { + idd = bank_dialog_idd; + movingEnable = true; + controlsBackground[] = { + cctv_menu_background + }; + + name = "CCTV_MENU"; + onUnload = ""; + onLoad="uiNamespace setVariable ['CCTV_MENU',_this select 0]"; + + objects[] = {}; + controls[] = { + cctv_menu_header, + cctv_menu_camera_name_label, + cctv_menu_camera_name_field, + cctv_menu_access_control_label, + cctv_menu_access_control_field, + cctv_menu_button_ok, + cctv_menu_button_cancel + }; + + class cctv_menu_header : gui_RscMenuTitle { + idc = cctv_menu_header_idc; + moving = 1; + x = 0.30-10; y = 0.10-10; + w = 0.39; h = 0.63; + text = "Bank Menu"; + }; + + class cctv_menu_background: gui_Rscbackground { + idc = cctv_menu_background_idc; + moving = 1; + x = 0.30-10; y = 0.10-10; + w = 0.39; h = 0.63; + }; + + //Camera name + class cctv_menu_camera_name_label : gui_RscText { + idc = cctv_menu_camera_name_label_idc; + x = 0.32-10; y = 0.47-10; + w = 0.13; h = 0.04; + text = ""; + }; + + class cctv_menu_camera_name_field: gui_RscEdit { + idc = cctv_menu_camera_name_field_idc; + x = 0.49-10; y = 0.47-10; + w = 0.18; h = 0.04; + colorBackground[] = FIELD_BACKGROUND; + text = "0"; + }; + + + //Access Type + class cctv_menu_access_control_label : gui_RscText { + idc = cctv_menu_access_control_label_idc; + x = 0.32-10; y = 0.47-10; + w = 0.13; h = 0.04; + text = ""; + }; + + class cctv_menu_access_control_field : gui_RscCombo { + idc = cctv_menu_access_control_field_idc; + x = 0.32-10; y = 0.14-10; + w = 0.35; h = 0.30; + onLBSelChanged = ""; + }; + + //Buttons + class cctv_menu_button_ok : gui_RscMenuButton { + idc = cctv_menu_button_ok_idc; + x = 0.32-10; y = 0.62-10; + w = 0.35; h = 0.04; + colorBackgroundDisabled[] = DISABLED_BUTTON_BACKGROUND; + colorDisabled[] = DISABLED_BUTTON_TEXT; + text = ""; + }; + + + class cctv_menu_button_cancel : gui_RscMenuButton { + idc = cctv_menu_button_cancel_idc; + x = 0.75-10; y = 0.67-10; + w = 0.35; h = 0.04; + colorBackgroundDisabled[] = DISABLED_BUTTON_BACKGROUND; + colorDisabled[] = DISABLED_BUTTON_TEXT; + text = "Close"; + action = "closeDialog 0;"; + }; +}; \ No newline at end of file diff --git a/addons/cctv/cctv_menu_functions.sqf b/addons/cctv/cctv_menu_functions.sqf new file mode 100644 index 000000000..c20bdba95 --- /dev/null +++ b/addons/cctv/cctv_menu_functions.sqf @@ -0,0 +1,324 @@ +#include "constants.h" +#include "macro.h" +#include "defines.h" + +if (not(undefined(cctv_menu_functions_defined))) exitWith {}; + +diag_log format["Loading camera menu functions ..."]; + +cctv_menu_result_camera_name = 0; +cctv_menu_result_ac = 1; +cctv_menu_result_ac_type = 0; +cctv_menu_result_ac_value = 1; + +strlen = { + private["_text"]; + _text = _this select 0; + if (undefined(_text)) exitWith {0}; + if (typeName _text != "STRING") exitWith {null}; + (count (toArray _text)) +}; + +substr = { + private["_string", "_start", "_length"]; + _string = _this select 0; + _start = _this select 1; + _length = _this select 2; + + if (undefined(_string)) exitWith {""}; + if (undefined(_start)) exitWith {""}; + + if (typeName _string != "STRING") exitWith {""}; + if (typeName _start != "SCALAR") exitWith {""}; + + + private["_string_data", "_string_out_data"]; + _string_data = toArray _string; + _string_out_data = []; + + if (undefined(_length)) then { + _length = count(_string_data) - _start; + }; + + private["_i", "_count"]; + _i = _start; + _count = 0; + while {(_i < (count _string_data)) && (_count < _length)} do { + _string_out_data set [_count, (_string_data select _i)]; + _count = _count + 1; + _i = _i + 1; + }; + + (toString _string_out_data) +}; + + +cctv_menu_dialog = { _this spawn { + disableSerialization; + + ARGVX3(0,_player,objNull); + ARGVX3(1,_camera_name,""); + + if (not(createDialog "cctv_menu")) exitWith { + player groupChat format["ERROR: Could not create CCTV menu dialog"]; + }; + + private["_list"]; + _list = [_camera_name] call cctv_menu_setup; + + private["_my_index"]; + _my_index = 0; + + {if(true)then { + private["_data", "_title", "_value"]; + _data = _x; + _title = _data select 0; + _value = _data select 1; + + private["_index"]; + _index = _list lbAdd _title; + + lbSetData [(ctrlIDC _list),_index,_value]; + lbSetValue [(ctrlIDC _list),_index,_value]; + };} forEach + [ + [format["Player (%1)", (name _player)], str(["player", getPlayerUID _player])], + [format["Group (%1)", str(group _player)], str(["group", getPlayerUID _player])], + [format["Team (%1)", str(side _player)], str(["side", str(side _player)])] + ]; + + _list lbSetCurSel 0; + + //Ok button + buttonSetAction [ + cctv_menu_button_ok_idc, + ( + ' cctv_menu_result = nil; ' + + ' private["_access_control", "_name"];' + + ' _name = ctrlText cctv_menu_camera_name_field_idc;' + + ' _access_control = call compile (lbData [cctv_menu_access_control_field_idc,lbCurSel cctv_menu_access_control_field_idc]);' + + ' if ([_name] call cctv_camera_name_valid) then {' + + ' cctv_menu_result = [_name,_access_control];' + + ' closedialog 0;' + + ' };' + )]; + +};}; + +cctv_camera_name_valid = { + ARGV3(0,_name,""); + + + if (isNil "_name") exitWith { + player groupChat format["The specified camera name is not valid", _min_length]; + false + }; + + def(_len); + _len = [_name] call strlen; + + def(_min_length); + _min_length = 5; + if (_len < _min_length) exitWith { + player groupChat format["The camera name must be at least %1 characters(s) long", _min_length]; + false + }; + + def(_max_length); + _max_length = 30; + if (_len > 30) exitWith { + player groupChat format["The camera name length %1 exceeds the maximum of %2 characters(s)", _len, _max_length]; + false + }; + + private["_other_camera"]; + _other_camera = [_name] call cctv_get_camera_by_name; + + if (!(isNil "_other_camera")) exitWith { + player groupChat format["The camera name %1, is already in use", _name]; + false + }; + + true +}; + +cctv_get_camera_by_name = { + ARGVX3(0,_name, ""); + + if (isNil "cctv_cameras") exitWith {}; + + private["_result"]; + + {if (true) then { + private["_camera"]; + _camera = _x; + if (!isOBJECT(_camera) || {isNull _camera}) exitWith {}; + + private["_cname"]; + _cname = _camera getVariable "camera_name"; + if (!isSTRING(_cname) || {_cname == ""}) exitWith {}; + + if (_cname == _name) exitWith { + _result = _camera; + }; + }; + + if (!isNil "_result") exitWith {}; + } forEach cctv_cameras; + + (OR(_result,nil)) + +}; + +cctv_menu_combo_focus = { + ARGVX3(0,_control,controlNull); + _control ctrlSetBackgroundColor [0.1,0.1,0.1,1]; +}; + +cctv_menu_combo_blur = { + ARGVX3(0,_control,controlNull); + _control ctrlSetBackgroundColor [1,1,1,0.08]; +}; + +cctv_menu_setup = { + disableSerialization; + ARGVX3(0,_camera_name,""); + + private["_display"]; + _display = uiNamespace getVariable "CCTV_MENU"; + + _cctv_menu_header = _display displayCtrl cctv_menu_header_idc; + _cctv_menu_background = _display displayCtrl cctv_menu_background_idc; + _cctv_menu_camera_name_label = _display displayCtrl cctv_menu_camera_name_label_idc; + _cctv_menu_camera_name_field = _display displayCtrl cctv_menu_camera_name_field_idc; + _cctv_menu_access_control_label = _display displayCtrl cctv_menu_access_control_label_idc; + _cctv_menu_access_control_field = _display displayCtrl cctv_menu_access_control_field_idc; + _cctv_menu_button_ok = _display displayCtrl cctv_menu_button_ok_idc; + _cctv_menu_button_cancel = _display displayCtrl cctv_menu_button_cancel_idc; + + + _cctv_menu_access_control_field ctrlAddEventHandler ["SetFocus","(_this) call cctv_menu_combo_focus"]; + _cctv_menu_access_control_field ctrlAddEventHandler ["KillFocus","(_this) call cctv_menu_combo_blur"]; + + private["_x","_y","_ysep","_sep","_cctv_title","_w","_h"]; + _x = 0.14; + _y = 0.14; + _w = 0.40; + _h = 0.30; + _ysep = 0.006; + _sep = 0.01; + _cctv_title = "CAMERA MENU"; + + private["_button_font_height","_font_family"]; + _button_font_height = MENU_TITLE_FONT_HEIGHT; + _font_family = "PuristaMedium"; + + //cctv header + private["_chx","_chy","_chw","_bhh"]; + _chx = _x; + _chy = _y; + _chw = _w; + _chh = 0.045; + + _cctv_menu_header ctrlSetPosition [_chx,_chy,_chw,_chh]; + _cctv_menu_header ctrlSetFontHeight _button_font_height; + _cctv_menu_header ctrlSetText _cctv_title; + _cctv_menu_header ctrlSetFont _font_family; + _cctv_menu_header ctrlCommit 0; + + //cctv close button + private["_ccx","_ccy","_ccw","_cch"]; + _ccw = 0.14; + _cch = _chh; + _ccx = _chx + _chw - _ccw; + _ccy = _chy + _h - _cch; + + _cctv_menu_button_cancel ctrlSetText "Cancel"; + _cctv_menu_button_cancel ctrlSetPosition [_ccx,_ccy,_ccw,_cch]; + buttonSetAction [(ctrlIDC _cctv_menu_button_cancel),"closeDialog 0"]; + _cctv_menu_button_cancel ctrlCommit 0; + + //cctv ok button + private["_cox","_coy" ,"_cow","_coh"]; + _cow = 0.11 ; + _coh = _cch; + _cox = _ccx - _cow - _ysep *2; + _coy = _ccy; + + + _cctv_menu_button_ok ctrlSetText "Ok"; + _cctv_menu_button_ok ctrlSetPosition [_cox,_coy,_cow,_coh]; + _cctv_menu_button_ok ctrlCommit 0; + + //cctv background + private["_cbx","_cby","_cbw","_cbh"]; + _cbx = _chx; + _cby = _chy + _chh + _ysep; + _cbw = _w; + _cbh = (_ccy ) - (_chy ) - _cch - _ysep - _ysep; + + _cctv_menu_background ctrlSetPosition [_cbx,_cby,_cbw,_cbh]; + _cctv_menu_background ctrlSetBackgroundColor [0,0,0,0.65]; + _cctv_menu_background ctrlCommit 0; + + + //cctv camera name label + private["_cnlx","_cnly","_cnlw","_cnlh"]; + _cnlx = _cbx + _sep * 2; + _cnly = _cby + _sep * 2; + _cnlw = (_cbw - _sep *6) / 2 - (_sep * 3); + _cnlh = 0.04; + + _cctv_menu_camera_name_label ctrlSetText "Camera name: "; + _cctv_menu_camera_name_label ctrlSetPosition [_cnlx,_cnly,_cnlw,_cnlh]; + _cctv_menu_camera_name_label ctrlSetFontHeight _button_font_height - 0.003; + _cctv_menu_camera_name_label ctrlCommit 0; + + + //cctv camera name field + private["_cnfx","_cnfy","_cnfw","_cnfh"]; + _cnfx = _cnlx + _cnlw + _sep * 2 ; + _cnfy = _cnly; + _cnfw = _cnlw + (_sep * 5); + _cnfh = _cnlh; + + _cctv_menu_camera_name_field ctrlSetText _camera_name; + _cctv_menu_camera_name_field ctrlSetFontHeight _button_font_height - 0.003;; + _cctv_menu_camera_name_field ctrlSetFont _font_family; + _cctv_menu_camera_name_field ctrlSetPosition [_cnfx,_cnfy,_cnfw,_cnfh]; + _cctv_menu_camera_name_field ctrlSetBackgroundColor [1,1,1,0.08]; + _cctv_menu_camera_name_field ctrlCommit 0; + + + //cctv access control label + private["_calx","_caly","_calw","_calh"]; + _calx = _cnlx; + _caly = _cnly + _cnlh + _ysep * 2; + _calw = _cnlw; + _calh = _cnlh; + + _cctv_menu_access_control_label ctrlSetText "Accessible by: "; + _cctv_menu_access_control_label ctrlSetPosition [_calx,_caly,_calw,_calh]; + _cctv_menu_access_control_label ctrlSetFontHeight _button_font_height - 0.003; + _cctv_menu_access_control_label ctrlCommit 0; + + //cctv access control field + private["_cafx","_cafy","_cafw","_cafh"]; + _cafx = _calx + _calw + _sep * 2 ; + _cafy = _caly; + _cafw = _calw + (_sep * 5); + _cafh = _calh; + + _cctv_menu_access_control_field ctrlSetFontHeight _button_font_height - 0.003;; + _cctv_menu_access_control_field ctrlSetFont _font_family; + _cctv_menu_access_control_field ctrlSetPosition [_cafx,_cafy,_cafw,_cafh]; + _cctv_menu_access_control_field ctrlSetBackgroundColor [1,1,1,0.08]; + _cctv_menu_access_control_field ctrlCommit 0; + + + _cctv_menu_access_control_field +}; + +cctv_menu_functions_defined = true; + +diag_log format["Loading camera menu functions complete"]; \ No newline at end of file diff --git a/addons/cctv/config.sqf b/addons/cctv/config.sqf new file mode 100644 index 000000000..4f3782379 --- /dev/null +++ b/addons/cctv/config.sqf @@ -0,0 +1,6 @@ +cctv_max_distance = -1; // -1 unlimited +cctv_max_inventory_cameras = 2; //maximum number of cameras that player can carry in his inventory +cctv_max_inventory_base_stations = 1; //maximum number of base stations that player can carry in his inventory +cctv_max_deployed_player_cameras = 3; //maximum number of personal cameras that a player can have deployed +cctv_max_deployed_group_cameras = 2; //maximum number of group cameras that could be deployed in a group +cctv_max_deployed_side_cameras = 10; //maxmumum number of team cameras that could be deployed in a team (WEST, EAST, INDEPENDENT) diff --git a/addons/cctv/constants.h b/addons/cctv/constants.h new file mode 100644 index 000000000..e10ec10c6 --- /dev/null +++ b/addons/cctv/constants.h @@ -0,0 +1,61 @@ +#define FIELD_BACKGROUND {1,1,1,0.1} +#define DISABLED_BUTTON_BACKGROUND {1,0,0,0.4} +#define DISABLED_BUTTON_TEXT {1,1,1,1} + + + + + +#define GUI_BCG_RGB {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"} + + +#define BOX_BACKGROUND {1,1,1,0.1} +#define DISABLED_BUTTON_BACKGROUND {1,0,0,0.4} +#define DISABLED_BUTTON_TEXT {1,1,1,1} + + + + +#define MENU_TITLE_FONT_HEIGHT (((((safezoneW / safezoneH) min 1.2) / 1.2) / 32) * 1) + + + + +#define cctv_menu_idd 3000 +#define cctv_menu_header_idc 3001 +#define cctv_menu_background_idc 3002 +#define cctv_menu_pay_button_idc 3004 +#define cctv_menu_close_button_idc 3005 +#define cctv_menu_bail_label_idc 3006 +#define cctv_menu_bail_field_idc 3007 + + + + +#define laptop_flat_menu_dialog_idd 10000 +#define laptop_flat_menu_background_idc 10001 +#define laptop_flat_menu_screen_idc 10002 +#define laptop_flat_menu_button_mouse_idc 10003 +#define laptop_flat_menu_button_space_idc 10004 +#define laptop_flat_menu_screen_text_tl_idc 10005 + +#define LAPTOP_EVENT_ON 0 +#define LAPTOP_EVENT_OFF 1 +#define LAPTOP_EVENT_KEY 2 +#define LAPTOP_EVENT_BUTTON 3 +#define LAPTOP_EVENT_BUTTON_MOUSE_PAD 0 +#define LAPTOP_EVENT_BUTTON_MOUSE_LEFT 1 +#define LAPTOP_EVENT_BUTTON_MOUSE_RIGHT 2 + + + +#define cctv_menu_dialog_idd 300 +#define cctv_menu_header_idc 301 +#define cctv_menu_background_idc 302 +#define cctv_menu_camera_name_label_idc 303 +#define cctv_menu_camera_name_field_idc 304 +#define cctv_menu_access_control_label_idc 309 +#define cctv_menu_access_control_field_idc 310 +#define cctv_menu_button_ok_idc 311 +#define cctv_menu_button_cancel_idc 313 + diff --git a/addons/cctv/defines.h b/addons/cctv/defines.h new file mode 100644 index 000000000..4f85ce549 --- /dev/null +++ b/addons/cctv/defines.h @@ -0,0 +1 @@ +#define strM(x) ([x, ","] call format_integer) diff --git a/addons/cctv/dikcodes.h b/addons/cctv/dikcodes.h new file mode 100644 index 000000000..18d691fc0 --- /dev/null +++ b/addons/cctv/dikcodes.h @@ -0,0 +1,341 @@ +/* F1 ... F15 */ +#define DIK_F1 0x3B +#define DIK_F2 0x3C +#define DIK_F3 0x3D +#define DIK_F4 0x3E +#define DIK_F5 0x3F +#define DIK_F6 0x40 +#define DIK_F7 0x41 +#define DIK_F8 0x42 +#define DIK_F9 0x43 +#define DIK_F10 0x44 +#define DIK_F11 0x57 +#define DIK_F12 0x58 +#define DIK_F13 0x64 +#define DIK_F14 0x65 +#define DIK_F15 0x66 + +/* 0..9 */ +#define DIK_0 0x0B +#define DIK_1 0x02 +#define DIK_2 0x03 +#define DIK_3 0x04 +#define DIK_4 0x05 +#define DIK_5 0x06 +#define DIK_6 0x07 +#define DIK_7 0x08 +#define DIK_8 0x09 +#define DIK_9 0x0A +#define DIK_NUMPAD0 0x52 +#define DIK_NUMPAD1 0x4F +#define DIK_NUMPAD2 0x50 +#define DIK_NUMPAD3 0x51 +#define DIK_NUMPAD4 0x4B +#define DIK_NUMPAD5 0x4C +#define DIK_NUMPAD6 0x4D +#define DIK_NUMPAD7 0x47 +#define DIK_NUMPAD8 0x48 +#define DIK_NUMPAD9 0x49 + +/* alpha */ +#define DIK_A 0x1E +#define DIK_B 0x30 +#define DIK_C 0x2E +#define DIK_D 0x20 +#define DIK_E 0x12 +#define DIK_F 0x21 +#define DIK_G 0x22 +#define DIK_H 0x23 +#define DIK_I 0x17 +#define DIK_J 0x24 +#define DIK_K 0x25 +#define DIK_L 0x26 +#define DIK_M 0x32 +#define DIK_N 0x31 +#define DIK_O 0x18 +#define DIK_P 0x19 +#define DIK_Q 0x10 +#define DIK_R 0x13 +#define DIK_S 0x1F +#define DIK_T 0x14 +#define DIK_U 0x16 +#define DIK_V 0x2F +#define DIK_W 0x11 +#define DIK_X 0x2D +#define DIK_Y 0x15 +#define DIK_Z 0x2C + +/* Controls */ +#define DIK_ESCAPE 0x01 +#define DIK_TAB 0x0F +#define DIK_LSHIFT 0x2A +#define DIK_RSHIFT 0x36 +#define DIK_LCONTROL 0x1D +#define DIK_RCONTROL 0x9D +#define DIK_BACK 0x0E /* backspace */ +#define DIK_BACKSPACE DIK_BACK +#define DIK_RETURN 0x1C /* Enter on main keyboard */ +#define DIK_NUMPADENTER 0x9C /* Enter on numeric keypad */ +#define DIK_LMENU 0x38 /* left Alt */ +#define DIK_LALT DIK_LMENU +#define DIK_SPACE 0x39 +#define DIK_CAPITAL 0x3A /* capslock */ +#define DIK_CAPSLOCK DIK_CAPITAL +#define DIK_NUMLOCK 0x45 +#define DIK_SCROLL 0x46 /* Scroll Lock */ +#define DIK_RMENU 0xB8 /* right Alt */ +#define DIK_RALT DIK_RMENU /* right Alt */ +#define Graphics +#define DIK_AT 0x91 /* (NEC PC98) */ +#define DIK_COLON 0x92 /* (NEC PC98) */ +#define DIK_UNDERLINE 0x93 /* (NEC PC98) */ +#define DIK_MINUS 0x0C /* - on main keyboard */ +#define DIK_EQUALS 0x0D +#define DIK_LBRACKET 0x1A +#define DIK_RBRACKET 0x1B +#define DIK_SEMICOLON 0x27 +#define DIK_APOSTROPHE 0x28 +#define DIK_GRAVE 0x29 /* accent grave */ +#define DIK_BACKSLASH 0x2B +#define DIK_COMMA 0x33 +#define DIK_PERIOD 0x34 /* . on main keyboard */ +#define DIK_SLASH 0x35 /* / on main keyboard */ +#define DIK_MULTIPLY 0x37 /* * on numeric keypad */ +#define DIK_NUMPADSTAR DIK_MULTIPLY +#define DIK_SUBTRACT 0x4A /* - on numeric keypad */ +#define DIK_ADD 0x4E /* + on numeric keypad */ +#define DIK_DECIMAL 0x53 /* . on numeric keypad */ +#define DIK_NUMPADEQUALS 0x8D /* = on numeric keypad (NEC PC98) */ +#define DIK_NUMPADMINUS DIK_SUBTRACT /* - on numeric keypad */ +#define DIK_NUMPADPLUS DIK_ADD /* + on numeric keypad */ +#define DIK_NUMPADPERIOD DIK_DECIMAL /* . on numeric keypad */ +#define DIK_NUMPADSLASH DIK_DIVIDE /* / on numeric keypad */ + +/* KataKana */ +#define DIK_KANA 0x70 /* (Japanese keyboard) */ +#define DIK_ABNT_C1 0x73 /* / ? on Portugese (Brazilian) keyboards */ +#define DIK_CONVERT 0x79 /* (Japanese keyboard) */ +#define DIK_NOCONVERT 0x7B /* (Japanese keyboard) */ +#define DIK_YEN 0x7D /* (Japanese keyboard) */ +#define DIK_OEM_102 0x56 /* < > | on UK/Germany keyboards */ +#define DIK_ABNT_C2 0x7E /* Numpad . on Portugese (Brazilian) keyboards */ +#define DIK_PREVTRACK 0x90 /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */ +#define DIK_KANJI 0x94 /* (Japanese keyboard) */ +#define DIK_STOP 0x95 /* (NEC PC98) */ +#define DIK_AX 0x96 /* (Japan AX) */ +#define DIK_UNLABELED 0x97 /* (J3100) */ +#define DIK_NUMPADCOMMA 0xB3 /* ,on numeric keypad (NEC PC98) */ + +/* Alternate names for keys originally not used on US keyboards. */ +#define DIK_CIRCUMFLEX DIK_PREVTRACK /* Japanese keyboard */ +#define Apps +#define DIK_NEXTTRACK 0x99 /* Next Track */ +#define DIK_MUTE 0xA0 /* Mute */ +#define DIK_CALCULATOR 0xA1 /* Calculator */ +#define DIK_PLAYPAUSE 0xA2 /* Play / Pause */ +#define DIK_MEDIASTOP 0xA4 /* Media Stop */ +#define DIK_VOLUMEDOWN 0xAE /* Volume - */ +#define DIK_VOLUMEUP 0xB0 /* Volume + */ +#define DIK_WEBHOME 0xB2 /* Web home */ +#define DIK_SYSRQ 0xB7 +#define DIK_PAUSE 0xC5 /* Pause */ +#define DIK_APPS 0xDD /* AppMenu key */ +#define DIK_POWER 0xDE /* System Power */ +#define DIK_SLEEP 0xDF /* System Sleep */ +#define DIK_WAKE 0xE3 /* System Wake */ +#define DIK_WEBSEARCH 0xE5 /* Web Search */ +#define DIK_WEBFAVORITES 0xE6 /* Web Favorites */ +#define DIK_WEBREFRESH 0xE7 /* Web Refresh */ +#define DIK_WEBSTOP 0xE8 /* Web Stop */ +#define DIK_WEBFORWARD 0xE9 /* Web Forward */ +#define DIK_WEBBACK 0xEA /* Web Back */ +#define DIK_MYCOMPUTER 0xEB /* My Computer */ +#define DIK_MAIL 0xEC /* Mail */ +#define DIK_MEDIASELECT 0xED /* Media Select */ + +/* ArrowKeypad */ +#define DIK_HOME 0xC7 /* Home on arrow keypad */ +#define DIK_UP 0xC8 /* UpArrow on arrow keypad */ +#define DIK_PRIOR 0xC9 /* PgUp on arrow keypad */ +#define DIK_LEFT 0xCB /* LeftArrow on arrow keypad */ +#define DIK_RIGHT 0xCD /* RightArrow on arrow keypad */ +#define DIK_END 0xCF /* End on arrow keypad */ +#define DIK_DOWN 0xD0 /* DownArrow on arrow keypad */ +#define DIK_NEXT 0xD1 /* PgDn on arrow keypad */ +#define DIK_INSERT 0xD2 /* Insert on arrow keypad */ +#define DIK_DELETE 0xD3 /* Delete on arrow keypad */ +#define DIK_UPARROW DIK_UP /* UpArrow on arrow keypad */ +#define DIK_PGUP DIK_PRIOR /* PgUp on arrow keypad */ +#define DIK_LEFTARROW DIK_LEFT /* LeftArrow on arrow keypad */ +#define DIK_RIGHTARROW DIK_RIGHT /* RightArrow on arrow keypad */ +#define DIK_DOWNARROW DIK_DOWN /* DownArrow on arrow keypad */ +#define DIK_PGDN DIK_NEXT /* PgDn on arrow keypad */ +#define other +#define DIK_LWIN 0xDB /* Left Windows key */ +#define DIK_RWIN 0xDC /* Right Windows key */ + +/* Numeric sort */ +#define DIK_ESCAPE 0x01 +#define DIK_1 0x02 +#define DIK_2 0x03 +#define DIK_3 0x04 +#define DIK_4 0x05 +#define DIK_5 0x06 +#define DIK_6 0x07 +#define DIK_7 0x08 +#define DIK_8 0x09 +#define DIK_9 0x0A +#define DIK_0 0x0B +#define DIK_MINUS 0x0C /* - on main keyboard */ +#define DIK_EQUALS 0x0D +#define DIK_BACK 0x0E /* backspace */ +#define DIK_TAB 0x0F +#define DIK_Q 0x10 +#define DIK_W 0x11 +#define DIK_E 0x12 +#define DIK_R 0x13 +#define DIK_T 0x14 +#define DIK_Y 0x15 +#define DIK_U 0x16 +#define DIK_I 0x17 +#define DIK_O 0x18 +#define DIK_P 0x19 +#define DIK_LBRACKET 0x1A +#define DIK_RBRACKET 0x1B +#define DIK_RETURN 0x1C /* Enter on main keyboard */ +#define DIK_LCONTROL 0x1D +#define DIK_A 0x1E +#define DIK_S 0x1F +#define DIK_D 0x20 +#define DIK_F 0x21 +#define DIK_G 0x22 +#define DIK_H 0x23 +#define DIK_J 0x24 +#define DIK_K 0x25 +#define DIK_L 0x26 +#define DIK_SEMICOLON 0x27 +#define DIK_APOSTROPHE 0x28 +#define DIK_GRAVE 0x29 /* accent grave */ +#define DIK_LSHIFT 0x2A +#define DIK_BACKSLASH 0x2B +#define DIK_Z 0x2C +#define DIK_X 0x2D +#define DIK_C 0x2E +#define DIK_V 0x2F +#define DIK_B 0x30 +#define DIK_N 0x31 +#define DIK_M 0x32 +#define DIK_COMMA 0x33 +#define DIK_PERIOD 0x34 /* . on main keyboard */ +#define DIK_SLASH 0x35 /* / on main keyboard */ +#define DIK_RSHIFT 0x36 +#define DIK_MULTIPLY 0x37 /* * on numeric keypad */ +#define DIK_LMENU 0x38 /* left Alt */ +#define DIK_SPACE 0x39 +#define DIK_CAPITAL 0x3A +#define DIK_F1 0x3B +#define DIK_F2 0x3C +#define DIK_F3 0x3D +#define DIK_F4 0x3E +#define DIK_F5 0x3F +#define DIK_F6 0x40 +#define DIK_F7 0x41 +#define DIK_F8 0x42 +#define DIK_F9 0x43 +#define DIK_F10 0x44 +#define DIK_NUMLOCK 0x45 +#define DIK_SCROLL 0x46 /* Scroll Lock */ +#define DIK_NUMPAD7 0x47 +#define DIK_NUMPAD8 0x48 +#define DIK_NUMPAD9 0x49 +#define DIK_SUBTRACT 0x4A /* - on numeric keypad */ +#define DIK_NUMPAD4 0x4B +#define DIK_NUMPAD5 0x4C +#define DIK_NUMPAD6 0x4D +#define DIK_ADD 0x4E /* + on numeric keypad */ +#define DIK_NUMPAD1 0x4F +#define DIK_NUMPAD2 0x50 +#define DIK_NUMPAD3 0x51 +#define DIK_NUMPAD0 0x52 +#define DIK_DECIMAL 0x53 /* . on numeric keypad */ +#define DIK_OEM_102 0x56 /* < > | on UK/Germany keyboards */ +#define DIK_F11 0x57 +#define DIK_F12 0x58 +#define DIK_F13 0x64 /* (NEC PC98) */ +#define DIK_F14 0x65 /* (NEC PC98) */ +#define DIK_F15 0x66 /* (NEC PC98) */ +#define DIK_KANA 0x70 /* (Japanese keyboard) */ +#define DIK_ABNT_C1 0x73 /* / ? on Portugese (Brazilian) keyboards */ +#define DIK_CONVERT 0x79 /* (Japanese keyboard) */ +#define DIK_NOCONVERT 0x7B /* (Japanese keyboard) */ +#define DIK_YEN 0x7D /* (Japanese keyboard) */ +#define DIK_ABNT_C2 0x7E /* Numpad . on Portugese (Brazilian) keyboards */ +#define DIK_NUMPADEQUALS 0x8D /* = on numeric keypad (NEC PC98) */ +#define DIK_PREVTRACK 0x90 /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */ +#define DIK_AT 0x91 /* (NEC PC98) */ +#define DIK_COLON 0x92 /* (NEC PC98) */ +#define DIK_UNDERLINE 0x93 /* (NEC PC98) */ +#define DIK_KANJI 0x94 /* (Japanese keyboard) */ +#define DIK_STOP 0x95 /* (NEC PC98) */ +#define DIK_AX 0x96 /* (Japan AX) */ +#define DIK_UNLABELED 0x97 /* (J3100) */ +#define DIK_NEXTTRACK 0x99 /* Next Track */ +#define DIK_NUMPADENTER 0x9C /* Enter on numeric keypad */ +#define DIK_RCONTROL 0x9D +#define DIK_MUTE 0xA0 /* Mute */ +#define DIK_CALCULATOR 0xA1 /* Calculator */ +#define DIK_PLAYPAUSE 0xA2 /* Play / Pause */ +#define DIK_MEDIASTOP 0xA4 /* Media Stop */ +#define DIK_VOLUMEDOWN 0xAE /* Volume - */ +#define DIK_VOLUMEUP 0xB0 /* Volume + */ +#define DIK_WEBHOME 0xB2 /* Web home */ +#define DIK_NUMPADCOMMA 0xB3 /* ,on numeric keypad (NEC PC98) */ +#define DIK_DIVIDE 0xB5 /* / on numeric keypad */ +#define DIK_SYSRQ 0xB7 +#define DIK_RMENU 0xB8 /* right Alt */ +#define DIK_PAUSE 0xC5 /* Pause */ +#define DIK_HOME 0xC7 /* Home on arrow keypad */ +#define DIK_UP 0xC8 /* UpArrow on arrow keypad */ +#define DIK_PRIOR 0xC9 /* PgUp on arrow keypad */ +#define DIK_LEFT 0xCB /* LeftArrow on arrow keypad */ +#define DIK_RIGHT 0xCD /* RightArrow on arrow keypad */ +#define DIK_END 0xCF /* End on arrow keypad */ +#define DIK_DOWN 0xD0 /* DownArrow on arrow keypad */ +#define DIK_NEXT 0xD1 /* PgDn on arrow keypad */ +#define DIK_INSERT 0xD2 /* Insert on arrow keypad */ +#define DIK_DELETE 0xD3 /* Delete on arrow keypad */ +#define DIK_LWIN 0xDB /* Left Windows key */ +#define DIK_RWIN 0xDC /* Right Windows key */ +#define DIK_APPS 0xDD /* AppMenu key */ +#define DIK_POWER 0xDE /* System Power */ +#define DIK_SLEEP 0xDF /* System Sleep */ +#define DIK_WAKE 0xE3 /* System Wake */ +#define DIK_WEBSEARCH 0xE5 /* Web Search */ +#define DIK_WEBFAVORITES 0xE6 /* Web Favorites */ +#define DIK_WEBREFRESH 0xE7 /* Web Refresh */ +#define DIK_WEBSTOP 0xE8 /* Web Stop */ +#define DIK_WEBFORWARD 0xE9 /* Web Forward */ +#define DIK_WEBBACK 0xEA /* Web Back */ +#define DIK_MYCOMPUTER 0xEB /* My Computer */ +#define DIK_MAIL 0xEC /* Mail */ +#define DIK_MEDIASELECT 0xED /* Media Select */ + +/* Alternate names for keys,to facilitate transition from DOS. */ +#define DIK_BACKSPACE DIK_BACK /* backspace */ +#define DIK_NUMPADSTAR DIK_MULTIPLY /* * on numeric keypad */ +#define DIK_LALT DIK_LMENU /* left Alt */ +#define DIK_CAPSLOCK DIK_CAPITAL /* CapsLock */ +#define DIK_NUMPADMINUS DIK_SUBTRACT /* - on numeric keypad */ +#define DIK_NUMPADPLUS DIK_ADD /* + on numeric keypad */ +#define DIK_NUMPADPERIOD DIK_DECIMAL /* . on numeric keypad */ +#define DIK_NUMPADSLASH DIK_DIVIDE /* / on numeric keypad */ +#define DIK_RALT DIK_RMENU /* right Alt */ +#define DIK_UPARROW DIK_UP /* UpArrow on arrow keypad */ +#define DIK_PGUP DIK_PRIOR /* PgUp on arrow keypad */ +#define DIK_LEFTARROW DIK_LEFT /* LeftArrow on arrow keypad */ +#define DIK_RIGHTARROW DIK_RIGHT /* RightArrow on arrow keypad */ +#define DIK_DOWNARROW DIK_DOWN /* DownArrow on arrow keypad */ +#define DIK_PGDN DIK_NEXT /* PgDn on arrow keypad */ + +/* Alternate names for keys originally not used on US keyboards. */ +#define DIK_CIRCUMFLEX DIK_PREVTRACK /* Japanese keyboard */ \ No newline at end of file diff --git a/addons/cctv/functions.sqf b/addons/cctv/functions.sqf new file mode 100644 index 000000000..b7f338f88 --- /dev/null +++ b/addons/cctv/functions.sqf @@ -0,0 +1,7 @@ +[] execVM "addons\cctv\config.sqf"; + +{ + private["_h"]; + _h = [] execVM format["addons\cctv\%1_functions.sqf", _x]; + waitUntil {scriptDone _h}; +} forEach ["laptop_flat_menu", "cctv_menu", "cctv"] diff --git a/addons/cctv/icons/camcorder.paa b/addons/cctv/icons/camcorder.paa new file mode 100644 index 0000000000000000000000000000000000000000..42be8e9b2a78b969983405d013f452283b880533 GIT binary patch literal 1522 zcmZSm@9ypx;_M#g$il$D@bTlva4*!$GnRK=U-Sw&mX5ma7cnhlYx>YG2%z>l`u39>f;~#%lDg`VW`w|6T^0 z=HTEE&j7UFa}v;gpytrf(2ESZ6Jt(JjREsnSy{m}Pzq*0I-h@M{Reg+g2~GrjX3xJ z?|l##WFo`=qYO+6Km_AgpVKIx7*D!E2FwAI#+5gc1Xx}zoxPK_-vmW?ozn1w8%zTiSkOBLu zfMjQ2lz`pC8X79R{3pLBj1LTO1}k9X12sV0OFEykq<+Ien0XFB{ev6`FbF_O7l=C* zfE04j5z9B|^ZE2&z2GJ^IRxnUd4Br;BL5$h&nVUB`CccKeSp7+t;W>vE^NHj9AhE~t@NCIXv2p^bj z=AvaI<++{-$np^1GJwiJuzxuiI6%o?;t$=smV}l1p-1@fF&w0JQ=nyTv+0%!3ov|%~uQz0Ik-Lxc~qF literal 0 HcmV?d00001 diff --git a/addons/cctv/icons/laptop.paa b/addons/cctv/icons/laptop.paa new file mode 100644 index 0000000000000000000000000000000000000000..dfd2dbe64bd55af1c656c2f9bbb25f34a3f3cdbf GIT binary patch literal 1522 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 literal 0 HcmV?d00001 diff --git a/addons/cctv/laptop_flat_menu.hpp b/addons/cctv/laptop_flat_menu.hpp new file mode 100644 index 000000000..4524e3ebc --- /dev/null +++ b/addons/cctv/laptop_flat_menu.hpp @@ -0,0 +1,56 @@ +#include "constants.h" + +class laptop_flat_menu { + idd = laptop_flat_menu_dialog_idd; + movingEnable = true; + controlsBackground[] = {laptop_flat_menu_background}; + objects[] = { }; + + name = "LAPTOP_FLAT_MENU"; + onUnload = ""; + onLoad="uiNamespace setVariable ['LAPTOP_FLAT_MENU',_this select 0]"; + + controls[] = { + laptop_flat_menu_background, + laptop_flat_menu_screen, + laptop_flat_menu_screen_text_tl, + laptop_flat_menu_button_mouse, + laptop_flat_menu_button_space + }; + + class laptop_flat_menu_screen_text_tl : gui_RscText { + idc = laptop_flat_menu_screen_text_tl_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + style = ST_LEFT; + text = "Sample Text"; + }; + + class laptop_flat_menu_background : gui_RscPictureKeepAspect { + idc = laptop_flat_menu_background_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + moving = 1; + }; + + class laptop_flat_menu_screen : gui_RscPicture { + idc = laptop_flat_menu_screen_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + moving = 1; + }; + + class laptop_flat_menu_button_mouse : gui_RscMenuButton { + idc = laptop_flat_menu_button_mouse_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + text = ""; + }; + + class laptop_flat_menu_button_space : gui_RscMenuButton { + idc = laptop_flat_menu_button_space_idc; + x = -10; y = -10; + w = 0.05; h = 0.05; + text = ""; + }; +}; \ No newline at end of file diff --git a/addons/cctv/laptop_flat_menu_functions.sqf b/addons/cctv/laptop_flat_menu_functions.sqf new file mode 100644 index 000000000..d2b2d477f --- /dev/null +++ b/addons/cctv/laptop_flat_menu_functions.sqf @@ -0,0 +1,170 @@ +#include "constants.h" +#include "macro.h" +#include "dikcodes.h" + +if (not(undefined(laptop_flat_menu_functions))) exitWith {}; + +diag_log format["Loading laptop flat menu functions ..."]; + +laptop_flat_event_type = 0; +laptop_flat_envent_data = 1; + +laptop_flat_key_event_cb = []; +laptop_flat_on_event_cb = []; +laptop_flat_off_event_cb = []; + +laptop_flat_data_cb_args = 0; +laptop_flat_data_cb_name = 1; + +laptop_flat_activate_key = { + //player groupChat format["laptop_flat_activate_key %1",_this]; + disableSerialization; + ARGV2(0,_type); + ARGV2(1,_value); + [[_type,_value],laptop_flat_key_event_cb] call laptop_flat_invoke_event_callback; +}; + + +laptop_flat_invoke_event_callback = { + disableSerialization; + ARGV2(0,_event); + ARGV2(1,_callback) + + if (isNil "_callback" || {typeName _callback != "ARRAY" || {count(_callback) < 2}}) exitWith {}; + + private["_args","_name"]; + _args = _callback select laptop_flat_data_cb_args; + _name = _callback select laptop_flat_data_cb_name; + + if (typeName "_name" != "STRING") exitWith {}; + + private["_method"]; + _method = missionNamespace getVariable [_name,{}]; + [_event,_args] call _method; +}; + +laptop_flat_menu_screen_control = { + private["_display"]; + _display = (uiNamespace getVariable 'LAPTOP_FLAT_MENU'); + (_display displayCtrl laptop_flat_menu_screen_idc) +}; + + + +laptop_flat_menu_update_text_tl = { + disableSerialization; + ARGV2(0,_text); + private["_display"]; + _display = (uiNamespace getVariable 'LAPTOP_FLAT_MENU'); + + _laptop_flat_menu_screen_text_tl = _display displayCtrl laptop_flat_menu_screen_text_tl_idc; + _laptop_flat_menu_screen_text_tl ctrlSetText _text; + _laptop_flat_menu_screen_text_tl ctrlCommit 0; +}; + +laptop_flat_menu_setup = {_this spawn { + disableSerialization; + ARGV2(0,_key_event_cb); + ARGV2(1,_on_event_cb); + ARGV2(2,_off_event_cb); + + laptop_flat_key_event_cb = _key_event_cb; + laptop_flat_on_event_cb = _on_event_cb; + laptop_flat_off_event_cb = _off_event_cb; + + if (!(createDialog "laptop_flat_menu")) exitWith { + player groupChat format["ERROR: Could not create lock panel menu dialog"]; + }; + + private["_display"]; + _display = (uiNamespace getVariable 'LAPTOP_FLAT_MENU'); + + _laptop_flat_menu_background = _display displayCtrl laptop_flat_menu_background_idc; + _laptop_flat_menu_screen = _display displayCtrl laptop_flat_menu_screen_idc; + _laptop_flat_menu_button_mouse = _display displayCtrl laptop_flat_menu_button_mouse_idc; + _laptop_flat_menu_button_space = _display displayCtrl laptop_flat_menu_button_space_idc; + _laptop_flat_menu_screen_text_tl = _display displayCtrl laptop_flat_menu_screen_text_tl_idc; + + + + private["_x","_y","_w","_h"]; + _w = 1; + _h = 1; + _x = 0.5 - (_w /2); + _y = 0.5 - (_h /2); + + _laptop_flat_menu_background ctrlSetPosition [_x,_y,_w,_h]; + _laptop_flat_menu_background ctrlSetText "addons\cctv\images\laptop_flat.paa"; + _laptop_flat_menu_background ctrlCommit 0; + + + private["_bspx","_bspy","_bspw","_bsph"]; + _bspw = _w * 0.126; + _bsph = _h * 0.025; + _bspx = _x + _bspw * 2.85; + _bspy = _y + _bsph * 30.2; + + + _laptop_flat_menu_button_space ctrlSetText ""; + _laptop_flat_menu_button_space ctrlSetPosition [_bspx,_bspy,_bspw,_bsph]; + _laptop_flat_menu_button_space ctrlSetBackgroundColor [0,0,0,0]; + _laptop_flat_menu_button_space ctrlCommit 0; + //_laptop_flat_menu_button_space ctrlEnable false; + buttonSetAction [(ctrlIDC _laptop_flat_menu_button_space),'[LAPTOP_EVENT_KEY,DIK_SPACE] call laptop_flat_activate_key;']; + + + private["_bxsep","_bysep"]; + _bxsep = _bsph; + _bysep = _bsph; + + private["_bmsx","_bmsy","_bmsw","_bmsh"]; + _bmsw = _bspw; + _bmsh = _bsph * 4; + _bmsx = _bspx + _bxsep * 0.5; + _bmsy = _bspy + _bysep * 2.5; + + _laptop_flat_menu_button_mouse ctrlSetText ""; + _laptop_flat_menu_button_mouse ctrlSetPosition [_bmsx,_bmsy,_bmsw,_bmsh]; + _laptop_flat_menu_button_mouse ctrlSetBackgroundColor [0,0,0,0]; + _laptop_flat_menu_button_mouse ctrlCommit 0; + //_laptop_flat_menu_button_mouse ctrlEnable false; + buttonSetAction [(ctrlIDC _laptop_flat_menu_button_mouse),'[LAPTOP_EVENT_BUTTON,LAPTOP_EVENT_BUTTON_MOUSE_PAD] call laptop_flat_activate_key;']; + + + private["_lsx","_lsy","_lsw","_lsh"]; + _lsw = _bspw * 4.1; + _lsh = _bsph * 15.7; + _lsx = _bspx - _bspw * 0.97; + _lsy = _bspy - _bsph * 27.9; + + + _laptop_flat_menu_screen ctrlSetPosition [_lsx,_lsy,_lsw,_lsh]; + //_laptop_flat_menu_screen ctrlSetTextColor [0,0,0,0.15]; + _laptop_flat_menu_screen ctrlSetText "#(argb,8,8,3)color(1,0,0,1)"; + _laptop_flat_menu_screen ctrlCommit 0; + + + private["_lstx","_lsty","_lstw","_lsth"]; + _lstw = _bspw * 3.5; + _lsth = _bsph * 1.5; + _lstx = _bspx - _bspw * 0.97; + _lsty = _bspy - _bsph * 27.9; + + _laptop_flat_menu_screen_text_tl ctrlSetPosition [_lstx,_lsty,_lstw,_lsth]; + _laptop_flat_menu_screen_text_tl ctrlSetBackgroundColor [0,0,0,0.6]; + _laptop_flat_menu_screen_text_tl ctrlSetFontHeight 0.03; + _laptop_flat_menu_screen_text_tl ctrlSetFont "PuristaMedium"; + _laptop_flat_menu_screen_text_tl ctrlSetTextColor [1,1,1,1]; + _laptop_flat_menu_screen_text_tl ctrlSetText ""; + _laptop_flat_menu_screen_text_tl ctrlCommit 0; + + + [[LAPTOP_EVENT_ON],laptop_flat_on_event_cb] call laptop_flat_invoke_event_callback; + waitUntil {not(ctrlShown _laptop_flat_menu_background)}; + [[LAPTOP_EVENT_OFF],laptop_flat_off_event_cb] call laptop_flat_invoke_event_callback; +};}; + + +laptop_flat_menu_functions = true; + +diag_log format["Loading laptop flat menu functions complete"]; \ No newline at end of file diff --git a/addons/cctv/macro.h b/addons/cctv/macro.h new file mode 100644 index 000000000..7cdedd47a --- /dev/null +++ b/addons/cctv/macro.h @@ -0,0 +1,142 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} \ No newline at end of file diff --git a/client/init.sqf b/client/init.sqf index 6e3c4d414..d2d94df44 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -135,6 +135,7 @@ A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "addons\far_revive\FAR_revive_init.sqf"; [] execVM "addons\camera\functions.sqf"; [] execVM "addons\UAV_Control\functions.sqf"; +[] execVM "addons\cctv\functions.sqf"; call compile preprocessFileLineNumbers "client\functions\generateAtmArray.sqf"; [] execVM "client\functions\drawPlayerMarkers.sqf"; diff --git a/client/inventory/drop.sqf b/client/inventory/drop.sqf index 821605e06..4064009b3 100644 --- a/client/inventory/drop.sqf +++ b/client/inventory/drop.sqf @@ -55,5 +55,7 @@ else _obj setDir random 360; _obj setVariable ["mf_item_id", _id, true]; [_id, 1] call mf_inventory_remove; - _obj }; + +if (isNil "_obj") exitWith {nil}; +_obj \ No newline at end of file diff --git a/client/inventory/takeable.sqf b/client/inventory/takeable.sqf index 2cdf4e554..b707a1b74 100644 --- a/client/inventory/takeable.sqf +++ b/client/inventory/takeable.sqf @@ -30,9 +30,11 @@ _takeable = objNull; switch (true) do { case (_lineOfSightBroken): {}; + case (_x getVariable ["objectLocked", false]): {}; case (_id call mf_inventory_is_full): {}; case (_x getVariable ["mf_item_id", ""] != _id): {}; default {_takeable = _x}; }; + } forEach (nearestObjects [player, [_type], MF_INVENTORY_TAKE_DISTANCE]); _takeable; diff --git a/client/items/cctv/init.sqf b/client/items/cctv/init.sqf new file mode 100644 index 000000000..dee648e0f --- /dev/null +++ b/client/items/cctv/init.sqf @@ -0,0 +1,24 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +//@file Version: 1.0 +//@file Name: init.sqf +//@file Author: micovery +//@file Argument: the path to the directory holding this file. + +private ["_path"]; +_path = _this; + +private["_h"]; +_h = [] execVM "addons\cctv\config.sqf"; +waitUntil {scriptDone _h;}; + +MF_ITEMS_CCTV_CAMERA = "cctv_camera"; +MF_ITEMS_CCTV_CAMERA_TYPE = "Land_HandyCam_F"; +MF_ITEMS_CCTV_CAMERA_ICON = "addons\cctv\icons\camcorder.paa"; +[MF_ITEMS_CCTV_CAMERA, "IP/Net Camera",{_this call cctv_camera_use},MF_ITEMS_CCTV_CAMERA_TYPE, MF_ITEMS_CCTV_CAMERA_ICON, cctv_max_inventory_cameras] call mf_inventory_create; + +MF_ITEMS_CCTV_BASE = "cctv_base"; +MF_ITEMS_CCTV_BASE_TYPE = "Land_Laptop_unfolded_F"; +MF_ITEMS_CCTV_BASE_ICON = "addons\cctv\icons\laptop.paa"; +[MF_ITEMS_CCTV_BASE, "Camera Terminal", {_this call cctv_base_use}, MF_ITEMS_CCTV_BASE_TYPE, MF_ITEMS_CCTV_BASE_ICON, cctv_max_inventory_base_stations] call mf_inventory_create; \ No newline at end of file diff --git a/client/items/init.sqf b/client/items/init.sqf index d96cf1ab2..f079fa006 100644 --- a/client/items/init.sqf +++ b/client/items/init.sqf @@ -15,6 +15,7 @@ [_this, "camonet"] call mf_init; [_this, "warchest"] call mf_init; [_this, "cratemoney"] call mf_init; +[_this, "cctv"] call mf_init; if (["A3W_atmEnabled"] call isConfigOn) then { diff --git a/description.ext b/description.ext index 0d7e613f0..c6929ee40 100644 --- a/description.ext +++ b/description.ext @@ -57,6 +57,10 @@ loadScreen = "mapConfig\Loading.jpg"; #include "addons\gui\gui.hpp" #include "addons\parking\list_simple_menu.hpp" +#include "addons\cctv\laptop_flat_menu.hpp" +#include "addons\cctv\cctv_menu.hpp" + + class RscTitles { diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index dd4b0785f..a3d164014 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -10,6 +10,8 @@ cfg_purchasedVehicleSaving_on = ON_SCALAR(A3W_purchasedVehicleSaving); cfg_townVehicleSaving_on = ON_SCALAR(A3W_townVehicleSaving); cfg_staticWeaponSaving_on = ON_SCALAR(A3W_staticWeaponSaving); cfg_spawnBeaconSaving_on = ON_SCALAR(A3W_spawnBeaconSaving); +cfg_cctvCameraSaving_on = ON_SCALAR(A3W_cctvCameraSaving); + cfg_boxSaving_on = ON_SCALAR(A3W_boxSaving); cfg_warchestSaving_on = ON_SCALAR(A3W_warchestSaving); cfg_warchestMoneySaving_on = ON_SCALAR(A3W_warchestMoneySaving); @@ -46,6 +48,7 @@ diag_log format["[INFO] config: A3W_missionVehicleSaving = %1", cfg_missionVehic diag_log format["[INFO] config: A3W_townVehicleSaving = %1", cfg_townVehicleSaving_on]; diag_log format["[INFO] config: A3W_staticWeaponSaving = %1", cfg_staticWeaponSaving_on]; diag_log format["[INFO] config: A3W_spawnBeaconSaving = %1", cfg_spawnBeaconSaving_on]; +diag_log format["[INFO] config: A3W_cctvCameraSaving = %1", cfg_cctvCameraSaving_on]; diag_log format["[INFO] config: A3W_boxSaving = %1", cfg_boxSaving_on]; diag_log format["[INFO] config: A3W_warchestSaving = %1", cfg_warchestSaving_on]; diag_log format["[INFO] config: A3W_warchestMoneySaving = %1", cfg_warchestMoneySaving_on]; diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 329a4b0c0..b7c7e9cda 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -72,6 +72,11 @@ sh_isBeacon = { (_obj getVariable ["a3w_spawnBeacon", false]) }; +sh_isCamera = { + ARGVX4(0,_obj,objNull,false); + (_obj getVariable ["a3w_cctv_camera", false]) +}; + sh_isBox = { ARGVX4(0,_obj,objNull,false); init(_class,typeOf _obj); diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index ea740f621..610e2af73 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -60,6 +60,11 @@ o_isSaveable = { (cfg_staticWeaponSaving_on) }; + if ([_obj] call sh_isCamera) exitWith { + (cfg_cctvCameraSaving_on) + }; + + def(_locked); _locked = _obj getVariable ["objectLocked", false]; @@ -210,6 +215,12 @@ o_restoreObject = { pvar_spawn_beacons pushBack _obj; publicVariable "pvar_spawn_beacons"; }; + + cctv_cameras = OR(cctv_cameras,[]); + if ([_obj] call sh_isCamera) then { + cctv_cameras pushBack _obj; + publicVariable "cctv_cameras"; + }; //restore the stuff inside the object clearWeaponCargoGlobal _obj; @@ -328,6 +339,14 @@ o_fillVariables = { _variables pushBack ["ownerName", _obj getVariable ["ownerName", "[Beacon]"]]; }; + if ([_obj] call sh_isCamera) then { + _variables pushBack ["a3w_cctv_camera", (_obj getVariable ["a3w_cctv_camera", nil])]; + _variables pushBack ["camera_name", (_obj getVariable ["camera_name", nil])]; + _variables pushBack ["camera_owner_type", (_obj getVariable ["camera_owner_type", nil])]; + _variables pushBack ["camera_owner_value", (_obj getVariable ["camera_owner_value", nil])]; + _variables pushBack ["mf_item_id", (_obj getVariable ["mf_item_id", nil])]; + }; + def(_r3fSide); _r3fSide = _obj getVariable "R3F_Side"; if (!isNil "_r3fSide" && {typeName _r3fSide == typeName sideUnknown}) then { diff --git a/server/default_config.sqf b/server/default_config.sqf index ef9b3a1b8..46d279174 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -58,6 +58,7 @@ A3W_warchestSaving = 1; // Save warchest objects deployed by players A3W_warchestMoneySaving = 1; // Save warchest team money between server restarts (0 = no, 1 = yes) A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts (0 = no, 1 = yes) A3W_objectLifetime = 5*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) +A3W_cctvCameraSaving = 1; // Save cctv cameras between restarts (0 = no, 1 = yes) A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) A3W_storageLifetime = 0; // Maximum lifetime in horus for player's private storage (0 = no time limit) diff --git a/storeConfig.sqf b/storeConfig.sqf index 2f22116ed..34258e0f8 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -873,7 +873,10 @@ customPlayerItems = compileFinal str ["Camo Net", "camonet", localize "STR_WL_ShopDescriptions_Camo", "client\icons\camonet.paa", 200, 100], ["Syphon Hose", "syphonhose", localize "STR_WL_ShopDescriptions_SyphonHose", "client\icons\syphonhose.paa", 200, 100], ["Energy Drink", "energydrink", localize "STR_WL_ShopDescriptions_Energy_Drink", "client\icons\energydrink.paa", 100, 50], - ["Warchest", "warchest", localize "STR_WL_ShopDescriptions_Warchest", "client\icons\warchest.paa", 1000, 500] + ["Warchest", "warchest", localize "STR_WL_ShopDescriptions_Warchest", "client\icons\warchest.paa", 1000, 500], + //Addon items + ["IP/Net Camera", "cctv_camera", localize "STR_WL_ShopDescriptions_CCTV_Camera", "addons\cctv\icons\camcorder.paa", 850, 500], + ["Camera Terminal", "cctv_base", localize "STR_WL_ShopDescriptions_CCTV_Base", "addons\cctv\icons\laptop.paa", 500, 300] ]; call compile preprocessFileLineNumbers "mapConfig\storeOwners.sqf"; diff --git a/stringtable.xml b/stringtable.xml index 8b06c778b..5a961e0f9 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -90,6 +90,12 @@ A safe to store your team's money. + + This is a remote networked camera that transmits a video signal via Internet Protocol (IP). + + + This is a computer terminal that receives video signals from one or more remote networked cameras via Internet Protocol (IP). + From 8117308781286fcfa748114ab29d0638971e46ef Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 3 Dec 2014 17:20:41 -0800 Subject: [PATCH 310/544] Add blurriness at water's edge Conflicts: client/init.sqf --- addons/water_edge/functions.sqf | 57 +++++++++++++++++++++++++++++++++ client/init.sqf | 2 ++ 2 files changed, 59 insertions(+) create mode 100644 addons/water_edge/functions.sqf diff --git a/addons/water_edge/functions.sqf b/addons/water_edge/functions.sqf new file mode 100644 index 000000000..d4aaae764 --- /dev/null +++ b/addons/water_edge/functions.sqf @@ -0,0 +1,57 @@ + +if (not(isNil "water_edge_functions_defined")) exitWith {nil}; +diag_log format["Loading water edged functions ..."]; + +watter_edge_effect = objNull; +water_edge_colorized = false; +water_edge_check_effects = { + private["_z"]; + _z = (positionCameraToWorld [0,0,0] select 2); + + private["_in_water_edge"]; + _in_water_edge = (_z > -0.1 && _z < 0.09); + if (not(water_edge_colorized) && _in_water_edge) then { + 1 setFog 1; + watter_edge_effect = ppEffectCreate ["WetDistortion", 300]; + watter_edge_effect ppEffectEnable true; + watter_edge_effect ppEffectAdjust [ + 0, //blurriness + 1.0, //effect strength top + 1.0, //effect strength bottom + + //Wave Speed + 1.0, + 0.0, + 0.0, + 1.0, + //Wave Amplitues + 0.03, + 0.02, + 0.01, + 0.01, + //Wave Coeficients + 0.08, + 0.08, + 0.0, + 1.0 + ]; + if (sunOrMoon > 0) then { + watter_edge_effect ppEffectCommit 0; + }; + water_edge_colorized = true; + }; + + if (water_edge_colorized) then { + 1 setFog 1; + }; + + if (water_edge_colorized && not(_in_water_edge)) then { + 1 setFog 0; + ppEffectDestroy watter_edge_effect; + water_edge_colorized = false; + }; +}; + +["A3W_water_oneachFrame", "onEachFrame", {[] call water_edge_check_effects }] call BIS_fnc_addStackedEventHandler; +diag_log format["Water edged functions loaded"]; +water_edge_functions_defined = true; \ No newline at end of file diff --git a/client/init.sqf b/client/init.sqf index d2d94df44..b6b4843c8 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -136,6 +136,8 @@ A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "addons\camera\functions.sqf"; [] execVM "addons\UAV_Control\functions.sqf"; [] execVM "addons\cctv\functions.sqf"; +[] execVM "addons\water_edge\functions.sqf"; + call compile preprocessFileLineNumbers "client\functions\generateAtmArray.sqf"; [] execVM "client\functions\drawPlayerMarkers.sqf"; From fcb61ddf4921e4c6f1e125c47254479f5becf413 Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 3 Dec 2014 20:20:37 -0800 Subject: [PATCH 311/544] Modify view distance at the water's edge as well --- addons/water_edge/functions.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/water_edge/functions.sqf b/addons/water_edge/functions.sqf index d4aaae764..e3530bbcd 100644 --- a/addons/water_edge/functions.sqf +++ b/addons/water_edge/functions.sqf @@ -43,9 +43,11 @@ water_edge_check_effects = { if (water_edge_colorized) then { 1 setFog 1; + setObjectViewDistance 15; }; if (water_edge_colorized && not(_in_water_edge)) then { + setObjectViewDistance viewDistance; 1 setFog 0; ppEffectDestroy watter_edge_effect; water_edge_colorized = false; From c255cd8e93b7279411a3afe8bebcadff5501f958 Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 18 Dec 2014 21:51:40 -0800 Subject: [PATCH 312/544] Add support for saving mines --- globalCompile.sqf | 9 + persistence/lib/normalize_config.sqf | 4 + persistence/lib/shFunctions.sqf | 98 +++++++++++ persistence/world/oFunctions.sqf | 250 ++++++++++++++++++++++----- persistence/world/oLoad.sqf | 3 +- persistence/world/vLoad.sqf | 3 +- server/default_config.sqf | 2 + server/functions/serverVars.sqf | 9 + 8 files changed, 333 insertions(+), 45 deletions(-) diff --git a/globalCompile.sqf b/globalCompile.sqf index 1435c4453..c534e0b1a 100644 --- a/globalCompile.sqf +++ b/globalCompile.sqf @@ -121,6 +121,15 @@ vehicleDammagedEvent = [_serverFunc, "vehicleDammagedEvent.sqf"] call mf_compile vehicleEngineEvent = [_serverFunc, "vehicleEngineEvent.sqf"] call mf_compile; vehicleHandleDamage = [_serverFunc, "vehicleHandleDamage.sqf"] call mf_compile; vehicleHitTracking = [_serverFunc, "vehicleHitTracking.sqf"] call mf_compile; +A3W_fnc_setVectorUpAndDir = { + private["_left", "_right"]; + _left = _this select 0; + _right = _this select 1; + if (isNil "_left" || {typeName _left != typeName objNull || {isNull _left}}) exitWith {}; + if (isNil "_right" || {typeName _right != typeName []}) exitWith {}; + + _left setVectorDirAndUp _right; +} call mf_compile; call compile preprocessFileLineNumbers "server\functions\mf_remote.sqf"; diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index a3d164014..de7312fcf 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -16,10 +16,12 @@ cfg_boxSaving_on = ON_SCALAR(A3W_boxSaving); cfg_warchestSaving_on = ON_SCALAR(A3W_warchestSaving); cfg_warchestMoneySaving_on = ON_SCALAR(A3W_warchestMoneySaving); cfg_baseSaving_on = ON_SCALAR(A3W_baseSaving); +cfg_MineSaving_on = ON_SCALAR(A3W_mineSaving); A3W_saveable_vehicles_list = OR_ARRAY(A3W_saveable_vehicles_list,[]); A3W_objectLifetime = OR_SCALAR(A3W_objectLifetime,0); +A3W_mineLifetime = OR_SCALAR(A3W_mineLifetime,0); A3W_object_saveInterval = OR_POSITIVE(A3W_object_saveInterval,60); A3W_player_saveInterval = OR_POSITIVE(A3W_player_saveInterval,60); A3W_playersList_saveInterval = OR_POSITIVE(A3W_playersList_saveInterval,60); @@ -53,9 +55,11 @@ diag_log format["[INFO] config: A3W_boxSaving = %1", cfg_boxSaving_on]; diag_log format["[INFO] config: A3W_warchestSaving = %1", cfg_warchestSaving_on]; diag_log format["[INFO] config: A3W_warchestMoneySaving = %1", cfg_warchestMoneySaving_on]; diag_log format["[INFO] config: A3W_baseSaving = %1", cfg_baseSaving_on]; +diag_log format["[INFO] config: A3W_mineSaving = %1", cfg_MineSaving_on]; diag_log format["[INFO] config: A3W_objectLifetime = %1", A3W_objectLifetime]; +diag_log format["[INFO] config: A3W_mineLifetime = %1", A3W_mineLifetime]; diag_log format["[INFO] config: A3W_object_saveInterval = %1", A3W_object_saveInterval]; diag_log format["[INFO] config: A3W_player_saveInterval = %1", A3W_player_saveInterval]; diag_log format["[INFO] config: A3W_playersList_saveInterval = %1", A3W_playersList_saveInterval]; diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index b7c7e9cda..e1ce09306 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -91,6 +91,104 @@ sh_isWarchest = { ) }; +sh_mineAmmo2Vehicle = { + ARGVX3(0,_class,""); + + _class = (([_class, "_"] call BIS_fnc_splitString) select 0); + + //hopefully after splitting, and taking the first part, we have the actual vehicle class name + (_class) +}; + + +sh_isSaveableMine ={ + ARGVX2(0,_arg); + + def(_class); + if (isOBJECT(_arg)) then { + _class = typeOf _arg; + } + else { if(isSTRING(_arg)) then { + _class = _arg; + };}; + + (!(isNil "_class") && {_class in minesList}) +}; + + + + +/** + * KillzoneKid's way for creating Charges, and Claymores ... very hacky + */ +sh_placeCharge = { + ARGVX3(0,_charge,""); + ARGVX3(1,_position,[]); + ARGV2(2,_vectors_or_dir); + + def(_unit); + def(_group); + _group = createGroup sideLogic; + _unit = _group createUnit ["B_Soldier_F", _position,[], 0, "CAN_COLLIDE"]; + _unit hideObjectGlobal true; + if (isARRAY(_vectors_or_dir)) then { + _unit setVectorDirAndUp _vectors; + } + else { if (isSCALAR(_vectors_or_dir)) then { + _unit setDir _vectors; + };}; + + def(_muzzle); + def(_mag); + _mag = format["%1_Remote_Mag", _charge]; + _muzzle = if (["directional", _charge, true] call BIS_fnc_inString) then {"DirectionalMineRemoteMuzzle"} else {"DemoChargeMuzzle"}; + + _unit playActionNow "PutDown"; + _unit addMagazine format["%1_Remote_Mag", _charge]; + _unit selectWeapon _muzzle; + _unit fire [_muzzle, _muzzle, _mag]; + _unit setWeaponReloadingTime [_unit, _muzzle, 0]; + + + [_unit,_group] spawn { + sleep 3; + deleteVehicle (_this select 0); + deleteGroup (_this select 1); + }; +}; + +sh_isCharge = { + ARGVX2(0,_arg); + + def(_class); + if (isOBJECT(_arg)) then { + _class = typeOf _arg; + } + else { if(isSTRING(_arg)) then { + _class = _arg; + };}; + + ((["charge", _class, true] call BIS_fnc_inString) || {(["claymore", _class, true] call BIS_fnc_inString)}) +}; + +sh_isMine = { + ARGVX2(0,_arg); + + def(_class); + if (isOBJECT(_arg)) then { + _class = typeOf _arg; + } + else { if(isSTRING(_arg)) then { + _class = _arg; + };}; + + if (isNil "_class") exitWith {false}; + + _class = [_class] call sh_mineAmmo2Vehicle; + + (_class isKindOf "MineBase") +}; + sh_isAMissionVehicle = { ARGVX4(0,_obj,objNull,false); def(_mission); diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 610e2af73..be49408e9 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -60,6 +60,10 @@ o_isSaveable = { (cfg_staticWeaponSaving_on) }; + if (([_obj] call sh_isMine)&&([_obj] call sh_isSaveableMine)) exitWith { + (cfg_MineSaving_on) + }; + if ([_obj] call sh_isCamera) exitWith { (cfg_cctvCameraSaving_on) }; @@ -83,6 +87,81 @@ o_isLockableObject = { +o_getMaxLifeTime = { + ARGV3(0,_class,""); + + if (isNil "_class") exitWith {A3W_objectLifeTime}; + if ([_class] call sh_isMine) exitWith {A3W_mineLifeTime}; + + A3W_objectLifeTime +}; + +o_restoreDirection = { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_vectors,[]); + + if ([_obj] call sh_isMine) exitWith { + //special handling for mines, because setVectorUpAndDir has local effects only ... on mines + [[_obj,_vectors], "A3W_fnc_setVectorUpAndDir",true, true] call BIS_fnc_MP; + }; + + _obj setVectorDirAndUp _vectors; +}; + + +o_restoreHoursAlive_withVars = { + ARGVX3(0,_obj,objNull); + ARGVX2(1,_hours_alive,0); + + _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; + if (!isNil "_hours_alive") then { + _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; + }; +}; + +o_restoreHoursAlive_withGlobals = { + ARGVX3(0,_obj,objNull); + ARGVX2(1,_hours_alive,0); + + def(_netId); + _netId = netId _obj; + //diag_log format["_netId = %1", _netId]; + + missionNamespace setVariable [format["%1_spawningTime",_netId], diag_tickTime]; + if (!isNil "_hours_alive") then { + missionNamespace setVariable [format["%1_hoursAlive",_netId], _hours_alive]; + }; +}; + +o_restoreHoursAlive = { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_hours_alive,0); + + if ([_obj] call sh_isMine) exitWith { + [_obj, OR(_hours_alive,nil)] call o_restoreHoursAlive_withGlobals; + }; + + [_obj, OR(_hours_alive,nil)] call o_restoreHoursAlive_withVars; + +}; + +o_restoreMineVisibility = { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_variables,[]); + + + def(_mineVisibility); + _mineVisibility = [_variables, "mineVisibility"] call hash_get_key; + if (!isARRAY(_mineVisibility)) exitWith {}; + + def(_side); + { + _side = _x call sh_strToSide; + _side revealMine _obj; + //diag_log format["Revealing mine %1 to %2", _obj, _side]; + } forEach _mineVisibility; +}; + o_restoreObject = { //diag_log format["%1 call o_restoreObject", _this]; ARGVX3(0,_data_pair,[]); @@ -115,6 +194,7 @@ o_restoreObject = { def(_turret0); def(_turret1); def(_turret2); + def(_mineVisibility); def(_key); def(_value); @@ -155,13 +235,25 @@ o_restoreObject = { diag_log format["%1(%2) is being restored.", _object_key, _class]; - if (isSCALAR(_hours_alive) && {A3W_objectLifetime > 0 && {_hours_alive > A3W_objectLifetime}}) exitWith { - diag_log format["object %1(%2) has been alive for %3 (max=%4), skipping it", _object_key, _class, _hours_alive, A3W_objectLifetime]; + def(_max_life_time); + _max_life_time = [_class] call o_getMaxLifeTime; + + if (isSCALAR(_hours_alive) && {_max_life_time > 0 && {_hours_alive > _max_life_time}}) exitWith { + diag_log format["object %1(%2) has been alive for %3 (max=%4), skipping it", _object_key, _class, _hours_alive, _max_life_time]; }; + + def(_isMine); + _isMine = [_class] call sh_isMine; def(_obj); - _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; - _obj allowDamage false; //set damage to false immediately to avoid taking fall damage + if (_isMine) then { + _obj = createMine[_class, _pos, [], 0]; + } + else { + _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; + _obj allowDamage false; //set damage to false immediately to avoid taking fall damage + }; + if (!isOBJECT(_obj)) exitWith { diag_log format["object %1(%2) could not be created.", _object_key, _class]; }; @@ -176,25 +268,21 @@ o_restoreObject = { if (!isBOOLEAN(_objectLocked) && {[_obj] call o_isLockableObject}) then { _obj setVariable ["objectLocked", true, true]; }; - + + //Mine is revealed for all players in a side. Should do sth with independent side when it's possible. + if (_isMine) then { + [_obj,_variables] call o_restoreMineVisibility; + }; if (not([_obj] call o_isSaveable)) exitWith { diag_log format["%1(%2) has been deleted, it is not saveable", _object_key, _class]; deleteVehicle _obj; }; - - _obj setPosWorld ATLtoASL _pos; - if (isARRAY(_dir)) then { - _obj setVectorDirAndUp _dir; - }; - - _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; - if (isSCALAR(_hours_alive)) then { - _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; - }; - + [_obj, OR(_dir,nil)] call o_restoreDirection; + [_obj, OR(_hours_alive,nil)] call o_restoreHoursAlive; + if (isSCALAR(_damage)) then { _obj setDamage _damage; @@ -268,8 +356,10 @@ o_restoreObject = { createVehicleCrew _obj; }; - //objects, warchests, and beacons - tracked_objects_list pushBack _obj; + if (not([_obj] call sh_isMine)) exitWith { //don't put mines in the tracked objects list (we use allMines) + //objects, warchests, and beacons + tracked_objects_list pushBack _obj; + }; }; @@ -288,7 +378,7 @@ o_saveList = []; if ((o_saveList find _obj) >= 0) exitWith {}; o_saveList pushBack _obj; -};} forEach [objectList, call genObjectsArray]; +};} forEach [objectList, call genObjectsArray, minesList]; o_isInSaveList = { @@ -347,6 +437,17 @@ o_fillVariables = { _variables pushBack ["mf_item_id", (_obj getVariable ["mf_item_id", nil])]; }; + if ([_obj] call sh_isMine) then { + init(_mineVisibility,[]); + { + if (_obj mineDetectedBy _x) then { + _mineVisibility pushBack str(_x); + } + } forEach [EAST,WEST,INDEPENDENT]; + + _variables pushBack ["mineVisibility", _mineVisibility]; + }; + def(_r3fSide); _r3fSide = _obj getVariable "R3F_Side"; if (!isNil "_r3fSide" && {typeName _r3fSide == typeName sideUnknown}) then { @@ -356,11 +457,90 @@ o_fillVariables = { _variables pushBack ["objectLocked", _obj getVariable "objectLocked"]; }; +o_getVehClass = { + ARGVX3(0,_obj,objNull); + + def(_class); + _class = typeOf _obj; + + if ([_class] call sh_isMine) exitWith { + ([_class] call sh_mineAmmo2Vehicle) + }; + + _class +}; + +o_getHoursAlive_withVars = { + ARGVX4(0,_obj,objNull,0); + + def(_spawnTime); + def(_hoursAlive); + _spawnTime = _obj getVariable "baseSaving_spawningTime"; + _hoursAlive = _obj getVariable "baseSaving_hoursAlive"; + + if (!isSCALAR(_spawnTime)) then { + _spawnTime = diag_tickTime; + _obj setVariable ["baseSaving_spawningTime", _spawnTime, true]; + }; + + if (!isSCALAR(_hoursAlive)) then { + _hoursAlive = 0; + _obj setVariable ["baseSaving_hoursAlive", _hoursAlive, true]; + }; + + def(_totalHours); + _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; + + //diag_log format["_obj = %1, _totalHours = %2, _spawnTime = %3, _hoursAlive = %4",_obj, _totalHours, _spawnTime, _hoursAlive]; + + (_totalHours) +}; + +o_getHoursAlive_withGlobals = { + ARGVX4(0,_obj,objNull,0); + + def(_spawnTime); + def(_hoursAlive); + def(_netId); + + _netId = netId _obj; + //diag_log format["_netId = %1", _netId]; + + _spawnTime = missionNamespace getVariable format["%1_spawningTime", _netId]; + _hoursAlive = missionNamespace getVariable format["%1_hoursAlive", _netId]; + + if (!isSCALAR(_spawnTime)) then { + _spawnTime = diag_tickTime; + missionNamespace setVariable [format["%1_spawningTime", _netId], _spawnTime]; + }; + + if (!isSCALAR(_hoursAlive)) then { + _hoursAlive = 0; + missionNamespace setVariable [format["%1_hoursAlive", _netId], _hoursAlive]; + }; + + def(_totalHours); + _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; + + //diag_log format["_obj = %1, _totalHours = %2, _spawnTime = %3, _hoursAlive = %4",_obj, _totalHours, _spawnTime, _hoursAlive]; + + (_totalHours) +}; + +o_getHoursAlive = { + ARGVX4(0,_obj,objNull,0); + + if ([_obj] call sh_isMine) exitWith { + ([_obj] call o_getHoursAlive_withGlobals) + }; + + ([_obj] call o_getHoursAlive_withVars) +}; + o_addSaveObject = { ARGVX3(0,_list,[]); ARGVX3(1,_obj,objNull); - if (not([_obj] call o_isSaveable)) exitWith {}; if (!(alive _obj)) exitWith {}; @@ -371,34 +551,16 @@ o_addSaveObject = { def(_dir); def(_damage); def(_allowDamage); + def(_totalHours); - _class = typeOf _obj; + _class = [_obj] call o_getVehClass; _netId = netId _obj; _pos = ASLtoATL getPosWorld _obj; _dir = [vectorDir _obj, vectorUp _obj]; _damage = damage _obj; _allowDamage = if (_obj getVariable ["allowDamage", false]) then { 1 } else { 0 }; - - - def(_spawnTime); - def(_hoursAlive); - _spawnTime = _obj getVariable "baseSaving_spawningTime"; - _hoursAlive = _obj getVariable "baseSaving_hoursAlive"; - - if (isNil "_spawnTime") then { - _spawnTime = diag_tickTime; - _obj setVariable ["baseSaving_spawningTime", _spawnTime, true]; - }; - - if (isNil "_hoursAlive") then { - _hoursAlive = 0; - _obj setVariable ["baseSaving_hoursAlive", _hoursAlive, true]; - }; - - def(_totalHours); - _totalHours = _hoursAlive + (diag_tickTime - _spawnTime) / 3600; - - + _totalHours = [_obj] call o_getHoursAlive; + init(_variables,[]); [_obj,_variables] call o_fillVariables; @@ -497,6 +659,8 @@ o_saveAllObjects = { init(_start_time, diag_tickTime); init(_last_save, diag_tickTime); + def(_all_objects); + _all_objects = tracked_objects_list + allMines; { if (!isNil{[_request, _x] call o_addSaveObject}) then { @@ -512,7 +676,7 @@ o_saveAllObjects = { diag_log format["o_saveLoop: %1 objects saved in %2 ticks, save call took %3 ticks", (_bulk_size), (diag_tickTime - _start_time), (_save_end - _save_start)]; _last_save = _save_end; }; - } forEach (tracked_objects_list); + } forEach (_all_objects); if (count(_request) > 1) then { init(_save_start, diag_tickTime); diff --git a/persistence/world/oLoad.sqf b/persistence/world/oLoad.sqf index 86e5f7b35..772cb1e85 100644 --- a/persistence/world/oLoad.sqf +++ b/persistence/world/oLoad.sqf @@ -6,10 +6,11 @@ // @file Author: micovery // @file Description: object loading -diag_log "oLoad.sqf loading ..."; if (!isServer) exitWith {}; +diag_log "oLoad.sqf loading ..."; call compile preprocessFileLineNumbers "persistence\lib\normalize_config.sqf"; +call compile preprocessFileLineNumbers "persistence\lib\hash.sqf"; call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf"; call compile preprocessFileLineNumbers "persistence\world\oFunctions.sqf"; diff --git a/persistence/world/vLoad.sqf b/persistence/world/vLoad.sqf index b9f6b552b..4347b9ff0 100644 --- a/persistence/world/vLoad.sqf +++ b/persistence/world/vLoad.sqf @@ -6,10 +6,11 @@ // @file Author: micovery // @file Description: vehicle loading -diag_log "vLoad.sqf loading ..."; if (!isServer) exitWith {}; +diag_log "vLoad.sqf loading ..."; call compile preprocessFileLineNumbers "persistence\lib\normalize_config.sqf"; +call compile preprocessFileLineNumbers "persistence\lib\hash.sqf"; call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf"; call compile preprocessFileLineNumbers "persistence\world\vFunctions.sqf"; diff --git a/server/default_config.sqf b/server/default_config.sqf index 46d279174..eea3e508c 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -59,6 +59,8 @@ A3W_warchestMoneySaving = 1; // Save warchest team money between server re A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts (0 = no, 1 = yes) A3W_objectLifetime = 5*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) A3W_cctvCameraSaving = 1; // Save cctv cameras between restarts (0 = no, 1 = yes) +A3W_mineSaving = 1; // Save mines between server restarts (0 = no, 1 = yes) +A3W_mineLifetime = 2*24; // Maximum lifetime in hours for mines across server restarts (0 = no time limit) A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) A3W_storageLifetime = 0; // Maximum lifetime in horus for player's private storage (0 = no time limit) diff --git a/server/functions/serverVars.sqf b/server/functions/serverVars.sqf index d645bd918..e965178a9 100644 --- a/server/functions/serverVars.sqf +++ b/server/functions/serverVars.sqf @@ -209,3 +209,12 @@ vehicleAddition2 = "Chemlight_yellow", "Chemlight_red" ]; + +minesList = +[ + "APERSTripMine_Wire_Ammo", + "APERSBoundingMine_Range_Ammo", + "APERSMine_Range_Ammo", + "ATMine_Range_Ammo", + "SLAMDirectionalMine_Wire_Ammo" +] From 37b079411dfd3b1b0fa2ec0f264ac64468c8fb6d Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 21 Dec 2014 23:08:52 -0800 Subject: [PATCH 313/544] Added mines to store radius block. --- client/functions/firstSpawn.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/functions/firstSpawn.sqf b/client/functions/firstSpawn.sqf index 1a31d8bc5..f5ef06b7a 100644 --- a/client/functions/firstSpawn.sqf +++ b/client/functions/firstSpawn.sqf @@ -125,7 +125,7 @@ if (["A3W_combatAbortDelay", 0] call getPublicVar > 0) then { _ammo = _this select 4; - if ({_ammo isKindOf _x} count ["PipeBombBase", "ClaymoreDirectionalMine_Remote_Ammo"] > 0) then + if ({_ammo isKindOf _x} count ["PipeBombBase", "ClaymoreDirectionalMine_Remote_Ammo", "APERSTripMine_Wire_Ammo", "APERSBoundingMine_Range_Ammo", "APERSMine_Range_Ammo", "SLAMDirectionalMine_Wire_Ammo", "ATMine_Range_Ammo"] > 0) then { _mag = _this select 5; _bomb = _this select 6; @@ -137,7 +137,7 @@ if (["A3W_combatAbortDelay", 0] call getPublicVar > 0) then deleteVehicle _bomb; player addMagazine _mag; playSound "FD_CP_Not_Clear_F"; - titleText [format ["You are not allowed to place remote explosives within %1m of a store.\nThe explosive has been re-added to your inventory.", _minDist], "PLAIN DOWN", 0.5]; + titleText [format ["You are not allowed to place explosives within %1m of a store.\nThe explosive has been re-added to your inventory.", _minDist], "PLAIN DOWN", 0.5]; }; } forEach entities "CAManBase"; }; From 2156660357822f99bca02e7756f2747a24aea67e Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 17 Jan 2015 01:33:37 -0800 Subject: [PATCH 314/544] Save/Restore in-flight UAVs same way as vanilla --- persistence/lib/shFunctions.sqf | 21 ++++++++++++- persistence/world/oFunctions.sqf | 2 +- persistence/world/vFunctions.sqf | 54 +++++++++++++++++++++++++------- 3 files changed, 63 insertions(+), 14 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index e1ce09306..eac7c1950 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -204,11 +204,16 @@ sh_isAPurchasedVehicle = { (isBOOLEAN(_purchased) && {_purchased}) }; -sh_isUAV = { +sh_isUAV_UGV = { ARGVX4(0,_obj,objNull,false); (getNumber(configFile >> "CfgVehicles" >> typeOf _obj >> "isUav") > 0) }; +sh_isUAV = { + ARGVX4(0,_obj,objNull,false); + (_obj isKindOf "UAV_02_base_F" || {_obj isKindOf "UAV_01_base_F"}) +}; + sh_getVehicleTurrets = { @@ -455,5 +460,19 @@ sh_fsm_invoke = { OR(_result,nil) }; +sh_isFlying = { + ARGV2(0,_arg); + + if (isOBJECT(_arg)) exitWith { + (!isTouchingGround _arg && (getPos _arg) select 2 > 50) + }; + + if (isPOS(_arg)) exitWith { + (_arg select 2 > 50) + }; + + false +}; + shFunctions_loaded = true; diag_log "shFunctions loading complete"; \ No newline at end of file diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index be49408e9..f2a1b6416 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -352,7 +352,7 @@ o_restoreObject = { }; //AddAi to vehicle - if ([_obj] call sh_isUAV) then { + if ([_obj] call sh_isUAV_UGV) then { createVehicleCrew _obj; }; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 3f8ffc9ab..189dfba98 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -99,12 +99,17 @@ v_restoreVehicle = { }; + def(_is_flying); + _is_flying = [_pos] call sh_isFlying; + def(_obj); if (isARRAY(_create_array)) then { _obj = createVehicle _create_array; } else { - _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; + def(_special); + _special = if (_is_flying) then {"FLY"} else {"CAN_COLLIDE"}; + _obj = createVehicle [_class, _pos, [], 0, _special]; }; if (!isOBJECT(_obj)) exitWith { @@ -175,11 +180,23 @@ v_restoreVehicle = { } forEach _textures; }; - //AddAi to vehicle - if ([_obj] call sh_isUAV) then { + //Add AI to vehicle + if ([_obj] call sh_isUAV_UGV) then { createVehicleCrew _obj; }; + if (_is_flying && {[_obj] call sh_isUAV}) then { + _obj flyInHeight (((_obj call fn_getPos3D) select 2) max 500); + [_obj] spawn { + ARGVX3(0,_obj,objNull); + waitUntil {!isNull driver _obj}; + def(_wp); + _wp = (group _obj) addWaypoint [getPosATL _obj, 0]; + _wp setWaypointType "MOVE"; + }; + }; + + //restore the stuff inside the vehicle clearWeaponCargoGlobal _obj; clearMagazineCargoGlobal _obj; @@ -448,6 +465,27 @@ v_setupVehicleSavedVariables = { }; +v_getSavePosition = { + ARGVX3(0,_obj,objNull); + + def(_pos); + _pos = ASLtoATL getPosWorld _obj; + _pos set [2, (_pos select 2) + 0.3]; + + if ([_obj] call sh_isUAV_UGV) exitWith {_pos}; //no special processing for UAVs + if (isTouchingGround _obj) exitWith {_pos}; //directly in contact with ground, or on a roof + if ((getPos _obj) select 2 < 0.5) exitWith {_pos}; //FIXME: not exactly sure what this one is for + if ((getPosASL _obj) select 2 < 0.5) exitWith {_pos}; //underwater + + //force the Z-axis if the vehicle is high above ground, or deep underwater (bring it to the surface) + _pos set [2, 0]; + if (surfaceIsWater _pos) then { + _pos = ASLToATL (_pos); + }; + + (_pos) +}; + v_addSaveVehicle = { ARGVX3(0,_list,[]); ARGVX3(1,_obj,objNull); @@ -518,15 +556,7 @@ v_addSaveVehicle = { _obj setVariable ["vehicle_key", _objName, true]; }; - _pos = ASLtoATL getPosWorld _obj; - _pos set [2, ((_pos select 2) + 0.3)]; - //force the Z-axis if the vehicle is high above ground, or deep underwater (bring it to the surface) - if (!(isTouchingGround _obj || {(getPos _obj) select 2 < 0.5 || (getPosASL _obj) select 2 < 0.5})) then { - _pos set [2, 0]; - if (surfaceIsWater _pos) then { - _pos = ASLToATL (_pos); - }; - }; + _pos = [_obj] call v_getSavePosition; def(_lock_state); _lock_state = locked _obj; From 3b371e3268d4a8f3f11c414ac0e93c3716d1f72d Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 17 Jan 2015 04:52:31 -0800 Subject: [PATCH 315/544] Show vehicle ID correctly when using extDB --- addons/vactions/va_functions.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf index d12fd533e..56888c312 100644 --- a/addons/vactions/va_functions.sqf +++ b/addons/vactions/va_functions.sqf @@ -170,7 +170,8 @@ va_get_tag = { _tag = _vehicle getVariable "A3W_vehicleID"; //iniDB, and extDB if (isSTRING(_tag)) exitWith {_tag}; - + if (not(isNil "_tag")) exitWith {str _tag}; + "" }; From cc5cbcb41abad3bdf200af5f6f995681ff45c1c4 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 17 Jan 2015 01:33:37 -0800 Subject: [PATCH 316/544] Save/Restore in-flight UAVs same way as vanilla Conflicts: persistence/lib/shFunctions.sqf persistence/world/vFunctions.sqf --- persistence/lib/shFunctions.sqf | 26 +++++++++++-- persistence/world/oFunctions.sqf | 2 +- persistence/world/vFunctions.sqf | 64 +++++++++++++++++++++++++------- 3 files changed, 73 insertions(+), 19 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 52c0db41d..23feedcd0 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -1,9 +1,9 @@ -if (!isNil "shFunctions_loased") exitWith {}; +if (!isNil "shFunctions_loaded") exitWith {}; diag_log "shFunctions loading ..."; #include "macro.h" -call compile preProcessFileLineNumbers "persistence\lib\normalize_config.sqf"; +call compile preprocessFileLineNumbers "persistence\lib\normalize_config.sqf"; sh_isSaveableVehicle = { ARGVX4(0,_obj,objNull,false); @@ -101,11 +101,15 @@ sh_isAPurchasedVehicle = { (isBOOLEAN(_purchased) && {_purchased}) }; -sh_isUAV = { +sh_isUAV_UGV = { ARGVX4(0,_obj,objNull,false); (getNumber(configFile >> "CfgVehicles" >> typeOf _obj >> "isUav") > 0) }; +sh_isUAV = { + ARGVX4(0,_obj,objNull,false); + (_obj isKindOf "UAV_02_base_F" || {_obj isKindOf "UAV_01_base_F"}) +}; sh_getVehicleTurrets = { @@ -253,5 +257,19 @@ sh_fsm_invoke = { OR(_result,nil) }; -shFunctions_loased = true; +sh_isFlying = { + ARGV2(0,_arg); + + if (isOBJECT(_arg)) exitWith { + (!isTouchingGround _arg && (getPos _arg) select 2 > 50) + }; + + if (isPOS(_arg)) exitWith { + (_arg select 2 > 50) + }; + + false +}; + +shFunctions_loaded = true; diag_log "shFunctions loading complete"; \ No newline at end of file diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 2667a6980..d934976f0 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -256,7 +256,7 @@ o_restoreObject = { }; //AddAi to vehicle - if ([_obj] call sh_isUAV) then { + if ([_obj] call sh_isUAV_UGV) then { createVehicleCrew _obj; }; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 0ea1c8a27..efd47971f 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -2,7 +2,7 @@ diag_log "vFunctions.sqf loading ..."; #include "macro.h" -call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; +call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf"; v_restoreVehicle = {_this spawn { @@ -91,12 +91,23 @@ v_restoreVehicle = {_this spawn { }; - def(_obj); - _obj = createVehicle [_class, _pos, [], 0, "CAN_COLLIDE"]; + def(_is_flying); + _is_flying = [_pos] call sh_isFlying; + + def(_special); + _special = if (_is_flying) then {"FLY"} else {"CAN_COLLIDE"}; + + def(_obj); + _obj = createVehicle [_class, _pos, [], 0, _special]; + if (!isOBJECT(_obj)) exitWith { diag_log format["Could not create vehicle of class: %1", _class]; }; + _obj allowDamage false; + [_obj] spawn { ARGVX3(0,_obj,objNull); sleep 3; _obj allowDamage true;}; //hack so that vehicle does not take damage while spawning + + [_obj, false] call vehicleSetup; _obj setVariable ["vehicle_key", _vehicle_key, true]; @@ -152,11 +163,23 @@ v_restoreVehicle = {_this spawn { } forEach _textures; }; - //AddAi to vehicle - if ([_obj] call sh_isUAV) then { + //Add AI to vehicle + if ([_obj] call sh_isUAV_UGV) then { createVehicleCrew _obj; }; + if (_is_flying && {[_obj] call sh_isUAV}) then { + _obj flyInHeight (((_obj call fn_getPos3D) select 2) max 500); + [_obj] spawn { + ARGVX3(0,_obj,objNull); + waitUntil {!isNull driver _obj}; + def(_wp); + _wp = (group _obj) addWaypoint [getPosATL _obj, 0]; + _wp setWaypointType "MOVE"; + }; + }; + + //restore the stuff inside the vehicle clearWeaponCargoGlobal _obj; clearMagazineCargoGlobal _obj; @@ -424,6 +447,27 @@ v_setupVehicleSavedVariables = { }; +v_getSavePosition = { + ARGVX3(0,_obj,objNull); + + def(_pos); + _pos = ASLtoATL getPosWorld _obj; + _pos set [2, (_pos select 2) + 0.3]; + + if ([_obj] call sh_isUAV_UGV) exitWith {_pos}; //no special processing for UAVs + if (isTouchingGround _obj) exitWith {_pos}; //directly in contact with ground, or on a roof + if ((getPos _obj) select 2 < 0.5) exitWith {_pos}; //FIXME: not exactly sure what this one is for + if ((getPosASL _obj) select 2 < 0.5) exitWith {_pos}; //underwater + + //force the Z-axis if the vehicle is high above ground, or deep underwater (bring it to the surface) + _pos set [2, 0]; + if (surfaceIsWater _pos) then { + _pos = ASLToATL (_pos); + }; + + (_pos) +}; + v_addSaveVehicle = { ARGVX3(0,_list,[]); ARGVX3(1,_obj,objNull); @@ -493,15 +537,7 @@ v_addSaveVehicle = { _obj setVariable ["vehicle_key", _objName, true]; }; - _pos = ASLtoATL getPosWorld _obj; - _pos set [2, ((_pos select 2) + 0.3)]; - //force the Z-axis if the vehicle is high above ground, or deep underwater (bring it to the surface) - if (!(isTouchingGround _obj || {(getPos _obj) select 2 < 0.5 || (getPosASL _obj) select 2 < 0.5})) then { - _pos set [2, 0]; - if (surfaceIsWater _pos) then { - _pos = ASLToATL (_pos); - }; - }; + _pos = [_obj] call v_getSavePosition; _list pushBack [_objName, ([ ["Class", _class], From cb342641d827e7683e28d3fd0d8991f037560b13 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 17 Jan 2015 16:53:28 -0800 Subject: [PATCH 317/544] Add misisng config PDB_VehicleFileID Vehicles were set to use the PDB_ObjectFileID before. --- persistence/fn_sock_custom.sqf | 6 +++--- persistence/players/sFunctions.sqf | 2 +- persistence/world/vLoad.sqf | 2 +- server/default_config.sqf | 3 ++- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/persistence/fn_sock_custom.sqf b/persistence/fn_sock_custom.sqf index eab8ad721..1a14a3d6f 100644 --- a/persistence/fn_sock_custom.sqf +++ b/persistence/fn_sock_custom.sqf @@ -20,6 +20,7 @@ if (!isServer) exitWith {}; PDB_ServerID = if (isNil "PDB_ServerID") then {"A3W_"} else {PDB_ServerID}; PDB_PlayerFileID = if (isNil "PDB_PlayerFileID") then {PDB_ServerID} else {PDB_PlayerFileID}; PDB_ObjectFileID = if (isNil "PDB_ObjectFileID") then {PDB_ServerID} else {PDB_ObjectFileID}; +PDB_VehicleFileID = if (isNil "PDB_VehicleFileID") then {PDB_ServerID} else {PDB_VehicleFileID}; PDB_MessagesFileID = if (isNil "PDB_MessagesFileID") then {PDB_ServerID} else {PDB_MessagesFileID}; PDB_AdminLogFileID = if (isNil "PDB_AdminLogFileID") then {PDB_ServerID} else {PDB_AdminLogFileID}; PDB_HackerLogFileID = if (isNil "PDB_HackerLogFileID") then {PDB_ServerID} else {PDB_HackerLogFileID}; @@ -29,6 +30,7 @@ PDB_PlayersListFileID = if (isNil "PDB_PlayersListFileID") then {PDB_ServerID} e PDB_playerFileName = compileFinal ("format ['%1%2', '" + PDB_PlayerFileID + "', _this]"); PDB_objectFileName = compileFinal ("format ['%1%2', '" + PDB_ObjectFileID + "', _this]"); +PDB_vehicleFileName = compileFinal ("format ['%1%2', '" + PDB_VehicleFileID + "', _this]"); PDB_messagesFileName = compileFinal ("format ['%1%2', '" + PDB_MessagesFileID + "', _this]"); PDB_adminLogFileName = compileFinal ("format ['%1%2', '" + PDB_AdminLogFileID + "', _this]"); PDB_hackerLogFileName = compileFinal ("format ['%1%2', '" + PDB_HackerLogFileID + "', _this]"); @@ -37,15 +39,13 @@ PDB_playersListFileName = compileFinal ("format ['%1%2', '" + PDB_PlayersListFil diag_log format["[INFO] config: PDB_PlayerFileID = %1", PDB_PlayerFileID]; diag_log format["[INFO] config: PDB_ObjectFileID = %1", PDB_ObjectFileID]; +diag_log format["[INFO] config: PDB_VehicleFileID = %1", PDB_VehicleFileID]; diag_log format["[INFO] config: PDB_MessagesFileID = %1", PDB_MessagesFileID]; diag_log format["[INFO] config: PDB_AdminLogFileID = %1", PDB_AdminLogFileID]; diag_log format["[INFO] config: PDB_HackerLogFileID = %1", PDB_HackerLogFileID]; diag_log format["[INFO] config: PDB_PlayersListFileID = %1", PDB_PlayersListFileID]; -PDB_databaseNameCompiler = PDB_objectFileName; - - call compile preProcessFileLineNumbers "persistence\sock\inidb_adapter.sqf"; publicVariable "PDB_PlayerFileID"; diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 87979ae6c..4f493ef56 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -31,7 +31,7 @@ s_processRestartMessage = { diag_log format["Saving all vehicles on the map"]; //save all vehilce stats - init(_vScope, "Vehicles" call PDB_objectFileName); + init(_vScope, "Vehicles" call PDB_vehicleFileName); [[_vScope], v_saveAllVechiles] call sh_fsm_invoke; diff --git a/persistence/world/vLoad.sqf b/persistence/world/vLoad.sqf index fd7131fce..97c28fd31 100644 --- a/persistence/world/vLoad.sqf +++ b/persistence/world/vLoad.sqf @@ -14,7 +14,7 @@ call compile preprocessFileLineNumbers "persistence\world\vFunctions.sqf"; #include "macro.h" -init(_vScope, "Vehicles" call PDB_objectFileName); +init(_vScope, "Vehicles" call PDB_vehicleFileName); def(_vIds); _vIds = [_vScope] call v_loadVehicles; diff --git a/server/default_config.sqf b/server/default_config.sqf index bc8fecad8..8cefa05cd 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -62,10 +62,11 @@ A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which PDB_PlayerFileID = "A3W_"; // Player savefile prefix (change this in case you run multiple servers from the same folder) PDB_ObjectFileID = "A3W_"; // Object savefile prefix (change this in case you run multiple servers from the same folder) +PDB_VehicleFileID = "A3W_"; // Vehicle savefile prefix (change this in case you run multiple servers from the same folder) PDB_MessagesFileID = "A3W_"; // Messages savefile prefix (change this in case you run multiple servers from the same folder) PDB_AdminLogFileID = "A3W_"; // Admin log savefile prefix (change this in case you run multiple servers from the same folder) PDB_HackerLogFileID = "A3W_"; // Hacker log savefile prefix (change this in case you run multiple servers from the same folder) -PDB_PlayersListFileID = "A3W_"; // PlayerList savefile prefix (change this in case you run multiple servers from the same folder) +PDB_PlayersListFileID = "A3W_"; // PlayerList savefile prefix (change this in case you run multiple servers from the same folder) A3W_vehicle_saveInterval = 300; // Number of seconds between vehicle saves From 71c8677354506d31f5983c36f68857f3cf69fe77 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 18 Jan 2015 00:39:13 -0800 Subject: [PATCH 318/544] Set ownerUID for QuadRotor UAVs --- client/functions/firstSpawn.sqf | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/client/functions/firstSpawn.sqf b/client/functions/firstSpawn.sqf index 1a31d8bc5..f2b85138a 100644 --- a/client/functions/firstSpawn.sqf +++ b/client/functions/firstSpawn.sqf @@ -88,6 +88,24 @@ player addEventHandler ["InventoryClosed", _obj setVariable ["inventoryIsOpen", nil]; }]; + +//handler for UAV assembly +player addEventHandler ["WeaponAssembled", { + private["_player", "_vehicle"]; + _player = _this select 0; + _vehicle = _this select 1; + + if (_player != player) exitWith {}; + if (!(_vehicle isKindOf "UAV_01_base_F")) exitWith {}; + + private["_uid"]; + _uid = getPlayerUID _player; + if (_uid == "") exitWith {}; + + _vehicle setVariable ["ownerUID", _uid, true] +}]; + + // Manual GetIn/GetOut check because BIS is too lazy to implement GetInMan/GetOutMan, among a LOT of other things [] spawn { From 843ca2d6183b5d4f0b7d0ea32f930578d5dee6be Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 18 Jan 2015 02:10:57 -0800 Subject: [PATCH 319/544] Save QuadRotor UAVs --- client/functions/firstSpawn.sqf | 5 ++++- persistence/lib/shFunctions.sqf | 21 +++++++++++++++++---- persistence/world/vFunctions.sqf | 16 ++++++++++++++-- 3 files changed, 35 insertions(+), 7 deletions(-) diff --git a/client/functions/firstSpawn.sqf b/client/functions/firstSpawn.sqf index f2b85138a..1621bf619 100644 --- a/client/functions/firstSpawn.sqf +++ b/client/functions/firstSpawn.sqf @@ -102,7 +102,10 @@ player addEventHandler ["WeaponAssembled", { _uid = getPlayerUID _player; if (_uid == "") exitWith {}; - _vehicle setVariable ["ownerUID", _uid, true] + _vehicle setVariable ["ownerUID", _uid, true]; + _vehicle setVariable ["A3W_purchasedVehicle", true, true]; + trackVehicle = _vehicle; + publicVariableServer "trackVehicle"; }]; diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 23feedcd0..5519faeb1 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -107,8 +107,19 @@ sh_isUAV_UGV = { }; sh_isUAV = { - ARGVX4(0,_obj,objNull,false); - (_obj isKindOf "UAV_02_base_F" || {_obj isKindOf "UAV_01_base_F"}) + ARGV2(0,_arg); + + def(_class); + if (isOBJECT(_arg)) then { + _class = typeOf _arg; + } + else { if (isSTRING(_arg)) then { + _class = _arg; + }}; + + if (isNil "_class") exitWith {false}; + + (_class isKindOf "UAV_02_base_F" || {_class isKindOf "UAV_01_base_F"}) }; @@ -260,12 +271,14 @@ sh_fsm_invoke = { sh_isFlying = { ARGV2(0,_arg); + init(_flying_height,20); + if (isOBJECT(_arg)) exitWith { - (!isTouchingGround _arg && (getPos _arg) select 2 > 50) + (!isTouchingGround _arg && (getPos _arg) select 2 > _flying_height) }; if (isPOS(_arg)) exitWith { - (_arg select 2 > 50) + (_arg select 2 > _flying_height) }; false diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index efd47971f..21539257a 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -245,6 +245,10 @@ v_trackVehicle = { tracked_vehicles_list pushBack _object; }; + +//event handlers for object tracking, and untracking +"trackVehicle" addPublicVariableEventHandler { [_this select 1] call v_trackVehicle;}; + v_untrackVehicle = { private["_index","_object"]; _object = _this select 0; @@ -454,8 +458,16 @@ v_getSavePosition = { _pos = ASLtoATL getPosWorld _obj; _pos set [2, (_pos select 2) + 0.3]; - if ([_obj] call sh_isUAV_UGV) exitWith {_pos}; //no special processing for UAVs - if (isTouchingGround _obj) exitWith {_pos}; //directly in contact with ground, or on a roof + def(_on_ground); + _on_ground = isTouchingGround _obj; + + def(_flying); + _flying = [_obj] call sh_isFlying; + + //diag_log format["_flying = %1, _on_ground = %2", _flying, _on_ground]; + + if ([_obj] call sh_isUAV && {_flying}) exitWith {_pos}; //save flying UAVs as-is + if (_on_ground) exitWith {_pos}; //directly in contact with ground, or on a roof if ((getPos _obj) select 2 < 0.5) exitWith {_pos}; //FIXME: not exactly sure what this one is for if ((getPosASL _obj) select 2 < 0.5) exitWith {_pos}; //underwater From 6eb8f50ea32dcf9bda38514e5795c675bdde919e Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 18 Jan 2015 11:06:42 -0800 Subject: [PATCH 320/544] Set owner name on QuadRotor --- client/functions/firstSpawn.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/client/functions/firstSpawn.sqf b/client/functions/firstSpawn.sqf index 1621bf619..387ff40c2 100644 --- a/client/functions/firstSpawn.sqf +++ b/client/functions/firstSpawn.sqf @@ -104,6 +104,7 @@ player addEventHandler ["WeaponAssembled", { _vehicle setVariable ["ownerUID", _uid, true]; _vehicle setVariable ["A3W_purchasedVehicle", true, true]; + _vehicle setVariable ["ownerN", name _player, true]; trackVehicle = _vehicle; publicVariableServer "trackVehicle"; }]; From 61ac2273570bd437aafb250a469cbc0ac5dc42ef Mon Sep 17 00:00:00 2001 From: Ivan Date: Tue, 20 Jan 2015 11:36:43 +0300 Subject: [PATCH 321/544] Don't remove corpses for alt+f4 while bleeding Conflicts: persistence/lib/shFunctions.sqf --- persistence/lib/shFunctions.sqf | 35 ++++++++++++++++++++ persistence/players/sFunctions.sqf | 1 + server/functions/fn_onPlayerDisconnected.sqf | 7 +++- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 5519faeb1..d245f2902 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -284,5 +284,40 @@ sh_isFlying = { false }; +sh_drop_player_inventory = { + //Taken from onKilled. Drop player items and money. + private["_player", "_money"]; + _player = _this; + _money = _player getVariable ["cmoney", 0]; + _player setVariable ["cmoney", 0, true]; + + // wait until corpse stops moving before dropping stuff + waitUntil {(getPos _player) select 2 < 1 && vectorMagnitude velocity _player < 1}; + + // Drop money + private["_m"]; + if (_money > 0) then + { + _m = createVehicle ["Land_Money_F", getPosATL _player, [], 0.5, "CAN_COLLIDE"]; + _m setDir random 360; + _m setVariable ["cmoney", _money, true]; + _m setVariable ["owner", "world", true]; + }; + + // Drop items + private["_inventory", "_id", "_qty", "_type", "_object"]; + _inventory = _player getVariable ["inventory",[]]; + { + _id = _x select 0; + _qty = _x select 1; + _type = _x select 4; + for "_i" from 1 to _qty do { + _obj = createVehicle [_type, getPosATL _player, [], 0.5, "CAN_COLLIDE"]; + _obj setDir getDir _player; + _obj setVariable ["mf_item_id", _id, true]; + }; + } forEach _inventory; +}; + shFunctions_loaded = true; diag_log "shFunctions loading complete"; \ No newline at end of file diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 4f493ef56..44330c841 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -293,6 +293,7 @@ p_addPlayerSave = { diag_log format["Saving %1(%2): unconscious = %3, respawning = %4, alive = %5", _name,_uid, _unconscious, _respawn_active, _alive]; if (_reset_save) exitWith { + _player setVariable ["stats_reset",true]; diag_log format["Resetting %1(%2) stats", _name, _uid]; _request pushBack ["PlayerSave",nil]; _request pushBack ["PlayerSave_Stratis",nil]; diff --git a/server/functions/fn_onPlayerDisconnected.sqf b/server/functions/fn_onPlayerDisconnected.sqf index 0aa60f27a..91322b578 100644 --- a/server/functions/fn_onPlayerDisconnected.sqf +++ b/server/functions/fn_onPlayerDisconnected.sqf @@ -14,7 +14,12 @@ _unit = _this select 3; diag_log format ["Player disconnected: %1 (%2)", _name, _uid]; [_unit, _uid, _name] call p_disconnectSave; -deleteVehicle _unit; +if (_unit getVariable ["stats_reset",false]) then { + _unit spawn sh_drop_player_inventory; + _unit setDamage 1; +}else{ + deleteVehicle _unit; +}; _resend = false; From 040e86f34b3c2bd42c12586881d966f1416ff95f Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 18 Jan 2015 23:42:36 -0800 Subject: [PATCH 322/544] Add boomearang hud elements --- addons/boomerang/hud.hpp | 55 ++++++++++++++++++++++ addons/boomerang/hud_constants.h | 14 ++++++ addons/boomerang/images/boomerang.paa | Bin 0 -> 117781 bytes addons/boomerang/images/boomerang_led.paa | Bin 0 -> 491 bytes description.ext | 1 + 5 files changed, 70 insertions(+) create mode 100644 addons/boomerang/hud.hpp create mode 100644 addons/boomerang/hud_constants.h create mode 100644 addons/boomerang/images/boomerang.paa create mode 100644 addons/boomerang/images/boomerang_led.paa diff --git a/addons/boomerang/hud.hpp b/addons/boomerang/hud.hpp new file mode 100644 index 000000000..b805c2b83 --- /dev/null +++ b/addons/boomerang/hud.hpp @@ -0,0 +1,55 @@ +#inclide "hud_constants.h" + +#define led(index) \ + class boomerang_hud_led ## index: gui_RscPictureKeepAspect { \ + idc = boomerang_hud_led ## index ## _idc; \ + x = -10; y = -10; \ + w = 0.1; h = 0.1; \ + } + + class boomerang_hud { + idd = boomerang_hud_idd; + movingEnable = 1; + enableSimulation = 0; + enableDisplay = 0; + fadein = 0; + duration = 1e+011; + fadeout = 0; + name = "boomerang_hud"; + onLoad = "uiNamespace setVariable ['boomerang_hud',_this select 0]"; + objects[] = {}; + controls[] = { + boomerang_hud_background, + boomerang_hud_led1, + boomerang_hud_led2, + boomerang_hud_led3, + boomerang_hud_led4, + boomerang_hud_led5, + boomerang_hud_led6, + boomerang_hud_led7, + boomerang_hud_led8, + boomerang_hud_led9, + boomerang_hud_led10, + boomerang_hud_led11, + boomerang_hud_led12 + }; + + led(1); + led(2); + led(3); + led(4); + led(5); + led(6); + led(7); + led(8); + led(9); + led(10); + led(11); + led(12); + + class boomerang_hud_background: gui_RscPictureKeepAspect { + idc = boomerang_hud_background_idc; + x = -10; y = -10; + w = 0.1; h = 0.1; + }; +}; \ No newline at end of file diff --git a/addons/boomerang/hud_constants.h b/addons/boomerang/hud_constants.h new file mode 100644 index 000000000..89b1aa1d2 --- /dev/null +++ b/addons/boomerang/hud_constants.h @@ -0,0 +1,14 @@ +#define boomerang_hud_idd_idc 3000 +#define boomerang_hud_led1_idc 3001 +#define boomerang_hud_led2_idc 3002 +#define boomerang_hud_led3_idc 3003 +#define boomerang_hud_led4_idc 3004 +#define boomerang_hud_led5_idc 3005 +#define boomerang_hud_led6_idc 3006 +#define boomerang_hud_led7_idc 3007 +#define boomerang_hud_led8_idc 3008 +#define boomerang_hud_led9_idc 3009 +#define boomerang_hud_led10_idc 3010 +#define boomerang_hud_led11_idc 3011 +#define boomerang_hud_led12_idc 3012 +#define boomerang_hud_background_idc 3013 \ No newline at end of file diff --git a/addons/boomerang/images/boomerang.paa b/addons/boomerang/images/boomerang.paa new file mode 100644 index 0000000000000000000000000000000000000000..500dcab82f6d15d2e371f1a2459269a2cbb5b75a GIT binary patch literal 117781 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 SZt4ydzCGv`ovnrbLH;*!glr)I literal 0 HcmV?d00001 diff --git a/addons/boomerang/images/boomerang_led.paa b/addons/boomerang/images/boomerang_led.paa new file mode 100644 index 0000000000000000000000000000000000000000..22c6c374b7a9fd30b6a8122a9dd5f7ec56044c8a GIT binary patch literal 491 zcmZSm@9ypx;_M#g$il$D;B#Va3z#3_=nLZi2Lce^-O&EEmYZUEwT zpx`->1X)0UK>%#*43KW7Cnu*aw+y{%%Io=j8}Boq4Pzn#0z99e%l~&Q|9#If%^+q*PFA@3V;So-7F0yQ z_^bD^PFt~K-aXIf{k6B+ZEvqWcFZy$A|?#zo(U>IC&j*Rv)p>MHrey}fBt9Na&KoY zYqMnF`Wp)5iys2=)#e?yY^Vqig@u)-SE}KYpTGZcFmNz9FfiEmn7#V* Date: Mon, 19 Jan 2015 14:28:14 -0800 Subject: [PATCH 323/544] Add boomerang core functions --- addons/boomerang/config.sqf | 0 addons/boomerang/functions.sqf | 223 ++++++++++++++++++++++++++++ addons/boomerang/hud.hpp | 59 ++++---- addons/boomerang/hud_constants.h | 27 ++-- addons/boomerang/sound_constants.h | 8 + addons/boomerang/sounds.hpp | 16 ++ addons/boomerang/sounds/1.ogg | Bin 0 -> 3445 bytes addons/boomerang/sounds/10.ogg | Bin 0 -> 3357 bytes addons/boomerang/sounds/11.ogg | Bin 0 -> 3584 bytes addons/boomerang/sounds/12.ogg | Bin 0 -> 3394 bytes addons/boomerang/sounds/2.ogg | Bin 0 -> 3355 bytes addons/boomerang/sounds/3.ogg | Bin 0 -> 3389 bytes addons/boomerang/sounds/4.ogg | Bin 0 -> 3377 bytes addons/boomerang/sounds/5.ogg | Bin 0 -> 3492 bytes addons/boomerang/sounds/6.ogg | Bin 0 -> 3549 bytes addons/boomerang/sounds/7.ogg | Bin 0 -> 3500 bytes addons/boomerang/sounds/8.ogg | Bin 0 -> 3360 bytes addons/boomerang/sounds/9.ogg | Bin 0 -> 3462 bytes addons/boomerang/sounds/contact.ogg | Bin 0 -> 3295 bytes description.ext | 6 + 20 files changed, 292 insertions(+), 47 deletions(-) create mode 100644 addons/boomerang/config.sqf create mode 100644 addons/boomerang/functions.sqf create mode 100644 addons/boomerang/sound_constants.h create mode 100644 addons/boomerang/sounds.hpp create mode 100644 addons/boomerang/sounds/1.ogg create mode 100644 addons/boomerang/sounds/10.ogg create mode 100644 addons/boomerang/sounds/11.ogg create mode 100644 addons/boomerang/sounds/12.ogg create mode 100644 addons/boomerang/sounds/2.ogg create mode 100644 addons/boomerang/sounds/3.ogg create mode 100644 addons/boomerang/sounds/4.ogg create mode 100644 addons/boomerang/sounds/5.ogg create mode 100644 addons/boomerang/sounds/6.ogg create mode 100644 addons/boomerang/sounds/7.ogg create mode 100644 addons/boomerang/sounds/8.ogg create mode 100644 addons/boomerang/sounds/9.ogg create mode 100644 addons/boomerang/sounds/contact.ogg diff --git a/addons/boomerang/config.sqf b/addons/boomerang/config.sqf new file mode 100644 index 000000000..e69de29bb diff --git a/addons/boomerang/functions.sqf b/addons/boomerang/functions.sqf new file mode 100644 index 000000000..04b7c45fe --- /dev/null +++ b/addons/boomerang/functions.sqf @@ -0,0 +1,223 @@ +if (!isNil "boomerang_functions_defined") exitWith {}; + +#include "macro.h" + + + +diag_log format["Loading boomerang functions ..."]; + +call compile preprocessFileLineNumbers "addons\parking\config.sqf"; + +boomerand_hud_scale = 1; //scale for how big to show the boomerang device + +boomerang_hud_remove = { + 11 cuttext ["","plain"]; + boomerang_hud_active = nil; +}; + +boomerang_led_set_state = { + ARGVX3(0,_index,0); + ARGVX3(1,_state,false); + + if (_index < 1 || {_index > 12}) exitWith {}; + + def(_display); + def(_idc); + def(_led); + + _display = uiNamespace getVariable "boomerang_hud"; + _idc = boomerang_hud_led_idc_base + _index; + _led = _display displayCtrl _idc; + _led ctrlShow _state; +}; + +boomerang_voice = "Male12"; +boomerang_voice_tone = "Normal"; //Stealth, Normal, Combat +boomerang_sounds_path = ("a3\dubbing_radio_f\data\" + boomerang_voice + "\RadioProtocolENG\" + boomerang_voice_tone); +boomerang_contact_sound = (boomerang_sounds_path + "\150_Reporting\EnemyDetected_2.ogg"); + +#define POS_ASL (if(surfaceIsWater (getPos player)) then {positionCameraToWorld [0,0,0]} else {ATLtoASL(positionCameraToWorld [0,0,0])}) + +boomerang_led_sound = { _this spawn { + ARGVX3(0,_index,0); + playSound "contact"; + uiSleep 1; + playSound ("at_" + str(_index)); + uiSleep 1; +}}; + +boomerang_alert_at = { + disableSerialization; + ARGVX3(0,_direction,0); + [_direction] call boomerang_led_sound; + [_direction, true] call boomerang_led_set_state; + uiSleep 2; + [_direction, false] call boomerang_led_set_state; +}; + +//pre-computed set of relative coordinates +boomerang_led_coord_map = [ + [0.03,-0.07,0], //1 o'clock + [0.0519615,-0.042,0], //2 o'clock + [0.06,0,0], //3 o'oclock + [0.0519615,0.042,0], //4 o'oclock + [0.03,0.07,0], //5 o'oclock + [0,0.083,0], //6 o'clock + [-0.03,0.07,0], //7 o'clock + [-0.0519615,0.042,0], //8 o'clock + [-0.06,0,0], //9 o'clock + [-0.0519615,-0.042,0], //10 o'clock + [-0.03,-0.07,0], //11 o'clock + [0,-0.083,0] //12 o'clock +]; + +boomerang_led_setup = { + disableSerialization; + ARGVX3(0,_index,0); + if (_index < 1 || {_index > 12}) exitWith {}; + + def(_display); + def(_idc); + def(_led); + + _display = uiNamespace getVariable "boomerang_hud"; + _idc = boomerang_hud_led_idc_base + _index; + _led = _display displayCtrl _idc; + + private["_x","_y", "_w", "_h"]; + _w = 0.025 * boomerand_hud_scale; + _h = 0.025 * boomerand_hud_scale; + _x = safezoneX + _w * 8.6; + _y = safezoneY + _h * 13.78; + + def(_vec); + _vec = boomerang_led_coord_map select (_index -1); + _vec = [(_vec select 0) * boomerand_hud_scale, (_vec select 1) * boomerand_hud_scale, 0]; + + _led ctrlSetPosition [(_x + (_vec select 0)),(_y + (_vec select 1)),_w,_h]; + _led ctrlSetText "addons\boomerang\images\boomerang_led.paa"; + _led ctrlShow false; + _led ctrlCommit 0; +}; + +boomerand_test_leds = { + disableSerialization; + { + for "_i" from 1 to 12 do { + [_i, _x] call boomerang_led_set_state; + uiSleep 0.01; + }; + } forEach [false, true, false]; +}; + +boomerang_hud_setup = { + disableSerialization; + 11 cutRsc ["boomerang_hud","PLAIN",1e+011,false]; + + def(_display); + _display = uiNamespace getVariable "boomerang_hud"; + + def(_boomerang_background); + _boomerang_background = _display displayCtrl boomerang_hud_background_idc; + + + private["_x","_y", "_w", "_h"]; + _w = 0.6 * boomerand_hud_scale; + _h = 0.6 * boomerand_hud_scale; + _x = safezoneX; + _y = safezoneY; + _boomerang_background ctrlSetPosition [_x,_y,_w,_h]; + _boomerang_background ctrlSetText "addons\boomerang\images\boomerang.paa"; + _boomerang_background ctrlCommit 0; + + for "_i" from 1 to 12 do { + [_i] call boomerang_led_setup; + }; + + //for shits and giggles + [] spawn boomerand_test_leds; + + boomerang_hud_active = true; + + [_boomerang_background] spawn { + ARGVX2(0,_ctrl); + waitUntil {sleep 1; (not (alive player) || { ctrlShown _ctrl})}; + [] call boomerang_hud_remove; + }; +}; + +vector_angle2 = { + ARGVX3(0,_obj,objNull); + ARGVX3(1,_v2,[]); + def(_local); + _local = _obj worldToModel _v2; + (_local select 0) atan2 ( _local select 1); +}; + + +boomerang_get_clock_pos = { + ARGVX3(0,_unit,objNull); + ARGVX3(1,_firer,objNull); + + def(_angle); + _angle = [_unit, getPos _firer] call vector_angle2; + _angle = ((_angle) + 360) % 360; + + def(_clock_pos); + _clock_pos = round((_angle / 360) * 12); + _clock_pos = if (_clock_pos == 0) then {12} else {_clock_pos}; + + (_clock_pos) +}; + + +boomerang_fired_near_handler = { + if (isNil "boomerang_hud_active") exitWith {}; + ARGVX3(0,_unit,objNull); + ARGVX3(1,_firer,objNull); + ARGVX3(2,_distance,0); + ARGVX3(3,_weapon,""); + ARGVX3(4,_muzzle,""); + ARGVX3(5,_mode,""); + ARGVX3(6,_ammo,""); + + if (_unit == _firer) exitWith {}; + + def(_clock_pos); + _clock_pos = [_unit, _firer] call boomerang_get_clock_pos; + + + init(_exit,false); + if (!(isNil "boomerang_last_event_pos" || {isNil "boomerang_last_event_time"})) then { + if (boomerang_last_event_pos == _clock_pos && (diag_tickTime - boomerang_last_event_time) < 3) then { + _exit = true; + }; + }; + + if (_exit) exitWith {}; + + boomerang_last_event_pos = _clock_pos; + boomerang_last_event_time = diag_tickTime; + + [_clock_pos] spawn boomerang_alert_at; +}; + +boomerang_add_events = { + player addEventHandler ["FiredNear", {_this call boomerang_fired_near_handler}]; +}; + + + +boomerang_load_hud = { + [] call boomerang_hud_remove; + [] call boomerang_hud_setup; +}; + + +[] call boomerang_add_events; + +boomerang_functions_defined = true; + + + +diag_log format["Loading boomerang functions complete"]; \ No newline at end of file diff --git a/addons/boomerang/hud.hpp b/addons/boomerang/hud.hpp index b805c2b83..6814c4dd8 100644 --- a/addons/boomerang/hud.hpp +++ b/addons/boomerang/hud.hpp @@ -1,13 +1,6 @@ -#inclide "hud_constants.h" +#include "hud_constants.h" -#define led(index) \ - class boomerang_hud_led ## index: gui_RscPictureKeepAspect { \ - idc = boomerang_hud_led ## index ## _idc; \ - x = -10; y = -10; \ - w = 0.1; h = 0.1; \ - } - - class boomerang_hud { +class boomerang_hud { idd = boomerang_hud_idd; movingEnable = 1; enableSimulation = 0; @@ -20,32 +13,32 @@ objects[] = {}; controls[] = { boomerang_hud_background, - boomerang_hud_led1, - boomerang_hud_led2, - boomerang_hud_led3, - boomerang_hud_led4, - boomerang_hud_led5, - boomerang_hud_led6, - boomerang_hud_led7, - boomerang_hud_led8, - boomerang_hud_led9, - boomerang_hud_led10, - boomerang_hud_led11, - boomerang_hud_led12 + boomerang_hud_1_led, + boomerang_hud_2_led, + boomerang_hud_3_led, + boomerang_hud_4_led, + boomerang_hud_5_led, + boomerang_hud_6_led, + boomerang_hud_7_led, + boomerang_hud_8_led, + boomerang_hud_9_led, + boomerang_hud_10_led, + boomerang_hud_11_led, + boomerang_hud_12_led }; - led(1); - led(2); - led(3); - led(4); - led(5); - led(6); - led(7); - led(8); - led(9); - led(10); - led(11); - led(12); + LED(1); + LED(2); + LED(3); + LED(4); + LED(5); + LED(6); + LED(7); + LED(8); + LED(9); + LED(10); + LED(11); + LED(12); class boomerang_hud_background: gui_RscPictureKeepAspect { idc = boomerang_hud_background_idc; diff --git a/addons/boomerang/hud_constants.h b/addons/boomerang/hud_constants.h index 89b1aa1d2..0dded906a 100644 --- a/addons/boomerang/hud_constants.h +++ b/addons/boomerang/hud_constants.h @@ -1,14 +1,13 @@ -#define boomerang_hud_idd_idc 3000 -#define boomerang_hud_led1_idc 3001 -#define boomerang_hud_led2_idc 3002 -#define boomerang_hud_led3_idc 3003 -#define boomerang_hud_led4_idc 3004 -#define boomerang_hud_led5_idc 3005 -#define boomerang_hud_led6_idc 3006 -#define boomerang_hud_led7_idc 3007 -#define boomerang_hud_led8_idc 3008 -#define boomerang_hud_led9_idc 3009 -#define boomerang_hud_led10_idc 3010 -#define boomerang_hud_led11_idc 3011 -#define boomerang_hud_led12_idc 3012 -#define boomerang_hud_background_idc 3013 \ No newline at end of file +#define boomerang_hud_idd 3000 +#define boomerang_hud_led_idc_base 3000 +//3001 - 3012 are for LEDs +#define boomerang_hud_background_idc 3013 + +#define LED_IDC(x) (boomerang_hud_led_idc_base + x) + +#define LED(index) \ + class boomerang_hud_##index##_led: gui_RscPictureKeepAspect { \ + idc = LED_IDC(index); \ + x = -10; y = -10; \ + w = 0.1; h = 0.1; \ + } \ No newline at end of file diff --git a/addons/boomerang/sound_constants.h b/addons/boomerang/sound_constants.h new file mode 100644 index 000000000..1526a93ef --- /dev/null +++ b/addons/boomerang/sound_constants.h @@ -0,0 +1,8 @@ +#define SOUND(name,path) \ + class name { \ + name = #name; \ + sound[] = {#path, 1, 1}; \ + titles[] = {}; \ + } + +#define PATH(name) addons\boomerang\sounds\##name## diff --git a/addons/boomerang/sounds.hpp b/addons/boomerang/sounds.hpp new file mode 100644 index 000000000..0bc612706 --- /dev/null +++ b/addons/boomerang/sounds.hpp @@ -0,0 +1,16 @@ +#include "sound_constants.h" +SOUND(contact,PATH(contact.ogg)); +SOUND(at_1,PATH(1.ogg)); +SOUND(at_2,PATH(2.ogg)); +SOUND(at_3,PATH(3.ogg)); +SOUND(at_4,PATH(4.ogg)); +SOUND(at_5,PATH(5.ogg)); +SOUND(at_6,PATH(6.ogg)); +SOUND(at_7,PATH(7.ogg)); +SOUND(at_8,PATH(8.ogg)); +SOUND(at_9,PATH(9.ogg)); +SOUND(at_10,PATH(10.ogg)); +SOUND(at_11,PATH(11.ogg)); +SOUND(at_12,PATH(12.ogg)); + + diff --git a/addons/boomerang/sounds/1.ogg b/addons/boomerang/sounds/1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..63636d493449b5617d6d5fff5a1762b882236c1e GIT binary patch literal 3445 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 literal 0 HcmV?d00001 diff --git a/addons/boomerang/sounds/11.ogg b/addons/boomerang/sounds/11.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d2b5944ad014228321fca05c727f8fdf2fc67d3a GIT binary patch literal 3584 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 literal 0 HcmV?d00001 diff --git a/addons/boomerang/sounds/12.ogg b/addons/boomerang/sounds/12.ogg new file mode 100644 index 0000000000000000000000000000000000000000..874c52002f5883def5bdaa0bd431686b9ae58337 GIT binary patch literal 3394 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 literal 0 HcmV?d00001 diff --git a/addons/boomerang/sounds/2.ogg b/addons/boomerang/sounds/2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..df29466b5a16990074cd4ce031c5b5ffad6116be GIT binary patch literal 3355 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 Bjd=h7 literal 0 HcmV?d00001 diff --git a/addons/boomerang/sounds/3.ogg b/addons/boomerang/sounds/3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c8425df080ce458d1cb99deae2c4ff6951652796 GIT binary patch literal 3389 zcmcImdsLH07M}n@fQSJjjewe{Xab@HMGdts1VQqF3Ll~&)U5`hK)?q9w?61n2@f?Q zLV{RPc_di~BtkT?#!69|fPtnoLa?Cq$wPwG*4k>_>dpt&bM~D5cjugM&b{|HbLZZ< zk8d{Y*bxuxz`H?7m?Xa4RdE$J8@G2?7B5YRiEtA4N#rdY7!lncT2CfKP9u$Nr!cCc6?7<4(1a;v6 z0VPp=XT~GRcqxj~r_4%@O`i}TJ$5kyEML(y?~z3&BWKdaAOXUQY@&kk|&Nc zm&OwqQy7Ik^a5h)eql$$Dgg{Gun?C6icL{!;*OSP4H4zM!xP4{8A*=9i*T z^lv1*^^773T0-wAMZ1}X$}BNsl(Mm#(di?Kq8rG<^~_;P3c+vKM??t1V(11xPgV`p z-!5+@4&={I`$C>po0|3oZNH*kSxZwYhxRERpHe9I*ET2>O1-*4sm|DUHVs41(v?cc z3Y1FQ5oLOpqH#d?Sg9K~X?9-GG!33rnsg0%%}%8{^NJ?Jrd~9tf3#0Ic1mH}uXwCi z+6FXZdd(Ba9#Q%aDr_c=&7@PAG-?4vYa0jDaPJcnwzuiE!ZxNGGwIbP%};|m^=pmF z^~$JTr#7k8jhZH#Ccvi47-ZdezOirVy8ah2H**sDwV8c6nMsfh-m)452qj%h0CEa!VM^H(!jf z<=QgDe^ONe$`z>kD$(d*Nf}gSfM=+*Uh)3H1+l0rtQcsnc9S4IKo`pr)W|%e{TN!$ zWOz6k0y2*zdV|3;>6l8(iH{DhDC1?Q`fecsOe9b9p+#KNP~wWUY~RF#wwtf=5+wDfV%qYNWQ7_IG-aF0SD+CSJx z7VHcjLSZM)vj?Gh&iv}0QYi=}0kD;jEDlR0Wpy*@$51nKp|8-5g{Sk)VR)+C%*4wt z_A;GnBoY>#E+-|?eC1Z|A^@t}aDdY0xbCn4=Q1_X8LWYHG@hh_A7mdsy|&tte+zfi+0rYqanpRo`%UegKR^gT~ufv}Gy2pwtP3 zViuU0JBU2k9;wUl4A^;K_EllN&47RtRb*z4z+_~NR0)YJd`&)_3EBU9lK%HOfO6Nx3A}ak-oasq`1?#_P@!p1mGn z`v!}{XmX(k+@IgWO@~#FA~Qu2o-0)<;kv+{AfPvBB`A$<@QOwn z4_1|zE4a6FH^_@>-cu-*UAX@Jy@`CF;($XC0xurRBPx1?0poyCYY@ipq)Y@ug{2kD zsM3jSgs2D&fwEY{8M|>TN>~n}h%*&Zusoo5ka`yitZpV{?}}&Q?%vBJ9uv7bv3OF; zMDS=>I!{o}zVD+-eNV|@2H0brdfw>#I@8>YW%sY!6XBD~4%o$j&vAzi#o_Hl?s)7K z2Jqk|08uV^#l@+^1UI4w$&>8mGn+DZ{sj7Na+rAjIox!f*cfKE_sR{FSp|ltl}Q*7;*v%LF@CaSf)#zU%c_wg2=I=`6l~@#Vw@Y542xAKb#Hwx9lW`!)MDbBc4$FR@eKn>+h6 zT-%;3y+QMMpyTfkQ25q7_?bh(j$iUu{A+aS__~BcUkQdNOGo;r|Krx9)Z-<9eP^D& z?$Z8OpteqBdeGHb^ENBw*JAzI#=>vsk<8(()5dj+)3p7EuQ`3-F|Gc-_f?1QcMa)Q z&e`nQce3zn_W2mS*wAF1~M literal 0 HcmV?d00001 diff --git a/addons/boomerang/sounds/4.ogg b/addons/boomerang/sounds/4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3ba61ebd4a3f37555acf5ce84abf64fcb604f69a GIT binary patch literal 3377 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 literal 0 HcmV?d00001 diff --git a/addons/boomerang/sounds/6.ogg b/addons/boomerang/sounds/6.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7b58edd2b3b57addf554e1d18db6336d0b335d69 GIT binary patch literal 3549 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 literal 0 HcmV?d00001 diff --git a/addons/boomerang/sounds/7.ogg b/addons/boomerang/sounds/7.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3309fa677610291faf95ba30377842232009fc12 GIT binary patch literal 3500 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 ALjV8( literal 0 HcmV?d00001 diff --git a/addons/boomerang/sounds/8.ogg b/addons/boomerang/sounds/8.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4fb3153e527c31e70c7f843d8315dda5e6f07288 GIT binary patch literal 3360 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 BkI4W4 literal 0 HcmV?d00001 diff --git a/addons/boomerang/sounds/9.ogg b/addons/boomerang/sounds/9.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d24e14cf38b73dc395314582b9d4496c43afa8cc GIT binary patch literal 3462 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

pKs>= E2SEYF6aWAK literal 0 HcmV?d00001 diff --git a/addons/boomerang/sounds/contact.ogg b/addons/boomerang/sounds/contact.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c7060e12060ebc61bb6aef5cfbe80a4292f1e4a9 GIT binary patch literal 3295 zcmcImeNaKJ~=G{5x{O&pT zeBJwQT5fIzNrD|p@^vQ%SHK=NpvSj|qHBeo0RV`2vztV0l9gPa=kaYzm&Ceb=7 z`YbX=)yQSGU-=n%7+zi}tUTWrnBfdpP?Ph2ByN;Xn0jx+1y-t9$+lVVWiWSlRcE@w zj`bk8eD;B$i|M3j{-Yl!UF6D_d!+YJ#u3xt7F2c)FQYL(H0ayqcVBwIo}u z-KjotR=?<_F~Vt_7_;~*Dw;i@s}Mx3V0`s6ud_O%nm3=7*~uX`{OZqnK*{MwY_%fg z8hdpHi9Ll~(Zwn!_pIh%q#$B^(y<&nJ$c3GplD<{Ij}Vd+5>h|#wi)LYB>q^WNfSA zU8S$Ib6CgF6qso^qvm;ss~kZiN72>reC$jBa$SQuxM5Qu$YVM9_{8#xW+K!GLFBS( zB#Cty6|H7}g(6j~E7eFR$6C8h$sVPz?POo2DUw)Ls(dwPn4Uul9i}NrQFsmg!56@7 zV1&7qE+;@`!TE=={KmZe!^}^$C-jX>z5c;Y?ZY~){?kUCUaPklb$X+0XMH}7*0c0_ zz)JOcXQjU2y7pwh`JvuC-qE_Lt+jceUf*HXSz0&gjfHKkGN*CjfaPC1^<#Bf=cn3- z7QM5-b^B14i4I)1`K8u5W*+OX7&}@Y4VaBD zTMfQ#qZYHV!)QF&+U#r%cba7b+-uL)_AXBC`!(f8ab};Xu(!BS2-xWLS?Yw|Vo9&6 zczv-%_#B|ASt`kmOi8v%a%a0F>+1xtI8$8$&<$S~-gz#`?kl-bTr5;c2C^jC&n4@h zmuG)hawj8GxNLn^Uus`(iLkF^qq*?zJAlo+XK4-+qKEjoSS5#vdxHq2>} zIomfoEnAg<)h~Q$8SB8=C(iaoq$cN>CG@)Gbbsrq>y`*on{oD~f`N;V`Yl^JTO&x{ zJr28a$~V5(Tt3uW+;nolw%PYm_pd^R69l>gFWrG~EbKXG({qz!VI(VBK(` z!5RqXhike80O&yq4JN@nu(>ks+R;M@%+rBAhL58DF`;#3H84x3szI7-4|T^eL&}se z4>Q%kVUwoH5rNduTZ<$|qcy;k73^U!1!jarm!~7X;KTrTP3xou;pTL%v_TV)9LhEY zh{5Jm0BEKQSvqTgaKFLC&q$6|*N9|>-kWeZ$03ly;f`)ZX)x6aQ_foXQoj(FDc}`s zusQ?=eDly2RgD1G5GbS3ZV`)Rs)l92lu#C}Rf}XTy?kUJ+s2nCn|e{fJ^&<#Mcb&- zP0vx~NSQP;86} zOkotUJ?<)1ZjWQl0@Q*K1)0mjz{JE*a0mI&z{Mx)Lise{&`iRlLn0Epf?kBgu%;lJtL=9Jl*g6G!4VP~wc^k?dQPL1wwuad2I`K|4WJZK-~;XiDNAQU5hlwTm<;PMN7P8Lrbdu#FxPUt zFpWb{V6c+8aEr--NLz}*-`-$y2nxeBs6ZNSbBJUim|7s!f#a5Sinsj<=g-Y}7#h(UU{lFkV9#JqzJl;nPq>>HlfKw}B_VA=k0ZN6p73ipH zS2qGwfy4k=I_!;S9Iq1Ig9z-+02DYLAUZ(3DFuFRCS`99k1Ka?W$1KQueugbT5%PR ziMO+h@(y`hRmNKi10CRw-_-L)gPS^nWJ`uFx|6|^%MEf%fxaZ{-o1wCrkF;=Uttgt zdI3R6KBas1Gq9|e9Mo~AMA???$$BsKhxU)%W_V{W5he zzprJB|Myn}yN=Y}iW=PUa#2;!V0!J{>=%nen-paTy1(0X_k+Cs zDlY}mM`%6VRrXtn7OhP9^x5I~!>{@#T=$zAo+P!L`}de5Z87{lZRek*g5^~+sx;#I^0fJyo2&1} z=Ld|G`9i{_)#r^+{eq=WRun**0~?ooLo*fWt{ofeToYXSH1Co7#KruGFL>9Kn~(kx z@gt45?Zao`SbUT`p}yopqi5p9x_jnd=q>B-^Sw?jfg0y)VZz`+zd^$B5?V oB8 z*9|{=_PXNyD|K7$(Cvj0(a-1hv~K@?t>)R~PcHpq&fT=#XwZz1pLUF&E!Q5fJ~%P3 z>{(&j1dK`u>if1Ml_}nYiz7{k{~UZW6imLB{+jrw;FrOvqf=An*K~eT#=Nnk#x0*T s-k3mY+Iu4|W^2F4wa_oe){pI~a)Z=<&pC902h_a!%+M0gg-87U1F|)DVE_OC literal 0 HcmV?d00001 diff --git a/description.ext b/description.ext index a111cbacc..44ed56dba 100644 --- a/description.ext +++ b/description.ext @@ -93,3 +93,9 @@ class CfgNotifications { #include "client\CfgNotifications.hpp" }; + +class CfgSounds +{ + sounds[] = {}; + #include "addons\boomerang\sounds.hpp" +}; From 51124bb398bd82afd8d4c4a775d050576284b0dd Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 19 Jan 2015 15:42:36 -0800 Subject: [PATCH 324/544] Add boomerang terminal as a wasteland item --- addons/boomerang/functions.sqf | 35 +++++-- addons/boomerang/macro.h | 166 ++++++++++++++++++++++++++++++++ client/init.sqf | 2 + client/items/boomerang/init.sqf | 19 ++++ client/items/init.sqf | 2 + storeConfig.sqf | 3 +- stringtable.xml | 3 + 7 files changed, 221 insertions(+), 9 deletions(-) create mode 100644 addons/boomerang/macro.h create mode 100644 client/items/boomerang/init.sqf diff --git a/addons/boomerang/functions.sqf b/addons/boomerang/functions.sqf index 04b7c45fe..85d482fc4 100644 --- a/addons/boomerang/functions.sqf +++ b/addons/boomerang/functions.sqf @@ -1,12 +1,12 @@ if (!isNil "boomerang_functions_defined") exitWith {}; #include "macro.h" - +#include "hud_constants.h" diag_log format["Loading boomerang functions ..."]; -call compile preprocessFileLineNumbers "addons\parking\config.sqf"; +call compile preprocessFileLineNumbers "addons\boomerang\config.sqf"; boomerand_hud_scale = 1; //scale for how big to show the boomerang device @@ -49,7 +49,12 @@ boomerang_led_sound = { _this spawn { boomerang_alert_at = { disableSerialization; ARGVX3(0,_direction,0); - [_direction] call boomerang_led_sound; + ARGVX4(1,_voice,false, true); + + if (_voice) then { + [_direction] call boomerang_led_sound; + }; + [_direction, true] call boomerang_led_set_state; uiSleep 2; [_direction, false] call boomerang_led_set_state; @@ -139,13 +144,17 @@ boomerang_hud_setup = { boomerang_hud_active = true; + [_boomerang_background] spawn { + disableSerialization; ARGVX2(0,_ctrl); - waitUntil {sleep 1; (not (alive player) || { ctrlShown _ctrl})}; + waitUntil {sleep 1; (not (alive player) || {not(ctrlShown _ctrl)})}; [] call boomerang_hud_remove; }; + }; + vector_angle2 = { ARGVX3(0,_obj,objNull); ARGVX3(1,_v2,[]); @@ -199,7 +208,13 @@ boomerang_fired_near_handler = { boomerang_last_event_pos = _clock_pos; boomerang_last_event_time = diag_tickTime; - [_clock_pos] spawn boomerang_alert_at; + if (!isNil "boomerang_alert_script_handle" && {not(scriptDone boomerang_alert_script_handle)}) exitWith { + //don't play the sound, but at least show the LED + [_clock_pos, false] spawn boomerang_alert_at; + }; + + boomerang_alert_script_handle = [_clock_pos, true] spawn boomerang_alert_at; + }; boomerang_add_events = { @@ -207,10 +222,15 @@ boomerang_add_events = { }; +boomerang_toggle_hud = {_this spawn { + if (isNil "boomerang_hud_active") exitWith { + [] call boomerang_hud_remove; + [] call boomerang_hud_setup; + }; -boomerang_load_hud = { [] call boomerang_hud_remove; - [] call boomerang_hud_setup; +}; +false }; @@ -219,5 +239,4 @@ boomerang_load_hud = { boomerang_functions_defined = true; - diag_log format["Loading boomerang functions complete"]; \ No newline at end of file diff --git a/addons/boomerang/macro.h b/addons/boomerang/macro.h new file mode 100644 index 000000000..83e60c22b --- /dev/null +++ b/addons/boomerang/macro.h @@ -0,0 +1,166 @@ +//null abstraction +#define _undefined objNull + +#define isARRAY(x) \ +(not(isNil {x}) && {typeName x == typeName []}) + +#define isSTRING(x) \ +(not(isNil {x}) && {typeName x == typeName ""}) + +#define isSCALAR(x) \ +(not(isNil {x}) && {typeName x == typeName 0}) + +#define isBOOLEAN(x) \ +(not(isNil {x}) && {typeName x == typeName true}) + +#define isOBJECT(x) \ +(not(isNil {x}) && {typeName x == typeName objNull}) + +#define isCODE(x) \ +(not(isNil {x}) && {typeName x == typeName {}}) + +#define isSIDE(x) \ +(not(isNil {x}) && {typeName x == typeName sideUnknown}) + +#define isPOS(x) \ +(isARRAY(x) && {count(x) == 3}) + +#define isSCRIPT(x) \ +(not(isNil {x}) && {typeName x == typeName scriptNull}) + + +#define isNullable(x) (false ||{ \ + not(isNil {x}) &&{ \ + private["_t"]; \ + _t = typeName x; \ + _t == typeName controlNull ||{ \ + _t == typeName displayNull ||{ \ + _t == typeName locationNull ||{ \ + _t == typeName taskNull ||{ \ + _t == typeName grpNull ||{ \ + _t == typeName objNull \ + }}}}}}}) + +//safer version of isNull that will not crap out when passed number, array, code, string +#define _isNull(x) (isNil {x} || ({isNullable(x) && {isNull x}})) +#define undefined(x) _isNull(x) +#define defined(x) (not(undefined(x))) + +#define getIf(cond,v1,v2) \ +(if (cond) then {v1} else {v2}) + +#define getUnless(cond,v1,v2) \ +getIf(not(cond),v1,v2) + + +#define OR(x,y) \ +getIf(defined(x),x,y) + +#define OR_ARRAY(v,d) (if (isARRAY(v)) then {v} else {d}) +#define OR_SCALAR(v,d) (if(isSCALAR(v)) then {v} else {d}) +#define OR_STRING(v,d) (if (isSTRING(v)) then {v} else {d}) +#define OR_BOOLEAN(v,d) (if(isBOOLEAN(v)) then {v} else {d}) +#define OR_OBJECT(v,d) (if(isOBJECT(v)) then {v} else {d}) +#define OR_SIDE(v,d) (if(isSIDE(v)) then {v} else {d}) +#define OR_CODE(v,d) (if(isCODE(v)) then {v} else {d}) + +#define OR_POSITIVE(v,d) (if (isSCALAR(v) && {v > 0}) then {v} else {d}) + + +#define AND(x,y) \ +OR(v,y) + +#define def(x) \ +private[#x] + +#define init(x,v) def(x); \ +x = v + +#define setIf(cond,x,v1,v2) \ +x = if (cond) then {v1} else {v2} + +#define assignIf setIf + +#define setUnless(cond,x,v1,v2) \ +x = if (cond) then {v2} else {v1} + + +#define assignUnless setUnless + +#define initIf(cond,x,v1,v2) \ +def(x); \ +setIf(cond,x,v1,v2) + +#define initUnless(cond,x,v1,v2) \ +def(x); \ +setUnless(cond,x,v1,v2) + + +//Assign argument at index o to variable v if it's of type t, else default to d +#define ARGV4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) then { \ + v = d; \ +}; + +//Assign argument at index o, to variable v if it's of type t, else default to nil +#define ARGV3(o,v,t) ARGV4(o,v,t,nil) + +//Assign argument at index o to variable v, else default to nil +#define ARGV2(o,v) ARGV3(o,v,nil) + + +//Assign argument at index o to variable v if it's of type t, else exit with d +#define ARGVX4(o,v,t,d) \ +private[#v]; \ +if (undefined(_this) ||{ \ + typeName _this != typeName [] ||{ \ + o >= (count _this) ||{ \ + v = _this select o; undefined(v) ||{ \ + (#t != "nil" && {typeName v != typeName t}) \ + }}}}) exitWith { \ + d \ +}; + +//Assign argument at index o, to variable v if it's of type t, else exit with nil +#define ARGVX3(o,v,t) ARGVX4(o,v,t,nil) + +//Assign argument at index o to variable v, else exit with nil +#define ARGVX2(o,v) ARGVX3(o,v,nil) + + + + + +#define DO if (true) then + +#define xGet(x,o) (if (o >= count(x)) then {nil} else {x select o}) +#define xSet(x,o,v) (x set [o, OR(v,nil)]) +#define xPush(x,v) (xSet(x,count(x),v)) +#define xPushIf(cond,x,v) if (cond) then {xPush(x,v);} +#define xPushUnless(cond,x,v) xPushIf(not(cond),x,v) + + +#define isClient not(isServer) || {isServer && not(isDedicated)} + +#define IMPORT_FINALIZER if (isNil "finalize") then { \ + finalizer = { \ + if (isNil "_this" || {typeName _this != typeName {}}) exitWith {}; \ + \ + private["_str_data"]; \ + _str_data = toArray str(_this); \ + \ + private["_space"]; \ + _space = (toArray " ") select 0;\ + _str_data set [0, _space]; \ + _str_data set [((count _str_data)-1), _space]; \ + \ + (compileFinal (toString _str_data)) \ + }; \ + finalizer = finalizer call finalizer; \ +}; \ No newline at end of file diff --git a/client/init.sqf b/client/init.sqf index b6b4843c8..5e427fdda 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -137,6 +137,8 @@ A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; [] execVM "addons\UAV_Control\functions.sqf"; [] execVM "addons\cctv\functions.sqf"; [] execVM "addons\water_edge\functions.sqf"; +[] execVM "addons\boomerang\functions.sqf"; + call compile preprocessFileLineNumbers "client\functions\generateAtmArray.sqf"; diff --git a/client/items/boomerang/init.sqf b/client/items/boomerang/init.sqf new file mode 100644 index 000000000..8ff4b4ac1 --- /dev/null +++ b/client/items/boomerang/init.sqf @@ -0,0 +1,19 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +//@file Version: 1.0 +//@file Name: init.sqf +//@file Author: micovery +//@file Argument: the path to the directory holding this file. + +private ["_path"]; +_path = _this; + +private["_h"]; +_h = [] execVM "addons\boomerang\config.sqf"; +waitUntil {scriptDone _h;}; + +MF_ITEMS_BOOMERANG_TERMINAL = "boomerang_terminal"; +MF_ITEMS_BOOMERANG_TERMINAL_TYPE = "Land_FMradio_F"; +MF_ITEMS_BOOMERANG_TERMINAL_ICON = "addons\cctv\icons\laptop.paa"; +[MF_ITEMS_BOOMERANG_TERMINAL, "Boomerang Terminal", {_this call boomerang_toggle_hud}, MF_ITEMS_BOOMERANG_TERMINAL_TYPE, MF_ITEMS_BOOMERANG_TERMINAL_ICON, cctv_max_inventory_base_stations] call mf_inventory_create; \ No newline at end of file diff --git a/client/items/init.sqf b/client/items/init.sqf index f079fa006..3b0ad28aa 100644 --- a/client/items/init.sqf +++ b/client/items/init.sqf @@ -16,6 +16,8 @@ [_this, "warchest"] call mf_init; [_this, "cratemoney"] call mf_init; [_this, "cctv"] call mf_init; +[_this, "boomerang"] call mf_init; + if (["A3W_atmEnabled"] call isConfigOn) then { diff --git a/storeConfig.sqf b/storeConfig.sqf index 34258e0f8..edc2e4895 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -876,7 +876,8 @@ customPlayerItems = compileFinal str ["Warchest", "warchest", localize "STR_WL_ShopDescriptions_Warchest", "client\icons\warchest.paa", 1000, 500], //Addon items ["IP/Net Camera", "cctv_camera", localize "STR_WL_ShopDescriptions_CCTV_Camera", "addons\cctv\icons\camcorder.paa", 850, 500], - ["Camera Terminal", "cctv_base", localize "STR_WL_ShopDescriptions_CCTV_Base", "addons\cctv\icons\laptop.paa", 500, 300] + ["Camera Terminal", "cctv_base", localize "STR_WL_ShopDescriptions_CCTV_Base", "addons\cctv\icons\laptop.paa", 500, 300], + ["Boomerang Terminal", "boomerang_terminal", localize "STR_WL_ShopDescriptions_Boomerang_Terminal", "addons\cctv\icons\camcorder.paa", 850, 500] ]; call compile preprocessFileLineNumbers "mapConfig\storeOwners.sqf"; diff --git a/stringtable.xml b/stringtable.xml index 5a961e0f9..b4e803fc8 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -96,6 +96,9 @@ This is a computer terminal that receives video signals from one or more remote networked cameras via Internet Protocol (IP). + + This is a portable terminal for the Boomerang shot detection system. + From 6bcb09ae41a0777bd8af756e1053acb6c7c7a864 Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 19 Jan 2015 15:49:53 -0800 Subject: [PATCH 325/544] Add config for boomerang max terminals --- addons/boomerang/config.sqf | 1 + client/items/boomerang/init.sqf | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/boomerang/config.sqf b/addons/boomerang/config.sqf index e69de29bb..ffd57424f 100644 --- a/addons/boomerang/config.sqf +++ b/addons/boomerang/config.sqf @@ -0,0 +1 @@ +boomerang_max_inventory_terminals = 1; //maximum number of Boomerang terminals that player can carry in inventory \ No newline at end of file diff --git a/client/items/boomerang/init.sqf b/client/items/boomerang/init.sqf index 8ff4b4ac1..63fc76d9f 100644 --- a/client/items/boomerang/init.sqf +++ b/client/items/boomerang/init.sqf @@ -16,4 +16,4 @@ waitUntil {scriptDone _h;}; MF_ITEMS_BOOMERANG_TERMINAL = "boomerang_terminal"; MF_ITEMS_BOOMERANG_TERMINAL_TYPE = "Land_FMradio_F"; MF_ITEMS_BOOMERANG_TERMINAL_ICON = "addons\cctv\icons\laptop.paa"; -[MF_ITEMS_BOOMERANG_TERMINAL, "Boomerang Terminal", {_this call boomerang_toggle_hud}, MF_ITEMS_BOOMERANG_TERMINAL_TYPE, MF_ITEMS_BOOMERANG_TERMINAL_ICON, cctv_max_inventory_base_stations] call mf_inventory_create; \ No newline at end of file +[MF_ITEMS_BOOMERANG_TERMINAL, "Boomerang Terminal", {_this call boomerang_toggle_hud}, MF_ITEMS_BOOMERANG_TERMINAL_TYPE, MF_ITEMS_BOOMERANG_TERMINAL_ICON, boomerang_max_inventory_terminals] call mf_inventory_create; \ No newline at end of file From 575acb5a84dcb841529512c9d7fa5514e28cf28a Mon Sep 17 00:00:00 2001 From: micovery Date: Mon, 19 Jan 2015 15:52:31 -0800 Subject: [PATCH 326/544] Some cleanup --- addons/boomerang/functions.sqf | 7 ------- storeConfig.sqf | 4 ++-- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/addons/boomerang/functions.sqf b/addons/boomerang/functions.sqf index 85d482fc4..72d53861a 100644 --- a/addons/boomerang/functions.sqf +++ b/addons/boomerang/functions.sqf @@ -31,13 +31,6 @@ boomerang_led_set_state = { _led ctrlShow _state; }; -boomerang_voice = "Male12"; -boomerang_voice_tone = "Normal"; //Stealth, Normal, Combat -boomerang_sounds_path = ("a3\dubbing_radio_f\data\" + boomerang_voice + "\RadioProtocolENG\" + boomerang_voice_tone); -boomerang_contact_sound = (boomerang_sounds_path + "\150_Reporting\EnemyDetected_2.ogg"); - -#define POS_ASL (if(surfaceIsWater (getPos player)) then {positionCameraToWorld [0,0,0]} else {ATLtoASL(positionCameraToWorld [0,0,0])}) - boomerang_led_sound = { _this spawn { ARGVX3(0,_index,0); playSound "contact"; diff --git a/storeConfig.sqf b/storeConfig.sqf index edc2e4895..a50d3e881 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -876,8 +876,8 @@ customPlayerItems = compileFinal str ["Warchest", "warchest", localize "STR_WL_ShopDescriptions_Warchest", "client\icons\warchest.paa", 1000, 500], //Addon items ["IP/Net Camera", "cctv_camera", localize "STR_WL_ShopDescriptions_CCTV_Camera", "addons\cctv\icons\camcorder.paa", 850, 500], - ["Camera Terminal", "cctv_base", localize "STR_WL_ShopDescriptions_CCTV_Base", "addons\cctv\icons\laptop.paa", 500, 300], - ["Boomerang Terminal", "boomerang_terminal", localize "STR_WL_ShopDescriptions_Boomerang_Terminal", "addons\cctv\icons\camcorder.paa", 850, 500] + ["Camera Terminal", "cctv_base", localize "STR_WL_ShopDescriptions_CCTV_Base", "addons\cctv\icons\laptop.paa", 500, 300], + ["Boomerang Terminal", "boomerang_terminal", localize "STR_WL_ShopDescriptions_Boomerang_Terminal", "addons\cctv\icons\camcorder.paa", 850, 500] ]; call compile preprocessFileLineNumbers "mapConfig\storeOwners.sqf"; From 40c16a3374e10f7a741a13b86b3ff14ac7945d97 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 20 Jan 2015 01:40:34 -0800 Subject: [PATCH 327/544] Add boomerang base station, and icons --- addons/boomerang/config.sqf | 13 ++++++++++++- addons/boomerang/functions.sqf | 21 +++++++++++++-------- addons/boomerang/icons/antenna.paa | Bin 0 -> 1522 bytes addons/boomerang/icons/terminal.paa | Bin 0 -> 1522 bytes client/items/boomerang/init.sqf | 7 +++---- storeConfig.sqf | 5 ++++- stringtable.xml | 11 ++++++++++- 7 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 addons/boomerang/icons/antenna.paa create mode 100644 addons/boomerang/icons/terminal.paa diff --git a/addons/boomerang/config.sqf b/addons/boomerang/config.sqf index ffd57424f..65c799757 100644 --- a/addons/boomerang/config.sqf +++ b/addons/boomerang/config.sqf @@ -1 +1,12 @@ -boomerang_max_inventory_terminals = 1; //maximum number of Boomerang terminals that player can carry in inventory \ No newline at end of file +boomerang_max_inventory_terminals = 1; //maximum number of Boomerang terminals that player can carry in inventory +boomerang_max_inventory_stations = 1; //maximum number of Boomerang stations that player can carry in inventory + +//Terminal +MF_ITEMS_BOOMERANG_TERMINAL = "boomerang_terminal"; +MF_ITEMS_BOOMERANG_TERMINAL_TYPE = "Land_FMradio_F"; +MF_ITEMS_BOOMERANG_TERMINAL_ICON = "addons\boomerang\icons\terminal.paa"; + +//Station +MF_ITEMS_BOOMERANG_STATION = "boomerang_station"; +MF_ITEMS_BOOMERANG_STATION_TYPE = "Land_SatellitePhone_F"; +MF_ITEMS_BOOMERANG_STATION_ICON = "addons\boomerang\icons\antenna.paa"; diff --git a/addons/boomerang/functions.sqf b/addons/boomerang/functions.sqf index 72d53861a..2ec5a5512 100644 --- a/addons/boomerang/functions.sqf +++ b/addons/boomerang/functions.sqf @@ -122,7 +122,7 @@ boomerang_hud_setup = { private["_x","_y", "_w", "_h"]; _w = 0.6 * boomerand_hud_scale; _h = 0.6 * boomerand_hud_scale; - _x = safezoneX; + _x = safezoneX + (safeZoneW / 8); _y = safezoneY; _boomerang_background ctrlSetPosition [_x,_y,_w,_h]; _boomerang_background ctrlSetText "addons\boomerang\images\boomerang.paa"; @@ -215,15 +215,20 @@ boomerang_add_events = { }; -boomerang_toggle_hud = {_this spawn { - if (isNil "boomerang_hud_active") exitWith { - [] call boomerang_hud_remove; - [] call boomerang_hud_setup; - }; +boomerang_toggle_hud = { + _this spawn { + if (isNil "boomerang_hud_active") exitWith { + [] call boomerang_hud_remove; + [] call boomerang_hud_setup; + }; - [] call boomerang_hud_remove; + [] call boomerang_hud_remove; + }; + false }; -false + +boomerang_station_use = { + false; }; diff --git a/addons/boomerang/icons/antenna.paa b/addons/boomerang/icons/antenna.paa new file mode 100644 index 0000000000000000000000000000000000000000..49bd4f1bc5f2b7091902e74a73cd308d2f7b8e1d GIT binary patch literal 1522 zcmb`HU1$_n6vxlRxy@2boX8G_#cifVDMAJ9!yv@6cjG2$B%wFWOc6sLOwos8vUySv zLUs!pAA$);#Zc3S5{S?jgF3-daA+hdieF&dWJ@B^W+`c1m!Pg>C)0E8t`G4=7Cg+r z{N|po`QI~_`AtnxYfsa+Q567kx!hjK`=YJHJ{oaTw55?)!JD|fvGHq;&k4Nyap4pL zc!+oTW`F^pLhEl%SDo37-gOX zr~AD$aht`(t}}~SKR+Ll>-d$m7bm_ur6Mu3fo*@o0 z#=_H)LTap6>H$KCx>2*!Tg^(nn4&1Lv7~pa6fZdE+SF7$W5$rG9B<@XB_w89IkgOQbVANkWz#cr-<3)nI- zzF=FQIjy)qvR^C6wQUQ111YCV#)B5KA;GJj;zj-_4};`}=YSV6$|H9A-JP3C{)$>{ zhZdc#pUv)~oUr56^^%4NWsDGnM<7$5*cq zgQ^<4A7A#b^tUfbHnhOO|CZ~QE>&G5Rs(9F`r01@*XIsS%JoFWaTj`q)aD_TSgX-> z)7`l-JzgARb=0y#?$ke<^M{LLRFU}Rjcf)!;OzS@U~nm3M|0t;AGhE|`7E@z{R0r7 zvn4WlHhlYjO%J&V7f&4b<>ODzeeo$V!>NQ{X3i%ekRS$4*WuT{>RVJUrxjGoQt?DZ UJ$IZ?&u%$=$dzvL+(LKwAG7$=HUIzs literal 0 HcmV?d00001 diff --git a/addons/boomerang/icons/terminal.paa b/addons/boomerang/icons/terminal.paa new file mode 100644 index 0000000000000000000000000000000000000000..bf459ad6ce0908e77fa22c936c755ffa49e2e294 GIT binary patch literal 1522 zcmc(fO=wd=5P;{U2~9xT2<9Ljl4>CbjS&P<5MP2eKWN)PyQ1JBsKrxN5R1h_mgbN{ zHHpbV&_nR#NwAlI7xT1W(YrsGOBJ5 z9vwXqKNEEVK%>#PA^B`{kXYa#jz>?&h&7zVBeB?U1lJsA4h4A^z#E+ZJ^~N`Ak$kr zc(yuTHw$=O0LJj*kSz6MNdJp@4*iKWzp~G*MpiV)KkblzDE4Crk{DxuW5*7$)O>l> zlKPsawXL)ZDD6qB9n8TIz)$%j|N71RrvE0SpbKodhgSNOEngQH+}NJI>b$V97c{S} zKlBYHz31y2ah&WcBgd}XYP06caIvP#`?q({e_;VXWv|;3cY{wWHf#HYIMlm*O38gc zbSv0c(G_QBFg&r6QS5<4N#!qv`J)_kj=r)vU9%Qz8}WePnit~-b>3y^t3k7@EA9zp zR)rh^lBb(y4WGzFfwSntCxWPN-CE)YZ7egn1{ z>b%a)LO->HtP{q|MMd?W?8x7k-xj@r4t+i?{F==Jj9bGFu$i%pHQdw5N4O|EJLH|Y z*^0Fnyz+H1$azsFm8vHHhDisOg_7_m!*kMK)|H$aM~ii{BF|$31Fu24F8p6)TCoXs zK4~qX&@Q9fpf>C}j(alk&kVEdH}4Tj&cB}9{pj7uXT`e~3#|`&QTaWOnG zb&RxKE)Nup#D%&_D+X-L!Y^E#)zY^79AkHC$xTLmH@G1J5Sgz&9@mONGE1#{ZN3`v wtY1H%IQ{k2{eyHf86>di_nFCurAv}AkIacLD*nC?iLk@_03VSJMM@U@1QpHpo&W#< literal 0 HcmV?d00001 diff --git a/client/items/boomerang/init.sqf b/client/items/boomerang/init.sqf index 63fc76d9f..e1a70f08e 100644 --- a/client/items/boomerang/init.sqf +++ b/client/items/boomerang/init.sqf @@ -13,7 +13,6 @@ private["_h"]; _h = [] execVM "addons\boomerang\config.sqf"; waitUntil {scriptDone _h;}; -MF_ITEMS_BOOMERANG_TERMINAL = "boomerang_terminal"; -MF_ITEMS_BOOMERANG_TERMINAL_TYPE = "Land_FMradio_F"; -MF_ITEMS_BOOMERANG_TERMINAL_ICON = "addons\cctv\icons\laptop.paa"; -[MF_ITEMS_BOOMERANG_TERMINAL, "Boomerang Terminal", {_this call boomerang_toggle_hud}, MF_ITEMS_BOOMERANG_TERMINAL_TYPE, MF_ITEMS_BOOMERANG_TERMINAL_ICON, boomerang_max_inventory_terminals] call mf_inventory_create; \ No newline at end of file + +[MF_ITEMS_BOOMERANG_TERMINAL, "Boomerang Terminal", {_this call boomerang_toggle_hud}, MF_ITEMS_BOOMERANG_TERMINAL_TYPE, MF_ITEMS_BOOMERANG_TERMINAL_ICON, boomerang_max_inventory_terminals] call mf_inventory_create; +[MF_ITEMS_BOOMERANG_STATION, "Boomerang Station", {_this call boomerang_station_use}, MF_ITEMS_BOOMERANG_STATION_TYPE, MF_ITEMS_BOOMERANG_STATION_ICON, boomerang_max_inventory_stations] call mf_inventory_create; \ No newline at end of file diff --git a/storeConfig.sqf b/storeConfig.sqf index a50d3e881..df25d3c86 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -877,7 +877,10 @@ customPlayerItems = compileFinal str //Addon items ["IP/Net Camera", "cctv_camera", localize "STR_WL_ShopDescriptions_CCTV_Camera", "addons\cctv\icons\camcorder.paa", 850, 500], ["Camera Terminal", "cctv_base", localize "STR_WL_ShopDescriptions_CCTV_Base", "addons\cctv\icons\laptop.paa", 500, 300], - ["Boomerang Terminal", "boomerang_terminal", localize "STR_WL_ShopDescriptions_Boomerang_Terminal", "addons\cctv\icons\camcorder.paa", 850, 500] + ["Boomerang Terminal", "boomerang_terminal", localize "STR_WL_ShopDescriptions_Boomerang_Terminal", "addons\boomerang\icons\terminal.paa", 850, 500], + ["Boomerang Station", "boomerang_station", localize "STR_WL_ShopDescriptions_Boomerang_Station", "addons\boomerang\icons\antenna.paa", 850, 500] + + ]; call compile preprocessFileLineNumbers "mapConfig\storeOwners.sqf"; diff --git a/stringtable.xml b/stringtable.xml index b4e803fc8..52348420f 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -97,7 +97,16 @@ This is a computer terminal that receives video signals from one or more remote networked cameras via Internet Protocol (IP). - This is a portable terminal for the Boomerang shot detection system. + + This is a portable terminal for the Boomerang shot detection system. + This terminal connects to any Boomerang base station installed in nearby vehicles. + + + + + This is the base station for the Boomerang shot detection system. You can install it in vehicles by clicking ""Use"" while inside the vehicle. + All players inside the vehicle can use the Boomerang system without a portable terminal. + From 43ee29352fe1e4dec8313e7824418c69b2c87b23 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 20 Jan 2015 01:44:37 -0800 Subject: [PATCH 328/544] Fix boomerang led positions --- addons/boomerang/functions.sqf | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/addons/boomerang/functions.sqf b/addons/boomerang/functions.sqf index 2ec5a5512..1e9d0ced1 100644 --- a/addons/boomerang/functions.sqf +++ b/addons/boomerang/functions.sqf @@ -9,6 +9,8 @@ diag_log format["Loading boomerang functions ..."]; call compile preprocessFileLineNumbers "addons\boomerang\config.sqf"; boomerand_hud_scale = 1; //scale for how big to show the boomerang device +boomerang_hud_x = safezoneX + (safeZoneW / 8); +boomerang_hud_y = safezoneY; boomerang_hud_remove = { 11 cuttext ["","plain"]; @@ -85,8 +87,8 @@ boomerang_led_setup = { private["_x","_y", "_w", "_h"]; _w = 0.025 * boomerand_hud_scale; _h = 0.025 * boomerand_hud_scale; - _x = safezoneX + _w * 8.6; - _y = safezoneY + _h * 13.78; + _x = boomerang_hud_x + _w * 8.6; + _y = boomerang_hud_y + _h * 13.78; def(_vec); _vec = boomerang_led_coord_map select (_index -1); @@ -122,8 +124,8 @@ boomerang_hud_setup = { private["_x","_y", "_w", "_h"]; _w = 0.6 * boomerand_hud_scale; _h = 0.6 * boomerand_hud_scale; - _x = safezoneX + (safeZoneW / 8); - _y = safezoneY; + _x = boomerang_hud_x; + _y = boomerang_hud_y; _boomerang_background ctrlSetPosition [_x,_y,_w,_h]; _boomerang_background ctrlSetText "addons\boomerang\images\boomerang.paa"; _boomerang_background ctrlCommit 0; From 006b666930985ca38102474827d90a40cc44134f Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 20 Jan 2015 01:46:25 -0800 Subject: [PATCH 329/544] Move some settings to config file --- addons/boomerang/config.sqf | 5 +++++ addons/boomerang/functions.sqf | 4 +--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/addons/boomerang/config.sqf b/addons/boomerang/config.sqf index 65c799757..df722cda2 100644 --- a/addons/boomerang/config.sqf +++ b/addons/boomerang/config.sqf @@ -1,6 +1,10 @@ boomerang_max_inventory_terminals = 1; //maximum number of Boomerang terminals that player can carry in inventory boomerang_max_inventory_stations = 1; //maximum number of Boomerang stations that player can carry in inventory +boomerand_hud_scale = 1; //scale for how big to show the boomerang device +boomerang_hud_x = safezoneX + (safeZoneW / 8); // X screen coordinate for the boomerang device +boomerang_hud_y = safezoneY; //Y screen coordinate for the boomerang device + //Terminal MF_ITEMS_BOOMERANG_TERMINAL = "boomerang_terminal"; MF_ITEMS_BOOMERANG_TERMINAL_TYPE = "Land_FMradio_F"; @@ -10,3 +14,4 @@ MF_ITEMS_BOOMERANG_TERMINAL_ICON = "addons\boomerang\icons\terminal.paa"; MF_ITEMS_BOOMERANG_STATION = "boomerang_station"; MF_ITEMS_BOOMERANG_STATION_TYPE = "Land_SatellitePhone_F"; MF_ITEMS_BOOMERANG_STATION_ICON = "addons\boomerang\icons\antenna.paa"; + diff --git a/addons/boomerang/functions.sqf b/addons/boomerang/functions.sqf index 1e9d0ced1..1d8ebce06 100644 --- a/addons/boomerang/functions.sqf +++ b/addons/boomerang/functions.sqf @@ -8,9 +8,7 @@ diag_log format["Loading boomerang functions ..."]; call compile preprocessFileLineNumbers "addons\boomerang\config.sqf"; -boomerand_hud_scale = 1; //scale for how big to show the boomerang device -boomerang_hud_x = safezoneX + (safeZoneW / 8); -boomerang_hud_y = safezoneY; + boomerang_hud_remove = { 11 cuttext ["","plain"]; From e8e0be85d4c8533a95dcff91d74de8ebe09c05d8 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 20 Jan 2015 04:27:09 -0800 Subject: [PATCH 330/544] Refine the boomerang player/vehicle interactions --- addons/boomerang/functions.sqf | 218 +++++++++++++++++++++++++++++-- addons/boomerang/hud_constants.h | 4 +- 2 files changed, 210 insertions(+), 12 deletions(-) diff --git a/addons/boomerang/functions.sqf b/addons/boomerang/functions.sqf index 1d8ebce06..5c79cfd6a 100644 --- a/addons/boomerang/functions.sqf +++ b/addons/boomerang/functions.sqf @@ -3,13 +3,10 @@ if (!isNil "boomerang_functions_defined") exitWith {}; #include "macro.h" #include "hud_constants.h" - diag_log format["Loading boomerang functions ..."]; call compile preprocessFileLineNumbers "addons\boomerang\config.sqf"; - - boomerang_hud_remove = { 11 cuttext ["","plain"]; boomerang_hud_active = nil; @@ -108,6 +105,22 @@ boomerand_test_leds = { } forEach [false, true, false]; }; +boomerang_is_terminal_nearby = { + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_distance,0,false); + + def(_vehicles); + _vehicles = (nearestObjects [getPos _player, ["Helicopter", "Plane", "Ship_F", "Car", "Motorcycle", "Tank", MF_ITEMS_BOOMERANG_STATION_TYPE], _distance]); + init(_result,false); + { + if (_x getVariable ["has_boomerang", false]) exitWith { + _result = true; + }; + } forEach _vehicles; + + (_result) +}; + boomerang_hud_setup = { disableSerialization; 11 cutRsc ["boomerang_hud","PLAIN",1e+011,false]; @@ -138,16 +151,49 @@ boomerang_hud_setup = { boomerang_hud_active = true; - [_boomerang_background] spawn { - disableSerialization; - ARGVX2(0,_ctrl); - waitUntil {sleep 1; (not (alive player) || {not(ctrlShown _ctrl)})}; + [] spawn { + def(_vehicle_has_station); + def(_player_has_terminal); + def(_terminal_nearby); + init(_notification,0); + + _notify_no_terminal = { + _text = "No portable termial."; + _text = format["Boomerang

(%2)", MF_ITEMS_BOOMERANG_TERMINAL_ICON, "disconnected"] + "

" + _text; + hintSilent parseText _text; + }; + + _notify_no_station = { + _text = "No stations nearby."; + _text = format["Boomerang

(%2)", MF_ITEMS_BOOMERANG_STATION_ICON, "disconnected"] + "

" + _text; + hintSilent parseText _text; + }; + + hintSilent ""; //clear any hints + + waitUntil { + sleep 3; + if (not(alive player)) exitWith {true}; //player died, close the hud + if (isNil "boomerang_hud_active") exitWith {true}; //something else closed the hud, bail out + + _vehicle_has_station = ((vehicle player) getVariable ["has_boomerang", false]); + if (_vehicle_has_station) exitWith {false}; //vehicle has boomerang, leave the hud open + + _player_has_terminal = (MF_ITEMS_BOOMERANG_TERMINAL call mf_inventory_count > 0); + if (not(_player_has_terminal)) exitWith {call _notify_no_terminal; true}; //player dropped the terminal, close the hud + + _terminal_nearby = [player, 25] call boomerang_is_terminal_nearby; + + if (not(_terminal_nearby)) exitWith {call _notify_no_station; true}; //there are no nearby temrinals, close the hug + + false + }; + [] call boomerang_hud_remove; }; }; - vector_angle2 = { ARGVX3(0,_obj,objNull); ARGVX3(1,_v2,[]); @@ -156,7 +202,6 @@ vector_angle2 = { (_local select 0) atan2 ( _local select 1); }; - boomerang_get_clock_pos = { ARGVX3(0,_unit,objNull); ARGVX3(1,_firer,objNull); @@ -184,6 +229,7 @@ boomerang_fired_near_handler = { ARGVX3(6,_ammo,""); if (_unit == _firer) exitWith {}; + _unit = (vehicle _unit); def(_clock_pos); _clock_pos = [_unit, _firer] call boomerang_get_clock_pos; @@ -210,6 +256,59 @@ boomerang_fired_near_handler = { }; +boomerang_vehicle_notify = { + ARGVX4(0,_player,objNull,false); + ARGVX4(1,_vehicle,objNull,false); + + if (not(_vehicle getVariable ["has_boomerang", false])) exitWith {false}; + + _text = "This vehicle has a boomerang system installed. Press Control+B to activate it."; + _text = format["Boomerang

(%2)", MF_ITEMS_BOOMERANG_STATION_ICON, "available"] + "

" + _text; + hintSilent parseText _text; + + [] call boomerang_setup_keyUp; + [_vehicle] call boomerang_vehicle_add_firedNear; + true +}; + + +boomerang_vehicle_watch = { + def(_notified): + def(_vehicle); + + waitUntil { + sleep 2; + //wait until the player enters a vehicle, and is notified + waitUntil { + sleep 2; + if ((vehicle player) == (player)) exitWith {false}; + if ([player, (vehicle player)] call boomerang_vehicle_notify) exitWith {true}; + false + }; + _vehicle = (vehicle player); + //wait until the player exits the vehicle + waitUntil {sleep 2; ((vehicle player) != _vehicle)}; + [] call boomerang_remove_keyUp; + [_vehicle] call boomerang_vehicle_removeFiredNear; + hintSilent ""; + }; +}; + +boomerang_vehicle_add_firedNear = { + ARGVX3(0,_vehicle,objNull); + def(_id); + _id = _vehicle addEventHandler ["FiredNear", {_this call boomerang_fired_near_handler}]; + _vehicle setVariable ["FiredNear_ID", _id]; +}; + +boomerang_vehicle_removeFiredNear = { + ARGVX3(0,_vehicle,objNull); + def(_id); + _id = _vehicle getVariable "FiredNear_ID"; + if (isNil "_id") exitWith {}; + _vehicle removeEventHandler ["FiredNear", _id]; +}; + boomerang_add_events = { player addEventHandler ["FiredNear", {_this call boomerang_fired_near_handler}]; }; @@ -227,14 +326,111 @@ boomerang_toggle_hud = { false }; +#define MUTEX_UNLOCK mutexScriptInProgress = false; doCancelAction = false + + +boomerang_ground_deploy = { + ARGVX3(0,_player,objNull); + ARGVX3(1,_item_type,""); + + def(_msg); + _msg = "You are about to deploy the Boomerang Base Station. Players nearby will need to use a Boomerang Terminal. Do you want to proceed?"; + if (not([_msg, "Boomerang Ground Deploy", true, true] call BIS_fnc_guiMessage)) exitWith {false}; + + //this is needed in order for the mf_inventory_drop call to work (since it's nested inside USE) + MUTEX_UNLOCK ; + + private["_device"]; + _device = _item_type call mf_inventory_drop; + + if (!isOBJECT(_device)) exitWith {false}; + + _device setVariable ["is_boomerang", true, true]; + _device setVariable ["boomerang_owner_type", "player"]; + _device setVariable ["boomerang_owner_value", getPlayerUID _player]; + _device setVariable ["has_boomerang", true, true]; + + + true +}; + +boomerang_vehcle_deploy = { + ARGVX3(0,_vehicle,objNull); + ARGVX3(1,_player,objNull); + + def(_msg); + _msg = "You are about to deploy the Boomerang Base Station in this vehicle. Once installed, it cannot be removed. Do you want to proceed?"; + if (not([_msg, "Boomerang Vehicle Deploy", true,true] call BIS_fnc_guiMessage)) exitWith {false}; + + _vehicle setVariable ["has_boomerang", true, true]; + _vehicle setVariable ["boomerang_owner_type", "player"]; + _vehicle setVariable ["boomerang_owner_value", getPlayerUID _player]; + + [_id, 1] call mf_inventory_remove; + + + true +}; + boomerang_station_use = { - false; + private["_item_type"]; + _item_type = _this; + + init(_vehicle, vehicle player); + init(_player,player); + + if (_vehicle != _player) exitWith { + [_vehicle,_player] call boomerang_vehcle_deploy; + false + }; + + [_player, _item_type] call boomerang_ground_deploy; + + false }; +boomerang_keyUpHandler = { + init(_vehicle,vehicle player); + if (_vehicle == player) exitWith {}; + if (!(_vehicle getVariable ["has_boomerang", false])) exitWith {}; + + ARGVX2(0,_this); + ARGV2(0,_display); + ARGV2(1,_key); + ARGV2(2,_shift); + ARGV2(3,_control); + ARGV2(4,_alt); + + + if (_control && {_key == DIK_B}) then { + [] call boomerang_toggle_hud; + }; + true +}; + +boomerang_remove_keyUp = { + disableSerialization; + _display = findDisplay 46; + if (not(undefined(boomerang_keyUpHandler_id))) then { + _display displayRemoveEventHandler ["keyUp",boomerang_keyUpHandler_id]; + boomerang_keyUpHandler_id = nil; + }; +}; + +boomerang_setup_keyUp = { + init(_data,_this); + + disableSerialization; + _display = findDisplay 46; + if (undefined(boomerang_keyUpHandler_id) ) then { + boomerang_keyUpHandler_id = _display displayAddEventHandler ["keyUp",format["[_this,%1] call boomerang_keyUpHandler",_data]]; + }; +}; + [] call boomerang_add_events; +[] spawn boomerang_vehicle_watch; boomerang_functions_defined = true; - diag_log format["Loading boomerang functions complete"]; \ No newline at end of file diff --git a/addons/boomerang/hud_constants.h b/addons/boomerang/hud_constants.h index 0dded906a..e2192c7f1 100644 --- a/addons/boomerang/hud_constants.h +++ b/addons/boomerang/hud_constants.h @@ -10,4 +10,6 @@ idc = LED_IDC(index); \ x = -10; y = -10; \ w = 0.1; h = 0.1; \ - } \ No newline at end of file + } + +#define DIK_B 0x30 \ No newline at end of file From 88da8262867ac4024213c85bdce338aaee4bb103 Mon Sep 17 00:00:00 2001 From: micovery Date: Tue, 20 Jan 2015 23:24:38 -0800 Subject: [PATCH 331/544] Add configs for boomerang Also add extra controls Shift + M to cycle the sound modes (muted, beep, voice) Ctrl + E to exit the system --- addons/boomerang/config.sqf | 6 + addons/boomerang/functions.sqf | 196 +++++++++++++++++++++++++++---- addons/boomerang/hud_constants.h | 27 ++++- addons/boomerang/sounds.hpp | 3 +- addons/boomerang/sounds/beep.ogg | Bin 0 -> 4887 bytes 5 files changed, 205 insertions(+), 27 deletions(-) create mode 100644 addons/boomerang/sounds/beep.ogg diff --git a/addons/boomerang/config.sqf b/addons/boomerang/config.sqf index df722cda2..99a47107d 100644 --- a/addons/boomerang/config.sqf +++ b/addons/boomerang/config.sqf @@ -1,6 +1,12 @@ boomerang_max_inventory_terminals = 1; //maximum number of Boomerang terminals that player can carry in inventory boomerang_max_inventory_stations = 1; //maximum number of Boomerang stations that player can carry in inventory +boomerang_allow_vehicle_deploy = true; //whether or not to allow deploying boomerang on vehicles +boomerang_allow_ground_deploy = true; //whether or not to allow deploying boomerang on the ground +boomerang_min_distance = 25; //minimum distance from the base station for terminals to work +boomerang_vehicle_class_list = []; //list of vehicle classes where boomerang can be deployed (empty means all) + + boomerand_hud_scale = 1; //scale for how big to show the boomerang device boomerang_hud_x = safezoneX + (safeZoneW / 8); // X screen coordinate for the boomerang device boomerang_hud_y = safezoneY; //Y screen coordinate for the boomerang device diff --git a/addons/boomerang/functions.sqf b/addons/boomerang/functions.sqf index 5c79cfd6a..ea03af3f5 100644 --- a/addons/boomerang/functions.sqf +++ b/addons/boomerang/functions.sqf @@ -7,6 +7,8 @@ diag_log format["Loading boomerang functions ..."]; call compile preprocessFileLineNumbers "addons\boomerang\config.sqf"; + + boomerang_hud_remove = { 11 cuttext ["","plain"]; boomerang_hud_active = nil; @@ -28,14 +30,51 @@ boomerang_led_set_state = { _led ctrlShow _state; }; +//0 - voice +//1 - beep +//2 - muted +boomerang_sound_mode = 0; + + boomerang_led_sound = { _this spawn { ARGVX3(0,_index,0); - playSound "contact"; - uiSleep 1; - playSound ("at_" + str(_index)); - uiSleep 1; + + if (boomerang_sound_mode == 2) exitWith {}; + + if (boomerang_sound_mode == 0) exitWith { + playSound "contact_voice"; + uiSleep 1; + playSound ("at_" + str(_index)); + uiSleep 1; + }; + + if (boomerang_sound_mode == 1) exitWith { + playSound "contact_beep"; + uiSleep 2; + }; }}; +boomerang_cycle_sound_mode = { + boomerang_sound_mode = (boomerang_sound_mode + 1) % 3; + + def(_mode); + if (boomerang_sound_mode == 0) then { + _mode = "Voice reports"; + } + else { if (boomerang_sound_mode == 1) then { + _mode = "Beep sounds"; + } + else { if (boomerang_sound_mode == 2) then { + _mode = "Sound muted"; + };};}; + + def(_text); + _text = _mode; + _text = format["Boomerang

(%2)", MF_ITEMS_BOOMERANG_TERMINAL_ICON, "Sound mode"] + "

" + _text; + hintSilent parseText _text; +}; + + boomerang_alert_at = { disableSerialization; ARGVX3(0,_direction,0); @@ -95,15 +134,6 @@ boomerang_led_setup = { _led ctrlCommit 0; }; -boomerand_test_leds = { - disableSerialization; - { - for "_i" from 1 to 12 do { - [_i, _x] call boomerang_led_set_state; - uiSleep 0.01; - }; - } forEach [false, true, false]; -}; boomerang_is_terminal_nearby = { ARGVX4(0,_player,objNull,false); @@ -121,6 +151,18 @@ boomerang_is_terminal_nearby = { (_result) }; + +boomerand_test_leds = { + disableSerialization; + { + for "_i" from 1 to 12 do { + [_i, _x] call boomerang_led_set_state; + if ((_i % 2) == 0) then { playSound "contact_beep";}; + uiSleep 0.01; + }; + } forEach [true, false]; +}; + boomerang_hud_setup = { disableSerialization; 11 cutRsc ["boomerang_hud","PLAIN",1e+011,false]; @@ -152,6 +194,8 @@ boomerang_hud_setup = { [] spawn { + [] call boomerang_setup_hud_keyUp; + def(_vehicle_has_station); def(_player_has_terminal); def(_terminal_nearby); @@ -169,7 +213,7 @@ boomerang_hud_setup = { hintSilent parseText _text; }; - hintSilent ""; //clear any hints + //hintSilent ""; //clear any hints waitUntil { sleep 3; @@ -182,13 +226,15 @@ boomerang_hud_setup = { _player_has_terminal = (MF_ITEMS_BOOMERANG_TERMINAL call mf_inventory_count > 0); if (not(_player_has_terminal)) exitWith {call _notify_no_terminal; true}; //player dropped the terminal, close the hud - _terminal_nearby = [player, 25] call boomerang_is_terminal_nearby; + _terminal_nearby = [player, boomerang_min_distance] call boomerang_is_terminal_nearby; if (not(_terminal_nearby)) exitWith {call _notify_no_station; true}; //there are no nearby temrinals, close the hug false }; + [] call boomerang_remove_hud_keyUp; + [] call boomerang_hud_remove; }; @@ -266,7 +312,7 @@ boomerang_vehicle_notify = { _text = format["Boomerang

(%2)", MF_ITEMS_BOOMERANG_STATION_ICON, "available"] + "

" + _text; hintSilent parseText _text; - [] call boomerang_setup_keyUp; + [] call boomerang_setup_vehicle_keyUp; [_vehicle] call boomerang_vehicle_add_firedNear; true }; @@ -288,7 +334,7 @@ boomerang_vehicle_watch = { _vehicle = (vehicle player); //wait until the player exits the vehicle waitUntil {sleep 2; ((vehicle player) != _vehicle)}; - [] call boomerang_remove_keyUp; + [] call boomerang_remove_vehicle_keyUp; [_vehicle] call boomerang_vehicle_removeFiredNear; hintSilent ""; }; @@ -318,7 +364,20 @@ boomerang_toggle_hud = { _this spawn { if (isNil "boomerang_hud_active") exitWith { [] call boomerang_hud_remove; + def(_text); + _text = ""; + _text = format["Boomerang

(%2)", MF_ITEMS_BOOMERANG_TERMINAL_ICON, "connecting ..."] + "

" + _text; + hintSilent parseText _text; [] call boomerang_hud_setup; + sleep 4; + if (not(isNil "boomerang_hud_active")) then { + _text = ( + "Cycle mode: Shift + M
" + + "Exit system: Ctrl + E" + ); + _text = format["Boomerang

(%2)", MF_ITEMS_BOOMERANG_STATION_ICON, "connected"] + "

" + _text + ""; + hintSilent parseText _text; + }; }; [] call boomerang_hud_remove; @@ -326,10 +385,16 @@ boomerang_toggle_hud = { false }; + #define MUTEX_UNLOCK mutexScriptInProgress = false; doCancelAction = false boomerang_ground_deploy = { + + if (not(boomerang_allow_ground_deploy)) exitWith { + ["Deploying the boomerang on the ground is not allowed.", "Boomerang Vehicle Deploy", true] call BIS_fnc_guiMessage; + }; + ARGVX3(0,_player,objNull); ARGVX3(1,_item_type,""); @@ -355,9 +420,18 @@ boomerang_ground_deploy = { }; boomerang_vehcle_deploy = { + + if (not(boomerang_allow_vehicle_deploy)) exitWith { + ["The Boomerang base station cannot be deployed inside vehicles.", "Boomerang Vehicle Deploy", true] call BIS_fnc_guiMessage; + }; + ARGVX3(0,_vehicle,objNull); ARGVX3(1,_player,objNull); + if (isARRAY(boomerang_vehicle_class_list) && ({typeOf _vehilce == _x} count boomerang_vehicle_class_list) == 0) exitWith { + ["The Boomerang base station cannot be deployed in this kind of vehicle", "Boomerang Vehicle Deploy", true] call BIS_fnc_guiMessage; + }; + def(_msg); _msg = "You are about to deploy the Boomerang Base Station in this vehicle. Once installed, it cannot be removed. Do you want to proceed?"; if (not([_msg, "Boomerang Vehicle Deploy", true,true] call BIS_fnc_guiMessage)) exitWith {false}; @@ -390,7 +464,7 @@ boomerang_station_use = { }; -boomerang_keyUpHandler = { +boomerang_vehicle_keyUpHandler = { init(_vehicle,vehicle player); if (_vehicle == player) exitWith {}; if (!(_vehicle getVariable ["has_boomerang", false])) exitWith {}; @@ -409,25 +483,97 @@ boomerang_keyUpHandler = { true }; -boomerang_remove_keyUp = { +boomerang_remove_vehicle_keyUp = { disableSerialization; _display = findDisplay 46; - if (not(undefined(boomerang_keyUpHandler_id))) then { - _display displayRemoveEventHandler ["keyUp",boomerang_keyUpHandler_id]; - boomerang_keyUpHandler_id = nil; + if (not(undefined(boomerang_vehicle_keyUpHandler_id))) then { + _display displayRemoveEventHandler ["keyUp",boomerang_vehicle_keyUpHandler_id]; + boomerang_vehicle_keyUpHandler_id = nil; }; }; -boomerang_setup_keyUp = { +boomerang_setup_vehicle_keyUp = { init(_data,_this); disableSerialization; _display = findDisplay 46; - if (undefined(boomerang_keyUpHandler_id) ) then { - boomerang_keyUpHandler_id = _display displayAddEventHandler ["keyUp",format["[_this,%1] call boomerang_keyUpHandler",_data]]; + if (undefined(boomerang_vehicle_keyUpHandler_id) ) then { + boomerang_vehicle_keyUpHandler_id = _display displayAddEventHandler ["keyUp",format["[_this,%1] call boomerang_vehicle_keyUpHandler",_data]]; }; }; + + +boomerang_toggle_hud = { + _this spawn { + if (isNil "boomerang_hud_active") exitWith { + [] call boomerang_hud_remove; + def(_text); + _text = ""; + _text = format["Boomerang

(%2)", MF_ITEMS_BOOMERANG_TERMINAL_ICON, "connecting ..."] + "

" + _text; + hintSilent parseText _text; + [] call boomerang_hud_setup; + sleep 5; + if (not(isNil "boomerang_hud_active")) then { + _text = ( + "Cycle mode: Shift + M
" + + "Exit system: Ctrl + E" + ); + _text = format["Boomerang

(%2)", MF_ITEMS_BOOMERANG_STATION_ICON, "connected"] + "

" + _text + ""; + hintSilent parseText _text; + }; + }; + + [] call boomerang_hud_remove; + }; + false +}; + + +boomerang_hud_keyUpHandler = { + //player groupChat format["%1", _this]; + if (isNil "boomerang_hud_active") exitWith {}; + ARGVX2(0,_this); + ARGV2(0,_display); + ARGV2(1,_key); + ARGV2(2,_shift); + ARGV2(3,_control); + ARGV2(4,_alt); + + if (_shift && {_key == DIK_M}) exitWith { + [] call boomerang_cycle_sound_mode; + true + }; + + if (_control && {_key == DIK_E}) then { + [] call boomerang_hud_remove; + true + }; + + false +}; + +boomerang_remove_hud_keyUp = { + disableSerialization; + _display = findDisplay 46; + if (not(undefined(boomerang_hud_keyUpHandler_id))) then { + _display displayRemoveEventHandler ["keyDown",boomerang_hud_keyUpHandler_id]; + boomerang_hud_keyUpHandler_id = nil; + }; +}; + +boomerang_setup_hud_keyUp = { + init(_data,_this); + + disableSerialization; + _display = findDisplay 46; + if (undefined(boomerang_hud_keyUpHandler_id) ) then { + boomerang_hud_keyUpHandler_id = _display displayAddEventHandler ["keyDown",format["[_this,%1] call boomerang_hud_keyUpHandler",_data]]; + }; +}; + + + [] call boomerang_add_events; [] spawn boomerang_vehicle_watch; diff --git a/addons/boomerang/hud_constants.h b/addons/boomerang/hud_constants.h index e2192c7f1..c33bfbc1d 100644 --- a/addons/boomerang/hud_constants.h +++ b/addons/boomerang/hud_constants.h @@ -12,4 +12,29 @@ w = 0.1; h = 0.1; \ } -#define DIK_B 0x30 \ No newline at end of file +#define DIK_A 0x1E +#define DIK_B 0x30 +#define DIK_C 0x2E +#define DIK_D 0x20 +#define DIK_E 0x12 +#define DIK_F 0x21 +#define DIK_G 0x22 +#define DIK_H 0x23 +#define DIK_I 0x17 +#define DIK_J 0x24 +#define DIK_K 0x25 +#define DIK_L 0x26 +#define DIK_M 0x32 +#define DIK_N 0x31 +#define DIK_O 0x18 +#define DIK_P 0x19 +#define DIK_Q 0x10 +#define DIK_R 0x13 +#define DIK_S 0x1F +#define DIK_T 0x14 +#define DIK_U 0x16 +#define DIK_V 0x2F +#define DIK_W 0x11 +#define DIK_X 0x2D +#define DIK_Y 0x15 +#define DIK_Z 0x2C \ No newline at end of file diff --git a/addons/boomerang/sounds.hpp b/addons/boomerang/sounds.hpp index 0bc612706..24de1d302 100644 --- a/addons/boomerang/sounds.hpp +++ b/addons/boomerang/sounds.hpp @@ -1,5 +1,6 @@ #include "sound_constants.h" -SOUND(contact,PATH(contact.ogg)); +SOUND(contact_voice,PATH(contact.ogg)); +SOUND(contact_beep,PATH(beep.ogg)); SOUND(at_1,PATH(1.ogg)); SOUND(at_2,PATH(2.ogg)); SOUND(at_3,PATH(3.ogg)); diff --git a/addons/boomerang/sounds/beep.ogg b/addons/boomerang/sounds/beep.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9798d8abffd6dd293f72cff625f4d0415deabb48 GIT binary patch literal 4887 zcmd5{|1w||C2p@z^9HB*u)gocb%OvLyRhQV+q`7vael9{Pf=jb>mItckWmuYg) z7?b5 z{p`m(I@%9Xg1)q9_a!3IzI`KNJ>vM$gzy-qT!e70UYbd2TKd0^@RqOqdy}t30M4qh z@zrYcKmOXRm6vdgz;sYd{9z04glKeJOn86-9Zf`ATUze4w6(UDgCSIwls6Fe1pqt* zgo^OT?k^(!>Yk?0%(vQK6rSszR-UX!aJ$IV@vFoS@M5cPG@z4_27W$Rl_F9WDMmjc zTTUT8h?`m3_FFDSAVY}1^cTjSb80k9*5r~rv3K%G=>#=>zYOf%e3Cmsbu(*~y~NNj z%iYxJI*(b^z~Mxkt7PT6ON}Ev32xYwTzA!SzXJp}8%{q7Ys4gx=uT7Mk%UHcvgQvx z*<`t$EsjV7(Mre%f{^K@sC1>|v(-uvaA{eIY1T8-tWEgb2%?@s1%w+3K`rq*#2lS_ zSB*V>HS_3o_9Z9w*^5dq&#MNLX_2EpvPlspNYaQ zQN?#8PO-3D)`qV*b8J5f=yB^MPITLTAk(WC;OQ230kv^bLS$I<0je7hR1^cewt^Xd zK#p8CCkZ}6SPQ5<`W4?W33Ay#^p?T{{B=Uvo;_B9cKhkl_b8Xtm=3<`$feuHhcyyb zR=QrgltY?E=li!2u@{#-SA!r-vJS}&lk#Oq#hgWjcVH`cKdjtZ$uCQ{?lh~rZ`~yy zWVLnO_A{1ukoz=h>a{(*8v24FYHmn*v8#R!j;U$rcgL24UB)Wnmjt#)O+PZ*X}=sf z6(is!bYd@;C@I1TCgqjjaF6Ni%KArdXF9m%I}<^#_w4%3(_5F^S3nKvr;W@p!qy%i znP)$pXHN{Igi$!O|I(LS2c9G$32IA@l%pc zSCKbU?lY|58Mf>hzHF0w87;U>Ko^=`5Xr>Cf7dM(37!o>JvoN=atuL&69IuxL>JV8 z5)`k|o(+;7Wc(K&z2AX=QXi@Obps&C()c#X%$12F=KFgz_Gk=*xV>WM|97VPw^NOuZFbxMW%W`r@t(NPaDYh=tNEjtdAkVA^LDPbq zf#+@Lb|kX{?^>Csjh9|#<{4@?Ulld3bBStQq*OZnku=Ew6%nU!rI zTa*mJ&ny|3zYOw)pkymIEMF%)17E@0mw}ZQGS6B`44GMYX$gz8Rmx)>aKD2BYz2== zvfom`Jm9{i6yyh_3V!OPJ=wYlM;?^qlKW2^lDuWKl-~X@NTfz--7s%6LCJtjNKe43Mc0 zanwLIH8hYq&~MY5FGn8qr&5jsWNKhP`yoz_JZwu1cBjiGM55o<;XYKRMZ~w`$WIvDdQ~K(}9$ylp|C-&LehWSOH@^h(^Jm9uMM- z%oorAR1jkj6+qED8~Wkm0lRg$^{TA-?Wg8ivr97zt@N(e+M!0PC(TF9 zZp9mR#mYLZWX-;f>~BNAUU~a1i%mTlMQxvBvnE{aPIrQ>MaZ{yO{ZfiW}8xy9RfOU zoK_Y|DKn*TOw$EZ;Vqg)LD>RGY#sn8fak&*mg2P;4ELTvS zF2HsP=$)b%u4qOqVl)ZkhRb3UY#di$)+DML7S2qI`4mCr$>JD#F@RDi3#(2R(@zy2 zhKo&Mm=41=Fl-hAX1P<9f-UJlBB)zTGP#j)UCpzd@GFIb3Nu9J!=l+PQT3w2LAe>QMVE-Nt}bp- ze3<*is;$E!^F=YRYPM5&vs|ZnH*y4)z?S^DF}|#Fr3#QsG@$azIq0Q!w74njRWOtw2(RWKmj{+ zAaP=VHX;#=UUrFU7U8Oe##f82@iO7-l@NrAhafe}QVksgkv5bHPKAuH3@f!vQa4_; z)VC8aMMri!sbLE4emZ!JaV=aSR_6|9cQ&nLyIK#-0dIJX{`V6WQAvjvgl z4?$-pfZoJqBK@hY0$nxJVZW zxdjAdAC@nF=PF*j|9x=#R}=qqMdkkl^-ov)ui*b5C>Q+eQ2k&0TM1>S$3xkt{>)4_ zkYpLY?$|co8Kjj2712X9#fIO4>*$nWQ4{p@!#R|bKoY`ds25|2~eYyOpKw~&NC~5uU zTKiVwqo6~7rnHiNxm;xmNy@-W!9zEu$XPXvznoN?d5}lk`E+z1-qg&-v@#YeXk5TCTUh};^}0n=*f!{TtSiy zIVGg-WTz~r^O{bbzB@Dtp7=*a;RonDbp5jN$crp(eY(@&L2GqzdZQt9%Q7SiZTf+r zmTCnqv8nfwD^kd{EhQQTh7v@JvU9RClwDZj)^t6|LiwwnyHr(z8Ugu3kf9@Dg`M5_ z*)5~5lh^S|{QRfU@|zW;0gZvODuFg`RLNE| z3rlO9t)0EY-@nX~l9Ci!j$lkmQha+YySzamg5=*`a>XeJcU_b|YQ4U}TK#qU`fE}8 zfZ4!grk+bnJMvr48bi;I7o%+pyLZ%f?6^76-fm)~`TL#C_Ya)-_#aoKS`g_;==qN; zj?J+3_YP6Ete6>E^ZC2bzW3^d-;LZC4(H6Y)&3{p{Z0!!{pn9yN;;FXlRtHTrD}P# zef-9HSA9L!hG-Hydyj8{X!)#k*Mk!zA>iZ+s7 zQPaCOC;D|5J$el35$bp`~1%vIG9c9?)u!=JB#SmQ`d~% zbMuzL74@45=2T^k3EinsO$c-JhXKj?lq%;{*Y@bxXlZ{M8`?W+ zwXM2cMv%tf(CO>zj*_9<*$Ejqvv2FvGuJ+be}gn8W+%4~KC!XMdH&(96tk_VpnWD< z5V$h5!RGPrDu&|)i_%w5(z0Jwd zpwW{7lF(Z(j~Ya|EeP92f9yV~CqhOYhYr=CBKMcx;YUys1NxqvkNn7Y2{SqM(O>;T zHH6_r_N1#IRC-bfE-G3`sP^|ad%3!*D}C_6nQ!k682lL3JP~@#nEN)c)5NKMK?QnP zai=CZ!gV5*=Nwa_e6U0FQ^n~`7JA;ktG;*rs^x{%iLNMwPhKvZA^Lfc&z`txl04^N zF`m(kIY0J1?)}b)RNXfRr!&-jw%P8-dicTN0kV;yl-7F`nXGE){lPfD{ujkw8oPHj z)q8m-9@&YzxOscMQNM}HslDPs>sr?NTL&itp1eQV5PfFeD{qt5_2S>P=tc-=Pe;S& zqd&WPRA;ReK5Sc7{hL1h0#q1%aG6bZYBS@l(bZb>gheXVB40Yk>%qU`d|8>uVpp65ot`s!U_Nv6a2T%Q)zXRnQN>-xF8bJ7PV~SS!O4=OVYGxa3p%8f<7cA$=33@4vu_Ske8aa~E3kRI{wHnEzMMS6L*n^ukN((; zOX|*vTz6=jNN*D}^=(L{r5=dMgTn8oZ)hm5i*HWNOUr!O&|{o|dc^tlLcd-$^;{7C z{UVDwlov)QpM6>~n_kZ;8e1Or++@$08-L7kkO#b1e@tyiUB1ENMBMb70IS>sd@Ak( zhHv%ICfCAqb?BNWr7U+Bum1Mu;&Hc4oU;)^r>{m#TF(_Zt`^=ajyPFV`0K9QAL&u* zEg(tyq}vng{GV;_4LJK_juiDGJ_7;KTVW-*CTgacD3;p3e?9EFcy`P;Bw~B}%i9sB zJ`*YLDhIC|4CU+G=6-IBy463ECu;Pd*p1p_W1Dnll1*qY$1+Fz_xBx6@^VyO?YK+1 M!~?CW!b2$i4Y5yzy8r+H literal 0 HcmV?d00001 From c2abc6f7756053557aea8e747d60ba22039dedc3 Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 21 Jan 2015 00:53:40 -0800 Subject: [PATCH 332/544] Enable LCD on boomerang --- addons/boomerang/config.sqf | 2 +- addons/boomerang/functions.sqf | 46 ++++++++++++++++++++++++++++---- addons/boomerang/hud.hpp | 10 ++++++- addons/boomerang/hud_constants.h | 1 + 4 files changed, 52 insertions(+), 7 deletions(-) diff --git a/addons/boomerang/config.sqf b/addons/boomerang/config.sqf index 99a47107d..57b08da27 100644 --- a/addons/boomerang/config.sqf +++ b/addons/boomerang/config.sqf @@ -4,7 +4,7 @@ boomerang_max_inventory_stations = 1; //maximum number of Boomerang stations tha boomerang_allow_vehicle_deploy = true; //whether or not to allow deploying boomerang on vehicles boomerang_allow_ground_deploy = true; //whether or not to allow deploying boomerang on the ground boomerang_min_distance = 25; //minimum distance from the base station for terminals to work -boomerang_vehicle_class_list = []; //list of vehicle classes where boomerang can be deployed (empty means all) +boomerang_vehicle_class_list = ["All"]; //list of vehicle classes where boomerang can be deployed boomerand_hud_scale = 1; //scale for how big to show the boomerang device diff --git a/addons/boomerang/functions.sqf b/addons/boomerang/functions.sqf index ea03af3f5..617c784fd 100644 --- a/addons/boomerang/functions.sqf +++ b/addons/boomerang/functions.sqf @@ -30,6 +30,20 @@ boomerang_led_set_state = { _led ctrlShow _state; }; +boomerang_lcd_set = { + ARGVX3(0,_text,""); + + def(_display); + _display = uiNamespace getVariable "boomerang_hud"; + + def(_boomerang_lcd); + _boomerang_lcd = _display displayCtrl boomerang_hud_lcd_idc; + + _boomerang_lcd ctrlSetText _text; + _boomerang_lcd ctrlCommit 0; +}; + + //0 - voice //1 - beep //2 - muted @@ -78,7 +92,10 @@ boomerang_cycle_sound_mode = { boomerang_alert_at = { disableSerialization; ARGVX3(0,_direction,0); - ARGVX4(1,_voice,false, true); + ARGVX3(1,_dist,0); + ARGVX4(2,_voice,false,true); + + [(" " +str(round(_dist)) + " M")] call boomerang_lcd_set; if (_voice) then { [_direction] call boomerang_led_sound; @@ -87,6 +104,7 @@ boomerang_alert_at = { [_direction, true] call boomerang_led_set_state; uiSleep 2; [_direction, false] call boomerang_led_set_state; + [""] call boomerang_lcd_set; }; //pre-computed set of relative coordinates @@ -163,6 +181,7 @@ boomerand_test_leds = { } forEach [true, false]; }; + boomerang_hud_setup = { disableSerialization; 11 cutRsc ["boomerang_hud","PLAIN",1e+011,false]; @@ -171,7 +190,9 @@ boomerang_hud_setup = { _display = uiNamespace getVariable "boomerang_hud"; def(_boomerang_background); + def(_boomerang_lcd); _boomerang_background = _display displayCtrl boomerang_hud_background_idc; + _boomerang_lcd = _display displayCtrl boomerang_hud_lcd_idc; private["_x","_y", "_w", "_h"]; @@ -183,6 +204,20 @@ boomerang_hud_setup = { _boomerang_background ctrlSetText "addons\boomerang\images\boomerang.paa"; _boomerang_background ctrlCommit 0; + private["_lx","_ly","_lw","_lh"]; + _lw = _w/3.25; + _lh = _h/10.4; + _lx = _x + (_w /10) * 2.26 ; + _ly = _y + (_h /10) * 2.83; + + _boomerang_lcd ctrlSetPosition [_lx,_ly,_lw,_lh]; + _boomerang_lcd ctrlSetBackgroundColor [0,0,0,0.3]; + _boomerang_lcd ctrlSetFontHeight 0.045 * boomerand_hud_scale; + _boomerang_lcd ctrlSetFont "PuristaBold"; + _boomerang_lcd ctrlSetTextColor [0,0,0,0.67]; + _boomerang_lcd ctrlSetText ""; + _boomerang_lcd ctrlCommit 0; + for "_i" from 1 to 12 do { [_i] call boomerang_led_setup; }; @@ -293,12 +328,13 @@ boomerang_fired_near_handler = { boomerang_last_event_pos = _clock_pos; boomerang_last_event_time = diag_tickTime; + init(_dist,(_unit distance _firer)); if (!isNil "boomerang_alert_script_handle" && {not(scriptDone boomerang_alert_script_handle)}) exitWith { //don't play the sound, but at least show the LED - [_clock_pos, false] spawn boomerang_alert_at; + [_clock_pos, _dist, false] spawn boomerang_alert_at; }; - boomerang_alert_script_handle = [_clock_pos, true] spawn boomerang_alert_at; + boomerang_alert_script_handle = [_clock_pos, _dist, true] spawn boomerang_alert_at; }; @@ -427,8 +463,8 @@ boomerang_vehcle_deploy = { ARGVX3(0,_vehicle,objNull); ARGVX3(1,_player,objNull); - - if (isARRAY(boomerang_vehicle_class_list) && ({typeOf _vehilce == _x} count boomerang_vehicle_class_list) == 0) exitWith { + player groupChat format["%1", boomerang_vehicle_class_list]; + if (isARRAY(boomerang_vehicle_class_list) && ({_vehicle isKindOf _x} count boomerang_vehicle_class_list) == 0) exitWith { ["The Boomerang base station cannot be deployed in this kind of vehicle", "Boomerang Vehicle Deploy", true] call BIS_fnc_guiMessage; }; diff --git a/addons/boomerang/hud.hpp b/addons/boomerang/hud.hpp index 6814c4dd8..dd7e3aa04 100644 --- a/addons/boomerang/hud.hpp +++ b/addons/boomerang/hud.hpp @@ -24,7 +24,8 @@ class boomerang_hud { boomerang_hud_9_led, boomerang_hud_10_led, boomerang_hud_11_led, - boomerang_hud_12_led + boomerang_hud_12_led, + boomerang_hud_lcd }; LED(1); @@ -45,4 +46,11 @@ class boomerang_hud { x = -10; y = -10; w = 0.1; h = 0.1; }; + + class boomerang_hud_lcd: gui_RscText { + idc = boomerang_hud_lcd_idc; + x = -10; y = -10; + w = 0.1; h = 0.1; + text = "" + }; }; \ No newline at end of file diff --git a/addons/boomerang/hud_constants.h b/addons/boomerang/hud_constants.h index c33bfbc1d..da4787404 100644 --- a/addons/boomerang/hud_constants.h +++ b/addons/boomerang/hud_constants.h @@ -2,6 +2,7 @@ #define boomerang_hud_led_idc_base 3000 //3001 - 3012 are for LEDs #define boomerang_hud_background_idc 3013 +#define boomerang_hud_lcd_idc 3014 #define LED_IDC(x) (boomerang_hud_led_idc_base + x) From 53e88cec87e2d9359351d23fc0e93bd83314363d Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 21 Jan 2015 01:02:38 -0800 Subject: [PATCH 333/544] Enable saving of boomerang devices --- addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 3 ++- persistence/lib/shFunctions.sqf | 5 +++++ persistence/world/oFunctions.sqf | 9 +++++++++ persistence/world/vFunctions.sqf | 6 ++++++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index fc8956098..07fa194cf 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -216,5 +216,6 @@ R3F_LOG_CFG_objets_deplacables = "Land_Stone_8m_F", "Land_ToiletBox_F", "Land_BarrelWater_F", - "Land_HandyCam_F" + "Land_HandyCam_F", + "Land_SatellitePhone_F" ]; diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index f9139428b..7b990aa79 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -77,6 +77,11 @@ sh_isCamera = { (_obj getVariable ["a3w_cctv_camera", false]) }; +sh_isBoomerang = { + ARGVX4(0,_obj,objNull,false); + (_obj getVariable ["has_boomerang", false]) +}; + sh_isBox = { ARGVX4(0,_obj,objNull,false); init(_class,typeOf _obj); diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index f2a1b6416..89afe34fd 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -437,6 +437,15 @@ o_fillVariables = { _variables pushBack ["mf_item_id", (_obj getVariable ["mf_item_id", nil])]; }; + if ([_obj] call sh_isBoomerang) then { + _variables pushBack ["is_boomerang", (_obj getVariable "is_boomerang")]; + _variables pushBack ["has_boomerang", (_obj getVariable "has_boomerang")]; + _variables pushBack ["boomerang_owner_type", (_obj getVariable "boomerang_owner_type")]; + _variables pushBack ["boomerang_owner_value", (_obj getVariable "boomerang_owner_value")]; + _variables pushBack ["mf_item_id", (_obj getVariable "mf_item_id")]; + }; + + if ([_obj] call sh_isMine) then { init(_mineVisibility,[]); { diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 37a7f2ea8..45aad1d60 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -464,6 +464,12 @@ v_setupVehicleSavedVariables = { _variables pushBack ["R3F_Side", str _r3fSide]; }; + if ([_obj] call sh_isBoomerang) then { + _variables pushBack ["has_boomerang", (_obj getVariable "has_boomerang")]; + _variables pushBack ["boomerang_owner_type", (_obj getVariable "boomerang_owner_type")]; + _variables pushBack ["boomerang_owner_value", (_obj getVariable "boomerang_owner_value")]; + }; + _variables pushBack ["A3W_objectTextures", (_obj getVariable ["A3W_objectTextures",[]])]; }; From da090153b3a5b31322537c676c60d3181a567bdd Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 21 Jan 2015 21:12:51 -0800 Subject: [PATCH 334/544] Remove fired near event handler after closing hud --- addons/boomerang/config.sqf | 2 +- addons/boomerang/functions.sqf | 21 ++++++++++++--------- addons/boomerang/hud.hpp | 2 +- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/addons/boomerang/config.sqf b/addons/boomerang/config.sqf index 57b08da27..f151674c9 100644 --- a/addons/boomerang/config.sqf +++ b/addons/boomerang/config.sqf @@ -3,7 +3,7 @@ boomerang_max_inventory_stations = 1; //maximum number of Boomerang stations tha boomerang_allow_vehicle_deploy = true; //whether or not to allow deploying boomerang on vehicles boomerang_allow_ground_deploy = true; //whether or not to allow deploying boomerang on the ground -boomerang_min_distance = 25; //minimum distance from the base station for terminals to work +boomerang_min_distance = 100; //minimum distance from the base station for terminals to work boomerang_vehicle_class_list = ["All"]; //list of vehicle classes where boomerang can be deployed diff --git a/addons/boomerang/functions.sqf b/addons/boomerang/functions.sqf index 617c784fd..d1f88c935 100644 --- a/addons/boomerang/functions.sqf +++ b/addons/boomerang/functions.sqf @@ -229,8 +229,13 @@ boomerang_hud_setup = { [] spawn { + init(_player,player); + [_player] call boomerang_remove_firedNear; + [_player] call boomerang_add_firedNear; [] call boomerang_setup_hud_keyUp; + + def(_vehicle_has_station); def(_player_has_terminal); def(_terminal_nearby); @@ -269,8 +274,8 @@ boomerang_hud_setup = { }; [] call boomerang_remove_hud_keyUp; - [] call boomerang_hud_remove; + [_player] call boomerang_remove_firedNear; }; }; @@ -349,7 +354,8 @@ boomerang_vehicle_notify = { hintSilent parseText _text; [] call boomerang_setup_vehicle_keyUp; - [_vehicle] call boomerang_vehicle_add_firedNear; + [_vehicle] call boomerang_remove_firedNear; + [_vehicle] call boomerang_add_firedNear; true }; @@ -371,19 +377,20 @@ boomerang_vehicle_watch = { //wait until the player exits the vehicle waitUntil {sleep 2; ((vehicle player) != _vehicle)}; [] call boomerang_remove_vehicle_keyUp; - [_vehicle] call boomerang_vehicle_removeFiredNear; + [_vehicle] call boomerang_remove_firedNear; hintSilent ""; }; }; -boomerang_vehicle_add_firedNear = { +boomerang_add_firedNear = { ARGVX3(0,_vehicle,objNull); def(_id); _id = _vehicle addEventHandler ["FiredNear", {_this call boomerang_fired_near_handler}]; _vehicle setVariable ["FiredNear_ID", _id]; }; -boomerang_vehicle_removeFiredNear = { +boomerang_remove_firedNear = { + diag_log format["%1 call boomerang_remove_firedNear", _this]; ARGVX3(0,_vehicle,objNull); def(_id); _id = _vehicle getVariable "FiredNear_ID"; @@ -391,9 +398,6 @@ boomerang_vehicle_removeFiredNear = { _vehicle removeEventHandler ["FiredNear", _id]; }; -boomerang_add_events = { - player addEventHandler ["FiredNear", {_this call boomerang_fired_near_handler}]; -}; boomerang_toggle_hud = { @@ -610,7 +614,6 @@ boomerang_setup_hud_keyUp = { -[] call boomerang_add_events; [] spawn boomerang_vehicle_watch; boomerang_functions_defined = true; diff --git a/addons/boomerang/hud.hpp b/addons/boomerang/hud.hpp index dd7e3aa04..c55ae8e99 100644 --- a/addons/boomerang/hud.hpp +++ b/addons/boomerang/hud.hpp @@ -51,6 +51,6 @@ class boomerang_hud { idc = boomerang_hud_lcd_idc; x = -10; y = -10; w = 0.1; h = 0.1; - text = "" + text = ""; }; }; \ No newline at end of file From b390a746b68aa53512a6955d15fd0653f0e795cb Mon Sep 17 00:00:00 2001 From: micovery Date: Wed, 21 Jan 2015 21:29:52 -0800 Subject: [PATCH 335/544] Forgot to remove extra debug log call --- addons/boomerang/functions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/boomerang/functions.sqf b/addons/boomerang/functions.sqf index d1f88c935..a3b04dbc6 100644 --- a/addons/boomerang/functions.sqf +++ b/addons/boomerang/functions.sqf @@ -390,7 +390,7 @@ boomerang_add_firedNear = { }; boomerang_remove_firedNear = { - diag_log format["%1 call boomerang_remove_firedNear", _this]; + //diag_log format["%1 call boomerang_remove_firedNear", _this]; ARGVX3(0,_vehicle,objNull); def(_id); _id = _vehicle getVariable "FiredNear_ID"; From c873f14bccc142881eb0d6463862e223c5bc68e0 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 22 Jan 2015 00:07:45 -0800 Subject: [PATCH 336/544] Updated boomerang config. --- addons/boomerang/config.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/boomerang/config.sqf b/addons/boomerang/config.sqf index f151674c9..b8289f41f 100644 --- a/addons/boomerang/config.sqf +++ b/addons/boomerang/config.sqf @@ -3,7 +3,7 @@ boomerang_max_inventory_stations = 1; //maximum number of Boomerang stations tha boomerang_allow_vehicle_deploy = true; //whether or not to allow deploying boomerang on vehicles boomerang_allow_ground_deploy = true; //whether or not to allow deploying boomerang on the ground -boomerang_min_distance = 100; //minimum distance from the base station for terminals to work +boomerang_min_distance = 150; //minimum distance from the base station for terminals to work boomerang_vehicle_class_list = ["All"]; //list of vehicle classes where boomerang can be deployed From d89269a745c2fd44f385f20e260dc8bc80394a6f Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 22 Jan 2015 13:36:13 -0800 Subject: [PATCH 337/544] Reduced falling and vehicle collision player damage. --- client/functions/unitHandleDamage.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/functions/unitHandleDamage.sqf b/client/functions/unitHandleDamage.sqf index 2152254a6..9f32cabec 100644 --- a/client/functions/unitHandleDamage.sqf +++ b/client/functions/unitHandleDamage.sqf @@ -4,7 +4,7 @@ // @file Name: unitHandleDamage.sqf // @file Author: AgentRev -#define IMPACT_DAMAGE_MULTIPLIER 0.5 +#define IMPACT_DAMAGE_MULTIPLIER 0.3 _unit = _this select 0; From 84b4d8cf1145166b00fb7cb30a2d0c7d6362e9a0 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 22 Jan 2015 13:55:48 -0800 Subject: [PATCH 338/544] Removed one repair kit and nvg. Added 3 chem lights. --- client/functions/playerSetupGear.sqf | 5 ++++- client/functions/spawnAction.sqf | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/client/functions/playerSetupGear.sqf b/client/functions/playerSetupGear.sqf index 40ade8b13..ee627327e 100644 --- a/client/functions/playerSetupGear.sqf +++ b/client/functions/playerSetupGear.sqf @@ -31,7 +31,7 @@ _player unlinkItem "ItemGPS"; if (hmd _player != "") then { _player unlinkItem hmd _player }; // Add NVG -_player linkItem "NVGoggles"; +//_player linkItem "NVGoggles"; _player addBackpack "B_AssaultPack_rgr"; @@ -41,6 +41,9 @@ _player addMagazine "9Rnd_45ACP_Mag"; _player addMagazine "9Rnd_45ACP_Mag"; _player addMagazine "9Rnd_45ACP_Mag"; _player addItem "FirstAidKit"; +_player addItem "Chemlight_green"; +_player addItem "Chemlight_red"; +_player addItem "Chemlight_blue"; _player selectWeapon "hgun_ACPC2_F"; switch (true) do diff --git a/client/functions/spawnAction.sqf b/client/functions/spawnAction.sqf index 03114188e..510d75edc 100644 --- a/client/functions/spawnAction.sqf +++ b/client/functions/spawnAction.sqf @@ -34,7 +34,7 @@ spawnActionHandle = (_this select 1) spawn [MF_ITEMS_CANNED_FOOD, 2] call mf_inventory_add; [MF_ITEMS_WATER, 2] call mf_inventory_add; - [MF_ITEMS_REPAIR_KIT, 2] call mf_inventory_add; + [MF_ITEMS_REPAIR_KIT, 1] call mf_inventory_add; }; if (cbChecked ((uiNamespace getVariable "RespawnSelectionDialog") displayCtrl respawn_Preload_Checkbox)) then From d1bb9b69855631fa574fc344b66a1019aad84f00 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 22 Jan 2015 14:13:00 -0800 Subject: [PATCH 339/544] Added UAVs to towing. --- addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index 684699c6b..308801e53 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -57,6 +57,7 @@ R3F_LOG_CFG_objets_remorquables = "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", + "UAV_02_base_F", "UGV_01_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", @@ -111,7 +112,7 @@ R3F_LOG_CFG_objets_remorquablesH = "B_Heli_Light_01_armed_F", "C_Heli_Light_01_civil_F", "I_Heli_Transport_02_F", - "Heli_Transport_04_base_F", + "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "Plane" ]; @@ -127,7 +128,7 @@ R3F_LOG_CFG_objets_remorquablesALL = "Wheeled_APC_F", "Tank_F", "I_Heli_Transport_02_F", - "Heli_Transport_04_base_F", + "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", From df42f45ea3dee688372f03c046b5ab7310a03655 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 22 Jan 2015 14:29:38 -0800 Subject: [PATCH 340/544] Added UAVs and UGVs to saved vehicles. --- client/functions/playerActions.sqf | 4 ++-- server/default_config.sqf | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index ced072f3f..c55aefca9 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -27,8 +27,8 @@ [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], - [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], - [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], + [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'UAV_02_base_F', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], + [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'UAV_02_base_F', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], [" Re\Save Weapon", "addons\scripts\weaponResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && (player distance cursortarget) < 5"], [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'UGV_01_base_F', 'UAV_02_base_F'] > 0 ;} && (player distance cursortarget) < 5"], diff --git a/server/default_config.sqf b/server/default_config.sqf index 63b237fe9..c3f43c7b8 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -59,7 +59,7 @@ A3W_warchestMoneySaving = 0; // Save warchest team money between server re A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts (0 = no, 1 = yes) A3W_cctvCameraSaving = 1; // Save cctv cameras between restarts (0 = no, 1 = yes) A3W_mineSaving = 1; // Save mines between server restarts (0 = no, 1 = yes) -A3W_mineLifetime = 36; // Maximum lifetime in hours for mines across server restarts (0 = no time limit) +A3W_mineLifetime = 36; // Maximum lifetime in hours for mines across server restarts (0 = no time limit) A3W_objectLifetime = 7*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) @@ -78,9 +78,9 @@ A3W_object_saveInterval = 1200; // Number of seconds between object saves A3W_player_saveInterval = 1200; // Number of seconds between player saves A3W_playersList_saveInterval = 120; // Number of seconds between player list saves -A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of classes for vehicles that are saveable +A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "UAV_01_base_F", "UAV_02_base_F", "UGV_01_base_F"]; // List of classes for vehicles that are saveable A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked upon restore -A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought +A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "UAV_02_base_F", "UGV_01_base_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) From eb776787807aa802a5837e0ee75e6db687fbbbc9 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 22 Jan 2015 15:15:06 -0800 Subject: [PATCH 341/544] Added TS address to server credits. --- addons/scripts/servercredits.sqf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/scripts/servercredits.sqf b/addons/scripts/servercredits.sqf index 8a51bde7c..9016c8ec1 100644 --- a/addons/scripts/servercredits.sqf +++ b/addons/scripts/servercredits.sqf @@ -45,6 +45,8 @@ _role2 = "Server restarts every 8 hours"; _role2names = ["5, 13, 21 EST"]; _role3 = "Player stats, and support @"; _role3names = ["A3Armory.com"]; +_role4 = "TS3 Server @"; +_role4names = ["TS.A3Armory.com"]; { sleep 2; @@ -67,5 +69,6 @@ _role3names = ["A3Armory.com"]; //The list below should have exactly the same amount of roles as the list above [_role1, _role1names], [_role2, _role2names], - [_role3, _role3names] //make SURE the last one here does NOT have a , at the end + [_role3, _role3names], + [_role4, _role4names] //make SURE the last one here does NOT have a , at the end ]; From f0f41854d04541f1b80a2f67c451d079f1dab6b1 Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 22 Jan 2015 21:38:20 -0800 Subject: [PATCH 342/544] Revamp resupply to work with UAVs, and Statics --- addons/scripts/fn_resupplytruck.sqf | 625 +++++++++++++++------------- addons/scripts/resupply_actions.sqf | 114 +++++ client/functions/playerActions.sqf | 5 +- init.sqf | 2 + 4 files changed, 444 insertions(+), 302 deletions(-) create mode 100644 addons/scripts/resupply_actions.sqf diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index e72a77469..2114607af 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -1,7 +1,7 @@ -// @file Version: 1.1 -// @file Name: fn_resupplyTruck.sqf -// @file Author: Wiking, AgentRev -// @file Created: 13/07/2014 21:58 +// @file Version: 1.1 +// @file Name: fn_resupplyTruck.sqf +// @file Author: Wiking, AgentRev +// @file Created: 13/07/2014 21:58 #define RESUPPLY_TRUCK_DISTANCE 20 #define REARM_TIME_SLICE 10 @@ -9,316 +9,343 @@ #define REFUEL_TIME_SLICE 1 #define PRICE_RELATIONSHIP 4 +private["_vehicle"]; // Check if mutex lock is active. -if (mutexScriptInProgress) exitWith -{ - titleText ["You are already performing another action.", "PLAIN DOWN", 0.5]; +if (mutexScriptInProgress) exitWith { + titleText ["You are already performing another action.", "PLAIN DOWN", 0.5]; }; + mutexScriptInProgress = true; +doCancelAction = false; + +if (!isNil "_this" && {typeName _this == typeName objNull}) then { + _vehicle = _this; +} +else { + _vehicle = vehicle player; +}; + + + +private["_checkExit"]; +_checkExit = { + if (doCancelAction) exitWith { + doCancelAction = false; + mutexScriptInProgress = false; + titleText ["Vehicle resupply cancelled", "PLAIN DOWN", 0.5]; + true; + }; + false +}; + +if (isNil "_vehicle") exitWith {}; -_vehicle = vehicle player; +private["_is_uav", "_is_static"]; +_is_uav = (_vehicle isKindOf "UAV_01_base_F" || {_vehicle isKindOf "UAV_02_base_F" || {_vehicle isKindOf "UGV_01_base_F"}}); +_is_static = (_vehicle isKindOf "StaticWeapon"); //check if caller is in vehicle if (_vehicle == player) exitWith {}; +private["_vehClass", "_price"]; //set up prices - _vehClass = typeOf _vehicle; - _price = 3000; // price = 1000 for vehicles not found in vehicle store. (e.g. Static Weapons) - { - if (_vehClass == _x select 1) then - { - _price = _x select 2; - _price = round (_price / PRICE_RELATIONSHIP); - }; +_vehClass = typeOf _vehicle; +_price = 3000; // price = 1000 for vehicles not found in vehicle store. (e.g. Static Weapons) + +{ + if (_vehClass == _x select 1) then { + _price = _x select 2; + _price = round (_price / PRICE_RELATIONSHIP); + }; } forEach (call allVehStoreVehicles); -_text = format ["Stop engine in 10s to start resupply. Cost for service is $%1 for this vehicle. This will take some time.\nYou can always abort by getting out of the vehicle.", _price]; - titleText [_text, "PLAIN DOWN", 0.5]; -sleep 10; -_eng = isEngineOn _vehicle; -if (_eng) exitWith { - titleText ["Engine still running. Service CANCELED!", "PLAIN DOWN", 0.5]; - mutexScriptInProgress = false; +private["_service_cancelled"]; +_service_cancelled = false; + +if (_is_static) then { + _text = format ["Resupply sequence initiated for this static weapon. Make sure to get out of the weapon."]; + titleText [_text, "PLAIN DOWN", 0.5]; + sleep 10; +} +else { + _text = format ["Resupply sequence initiated for this vehicle. Make sure the engine is stopped.", _price]; + titleText [_text, "PLAIN DOWN", 0.5]; + + private["_eng"]; + sleep 10; + _eng = isEngineOn _vehicle; + if (_eng) exitWith { + titleText ["Engine still running. Service cancelled.", "PLAIN DOWN", 0.5]; + mutexScriptInProgress = false; + _service_cancelled = true; + }; }; - - -/* -if ((!isnull (gunner _vehicle)) && !(_vehicle isKindOf "StaticWeapon")) then { - _vehicle vehicleChat format ["Gunner must be out of seat for service! Get gunner out in 20s."]; - sleep 10; - _vehicle vehicleChat format ["Gunner must be out of seat for service! Get gunner out in 10s."]; - sleep 10; - if (!isnull (gunner _vehicle)) exitWith - { - _vehicle vehicleChat format ["Gunner still inside. Service CANCELED!"]; - mutexScriptInProgress = false; - }; -}; -*/ - -_resupplyThread = _vehicle spawn -{ - _vehicle = _this; - _vehClass = typeOf _vehicle; - _vehicleCfg = configFile >> "CfgVehicles" >> _vehClass; - _vehName = getText (_vehicleCfg >> "displayName"); - - scopeName "fn_resupplyTruck"; - - _price = 3000; // price = 1000 for vehicles not found in vehicle store (e.g. static weapons) - { - if (_vehClass == _x select 1) then - { - _price = _x select 2; - _price = round (_price / PRICE_RELATIONSHIP); - }; - -} forEach (call allVehStoreVehicles); - - - - _titleText = - { - if (vehicle player == _vehicle) then - { - titleText [_this, "PLAIN DOWN", ((REARM_TIME_SLICE max 1) / 10) max 1]; - } - else - { - titleText ["", "PLAIN"]; - }; - }; - - _checkAbortConditions = - { - // Abort everything if vehicle is no longer local, otherwise commands won't do anything - if (!local _vehicle) then - { - _crew = crew _vehicle; - _text = format ["Vehicle resupply aborted by %1", if (count _crew > 0) then { name (_crew select 0) } else { "another player" }]; - titleText [_text, "PLAIN DOWN", 0.5]; - mutexScriptInProgress = false; - breakOut "fn_resupplyTruck"; - }; - - // Abort everything if no Tempest Device in proximity - if ({alive _x} count (_vehicle nearEntities [["O_Heli_Transport_04_ammo_F", "I_Truck_02_ammo_F", "O_Truck_03_ammo_F", "B_Truck_01_ammo_F"], RESUPPLY_TRUCK_DISTANCE]) == 0) then - { - if (_started) then { titleText ["Vehicle resupply aborted!", "PLAIN DOWN", 0.5] }; - mutexScriptInProgress = false; - breakOut "fn_resupplyTruck"; - }; - // Abort everything if player gets out of vehicle - if (vehicle player != _vehicle) then - { - if (_started) then { titleText ["Vehicle resupply aborted!", "PLAIN DOWN", 0.5] }; - mutexScriptInProgress = false; - breakOut "fn_resupplyTruck"; - }; - - }; - - _started = false; - call _checkAbortConditions; - _started = true; - - //Add cost for resupply -_playerMoney = player getVariable "cmoney"; - -if (_playerMoney < _price) then - { - _text = format ["Not enough money! You need $%1 to resupply %2. Service cancelled!",_price,_vehName]; - [_text, 10] call mf_notify_client; - mutexScriptInProgress = false; - breakOut "fn_resupplyTruck"; - - } else - { -//start resupply here - - -player setVariable["cmoney",(player getVariable "cmoney")-_price,true]; - _text = format ["You paid $%1 to resupply %2.\nNo Refunds!\nPlease stand by...",_price,_vehName]; - [_text, 10] call mf_notify_client; - [] call fn_savePlayerData; - }; - - - - _turretsArray = [[_vehicleCfg, [-1]]]; - _turretsCfg = configFile >> "CfgVehicles" >> _vehClass >> "Turrets"; - - if (isClass _turretsCfg) then - { - _nbTurrets = count _turretsCfg; - _turretPath = 0; - - for "_i" from 0 to (_nbTurrets - 1) do - { - _turretCfg = _turretsCfg select _i; - - if (isClass _turretCfg && {getNumber (_turretCfg >> "hasGunner") > 0}) then - { - _turretsArray set [count _turretsArray, [_turretCfg, [_turretPath]]]; - - _subTurretsCfg = _turretCfg >> "Turrets"; - - if (isClass _subTurretsCfg) then - { - _nbSubTurrets = count _subTurretsCfg; - _subTurretPath = 0; - - for "_j" from 0 to (_nbSubTurrets - 1) do - { - _subTurretCfg = _subTurretsCfg select _j; - - if (isClass _subTurretCfg && {getNumber (_subTurretCfg >> "hasGunner") > 0}) then - { - _turretsArray set [count _turretsArray, [_subTurretCfg, [_turretPath, _subTurretPath]]]; - _subTurretPath = _subTurretPath + 1; - }; - }; - }; - - _turretPath = _turretPath + 1; - }; - }; - }; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; - - _engineOn = false; - - if !(_vehicle isKindOf "Air") then - { - _engineOn = isEngineOn _vehicle; - player action ["EngineOff", _vehicle]; - }; - - { - _turretCfg = _x select 0; - _turretPath = _x select 1; - _turretMags = getArray (_turretCfg >> "magazines"); - _turretMagPairs = []; - - { [_turretMagPairs, _x, 1] call BIS_fnc_addToPairs } forEach _turretMags; - - { - _mag = _x select 0; - _ammo = _x select 1; - - if (_ammo >= getNumber (configFile >> "CfgMagazines" >> _mag >> "count")) then - { - { - if (_x select 0 == _mag) exitWith - { - _count = if (count _x > 2) then { _x select 2 } else { 0 }; - _x set [2, _count + 1]; - }; - } forEach _turretMagPairs; - }; - } forEach magazinesAmmo _vehicle; - - { - _mag = _x select 0; - _qty = _x select 1; - _fullQty = if (count _x > 2) then { _x select 2 } else { 0 }; - - if (_fullQty < _qty) then - { - _vehicle removeMagazinesTurret [_mag, _turretPath]; - - for "_i" from 1 to _qty do - { - _magName = getText (configFile >> "CfgMagazines" >> _mag >> "displayName"); - - if (_magName == "") then - { - { - _weaponCfg = configFile >> "CfgWeapons" >> _x; - - if ({_mag == _x} count getArray (_weaponCfg >> "magazines") > 0) exitWith - { - _magName = getText (_weaponCfg >> "displayName"); - }; - } forEach getArray (_turretCfg >> "weapons"); - }; - - _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; - _text call _titleText; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; - - _vehicle addMagazineTurret [_mag, _turretPath]; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; - }; - }; - } forEach _turretMagPairs; - } forEach _turretsArray; - - _vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure - - if (damage _vehicle > 0.001) then - { - call _checkAbortConditions; - - while {damage _vehicle > 0.001} do - { - "Repairing..." call _titleText; - - sleep 1; - call _checkAbortConditions; - - _vehicle setDamage ((damage _vehicle) - 0.1); - }; - - sleep 3; - }; - - if (fuel _vehicle < 0.999) then - { - call _checkAbortConditions; - - while {fuel _vehicle < 0.999} do - { - "Refueling..." call _titleText; - - sleep REFUEL_TIME_SLICE; - call _checkAbortConditions; - - _vehicle setFuel ((fuel _vehicle) + 0.1); - }; - - sleep 2; - }; - - if !(_vehicle isKindOf "Air") then - { - _vehicle removeEventHandler ["Engine", _vehicle getVariable ["truckResupplyEngineEH", -1]]; - _vehicle engineOn _engineOn; - }; +if (_service_cancelled || {call _checkExit}) exitWith {}; + +if ((!isNull (gunner _vehicle)) && !(_is_uav)) then { + _vehicle vehicleChat format ["Gunner must be out of seat for service. Get gunner out in 20s."]; + sleep 10; + if (call _checkExit) exitWith {_service_cancelled = true;}; + _vehicle vehicleChat format ["Gunner must be out of seat for service. Get gunner out in 10s."]; + sleep 10; + if (call _checkExit) exitWith {_service_cancelled = true;}; + if (!isNull (gunner _vehicle)) exitWith { + _vehicle vehicleChat format ["Gunner still inside. Service cancelled."]; + mutexScriptInProgress = false; + _service_cancelled = true; + }; +}; - titleText ["Your vehicle is ready!", "PLAIN DOWN", 0.5]; - mutexScriptInProgress = false; +if (_service_cancelled || {call _checkExit}) exitWith {}; + +_resupplyThread = [_vehicle, _is_uav, _is_static] spawn { + private["_vehicle", "_vehClass", "_vehicleCfg","_is_uav"]; + _vehicle = _this select 0; + _is_uav = _this select 1; + _is_static = _this select 2; + _vehClass = typeOf _vehicle; + _vehicleCfg = configFile >> "CfgVehicles" >> _vehClass; + _vehName = getText (_vehicleCfg >> "displayName"); + + + scopeName "fn_resupplyTruck"; + + private["_price"]; + _price = 3000; // price = 1000 for vehicles not found in vehicle store (e.g. static weapons) + { + if (_vehClass == _x select 1) then { + _price = _x select 2; + _price = round (_price / PRICE_RELATIONSHIP); + }; + } forEach (call allVehStoreVehicles); + + private["_titleText"]; + _titleText = { + titleText [_this, "PLAIN DOWN", ((REARM_TIME_SLICE max 1) / 10) max 1]; + }; + + private["_checkAbortConditions"]; + _checkAbortConditions = { + if (doCancelAction) then { + doCancelAction = false; + mutexScriptInProgress = false; + titleText ["Vehicle resupply cancelled", "PLAIN DOWN", 0.5]; + breakOut "fn_resupplyTruck"; + }; + + // Abort everything if vehicle is no longer local, otherwise commands won't do anything + if (!local _vehicle && {!(_is_uav || _is_static)}) then { + _crew = crew _vehicle; + _text = format ["Vehicle resupply aborted by %1", if (count _crew > 0) then { name (_crew select 0) } else { "another player" }]; + titleText [_text, "PLAIN DOWN", 0.5]; + mutexScriptInProgress = false; + breakOut "fn_resupplyTruck"; + }; + + // Abort everything if no Tempest Device in proximity + if ({alive _x} count (_vehicle nearEntities [["O_Heli_Transport_04_ammo_F", "I_Truck_02_ammo_F", "O_Truck_03_ammo_F", "B_Truck_01_ammo_F"], RESUPPLY_TRUCK_DISTANCE]) == 0) then { + if (_started) then { titleText ["Vehicle resupply aborted.", "PLAIN DOWN", 0.5] }; + mutexScriptInProgress = false; + breakOut "fn_resupplyTruck"; + }; + // Abort everything if player gets out of vehicle + if (vehicle player != _vehicle && {!(_is_uav || _is_static)}) then { + if (_started) then { titleText ["Vehicle resupply aborted.", "PLAIN DOWN", 0.5] }; + mutexScriptInProgress = false; + breakOut "fn_resupplyTruck"; + }; + + // Abort if player gets in the gunner seat + + if (_is_static && {!isNull (gunner _vehicle)}) then { + if (_started) then { titleText ["Vehicle resupply aborted. Someone is using the weapon.", "PLAIN DOWN", 0.5] }; + mutexScriptInProgress = false; + breakOut "fn_resupplyTruck"; + }; + + }; + + private["_started"]; + _started = false; + call _checkAbortConditions; + _started = true; + + private["_playerMoney"]; + //Add cost for resupply + _playerMoney = player getVariable "cmoney"; + + private["_text"]; + if (_playerMoney < _price) then { + _text = format ["Not enough money. You need $%1 to resupply %2. Service cancelled.",_price,_vehName]; + [_text, 10] call mf_notify_client; + mutexScriptInProgress = false; + breakOut "fn_resupplyTruck"; + } + else { + private["_msg"]; + _msg = format["It will cost you %1 to resupply the %2. Do you want to proceed?", _price, getText ((configFile >> "CfgVehicles" >> (typeOf _vehicle)) >> "displayName")]; + if (not([_msg, "Vehicle Resupply", true,true] call BIS_fnc_guiMessage)) then { + mutexScriptInProgress = false; + breakOut "fn_resupplyTruck"; + }; + + //start resupply here + player setVariable["cmoney",(player getVariable "cmoney")-_price,true]; + _text = format ["You paid $%1 to resupply %2.\nPlease stand by ...",_price,_vehName]; + [_text, 10] call mf_notify_client; + [] call fn_savePlayerData; + }; + + + private["_turretCfg", "_turretsArray"]; + _turretsArray = [[_vehicleCfg, [-1]]]; + _turretsCfg = configFile >> "CfgVehicles" >> _vehClass >> "Turrets"; + + if (isClass _turretsCfg) then { + _nbTurrets = count _turretsCfg; + _turretPath = 0; + for "_i" from 0 to (_nbTurrets - 1) do { + _turretCfg = _turretsCfg select _i; + if (isClass _turretCfg && {getNumber (_turretCfg >> "hasGunner") > 0}) then { + _turretsArray set [count _turretsArray, [_turretCfg, [_turretPath]]]; + _subTurretsCfg = _turretCfg >> "Turrets"; + if (isClass _subTurretsCfg) then { + _nbSubTurrets = count _subTurretsCfg; + _subTurretPath = 0; + for "_j" from 0 to (_nbSubTurrets - 1) do { + _subTurretCfg = _subTurretsCfg select _j; + if (isClass _subTurretCfg && {getNumber (_subTurretCfg >> "hasGunner") > 0}) then { + _turretsArray set [count _turretsArray, [_subTurretCfg, [_turretPath, _subTurretPath]]]; + _subTurretPath = _subTurretPath + 1; + }; + }; + }; + _turretPath = _turretPath + 1; + }; + }; + }; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + _engineOn = false; + + if !(_vehicle isKindOf "Air") then { + _engineOn = isEngineOn _vehicle; + player action ["EngineOff", _vehicle]; + }; + + { + private["_turretCfg", "_turretPath", "_turretMags", "_turretMagPairs"]; + _turretCfg = _x select 0; + _turretPath = _x select 1; + _turretMags = getArray (_turretCfg >> "magazines"); + _turretMagPairs = []; + + { [_turretMagPairs, _x, 1] call BIS_fnc_addToPairs } forEach _turretMags; + + { + private["_mag", "_ammo"]; + _mag = _x select 0; + _ammo = _x select 1; + + if (_ammo >= getNumber (configFile >> "CfgMagazines" >> _mag >> "count")) then { + { + if (_x select 0 == _mag) exitWith { + _count = if (count _x > 2) then { _x select 2 } else { 0 }; + _x set [2, _count + 1]; + }; + } forEach _turretMagPairs; + }; + } forEach magazinesAmmo _vehicle; + + { + private["_mag", "_qty", "_fullQty"]; + _mag = _x select 0; + _qty = _x select 1; + _fullQty = if (count _x > 2) then { _x select 2 } else { 0 }; + + if (_fullQty < _qty) then { + //_vehicle removeMagazinesTurret [_mag, _turretPath]; + [[_vehicle, [_mag, _turretPath]], "A3W_fnc_removeMagazinesTurret", _vehicle, false] call BIS_fnc_MP; + + for "_i" from 1 to _qty do { + private["_magName"]; + _magName = getText (configFile >> "CfgMagazines" >> _mag >> "displayName"); + + if (_magName == "") then { + { + _weaponCfg = configFile >> "CfgWeapons" >> _x; + if ({_mag == _x} count getArray (_weaponCfg >> "magazines") > 0) exitWith { + _magName = getText (_weaponCfg >> "displayName"); + }; + } forEach getArray (_turretCfg >> "weapons"); + }; + + private["_text"]; + _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + //_vehicle addMagazineTurret [_mag, _turretPath]; + [[_vehicle, [_mag, _turretPath]], "A3W_fnc_addMagazineTurret", _vehicle, false] call BIS_fnc_MP; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + }; + }; + } forEach _turretMagPairs; + } forEach _turretsArray; + + //_vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure + [[_vehicle,1],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; + + if (damage _vehicle > 0.001) then { + call _checkAbortConditions; + while {damage _vehicle > 0.001} do { + "Repairing..." call _titleText; + sleep 1; + call _checkAbortConditions; + _vehicle setDamage ((damage _vehicle) - 0.1); + }; + sleep 3; + }; + + if (fuel _vehicle < 0.999) then { + call _checkAbortConditions; + + while {fuel _vehicle < 0.999} do { + "Refueling..." call _titleText; + sleep REFUEL_TIME_SLICE; + call _checkAbortConditions; + _vehicle setFuel ((fuel _vehicle) + 0.1); + }; + sleep 2; + }; + + if !(_vehicle isKindOf "Air") then { + _vehicle removeEventHandler ["Engine", _vehicle getVariable ["truckResupplyEngineEH", -1]]; + _vehicle engineOn _engineOn; + }; + + titleText ["Your vehicle is ready.", "PLAIN DOWN", 0.5]; + mutexScriptInProgress = false; }; -if !(_vehicle isKindOf "Air") then -{ - _vehicle setVariable ["truckResupplyThread", _resupplyThread]; - _vehicle setVariable ["truckResupplyEngineEH", _vehicle addEventHandler ["Engine", - { - _vehicle = _this select 0; - _started = _this select 1; - _resupplyThread = _vehicle getVariable "truckResupplyThread"; - - if (!isNil "_resupplyThread" && {!scriptDone _resupplyThread}) then - { - player action ["EngineOff", _vehicle]; - }; - }]]; +if !(_vehicle isKindOf "Air") then { + _vehicle setVariable ["truckResupplyThread", _resupplyThread]; + _vehicle setVariable ["truckResupplyEngineEH", _vehicle addEventHandler ["Engine", + { + private["_vehicle", "_started", "_resupplyThread"]; + _vehicle = _this select 0; + _started = _this select 1; + _resupplyThread = _vehicle getVariable "truckResupplyThread"; + if (!isNil "_resupplyThread" && {!scriptDone _resupplyThread}) then { + player action ["EngineOff", _vehicle]; + }; + }]]; }; diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf new file mode 100644 index 000000000..d29db727f --- /dev/null +++ b/addons/scripts/resupply_actions.sqf @@ -0,0 +1,114 @@ + +A3W_fnc_setVehicleAmmoDef = { + private["_left", "_right"]; + _left = _this select 0; + _right = _this select 1; + if (isNil "_left" || { typeName _left != typeName objNull || { isNull _left}}) exitWith {}; + if (isNil "_right" || { typeName _right != typeName 0}) exitWith {}; + diag_log format["%1 call A3W_fnc_setVehicleAmmoDef--->", _this]; + _left setVehicleAmmoDef _right; +}; + +A3W_fnc_removeMagazinesTurret = { + private["_left", "_right"]; + _left = _this select 0; + _right = _this select 1; + if (isNil "_left" || { typeName _left != typeName objNull || { isNull _left}}) exitWith {}; + if (isNil "_right" || { typeName _right != typeName []}) exitWith {}; + _left removeMagazineTurret _right; +}; + +A3W_fnc_addMagazineTurret = { + private["_left", "_right"]; + _left = _this select 0; + _right = _this select 1; + if (isNil "_left" || { typeName _left != typeName objNull || { isNull _left}}) exitWith {}; + if (isNil "_right" || { typeName _right != typeName []}) exitWith {}; + _left addMagazineTurret _right; +}; + +if (isServer) exitWith {}; + +resupply_vehicles = [ + 'O_Heli_Transport_04_ammo_F', + 'I_Truck_02_ammo_F', + 'O_Truck_03_ammo_F', + 'B_Truck_01_ammo_F' +]; + +do_resupply = { + (_this select 3) execVM "addons\scripts\fn_resupplytruck.sqf"; +}; + + + +uav_resupply_watch = { + diag_log format["%1 call uav_resupply_watch", _this]; + private["_uavCheck"]; + _uavCheck = { + private["_uav"]; + _uav = getConnectedUAV player; + (!(isNull _uav) && {(count(nearestObjects [getPos _uav, resupply_vehicles, 10]) > 0)}) + }; + + waitUntil { + waitUntil {sleep 3; (call _uavCheck)}; + private["_uav"]; + _uav = getConnectedUAV player; + _uav addAction [" Resupply UAV", {_this call do_resupply;}, _uav, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; + waitUntil {sleep 3; not(call _uavCheck)}; + removeAllActions _uav; + sleep 3; + }; +}; + +static_weapon_resupply_watch = { + diag_log format["%1 call static_weapon_resupply_watch", _this]; + private["_staticCheck"]; + _staticCheck = { + private["_static"]; + _static = cursorTarget; + if !(!isNull _static && { _static isKindOf "StaticWeapon" && {(count(nearestObjects [getPos _static, resupply_vehicles, 10]) > 0)}}) exitWith { + nil + }; + _static + }; + + private["_static"]; + waitUntil { + waitUntil { sleep 3; _static = call _staticCheck; !isNil "_static"}; + _static addAction [" Resupply Static Weapon", {_this call do_resupply;}, _static, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; + waitUntil { sleep 3; isNil {call _staticCheck}}; + removeAllActions _static; + sleep 3; + }; +}; + +vehicle_resupply_watch = { + diag_log format["%1 call vehicle_resupply_watch", _this]; + private["_vehicleCheck"]; + _vehicleCheck = { + private["_vehicle"]; + _vehicle = (vehicle player); + if !(!isNull _vehicle && { + player != _vehicle && { + not(_vehicle isKindOf "StaticWeapon") && { + (count(nearestObjects [getPos _vehicle, resupply_vehicles, 10]) > 0)}}}) exitWith { + nil + }; + _vehicle + }; + + private["_vehicle"]; + waitUntil { + waitUntil { sleep 3; _vehicle = call _vehicleCheck; !isNil "_vehicle"}; + _vehicle addAction [" Resupply vehicle", {_this call do_resupply;}, _vehicle, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; + waitUntil { sleep 3; isNil {call _vehicleCheck}}; + removeAllActions _vehicle; + sleep 3; + }; +}; + +[] spawn uav_resupply_watch; +[] spawn static_weapon_resupply_watch; +[] spawn vehicle_resupply_watch; diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index c55aefca9..95073149d 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -12,8 +12,7 @@ ["Unholster Primary Weapon", { player action ["SwitchWeapon", player, player, 0] }, [], -11, false, false, "", "vehicle player == player && currentWeapon player == '' && primaryWeapon player != ''"], ["Heal Self", "addons\scripts\healSelf.sqf",0,0,false,false,"","((damage player)>0.01 && (damage player)<0.25499) && ('FirstAidKit' in (items player)) && (vehicle player == player)"], - ["Resupply", "addons\scripts\fn_resupplytruck.sqf", [], 51, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['O_Heli_Transport_04_ammo_F', 'I_Truck_02_ammo_F', 'O_Truck_03_ammo_F', 'B_Truck_01_ammo_F'] > 0 ;} && !(vehicle player == player) && (player distance cursortarget) < 10"], - + [format [" [Player Menu]", "#FF8000"], "client\systems\playerMenu\init.sqf", [], -10, false], ["Track Beacons", "addons\beacondetector\beacondetector.sqf",0,-10,false,false,"","('ToolKit' in (items player)) && !BeaconScanInProgress"], @@ -21,7 +20,7 @@ [" Pickup Money", "client\actions\pickupMoney.sqf", [], 1, false, false, "", "{_x getVariable ['owner', ''] != 'mission'} count (player nearEntities ['Land_Money_F', 5]) > 0"], - [" Cancel Action", { doCancelAction = true }, [], 1, false, false, "", "mutexScriptInProgress"], + [" Cancel Action", { doCancelAction = true }, [], 1, false, true, "", "mutexScriptInProgress"], [" Salvage", "client\actions\salvage.sqf", [], 1.1, false, false, "", "!isNull cursorTarget && !alive cursorTarget && {cursorTarget isKindOf 'AllVehicles' && !(cursorTarget isKindOf 'Man') && player distance cursorTarget <= (sizeOf typeOf cursorTarget / 3) max 2}"], diff --git a/init.sqf b/init.sqf index 2df48cd89..f47f9064c 100644 --- a/init.sqf +++ b/init.sqf @@ -87,3 +87,5 @@ if (isServer) then [] execVM "addons\scripts\servercredits.sqf"; [] execVM "addons\scripts\zlt_fastrope.sqf"; [] execVM "addons\outlw_magRepack\MagRepack_init_sv.sqf"; +[] execVM "addons\scripts\resupply_actions.sqf"; + From 2f4e675ae8b5e481b969713b7bfc6a7d6bc3366f Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 22 Jan 2015 23:10:52 -0800 Subject: [PATCH 343/544] Only remove the resupply action --- addons/scripts/resupply_actions.sqf | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf index d29db727f..905b837f7 100644 --- a/addons/scripts/resupply_actions.sqf +++ b/addons/scripts/resupply_actions.sqf @@ -46,7 +46,7 @@ uav_resupply_watch = { diag_log format["%1 call uav_resupply_watch", _this]; private["_uavCheck"]; _uavCheck = { - private["_uav"]; + private["_uav", "_action_id"]; _uav = getConnectedUAV player; (!(isNull _uav) && {(count(nearestObjects [getPos _uav, resupply_vehicles, 10]) > 0)}) }; @@ -55,9 +55,9 @@ uav_resupply_watch = { waitUntil {sleep 3; (call _uavCheck)}; private["_uav"]; _uav = getConnectedUAV player; - _uav addAction [" Resupply UAV", {_this call do_resupply;}, _uav, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; + _action_id = _uav addAction [" Resupply UAV", {_this call do_resupply;}, _uav, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; waitUntil {sleep 3; not(call _uavCheck)}; - removeAllActions _uav; + _uav removeAction _action_id; sleep 3; }; }; @@ -74,12 +74,12 @@ static_weapon_resupply_watch = { _static }; - private["_static"]; + private["_static", "_action_id"]; waitUntil { waitUntil { sleep 3; _static = call _staticCheck; !isNil "_static"}; - _static addAction [" Resupply Static Weapon", {_this call do_resupply;}, _static, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; + _action_id = _static addAction [" Resupply Static Weapon", {_this call do_resupply;}, _static, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; waitUntil { sleep 3; isNil {call _staticCheck}}; - removeAllActions _static; + _static removeAction _action_id; sleep 3; }; }; @@ -99,12 +99,12 @@ vehicle_resupply_watch = { _vehicle }; - private["_vehicle"]; + private["_vehicle", "_action_id"]; waitUntil { waitUntil { sleep 3; _vehicle = call _vehicleCheck; !isNil "_vehicle"}; - _vehicle addAction [" Resupply vehicle", {_this call do_resupply;}, _vehicle, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; + _action_id = _vehicle addAction [" Resupply vehicle", {_this call do_resupply;}, _vehicle, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; waitUntil { sleep 3; isNil {call _vehicleCheck}}; - removeAllActions _vehicle; + _vehicle removeAction _action_id; sleep 3; }; }; From bb6023444a80f9b86829df281dfdc09786649f33 Mon Sep 17 00:00:00 2001 From: micovery Date: Thu, 22 Jan 2015 23:21:56 -0800 Subject: [PATCH 344/544] Add the vehicle name to the resupply action --- addons/scripts/fn_resupplytruck.sqf | 2 +- addons/scripts/resupply_actions.sqf | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 2114607af..b7f4fc2de 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -1,6 +1,6 @@ // @file Version: 1.1 // @file Name: fn_resupplyTruck.sqf -// @file Author: Wiking, AgentRev +// @file Author: Wiking, AgentRev, micovery // @file Created: 13/07/2014 21:58 #define RESUPPLY_TRUCK_DISTANCE 20 diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf index 905b837f7..2e60dfded 100644 --- a/addons/scripts/resupply_actions.sqf +++ b/addons/scripts/resupply_actions.sqf @@ -41,6 +41,7 @@ do_resupply = { }; +#define VEHICLE_NAME(x) (getText ((configFile >> "CfgVehicles" >> (typeOf x)) >> "displayName")) uav_resupply_watch = { diag_log format["%1 call uav_resupply_watch", _this]; @@ -55,7 +56,10 @@ uav_resupply_watch = { waitUntil {sleep 3; (call _uavCheck)}; private["_uav"]; _uav = getConnectedUAV player; - _action_id = _uav addAction [" Resupply UAV", {_this call do_resupply;}, _uav, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; + _action_id = _uav addAction [ + format[" Resupply %1",VEHICLE_NAME(_uav)], + {_this call do_resupply;}, _uav, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" + ]; waitUntil {sleep 3; not(call _uavCheck)}; _uav removeAction _action_id; sleep 3; @@ -77,7 +81,10 @@ static_weapon_resupply_watch = { private["_static", "_action_id"]; waitUntil { waitUntil { sleep 3; _static = call _staticCheck; !isNil "_static"}; - _action_id = _static addAction [" Resupply Static Weapon", {_this call do_resupply;}, _static, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; + _action_id = _static addAction [ + format[" Resupply %1",VEHICLE_NAME(_static)], + {_this call do_resupply;}, _static, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" + ]; waitUntil { sleep 3; isNil {call _staticCheck}}; _static removeAction _action_id; sleep 3; @@ -102,7 +109,10 @@ vehicle_resupply_watch = { private["_vehicle", "_action_id"]; waitUntil { waitUntil { sleep 3; _vehicle = call _vehicleCheck; !isNil "_vehicle"}; - _action_id = _vehicle addAction [" Resupply vehicle", {_this call do_resupply;}, _vehicle, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})"]; + _action_id = _vehicle addAction [ + format[" Resupply %1",VEHICLE_NAME(_vehicle)], + {_this call do_resupply;}, _vehicle, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" + ]; waitUntil { sleep 3; isNil {call _vehicleCheck}}; _vehicle removeAction _action_id; sleep 3; From e74011f84e5aa9de61a3f2dfabbc6dff61bd2392 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 23 Jan 2015 00:09:18 -0800 Subject: [PATCH 345/544] Restrict resupply to driver/gunner Also eject the gunner when resupply is about to start --- addons/scripts/fn_resupplytruck.sqf | 3 +++ addons/scripts/resupply_actions.sqf | 14 +++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index b7f4fc2de..e6e113a9d 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -198,6 +198,9 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { [] call fn_savePlayerData; }; + if (not(_is_uav) && {!isNull (gunner(_vehicle))}) then { + gunner(_vehicle) action ["getOut", _vehicle]; + }; private["_turretCfg", "_turretsArray"]; _turretsArray = [[_vehicleCfg, [-1]]]; diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf index 2e60dfded..ee9b29b55 100644 --- a/addons/scripts/resupply_actions.sqf +++ b/addons/scripts/resupply_actions.sqf @@ -71,11 +71,14 @@ static_weapon_resupply_watch = { private["_staticCheck"]; _staticCheck = { private["_static"]; - _static = cursorTarget; - if !(!isNull _static && { _static isKindOf "StaticWeapon" && {(count(nearestObjects [getPos _static, resupply_vehicles, 10]) > 0)}}) exitWith { - nil + _static = (vehicle player); + if (not(isNull _static) && { + _static isKindOf "StaticWeapon" && { + player == gunner(_static) && { + (count(nearestObjects [getPos _static, resupply_vehicles, 10]) > 0)}}}) exitWith { + _static }; - _static + nil }; private["_static", "_action_id"]; @@ -99,8 +102,9 @@ vehicle_resupply_watch = { _vehicle = (vehicle player); if !(!isNull _vehicle && { player != _vehicle && { + player == driver(_vehicle) && { not(_vehicle isKindOf "StaticWeapon") && { - (count(nearestObjects [getPos _vehicle, resupply_vehicles, 10]) > 0)}}}) exitWith { + (count(nearestObjects [getPos _vehicle, resupply_vehicles, 10]) > 0)}}}}) exitWith { nil }; _vehicle From 4038f071519c347a39e9c4020d9e422e1b39f464 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 23 Jan 2015 01:36:08 -0800 Subject: [PATCH 346/544] Possible 1.38 shake fix. --- client/init.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/client/init.sqf b/client/init.sqf index b94a18f1d..c330ce4af 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -25,6 +25,7 @@ player setVariable ["respawnDialogActive", false, true]; groupManagmentActive = false; pvar_PlayerTeamKiller = objNull; doCancelAction = false; +enableCamShake false; //AJ Beacondetector BeaconScanInProgress = false; From 0af5c512288eace4b4cfdcc38c567833dde19e1b Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 23 Jan 2015 01:45:50 -0800 Subject: [PATCH 347/544] Hack to prevent UAVs from blowing up --- addons/UAV_Control/functions.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/UAV_Control/functions.sqf b/addons/UAV_Control/functions.sqf index 0d68d1a59..9fe12bfbe 100644 --- a/addons/UAV_Control/functions.sqf +++ b/addons/UAV_Control/functions.sqf @@ -47,7 +47,9 @@ uav_control_loop = { private["_uav1", "_uav2"]; while {true} do { waitUntil { sleep 0.1; _uav1 = getConnectedUAV player; !(isNull _uav1)}; + _uav1 allowDamage false; //hack to prevent UAVs from blowing up [player, _uav1] call uav_control_check_access; + _uav1 spawn { sleep 5; _this allowDamage true;}; waitUntil { sleep 0.1; _uav2 = getConnectedUAV player; (isNull _uav2 || {_uav1 != _uav2})}; }; }; From fa1ad16225a9bed1de2258623780a393709074a9 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 23 Jan 2015 02:42:37 -0800 Subject: [PATCH 348/544] Resupply only 2 missiles to UAVs. --- addons/scripts/fn_resupplytruck.sqf | 9 +++++++++ addons/vactions/config.sqf | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index e6e113a9d..0e76a6dc3 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -304,6 +304,15 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { } forEach _turretMagPairs; } forEach _turretsArray; + switch (true) do + { + case ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0): + { + _vehicle removeMagazineTurret ["6Rnd_LG_scalpel",[0]]; + _vehicle addMagazineTurret ["2Rnd_LG_scalpel",[0]]; + }; + }; + //_vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure [[_vehicle,1],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; diff --git a/addons/vactions/config.sqf b/addons/vactions/config.sqf index f6a4b03b4..32529c802 100644 --- a/addons/vactions/config.sqf +++ b/addons/vactions/config.sqf @@ -5,7 +5,7 @@ cfg_va_info_action_on = true; cfg_va_unflip_action_on = true; //How much time (in seconds) to make the player wait before the vehicle is unflipped -cfg_va_unflip_wait_time = 10; +cfg_va_unflip_wait_time = 8; //Minimum distance (in meters) the player must stay from the vehicle for the unflup action to complete cfg_va_unflip_wait_distance = 10; @@ -26,6 +26,6 @@ cfg_va_lock_sound_play = true; cfg_va_lock_from_inside = true; //List of classes for vehicles that can locked/unlocked (empty means all) -cfg_va_lock_actions_classes_list = ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; +cfg_va_lock_actions_classes_list = ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "UAV_02_base_F", "UGV_01_base_F"]; From 21273df81cea9aff805893c7735d2c172763dbde Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 23 Jan 2015 02:57:52 -0800 Subject: [PATCH 349/544] Enabled thermal equipment on loaded vehicles for UAVs and UGVs --- persistence/world/vFunctions.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 219070b11..1fd8cc802 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -146,6 +146,11 @@ v_restoreVehicle = { // disables thermal equipment on loaded vehicles, comment out if you want thermal _obj disableTIEquipment true; + //enables thermal equipment on loaded vehicles for UAVs and UGVs + if ({_obj isKindOf _x} count ["UAV_01_base_F", "UAV_02_base_F", "UGV_01_base_F"] > 0) then { + _obj disableTIEquipment false; + }; + //override the lock-state for vehicles form this this if ({_obj isKindOf _x} count A3W_locked_vehicles_list > 0) then { _lock_state = 2; From 32d6d406dce19e683ebf60d88b6edc2635090039 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 23 Jan 2015 03:33:22 -0800 Subject: [PATCH 350/544] Updated locked vehicles. --- addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 4 ++-- addons/vactions/config.sqf | 2 +- server/default_config.sqf | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index 308801e53..0ccc4574f 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -112,7 +112,7 @@ R3F_LOG_CFG_objets_remorquablesH = "B_Heli_Light_01_armed_F", "C_Heli_Light_01_civil_F", "I_Heli_Transport_02_F", - "Heli_Transport_04_base_F", + "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "Plane" ]; @@ -128,7 +128,7 @@ R3F_LOG_CFG_objets_remorquablesALL = "Wheeled_APC_F", "Tank_F", "I_Heli_Transport_02_F", - "Heli_Transport_04_base_F", + "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", diff --git a/addons/vactions/config.sqf b/addons/vactions/config.sqf index 32529c802..48847549e 100644 --- a/addons/vactions/config.sqf +++ b/addons/vactions/config.sqf @@ -26,6 +26,6 @@ cfg_va_lock_sound_play = true; cfg_va_lock_from_inside = true; //List of classes for vehicles that can locked/unlocked (empty means all) -cfg_va_lock_actions_classes_list = ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "UAV_02_base_F", "UGV_01_base_F"]; +cfg_va_lock_actions_classes_list = ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Heli_Transport_02_F", "Plane", "UGV_01_base_F"]; diff --git a/server/default_config.sqf b/server/default_config.sqf index c3f43c7b8..73981b985 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -80,7 +80,7 @@ A3W_playersList_saveInterval = 120; // Number of seconds between player list sav A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "UAV_01_base_F", "UAV_02_base_F", "UGV_01_base_F"]; // List of classes for vehicles that are saveable A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked upon restore -A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "UAV_02_base_F", "UGV_01_base_F"]; // List of class names for vehicles that should be automatically locked and saved when bought +A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "B_Truck_01_ammo_F", "O_Truck_03_ammo_F", "I_Truck_02_ammo_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Heli_Transport_02_F", "Plane", "UGV_01_base_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) From cc7cbcdf65503f53c492955799677c1958ddf038 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 23 Jan 2015 03:37:27 -0800 Subject: [PATCH 351/544] More reliable fix for UAV explosions --- addons/UAV_Control/functions.sqf | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/addons/UAV_Control/functions.sqf b/addons/UAV_Control/functions.sqf index 9fe12bfbe..30ccd13ae 100644 --- a/addons/UAV_Control/functions.sqf +++ b/addons/UAV_Control/functions.sqf @@ -47,11 +47,28 @@ uav_control_loop = { private["_uav1", "_uav2"]; while {true} do { waitUntil { sleep 0.1; _uav1 = getConnectedUAV player; !(isNull _uav1)}; - _uav1 allowDamage false; //hack to prevent UAVs from blowing up [player, _uav1] call uav_control_check_access; - _uav1 spawn { sleep 5; _this allowDamage true;}; waitUntil { sleep 0.1; _uav2 = getConnectedUAV player; (isNull _uav2 || {_uav1 != _uav2})}; }; }; + +uav_damage_check_hack = { + private["_uav1", "_uav2", "_pos"]; + while {true} do { + + waitUntil { sleep 0.1; _uav1 = getConnectedUAV player; (!isNull _uav1 && {local driver(_uav1)})}; + if (isTouchingGround _uav1) then { + _uav1 allowDamage false; //hack to prevent UAVs from blowing up + _pos = getPos _uav1; + _pos set [2,0.3]; + _uav1 setPos _pos; + _uav1 enableSimulation true; + _uav1 spawn { sleep 5; _this allowDamage true;}; + }; + waitUntil { sleep 0.1; _uav2 = getConnectedUAV player; (isNull _uav2 || {_uav1 != _uav2})}; + }; +}; + +[] spawn uav_damage_check_hack; [] spawn uav_control_loop; From 008de484b19b3f5f3ce2c37082b67812e17d3b82 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 23 Jan 2015 03:51:37 -0800 Subject: [PATCH 352/544] Updated sell vehicles. --- client/functions/playerActions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 95073149d..2d900e528 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -30,7 +30,7 @@ [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'UAV_02_base_F', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], [" Re\Save Weapon", "addons\scripts\weaponResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && (player distance cursortarget) < 5"], - [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'UGV_01_base_F', 'UAV_02_base_F'] > 0 ;} && (player distance cursortarget) < 5"], + [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'Helicopter', 'Plane', 'UGV_01_base_F'] > 0 ;} && (player distance cursortarget) < 5"], ["[0]"] call getPushPlaneAction, ["Push vehicle", "server\functions\pushVehicle.sqf", [2.5, true], 1, false, false, "", "[2.5] call canPushVehicleOnFoot"], From c16bce9f675ccb98a4db2c69abb34efac02e911e Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 23 Jan 2015 04:27:13 -0800 Subject: [PATCH 353/544] Updated sell vehicles. --- addons/scripts/sellVehicle.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/scripts/sellVehicle.sqf b/addons/scripts/sellVehicle.sqf index b7aae0f6d..ab6bee017 100644 --- a/addons/scripts/sellVehicle.sqf +++ b/addons/scripts/sellVehicle.sqf @@ -33,7 +33,7 @@ _checks = case (vehicle player != player): { _text = "Sell Failed! You can't do that in a vehicle." }; case (((player distance _object) - ((sizeOf typeOf _object / 3) max 4)) > 2): {_text = "Sell Failed! You are too far away from the vehicle."}; case (isNull _object): { _text = "The vehicle no longer exists" }; - case (!alive _object || {alive _x} count crew _object > 0): { _text = "Sell Failed! You are not allowed to sell this vehicle." }; + case (!alive _object || {alive _x} count crew _object > 0 && !(_vehClass isKindOf "UGV_01_base_F") && !(_vehClass isKindOf "UAV_02_base_F")): { _text = "Sell Failed! You are not allowed to sell this vehicle." }; case (!isNull (_object getVariable ["R3F_LOG_est_deplace_par", objNull])): { _text = "Sell Failed! Somebody moved the vehicle." }; case (!isNull (_object getVariable ["R3F_LOG_est_transporte_par", objNull])): { _text = "Sell Failed! Somebody loaded or towed the vehicle." }; case (doCancelAction): { doCancelAction = false; _text = "Sell Cancelled!" }; From 0bc5990b4fadbbae4133d42a5f975d2af9277cb7 Mon Sep 17 00:00:00 2001 From: micovery Date: Fri, 23 Jan 2015 03:37:27 -0800 Subject: [PATCH 354/544] More reliable fix for UAV explosions --- addons/UAV_Control/functions.sqf | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/addons/UAV_Control/functions.sqf b/addons/UAV_Control/functions.sqf index 0d68d1a59..30ccd13ae 100644 --- a/addons/UAV_Control/functions.sqf +++ b/addons/UAV_Control/functions.sqf @@ -52,4 +52,23 @@ uav_control_loop = { }; }; + +uav_damage_check_hack = { + private["_uav1", "_uav2", "_pos"]; + while {true} do { + + waitUntil { sleep 0.1; _uav1 = getConnectedUAV player; (!isNull _uav1 && {local driver(_uav1)})}; + if (isTouchingGround _uav1) then { + _uav1 allowDamage false; //hack to prevent UAVs from blowing up + _pos = getPos _uav1; + _pos set [2,0.3]; + _uav1 setPos _pos; + _uav1 enableSimulation true; + _uav1 spawn { sleep 5; _this allowDamage true;}; + }; + waitUntil { sleep 0.1; _uav2 = getConnectedUAV player; (isNull _uav2 || {_uav1 != _uav2})}; + }; +}; + +[] spawn uav_damage_check_hack; [] spawn uav_control_loop; From 46d8b415f3a650bb659cb3d3fc2d8d4273f19572 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 24 Jan 2015 15:31:50 -0800 Subject: [PATCH 355/544] Offload player list saving to HC if available --- client/headless/init.sqf | 3 ++- description.ext | 4 +-- mapConfig/Loading.jpg | Bin 51441 -> 0 bytes mapConfig/Loading.paa | Bin 0 -> 80572 bytes persistence/fn_sock_custom.sqf | 2 +- persistence/lib/normalize_config.sqf | 7 +++++ persistence/lib/shFunctions.sqf | 6 +++++ persistence/players/sFunctions.sqf | 39 +++++++++++++++++++++++---- persistence/sock/sock.sqf | 2 +- persistence/world/hLoad.sqf | 14 ++++++++++ persistence/world/oFunctions.sqf | 16 +++++++---- persistence/world/vFunctions.sqf | 13 ++++++--- 12 files changed, 88 insertions(+), 18 deletions(-) delete mode 100644 mapConfig/Loading.jpg create mode 100644 mapConfig/Loading.paa create mode 100644 persistence/world/hLoad.sqf diff --git a/client/headless/init.sqf b/client/headless/init.sqf index a442eda0d..a24d42b2f 100644 --- a/client/headless/init.sqf +++ b/client/headless/init.sqf @@ -4,4 +4,5 @@ // @file Name: init.sqf // @file Author: AgentRev -execVM "addons\fpsFix\vehicleManagerHC.sqf"; +[] spawn compile preprocessFileLineNumbers "persistence\world\hLoad.sqf"; +[] execVM "addons\fpsFix\vehicleManagerHC.sqf"; diff --git a/description.ext b/description.ext index 04fba63f9..ed8a808e3 100644 --- a/description.ext +++ b/description.ext @@ -26,8 +26,8 @@ onLoadName = "A3Wasteland Altis"; // it would be great if you could keep "A3" in onLoadMission = "Wasteland is a harsh survival sandbox where two teams and independent players fight for survival."; overviewText = "Wasteland is a harsh survival sandbox where two teams and independent players fight for survival."; overviewTextLocked = "Wasteland is a harsh survival sandbox where two teams and independent players fight for survival."; -overviewPicture = "mapConfig\Loading.jpg"; -loadScreen = "mapConfig\Loading.jpg"; +overviewPicture = "mapConfig\Loading.paa"; +loadScreen = "mapConfig\Loading.paa"; //Dialog includes diff --git a/mapConfig/Loading.jpg b/mapConfig/Loading.jpg deleted file mode 100644 index 8a9c9b6a99fd27888040a1ac73106896a35ddf25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51441 zcmbTdWmFtd6E--w2X_zdu0a9>4=#hdySs!C+#$F#xCVE3cN^T@-Iw?MWWTe&cDLr- zzICSWt*NK$bXQGP^~ci3CIC%FLRta<0RaJk{QLkuwgAuK9+qYRfSeqF9smHq17INt z05G2%#OF|lApGCF9t14_>c8KA?t@_a&u#$v=P-j{|1XdA$$NxY0-*o91^|fsoSQz! zf7bm+)_-S3LrXgsW_fW{GB*xpE@oZ;fSr|%gP)C^pM#Z*ot2-9ho6HF0D#JY_#eOZ z@c{tjK>jb8(10AM|Hc1D+LpwJ;c`T(S#y25-~>OaQ% zp9BF31q}lW2akY=^tqrO4FC!8U+rOFpg%7=gzx8h05m!b205DuET)nn+*d~|_JFut zcnZ<#Zfxc0OG*wSr{4&OIJkKD1XR>Cv~={GT--doeEecR#3dx9q-9i8)zpC+np(yt zre@|AmR8O#u5Rugo?d}}f`UUr!@}be{w5|Rr=+Ikf$|Fqi;7E1YijH28ycIMTY7r? z`UeJwhDT;*=jIm{mzKd>+dI2^`v-?d$5+=kw|Dmsk5AA4!S!j|{{icNBl~~gLjS}C z2@MSe4fh{h5RmSl0}34)hMWx+LqrMA&=K=1djLF^Xk2b}Hv$ER@+G#B(=;LuCFd5^ z)qkM<7uo+iV88!=A^YFJ{%>4h05a643DKd@0m6X0anMYp%9TWdv47PG=`z80+wR|M zy7cEbD=oBe!GEJgZ=v>WXbsIcY zD{RwL8-|9~fkjZf_+(BFd}TP!-R{=J6!w116DfPa$I2 zsojnOR@=J#)q4@kAAr;&^-&_r^)F}kpSNFU_)l*YkV!mO93K0>k$(c{C$izsqghg8 zW}xO^!cYRj(0GkqJQvrIf45|Fk030FL;>QC~Eq`l7gkdW<)$8eLVa^yPZ%oz58l(M}oj@FUo98m$I_EaFKi2lV9r6@vDPm zs*$b9f>KdV2Lc8pccT_1l=t?&0wi)1xfHt6Bz%$0BZHsFbW3iPG`SmaAA}DZv*;I@ z8B?(1XSNSzYRHd+mSxX)y9t|#T)5^+%bY57n$=Z+5PTzLa_!iyghq}^Ral^E-M>#h zcg56^4fIUM5I#I)l0_g3Hfsn?fmCcPUwOv-xka4h2>5RV>FBtg$(dpcLBY3# z5mnRT4CnBMVZ~vDwX_9x^4J_M`U*t85^V3;zkh;D)k3#O^ia4tse*Kak$2L1oU8Md zpjm@#0@7NoiaN2W+VJcW9SsP*fJ`#QU^Waa7)N<)O4A8?4?_q?bu6Q%J*A@Dniywx z1{jIq-GlI2B65$CLVTMzIb?UAybwAmD>}#lh>|=pIc5I&bSFUu{02*OfflD+tyCcA zc4AQ{_qY?DG5&Po_W5u=U`E4S4utXGwtpHoZNlo5ipiqdc|TqS#R&f*F3 zTo8Se;iO6`fA9wAdj>^xoGfMBq07}R1`8yHmk?{V^J1Mv@nNUvqQgDE7COLjA%{$< z6*!_vMI43ymYSU@jEz&Q9=FJoHDMv}Qjw`D;8AG_9#qJ>-|G>x#gwJU3NK|>*kwqb z@iC`bxNDj^hw5*f)RvwxYczsbx{9x{$L~gr8seqSE3i^cQ=_u}V@zj_<%(Q(q}Z?_ z(?9LwxW%M(R>638B3w^lW38DzoIw;9NVwG!xKeK`9XM|NMbj#CC~;vI1N*j^67T^) zQ6Rfe{8#Z;DLoD$B=914}<{jpj->N^QzH^WIYB*BfMuoVI983P<>gfVJ@G zJ1!~$2j`@ruNnFA%wX!c2(>Fi!XqxZ>JLvhuji}oJ5U|< z_2geaZb&0ZwD(A|cQ93NZH|l6w~>+X@_6P_6r|PfC4VRAMd6761C?P}}l7OWj|R=!8$^x@cw%<@)$9 z7DjaZu^YebMo0&wWh16+sa)A(pl-wj8=E0yRs+ z%h2iB>8cJ`PwF=v#!sT4Cs;{dn_Yv=w36*Ne(+hF*vQB?}u z)z@OY-RL*V4$7;$U{J}D#XDhR{XAEw|1L3SJpTaF>kK4T+X2jCL(hNYC1w8vTjJ8nBlSWW-S;5L)`3H=bk8R$;{ zB14A01Ypl7?wsWqOaNZe%)dzs;xszgjgw;yF zqqwrgKlQ|&=YnXqB09mOak4IDOQ+Y4m92egU$P7Oc9@UcYccw9wEvx`p(9g3q;gGv z)ibiDD^fcyZlsbAuWJHOmPNk!3amUtUw#xQcYBCxdC+M|`zEU~JY=yIFADv~e4nm4 zfC$pd^S*3T0cPo!*<(df{fd88RGs!9dZ&*xL6c+lHe6Qy<)Z*+eWvW%y{@o=*ikh$ zDBsZ9>jMB}8Nb5q#`)KH?-%Ha74kU7M&!TKHSet->g79<&CVT%&@0AC>fr|+vrujC zgB4x=PJBfYQCW&yqdj3;Bz)fMK;g-M`+cBH>yfl?K&-PjdEprLXEJNL#RuS`nY-#l zFT6mZWOQ657yL-0pWGuv7SZR2)#k}aoxlTDaw_?n-PUx7=Z_!|{mq25w2j5vxYD8l z+>p*cZtYI;nBnCP?MC(+{#1mxYt@%mnv^S-_LLqcW}zW+$RcMrTr?HiO6sY2Bo17^&tXwI z?XyNNwKajj#c6@$tSnjYt&%7~gWH$MSn-WFcr{LE-b#~Dl!p*m z@OXxt7c_c{%}MLMNL1wPilzp_+b={ABP;iesMZr_>c*OnAezqv74S;X-7N9R9D)SG zYY`Ob$~)%hN$Qzatwnp{qUlh$cnj?0%#F^uQo_Y4XRFh^s0cJ*|BOpT)H&;9N4+{0 z9lBkYt90*!7)|$lzSa_#3J%+`0l7#?4!uNsjR>Tf^TnuoOP+Ra@s2sN;0k=s4g0Vh zCgU?a_a0fYpGXP`nM%~0rI(2b22NX(cqr!R3gXutTGJ2!ceK`F^RJ#ImPt-JRs>v2 zvnziS=jc|BC6!_(a_S!g3Ra;T{Oja!pno%Ng%UjwwgSVOK)Bv7RQAB94?x$q&g!EN zz~p4tnLZfA`S_}2=!wAyrg%${z_-iGWCsyv4<9ID{7Il$vg!L1iVk3 z3lrS4>PY{ooU?j~_q~7l089*KYcuw#w8|Wc!mxj*)0uN(>-VJ(+g}Zr`K{6~O%bVP zNyt@aBx_7HTpU`0swL5HZOrZT0l=XCvjjeJW)H2ZDROVBz;Z%Xsq&5? zjInNWIT?J%*B0Uf|dGkAt88C~uUa{wV4 z-P0k=Q*p+|!~`mO%BsX6s=HXty4mt8$o{gmcn_FQkgdbsxUZVPrr;WO*Jj58)ZGOf*^P4rFmTVV?(%@mg zHF2(-lO^~b_da>*m>^ob4%eRChVLiw;4*IRg+7(MJVu*~AOknJAtZhPTv4#PVD!E* z*+{pqX&p!SEfIM|f-;hwchaet-t!K{i)rYYB%6?CJzfD#vs`R7^J(xEwn-Re#iMor zoVXalQtut1y#my%dmX5$8k1M7KEQ)2B8pC2d^Bw1*ogrn)Jb#l+B0emN9KaI>1NO- z!oU4mb=JKaXOnhX-}mcDUl^#Q{}xK#6p+&tMing*EUBm#k_%hZk5@H&?vpxkjH9@6 z#I*G$J(fl_BEYROPWJ%_`&r4FlT`@m82JGxvmtGb6@=SD4HiIbu=R0)OdGEYaMhsv z3xy8%Wz|VS$i^MN(rF*Ql4%_Qq)8Dc)51Dr;6XO$hcsVVhvLRT@olu|YuJYSxM$HW zee>kHhqS8AoeKW@osYVIqD1=hI2CBk?M86573bik`C{tKkIW-bdcjALlYzm#c8(Eq zs2&C0wCPJwB$eOASW4H!K_$b8e@*4B6w`jKg(Z@X^)ek;fB0^f##1gA$l1c$t^rVqq{sDEqEXr;3_@D$uv3+gI zK8B(1@Q?WPT`|e_V@}^;JFHQ(>glUXq+dpjr~eA(6O_~n^vbj~%-N_P&qqisL!*f? zK>aR9B@2udIZ}7j$U>jB2etUhTx;JRmRzaEL+x#Y?#!r#O)pScGSo!510lS))IXu zRh}v-FpjrP)pfPamzDBMrW8*-9-=yEt&-P?>n>k3z)S79h7Qxz1kxOlq~bb;iUzb0 z-vI!DZOg1}-)8192UaIJZ}kG>+knnrM3{3_;Q*7P}Mqqh4{Aw{TwPe>R9~n?hK*yj0FJqpzxwXMbAKK+) z4N14N=?XU_&TyWysIEFhD{QkNNivCL9W$!mSn*s2(oYVQge|)Rm_4&q2hWPllK=gQ zv~dJvAI78>It_n?rGZAnr63D`w(j`=e6ja&^>pJp`yuUE+H>LP$W%R12!MtU*k516 z+anBS=5e0suzhUbRJ}A0rJ1_ZK8X-iUab!HWU5A48wI`CG+oP8ESv$s{>6X;QDy5<#n%{_BMB($R5Ce4Pm;hEx39Sk)CL3yopk ze#tR=JqR(9XeOJ}cSBbCGl4e=og)C$I_Ev+CLV#AfK zItn~tq9PmJl^Gp+T2oVg0iM%XY&AylprA9HV+PvXcQ*R9c^S1uE;}RY2oZK&!(SBB zw)W$fQP;0?gLId#UVp$4b7W;vz5MXeZ+#5(Yaq~G)jCAO+#77Q)=P+M?-F*l+(Oma zYwoE^dJ1pD49G$k_nF|~&Xnzmj_A}+HeTr6{A){h{6hNO1NLRhtQJ|zKg`Dwa@^Rj zR!g=-+!4zT(~i))L|*FsYf;sxzM_ZLWG}(qU-vY*{fLSbz|-kDC{gh_z9^baKka69 zLfZdz6{Pg%w~{1 z5U2DQ?gDPadLFG{UHtB>Zz!;3^s?`>Xgj=yw7Pc)pwWM_#n@#109XQ!9u%~mfihPc zAp(*hasQ&@2CtyZp7--@*e}huyoVl#4ibEod@nYfo7`0zcZ7K3|!f;CbrO&S`L&-?mfx15`04icgR z1-py?2>nZ|&+o*P7B+ck5o)MOK65O;zm~WP{Q!7y+)zX}KkpP3=cX(MKhg{aA8ez9 zEL~`bd+s-*kiA`-M|HX4(`4n`Ri1TFTSOGBjB^4Z_oW8YA&cK;Z%rt(`p_SNV25?S zSr9#5*eiGai*?b+U|^bIb1D7bq?hMR*Is&wiBoJ<)6{4HN&bC#6ipvLNr}V4vtOCD zBmDtwylK;Y75Z$EP!}rE3CO#FGyu~K{dZ1 z3Fo3bc3k#oN92dSzk$d6xI_9Kd{|LdY~zAjcY0Lw)X)r8yRjU z4hcc>=p0!5jH)d~>^b=p&tr;OS)ml9sV(j85#Aq?DILiLB|ZRF&thAh!7jd{>&Fb= z&iLmE22a)19i^%$6*miyAmfr560$sP?yFM#O*aTVBv6Cd9^F-%!#5N|J5%Ct{tP!S zN7zGStOjId0F@fIaT08BW#^&}sJA#UMxc$E0vQa00Vi4WH){C@>dMy6rK=?r8$PI; z#cdSaxy1bkV2xAn_Q*24D849Gw%>!5-@CB)-x=o!l^3ZRE>9yYeSJCqSrXU|^-}8Apr}JwAb_olB36Osdh7#GmmT?yK z?FFbBj#Sy4^^WXqfADp8WQHSG#JLn#tl7~r*f{_)k`B08;OfU>%oL5 z#Hu#Zj?PuzPrRZI*0j$(m~FF9ajhPYHE~D$L6VR27YH7M8do$S0|{l|eD~z|y;Ku4 z9d0AKeM$=S5fPhgMti&it_f>`xqoMAngVUNF(t2l_D7nt9z~K(jjUFPzj>f6QtVN0 zp)N0U5Z&aom5=Fx^{3v%y+<7=kDh!}uCjql73B>{VA3RQm&urQp{-W8bBQki;xhYt z%}b`Wpy=Ff@8vQ6`n$GKORB{U$pp&k_j`CK!K;9o4(qnZ7++gA#c~r0 zYT%KCVChe@1nlR%$r$|bf(orwskpVJC!^=_$fS3J5$Ra9JjXR+Sq4T8CF?H{S#=v(w;`0n$}BmfZ!BMFsijKSd-`e=R?Tk5#<+nmZhVozgW1w!#^Q(+c%_)=HWD5q3M0F2Y zV{3`S%6|rLYbQ-`ufURxI1ikb%dRzneW7~vQS0dleIGL^*D0Gr#@HoFVUgBWHxcpy zmvJ$4d;s&bfAPKBF(KTGLb%?AtsQlVMRN#3YJaEC=m=q6a;|f^<7Vq^{6@3UspeeE zvf)-io>x8ou9Vr$arX%+-Gs43Xd{xa$s9=s42csln|`f1ETNUL4}hCO?rVx z<+t$j8$8*3yTEG?C|!l1qAyu1J7saUIbM4qE=xM&&XOa(@A;9;5(V36p zRAC9czyAT)!W?wujAzOMF|vgitzeqiVVUQQW(kgam41g#+|mCRHSqy}IB~O)ws56N zt`hf1lsq8>HW@nWtr5g5gT~9SCx+G;D*>f9+U9Akv2-2`GZk`qL@MkH$kLIjWdJxX z*EmVe>A(T{H;~D7z9a#FUv-ELoT#cYr|y(EDuqj(!Lc47tNEAOQk;oK?0bJ+0(H_a zD7kUuF8AW)OA9Fk4sppg<3Ks{B14_ndQa4|#BJ$Y`yl=0d*>&W<3%L9etqjF{{diU zk-UU6xLq?P?V1#P(`($9h1eM1qd_@e*Zex_4a`Ivs`#~OM*#=fd^MdsUkGZC`gbk_ z<`I(X5J4o)hwK8tSydFq+@>}<*W;ScB~4yq&wxEx`n@WaqHY_i!<wI_fnc3wlr@*rO51MR+G1gNY1wZ>u6AJ%OBclAUK*CaIbgoxTZV z!vYz%r4I=!U^?U)1!{-tf!5TRLKuSJaF;XU%FW;{W_4BZ5bM9De519Te-3ze@VaRz zh}Iv)E7lK%F$+b3iK;*Tu7aUktW~_ZHvfa_#gT5+4&N zSUQa=dQVdUx>^Ed=O?x`@M!c+cqaQy%lGhhv(hKdv+1(M3*uFcSWgyU30=P8p8=`8omp? zAI~8Hu1t>1uHKxNHVa_~gT+UP=X+gLfCh1N18g{kJzpm$LDVfYTyFlq3t9*FNlDbw zX9Tihmh53zwRS;a@CduMlxQA;A&fi2DrwAbh`V+KWdvz%apd#Z=j(h1FkwKqG>OTd ztawmYB)`-@0L!;0ykixX)^_3S(rQD`NyBeeaP7g2q;>QLJ_8a+4IMg=1uKE)?8eo@ZcarQ8mu z1mXAHUwD`0-;V`juy+?~(lsMQH<+cB?#`4>(rgPJk_E1+HJ+&ON=TERwoBEE>pAv> z3Ll-`2`Yz8 zEGiItaa2PGcpfI52fkR3cVIq>aAl(&fs?AB7aNWcv@LWq6NT(M*rMg({1|5SC1;Ii z*M(2v(bp6%@_R?tpKLN-()OIB( zIw_3eAL(>Pa4CeuFKuWyhS|3%RUUKKh}{=6QD$&9jVVygck9PdYAi7t#3TodtLRdQ zSS!JtwbzlMhk||!o<#>`;xhW>&&5$ETmStxn+qYiL6QBkt5zc76*k+b{BU2;_@|9I zw$~lzb%xI%j{Jwt%`h3}W8@;zjsp6cw8P@C2bG;F{MujdJCZjTGmmXuN%_B{p?l%# zBUhQ(JW$z}mD=ia(ATsXw(3XC(ULcLi8RVO*Q_OcvhpEf#{T=7qpl45CUU2EL?-|6 zCp-b93;8!iJW6uH=@_=^p=U44P`Lsw0%_edsk!0bTBjT4Wliy&%myUb?kHZvr?QoK z4$g3$rK$&$zQgX@Nw60+-n`Mx1?8VL-sQ$GX=jeRj4Yf^4=u&G1f*063m2kpWm^?h zSfdb>D*^ruzyWUV9t5q3wRJ4P;?)60((J6Dyn~?00_S8F3c0ohQb81Zne@brsZ+lo zqe#_OOYX%ZpTUv1?F3udhNwDc2pllmnX)a&78g=LDaIsS5_=tu()dzhRe{TkKJ+87C-#Wo97LRM z-Je@;4%6jF=*>z*l*q?R%&;BCg;4IJL>lUHCVso74oOwl`qR{%g}&?Za5Y#ZRzjo- z^qD6g>=7ny``STxMU$BSm@J+m-y5I`eMj3A>f+d;JT@cVa`}+o@y=Rl|rlkA({&nFYIfIr?BPB zX*?g5n~u0WV&m9EFW&&$d?++|D;W@F8x^kGB3PqROR$+z!2GrX72OI* zAm7w)5>#;>p`*<&B~xc})_B!b%HJ4n+WJe})e>foZ%<2JvT0K0B8I(@x!*gfme0SL zT(P?$Yq>&@ZrDG$gc#Keevt+%g{lZak*IZ9tMUsc7y4@Goez z>Xnjv3?4($>ST}zKR`Ho>j^lGw9w)B7I;p!wk?J9nY6R5Hyu9yHJ;&%fd3qRuklXh z0c{;`F}}lutlziK6Ho<0uH>(xxj>HQU#u0CR+g(BE6=Vo2gZmfh;tEPN-|ng%2$@N zEA8xKeq6q> zvOlt&`&Yy7DVXD)HXi`&`9R+gaW|#uy>$E!z^@?TiGTI_p(J#z9l`s{3lp?8Kb5|o z`9Czq%Q;T6_6(ls97bcb9(u>5<>j=s1;f7%7e-S}@O*>8e@?qhpCt0g+O>UO$bMVV zSfscT$9p|N(rBA!*+D5;)BV}}P5FK=n+9*o^Hk1RmM5nJYq_**&b#(dS4?}R-1&Y@ zeqw{TAXD}I$Ns;1)KEXX##M~F1BN+q^mp4|{`{BLPc#iR>=pBMKf9hhX)J{@emm;) zKZF)WbMdfCtbB(_j*Az5a~)UtmNmECDSXXv>=4s;?u+7iWiA^dY*u6GD=^%1aE+po zwm5)vC)eQSRy;mSe~tclDJ*k6DvV<}btGzChPV4Ym6|*w{yRP~tTa>yn`+%>bxC9W zF&=Nb?u9Bo_(g29mPLRFwafL~YrC1mIxNlZe1pO@q_?6|rE$K^bURa<+Pk$NC}gax zg>$e;5eC?p>61uelOUP#TKpYub^cow+TqAbg>L%ZFf3W~&I(^?ve$hKPP~02>oA8S zk)FonI@quMWU?g8l`FyK_;(R%P$t%*(j=xBKBC*s*pg1A@3+s3F*uj4V4Qb6OX!^` zfcG#Iq%PG>j>paFl;c;wXtmC?k*{Dy5sgmmF2x6zg-cxB@3|3ru6LmkP+-J?L?h2@ zbLq>bdF@P77$lKb!iCWp?#kO1l_H2 z>zO3L?xEW3T$XE>tzFYubHxj9lm7z>GFXU9a7)U>Fb5BU?_j``Et#OM0iwW2ue-t; zySH5*oMY)>!Dc~k6&qsW??0am91texS9+Qzg|(8I-r0FU^L{};hqz`1iaim3dEWO@fl*Vb z$ETmaa1i}+2<{Yqw^aOX;AR&r`@TrvyrScCicW$sF%~dM#|zatd^Sn9W#NP1Up8Fi zv4Dyuha`rnRT(G1_N$LsOCnL*4r23{^N^quKPuD_kYBx^#B#xIU9DhLyPvWq*c@tq z*tDlnjmY1vW_lT0>AJ@rG<)Fx2>0zp*(zB{PwS|9v|*};28n>5aYCa~{#~B!c`@{- zY{>4_s=M%(-qnk!hs65_pm+Mj(#b4A9wv(-GG!Q_4D}~4ctD*CywvML-Ezb=n!7XC zen-*pEjjSUYidb%u+vL|&?6GVx73>upBaziyw?THCoJ-2tqdjK5Pxp>WnP(w4S(=4 zTSQxqG!vOys#;rA-+{0;RB{& zyoA4ml~HJi$3T zCzII2=S2>G3#y4&pq!a{QSY&gvkOt*|Ik+!_>eb6)9zq$hD*sc8{dwyf%M?yo{;%6 zDz|XKfG1yfW2mEy1-MYI$HJNy@vLqFNF1GP4pNoZQp%MY38!R{Mz2*=volW9-Kdz6 z>A;|S;n|f6$F%yx=07^%-hGL9?3*msfKb2=zJMPWY?X)k)0VVxl0+|Oia^G-aH4WO zyI=(83^vT~*7(n`InqU7(UpK6DWyNnk9c-(&Lr+#IX+iY@mwjx6)swmm_w^2q2J_R zKLgcVmXtbMk3)El1G~b>6Of?s!EMGLBtJ63eI9xSjasBXP-oPRLUM%Vxh`#P-g~|y z?BepC>8Pfhv0AzQCyAM={)K39x^m$!22@7kLC&Pk-EDa&b(Bf04y@DgO9Ms9$`aJ= zL1Tf&Jj+_$;a=1h!Z&OSpRS2~cZz=x`?b4n;Y4=GgTg}Yu=s);TC)+-s~EzP+%GC7 zk*xTWZ~_F`w$$J^#Dmeev-}n1Gmw3~kipj#32?G~J-1wOLCV(mVa|+rprLi-ilTz6 zHF5w|7MJl-+Kzzl6{g7ao;6Qfyllfa+q11Z=VFak^*^L zs!G%8N{Hi33kuRe2mY0O9-|9GYb(;>9NSDi?h5BG^RIk52uMys_j`guI)OTWAH(Z( z%S5<#KLDGZQ%6Y(a%HpW3X{*05w9kfxl^~b`Nu7Ocfm?;>813Wa+oG{lm`%rHC-eQ z+8Ithvpq>!RF@BtjCY*~Yrfga^%y$KlL>og;?zGJHazj2%8QDrJBqGghUd?AYdT$8 zW)eGn_xmo#k&t~7280wnC!`oQ3K2k`1=MG?TjUnB+4Z%U1PU3-urQU(7cW!iS%6vF zPj&YAj6|#_Fa2lpijZ7oCB6BwyXw>(;YcmLs=T8P?&|C_t$co?2wU=P-!$>{eRUr8 zxcVO6F$2?8o1squ{yLqFB#6O$m5a{&UvMB>|E^o)nE(%SD3XL{K$ zHXi>Tg?Ib|sHeD0k+xd5%1*ckHu1KCUdu!f^fyrunt0Epg%T(AioP}e;2pf6JC5+Y z1Z}fT`+T#uwX`m`xEd?ANyPEoOjAt~|3M!vGYTgUvQ@eA@3$xJrOpOf3?sL6R68YI zGV<#rD}PTVv3XZDNkT8wiQEal-B|f16{!8lh8lj`wBOKrDPN4-W6D6+U__pQbKvyX zVs8}znLp>=U$|D6v2(IK~%c|TG% zBG`hv5!Su2TCzb-RL6*oHC`-HA@z53#c#jEDvuAqZ|~(}Ey*sNrbQDE&XT(l$q?9L zw;Bz!bTuUBe?!!?sCJUjs`Lq+>`6IC1t7_k&z3T*Ht9->g~s9Hij?L^jvu20ZE|Y} zP<(J?FX7=I0M&Ur!yA^nh(=N8_xfG9l|mSYIDN2HBRIIqmL&l;w^UD08@>yXB57M1 z6WWzfL#-_0=p0+!vnW&1r!7{p!*Z@d%ZslDMBoUfJ)+54(3qe!yNF*ZK0A-!JVoyv zBxOIhKW4ze4Vafd>}8Qy(yTq#iucaZ-)q-c$)$!de!8!;CMZew3K|Yq4M(e@%)Xfl zh%tanP~=(Jj&12Bl#bc?mgtwNRaN)|(I_d{S0JgJ3-Rh%Dnv1_hj$q}G@e1rj)QtC z_*Ok`PFIXg$Fyv(G=Fh=wpN%vCcG8~tSXdeVBYAT5krzDs15v$aCeSCwg6jSw#LZb zO@SR1ikAq%cX4r|<5y7vJ?FEVnk38s2L*^`8}!%joB3m^GIWqAtuJB!2#)RtRXVdu6>AxB=EWf zV?(|^7`GvoaA<>kZvyY8TWQLR$OLH1+mkkLWlX&?w`jSU#yGOQNR&6^05>hYdoX)d zVMxSYDzrnSL<^+tjcdw)h+B){J4)N<`WX@7P$SW|6-IM@b55@-`b=&#j25mGo%Pv1 z`~g_hnT<$hN^#+FmEH^ATqQG6TxGL?$jWj2JY7=$QXwN+I!vFP?9gLieE8Ye%D;Qg z6%xL-6_7E=VH(J@CO9NiM3P}tZuy*5Vi})wQB-L6^fvv5+r`ECQ0|0++&6ZQA&t;xipsu7wann>a!#pxA)r#{;7Fdb(Y@+V+=ZuEpNW6c_ zY{Ivxblq*g`_(EhvVciJ;W9adeBnHAPSYMz+#X|yX>Vnp7m80Xn0MzH2m)^`Yc5Ng z6PKg)q9KC5g}#0#d-p82hdUaz-_oWuUz!oEVMPxXh*9acu@9dST*>`R24*E}W*_NX z#al%FC^#cH>>ScATQ;dPX$b0bLgwH!R0}Em;$Pr%aRt{q`{>?>Awo&1HPL^j^Xd2E zo9{?RI({)R?T%nLax~J%73q&TtKLx(KMp73WRp zd;NTRM-en$IiO`{9SR|WSgL+cEU5n)vZrGQMY9;W>FurF7$bmR^$4Y|%b^#|2bFJ& zvWn04&%q63;!|~7EdEx`7jj$*tr&d^?LOkgF>|@y=L`tb4J1(4j7#*@A;5u2_r(d_E;lssygY zD=Qf6(2O?h_Tc~I6<-YAVqe_*A!J6cHje7G*>IykO=dZ`>cXu}W1Qr5yRcM*kl@3_HL>8SXTTR3=_ z_hVRGv&Qf2xn1iFss0nDqrf-#cC%Q*SEb)kbNN#Bj2lw1lc<}8A4$Q+K@<vOu z#ZW%SnKW1DQMdAl)oES(CDMi90o8^NZAH}6J4wwA#)lgmg)q{3iN03a5iP5NZ=t*NGbx$_CCL< zr9SY@bxi5A&u&v)_aeLwNu7Z@7v1!@?49PbTfZb6q_C5w&mm=aJh>I&Poee?m*y9L z+Le9SXZqoEXCYnWa;@k-q3p>_pTopS`mjhKAi5oOHm&|@aGR?AA!N2!3%k3adESI= z+?4`Z3^HoMPgy|#)j`g|jb+Q*mm7s-4lF~C(muw}vDv_bPgwQ^7GldAV#0@Lk)w## zo7Wl_{QTMb{rZLqgbMsiHO^(G`RIT3by0C%E@~pZNZX2ogC@0_;wWBXll`C=sg*{z`;5+Zu zOl&*!1}g$@n@m;T1*q&tgk!-dp9-M7eH!ArWUKTy&2(HK+FLOGFO7KD5d_!+;(sDN zzrT2s^LjTRF7qiHB2mJ=iki}M4M^t25GVOshaDANQ7USvj?-+x6)K}V__pjae zGFHk9u~;7Gs8!?oGi%j(PH#`pn`w(ZajvZ%E0K6^>Y} zO`oE;zXjU*H88U$t+4^@iw1HF7|dXjLQSMa(q5X>>o`G&}XNSa<@ zd{K93xtN$&!B&@Im6lGXs$!61Wr49jWyJai$$EB(r#3%54mwkvNQvM;j5Dpo3G|F- zKFNy-A_7!2v06vFbs375vRhn`232)Rlg5tY^c3l#zoOM$+t5kS+H(D|S*cIQ z#q!Ma0nqWQ8!d`sTO_z6?3$;Dv#|c_fw&$nNX94X*6q#x&LLW(3ecYbmf-1nT}aRrk&rp2w?Zq%Rbg_mFq!Hzd~(C2vR83Uy`I-I=fo?VoD>!7|_=IoA~@c zlN16?+MeN3A%}S%^=Jz^YG`=24|O@wrJk85t8diS{Ns>!*{V_L7>R6N@1*yJs9b%x zfzak?x;^S;bBg z#S3jP0Fo6cH#u_Ic6avNyRi@SaIbiR@9e=bKoXA2R~~-*&{GLep`})sTkyc$wnP&w zhFdbF!VQ{(;turOI3E)yJ$s{=zw9FB)?mLqlE+3L0STz&@L6tr5FAv;Ha5JkJxoxO zYdD?avg@p``1o5PM7S=dOWZX2M0tt}^FTX=`bDr07afDGzDX0ihP#R37@q4&|BQ|F zw+{n%pyQVJH#urLl5K`L?W0}KzxlR=ylD~>vqYdsV~@((d-_FJf0RS7*F^>H>;kK_ z%=Yt4a{*KQWfe>rtZNLBy{e9}Hz{YT;sS>D$TuIazL#6GyrsM_vuAtVIw{y!})74u^;LYDHwS z^mpda>(us3VchC6cx9|IHz3+L9!35^QL8k-6fe&I&uErE!Sx%QUUT(qwnAdZfQc#F zWUKR66OtU~$x37{{q-RC%<=xUi0@lpoMJW zx{k3srIav6&SZ#5A!ExbfX$y)AJdBG_1T~MNX2-{te|6pF~YUqo`f$S-fFnpHd0EGkuY z{{T9M&gJdqSxlWyNzY!~p0u~mZjuC5+PLe-KK_+i8YEVc+>GP|Rqgezl+~?bOV=8d zlS{j5pw9}uIO3T1jw5h@4c$o{e;Ti5KHG50?!dX+U(gR~mME>zNCeE}XK8K*-1=1e zvC_a&-PD%r)MB4&Z8gG5@&5qJCER*rs2|p(yn+b!pE#1;L0n_nlEy;>jK~{n01npe zxDq~x6>g>0fL+m`Yui@y=S67T47{H<-(laSNqKQ`V~8MU@`)@RdcV0pl~J{{xRyrP z0whduefob&t#xsmb+<_-%9FWR3Xv-A38gG?W>hbrSla}X8teC zVAJldQ_REVw)M|Xz*bbt=Ub$5zn05_k`78>a7X7sPH;%ab_iNxsF#F862B9}VS$R`9*Ol-GMMV_qAo@fM7 zvqZMmO6$3N`EsgA@3aSecM*}?SDK?*6SQ_`salp2y*_#ACD*^p{uqP6x=dHU5j1ZO z!s@q@L@sqXq>*7zxsCqMoc`=AY#GVVECA(kUZZFIm3G$__BOWhL2n}YEoV4YjAg#* zUc0gmbDUu0X1p8V=C+!3zN4wemUr6K)w;zz*Vhe;c+7>!3&}3rGZWm9NX}1R;9XNx z*KQ@zY$lpLQq?0(TgubSlEo$h21u2FAm9CnWQZk@z8BVvQyCt{-~_mc z5>=Ny2=9)djzw_R@+HkllOt=!PYB?ELG=}b@gi05M~m(>TgypW6f5Lv7Sjhwk(4r)LNcxD zpz(u(z-FR%rnK84G3dHv^NL_Rlp(P}VP{($>;NZ?d;6vrD<# zZg4(>lYxx?04g?Njl?7Oai$1~c92_gjE)9(e9C$JDbBR4?!($aG@_33$HW@aHp%=` zbmylMk^0fBc%tq&!Zr2X;qRI7KQIM#`fr9jJ8C?~(qgzw^%9JKCH{3{>VF7D8HU$F zX(R*Y#0ubkB#~Y7#m;ZuZLd=}(Tr81tj+@0R=>CzO*Y()=3B>q&zk78y$4defo`=J zbj>=>Ol>jS`O-Fe5U%;b^~m^5&EB!tw*UQc_9y9}boPE|K z9;2G6r0I}rEi4xBD1sf{Y_f2ya60`t{{Z!7v}|uL{5-78xzR4cJQNF9L~+@~Ff z0OVIJr(a2_JELXn-Q#6uc>e&1yffmz2~2FfM`s+?yMTjIw98w{Gl7%VH|g@WGtS)B zR-1eMo#JI@U?9|!$dHbO$J{@N$ov#n({bHd>N;D-=#oVu80Ur15XyRjJAy0cPm10X zlf$=9XeDW^qYsC( zrtI>aN(e3dP%UK(BvX?V$PXY6`RkFKb>lyUW&B2h>UhoNmCHx1XazT1A^D|+@=?!X zaHUvuB}wVUU-1)I-D(SaHji-}vB|n8vDHJ2?%1x>*FaEz$WhaC}NLcfbbCn!}xPmK<@zY%1c#`DZ z?`IeYerDQ-kO?{UKhul~^iQT^^oa8ZeY41Z?xGT?`g00ZA6`C_Ng@1oPZNu_F6R?}Tt*y<5n zO$=Dx%8k2>kPjets>v#jr|_Dey1t;cv(0I=NEv|OLW8R{HXIkprR;oy17Q{D7zce-(3D zZl|dY3gbqK`cY>-S?!$V3o8ftLHneYJv!IXUl+e-zXEAq0r6(1;lKDw?DY=}>CJYH zcPE=`cFPx=wM!??FbcNQ@{?aPcxKw`S=21FZ9mHwx|X4DYijTO4>O2^eF0!`=}H{E zgV5=I4C^|lg?vq^-q~pDs9WA!EO!w7sbSk9H_E`UAn;gv{MBpXR=<7X-E!Agi$-k= zP|{)l07kg`O3X~FAb8ITFah7!sA~03j-Ruo-@}iGI){t&4;Sh>m-cXo-rL++suqa4 z#?G#d#@)e=LEswkPY=nfc(27;UxsaN880=9_%!(0*C`p2K%4MAGD#lYYZ-G&O|6M- zox%9EWqqX!Zx#4<-%ZpEY;3Q-$}eqJU=G&+0_%ps#t)?$m&SLOM2-&+>7Q%W-Vi6g zxroPY1cVLcLjdpd428fP4A-K3O8uNy!9Nc5zY|OG0#>xpwCQf)jkI(PG@ufw=gh_# z%BaA|+$+F77Wi{n@vp=^C&C&`-c{DIKG(P-aDp(U<&>{|s2Gn@0H+mn+Y7O_C8US! zB5-Be&or-{^092QA66u>sqe0>JO;L74-**KV;ttL!&(U7PsPvwJ2dY zcDssCwJ;qST|iQOhyuQ3__yJ<@Q07}&kap@FDKG3gh?^C^8D!81d8~{0O7|@Ij0nx zu`VWDnuM-OjD;P^$;Y{?-UD4%P}K#lh?70`=5O6Z(iL1|c2_v(jN|ya)^C9PGvY5B zc+%6t{ui?QW~X{fC}!InF^|10t^6pU_4)ylMSV-*KiP|1&@|XgUlcV94NGe+!P9i) z7V4}65Q@Y+pX$_dbH_o_w5e#u%W#UypA~FmfKMCV~lx^JX=QLfJQJ5ewB^! z3AI1$DFwNYXP$3CEYVAlTtj`Y72cx%D-z9zkuwXF|Rw`S9?%uQ!H z$Rc?JcUF&*j6`k9k~r;Nfunp5@dlycyLpd}>?8YaqCBXcA2?Fz30=bE6Zf&}TwJog z#?Af5$+wqFEt=ZJAY&UAE=J}ma!Yj1IXyjUrSp_lF-;>ZC2;!>Jb}(fKaZt-BYpcf z_}^F1?Nw&*W}kH$6_!Y+xR{pD%ov!DIUS!PrcN?O4w;O@zeZI90=$7C|ESX5# z4X|e;zTTPrE9nV8Wxo|Bt0kqMiF_#R#mlo=T>OD}Wec^Jg1~LuI`AthKiOx;H&=Rn z#+QBI>#aG1@0l+yHsj_4aA>y{1mle0fsw(jV^v>aa-JP$HMBQOE#+@1kQFX4Rfy$J zGQ_I;cD9Av(p(x}WkPb%!cQUaty^<@~ z$t$zUCeiQK!rtZu^DS;80WR3>h`zw=o0|YI&eA)TII7xSm#AIa&vR{P^2Kb0rjT-~ z2UDN$&3%ic{?2-Z*M#lk*ZgHPI-^|6e=VdMbPcE4+)cQ=aiJUb4eY;vo_Mb_@h67w zd;#LCeFFPVvX{)!*7_#5(?z6`ZI$BNJ{kIXO4$Ve0IXgHDLTz9grb`~J{>mteI0K8 z%3y^)LvrduZq9a+d*k|3Z8R-YQIZtz@qfcl5O^W9gMY7RlG*B4 zjc1tQlH5YxM6#(Y?!%ueXdOvl1!U_<#k&ud(n%jFLvEXLRC|N#Qh8&#{VUNvJ$x?K zz8~G#Y8Sy;%fwN=&AUbj5K0Iy10L)Zk@MU?`zE%&2ma4qA^4Z@_TR|p7p*;k8OX0e_;c`M#$GD;i{hUKS?W3z zH=YqFm$SUmJTpqnR4imJ@8EorI4h3z-RZxwUyg1q%W9r4@a~^GF%iQI6I=%axnr~6 zfDS2gvc0u6)bSq*X}YGb;!7%#ua3d}2%}E;I70CUGMJ<&C21S{{#KsOlEmA=Kh#uxRCuK=GjgkIKgf zEHVxcBZ_g2o!;hkEAuW@vAdz(IkdWtTe%|=NY5y(MGSF<3fzyIs632fx#rR0(=2WF>sn5uE%YL3V$-fg$JsIm z?&V-Mhv$%_frHIdwb8Y0Zt~*l&5?h4calGej!p;V`cSHJtKUODTe}|r0Q*RMThqQH z_%p(qoDste3l7_xX1JHnhUzwW+?6b2@`-gQND`13x5`&8_y=q?8+~t5mgdsR!$XQY ztLwSjXtsk6Ndvk08-R1hJJ-&7#+3S2tk%~v87`xYd6)xg?!y2(=No@I>YCotPltMb zs?y$EHN!aamG;9G)J>3GafkT}6&;8^rn&1uRcV_-PB%w4bvtVQFV(e@B>nV~nBtU@ zLKY+|ei-A{v9)V8L|dDE#@WBNLwsiRwHAZucOmcJR-2VVtTPRdqPiE`6T=1vf zwNkUO5q3FsayT`1&OmUa^X*HkSUsJ_!U;y@8`M=*%zZc&Wt$fA%NY$3=xbBNnyYK^ z&nBq(nKXG|EWoz*jyWD8a5{$D&#yTg*FR@*g~J-ZZKqu88Pn~Zqe<5n695mD7x5et zGEYnnc_*=^w;Z-RPX&jz@Rf{ANFQU3q;INZ{{TAlFMzttb~hI?Ypj7(z@tp9S>IV z@53wGeIHKoM}#f44O2tZ5I@<9BhPCg0BmqD4^xK79Q@d(_&4C6iF`wCF00}eTYEcL z-eITP+!aHCpWob|IPaB30t~ip*IA^E2|q(YW0kud^;V?0Bwt(S&B*wG~>jX-A>)wzc4h z>@{N%3uj|GZnrZzk)j}g@U#B_7Q(~kKY1E9JxCCLW5ory;TBK>OC&**?IBL>-!M4X zI*(ord!NNW3zFCJ+b@x0BcV%x35wa+pCy}&?FEXTSmh(CjChBO8cQt-Q*{@Wa#^6B z6NWKLxmQ!k83l2SbvffT&0aE2{TZejQJU9uTDsM>D4dDz8fNL2cR$L#qu__bxsrG_ z?-8}F)0{oD3Jbuw=*=f8?dYqLNe)$|8ahAy=oDVek<>6aT7Eh?GS77UQ_RS}s zbGepCl>s7A(_zj792Gv<2Y6J2N-yvJzsRQ}Jx8s5 zSMWFDuZp$LhxX5*cnib#Z)^L5dw;JqdnH60gGc4F0mxzVbU&9xY#gA}lQE}=Qg&$Y z&lKs}oBUFTLDKZ*zK6rNj*K2)o88FTSmXFXPI2qfy&liRT27B~4zF>p**2#Qjl>5+ zNGAJl+M6ni8tp40uwX=)P&@Yn6T;fNUFur5jCCI+uQe;lFDEc%WAkPtfU0>5hin7S z3!LB@o5j+-j;(cXsNC4WeQg32w@ZN1M$+!aK>Mr}8;s-2nQZkK^vxw$ zM=bN^IW-`kz>G%FppY@oehIG1H0N4sF^$=UNyeOcrtFS0O@h<=25&y(rh{)M`c1$E zB-N%FI}^Bxc**Jk9a)8Pekj-PbEl)s9u2Eto#0lta`KhLdg zYF3l@J6eu=Uou@j=ns+GCpZ~g;Xxy_U~V6dB=I$j8qJUPje>`erep{|*C_rVKfb=5 z!1WkB&}uX0=*^$K3nBLU2-ZFl>DOqAmr&i@LlfukDu~-@^ci#bocia4X|FW-w7Zv9Z|lu!T!O19Mrr4`#^j~zc!M1uJ6G5becuC z_Dcx{rE@jHl>$O`qY)9^xcr%I-78q=nThq!kG>h+>;4S!=8ti$TwcZEZ9YqFD#}=u zBGa>Nmt zwncrv`#t<#*SuNrGsd0+@xGs->6+JtQp#f%m31WXgt&~kLhh@*knIGh3zp)%&-OF2 z(kA_^{wnLyS=(v%786fvG)U^leENmMu_bsT7U)N_W3Fl}z;FB&6I8bF@4*`l0@>$T z{7b1v6obqGL=Yc2&fN2s5e)hsYso+0mfjI>5PV_rABh+|ap*caTBLvm0!xWO#t(lk z2M3?xuFw7oAaoxb{9v`wE!IhIJSm|~HQUX)D0e$UD#sg=1F?@J<2cIa(!E3e3D@D> zAHg59UB8GgZlScB#n;cOG?y|2K2(e%wn9n9N-7XNWTu+dA+n*lFJxpBRDp(<%dATW8cQV;Gq8i2q3oj&!l*ZPMvJD?-1#pOr@0V zH#Wd1P)9=0vSW^s8uR}E5cvMu+v1Lw@h<-EZD+(5I@B7Dw|hKsqP3_37qpEKas|0L zmpGdydBGi0U2Z!U9&7%84Ll{u1v9=4DCz({L;P4wbT-M*l?-qPa z@ZaqxtyuVHSC2ul7B)9&rfcx6lYC1T|W3CqpXYp3bG=u8=xSJ{MoOi{D0w}g})W8VNF6^8(q4! zj9l4I4xzSdSfo35M=UHIQMMd&g3I3&E6x{BP|-b6@>j)g8~CTe`q~ZLGXT$rg)p-Op9X-cD6T{w%Y16 zt-?j;EJh$pXAB15ed?#}N$|T<_+@DyiF`fcDYefGJ<{6E9qWlM^to7&o1_Exkrp8` z*kvraEu4=avDc^6ejs>K-&gbIg?vk6OSuYMitULC)aT#EJPmgz1n3{f*U+b0ZImLD#_20G&v^_T5+E}Gx6&yDUZWVKbf z(;i6#J3y7oAS}dnJOP^g_Sf~Js_6EbZRNwuY$T2)Mp5#e!E=sy!9DAFHyI^jG(Sdu zBx<^Lli{64_e<4n{{Xb~oiF|p3%x(f4>a~j8JSf{`Fz70Aak9kCj^T5TEq6w8hwJn z{{RZ2;$4{~=kXeOj7cXgi)?3~(!SC0Q}{C1O1!q$?=-tq)a^xt?<9#FlEUxgq4J~;pWeJ@PyLO)1wyln^wzZ(kOf&THMs*u2cVB&&(s>eP&kj+2gDNmPWYwqd&Rdf z4L(g$eKp~MCG*9ytW!pdyK3&jqV^TXe%reCrKNmM@T^+hxV6+R{4u)n-UrNPSuP}2 z+HihDb;vE>GATWHnwmsi4pL8w z8kLRHM;F<|WF78e%!ok*VY7^S@P3tV_F2<44~d_(*MuU~r8gvBe`wvYKviS5MwLe1 zn|G{ZAMIBe;!PRnhFwF<3AMgrJMqvQ{N1{Giu#}a2`S*n#ZJ(hT%0!GcXHvXbL2PKnYT%GRjX(gTbh#pCY*Bqd0GmJ}~fJm+-G$ z_z&?W+frW>cxny$F0yP|M867+_8HaDi4J4La&J(%^9D_JfACMpQrq@M)9;!YuOw|= z?IE?ck93E9;fx&g##&NvJSry6mNkt$Mc zYI(QpwFZA}?~Ta~v$vGDG9|2PH%jSvc7O>0lat(i?$nDSzP$f!EjsJdG8DwjB;vQm7~t+H$jEzBK)n+IBxvmyQQGC zZ5@Z~x$*15UlII2b*K2!_f7D>iuAaod+SG=%Yx^_AE^PFB2yAtYChGd^>6Xz(*AlcC zNiw`UZVJJh)`;qXu2z0>*~~uOu#&4HkQ+Sz0G=zU@Gbt8Wu_RW@t&JuERq={g6B%P za;$JUkvKd7&|F6FNfY9DXcudnx` zEYmSoKtiw|C?F6B$N=&I=bB9qRl0`D`!$O-gIJ4*jF80@sZhssk|yRE9lu)A7K-vFS1;b#OBJH(AgPURO}v8#F}4dXeTc~VgIhia zDHp`89_g)`<~U}K?7*ZCH_AR{+>$UDraJemNt$?VWl4mLtr(6~UW@?BA8vsE0KiYs zS@2G;ZD;WUIPPbU=CBJ1egS49<%tFDS>bBCybP%YLO#Sr(_k8qV z21ls+R$irRCA_9L=sF)-_1_lwe@XF8s+p!X*9brpt^|rlAP{-4uSuSIS6lo=uf=3#Rmu|oc^?wHVR&6g$ z&Z5a2(;Up*_VI|p?g1J4lU6({rucut==xqxt&cwIr0whI77F z=jl^)iez_=o=Zg!?qN~Oe}B}UYN2m3P)1J~PQaJ_eK3sT{?F%Y8?`-lm zD<{z6y`#XUO-*$z2wh%7Z8XiK$8oiApaCox$2cm1Nd)lhr08s_z@?OVs* z3-M*{x27}STf~xvQmBUJ$#+SS-HLgN2pGfEN-4&~P?Cg|juGz1h@_4MuxTcqKo@^G zVsJb9n)lBFczR1%Z6nigmiEXahIO}DZRR~oWe(`uac)LEd)JZt5VRVOrFC@nQTcj( zzVKsoM>4qxilx3#{Id-I0CK(O;jPo9_WTnvee6UnZioBGK1n{JxvJUCMeL2-^s?%8 zH-8N@e-i1dABgnW=9NdwaI%vof4n3FF*qcA**x{HGx3$ziasCRe_?38F8fxKw`_KL zlB~NqCvN5;&rUyi-==UY=uIB_JDYK~K;(7#cCh-dYVc3md&9Eo8iL1Yqt3dJ#sMEM zsV$Cx4!+*x3h9+9e3!ku{{X@N0D@IH&i1v=Us>_jh}s{swu`3N-b?$q=S#U@jT@31 zXO!hY9N_Nzy+Go;-%y{%`qsM-gX|-*)s5I&jao?VU9k@E6tfhFV1?iia#RvW73#X) znW6kN_-wkiziPLVTf?@|XI=6KW1OlUH=GPFMI0O`V_!OWH^gz=`1X5=ep$5{T1lL- zZO%zMcOFPkNC&ye;1H{ZQ$n45Ok+QRyIj*Ut5S{{QisHq>}z<_;MSL>!uqF+yk%o! zFbvCSX9~2PI8dw9@z(?1yzk-8v8ec8#G1#4>~7^)wJ1z+uwJKW*!UcSvDoq79+m7q zEbxDbyg;hDPKSAMyZ%}TO2^NuwiJGK!rS;mQ_+4TN;NAD#?C11?wus#rcTc63T;e| zgcI0T*JoLN8w){uKK4FiDaY8D z07kW6He@S|^YW%W$?55lUSr~m)*9pLI(75d-8&7^+e}cfW5FbK=O6g-92E!V=}V#Q zJMJcl0iR8V-&pgkblAXnw8eH=FW3MJyO0P^_PO+2bso>~uFqA}JSjc>zMXM#Z)8L) zEp6GOwH)n06mT#H>)yE^fPV?RN%3pP5sCHPOz65_I)7!~YgwW?6WD(POw4q;9hj60&;kA-}3 zcW|1sG=g~Hg}2J5a*d10$od0cKBdLNUyH<<(sh%}Srp-eXE_J!U#5SxN5Uz5bMUtM z-qQAVlHC2Jph2|C6lVbQ$m_^IO88F4NbshL*Y?t^cT-IZ+Dw;sNM0Y9WTpVx;I1=+ zjGtQDH^-{;jFQv!>SdJRy^JLm^*Bp?O72PSjm+;eUE4ftWMbV2agW6owmu%sc6C8) zhio$=$(GuZ(&N2Zcde*+D z;yW31{{S%B%$k+`tX^ZyGDu*AF<}|nssj?)#yH$TB=DXj>Ro7$W)#wUlX!mWD?4Aa zENZZs+1Wri4*1Wo1dcrk$8k>85;1U0M|5mBIQ^qL9fF@4u?9RMV8yMi-cPw8GK&^$k?O5PvRp|@RoQfsYd z;@TvO_l6^zhabjCL_>~p+4VK>wuh*HVti2W{<5+%L3JZ(w@insOg>M;%m{1KJbB^= z(mXq@YV)<#qiOaMt(2{BHr%@=MibOHQO`Yb#cu}OPHDxdGYj@u_^%@V-d-T_CC$?< zkBubMVGr;G4_|M``6U*nJ)-{;)Eg9P= zq7BPzvJ7K9Zez*D?v?b{#!m@bc+GTu2TAe0*N1#NquN5UX}0!8M89}sg{}O}&9o$9 z-G1-Q^B#HU=hd>(w4F=g?wzTmR#REqOQ=sQ^M&6sM5+MXa1QwkWBs3M&hc&C#-F6x zXf}Q?ywvZ!LE=WdyO&P9DI_-J@~N?jMFhq;AQMv=DK2DGpwqGR-l_1*;6|~idDp%J zvxDr&@F=(QZPMjj?=JpSfXH%KW%5Qy>58l4uN`<7!2bXmbS1gExwo*c> zA_T(2H0aq5_;Cnq=V>{}0=_`Fn^{dp=GlB%;zcn_Bz$XA5DKvXkDuEd*IV$j#(FXE zj-%mUh<+runXPV$NBylR-E#w|btK7>O0jXA@qt2>-sE+$z2UubDEu`pmwlsZdZnj_ z;!ACA<_mO@El6jN=S=TE>WMp4?F18y)oDCIqx?CVABdj_@2zy5LedvWQBXa$rvqV( zQlTRwAP`0fJt=$>zA4u^LElA|8^&1LLuE5+E=)RR^|hxni4{RhQA zve$_<3;zHv*ZXtAa$ek9%>n()&uO_cpW;^t0rgON*TxHRhiSk$HUtLOU2D6PZ@tG+c=se5y+EjOUYz z<@{aYgK2M~UTQatw%^(o(ciMR-!4BjM&QS%)cts;DaV~A^)c4x+TXROi>;^l2jd$U z^(B>Wbk;jzKl>i|Q?JV6g{9gi4tJXCyc|9QOy_y|d!CiFDmZ;m)yc zo+GiCUPKbmM|B%{*>vCz=Q-(Kb>mM7+Ub4?y1fvrpJnpicj1^Ibu2;bNYCj-NkufI zHktKD?Om$cOX2-@$2uORGkCv9vKBgh(&iImYS$)7&9dN+v@~FX$L7Rft}sdYtHVDT z{v|_s3)=i=@dRlcxd!i5j&&m-5X&%Z@O#&(Tgjna>QQU9*YR92UH0;%iqYh=KboVa z@?E}uxFlwy{?YLF+UIGm^kp{lf*Wib(ozOlxcOX@^);hS^&Ode_9OB3ou_U8;T@Hc0Ge1JZ4u4)5KzH*PzCUBF|J(uSK>xIJ0q9xl7mWV61xy}0{5(kAdHwl?hB zMs|f|9Grf&^#1_E4-e{=f3i=6d?Vp67F+mlRMlboRE!JE`kX&2_2V*}*>2Az6XBi+M#SKX)e?Jt=%)eXnS3;tgzgnrN*q zEUmQd7S0wc_IV3z--Gh++~XMj73ZZWN0nJH)b*V=;E%#7{57QMej>G!<65+}wfkU9vAq#;(bp`wPss4nY@`FjE%vEBdEygM{3ph zPvhxtJV~o~XT}~Q{?XFrv`Ovf*5!@S-A>sMZ%{Bp0ucfps;rLm61+x4xdz;gl7@$M2j157M*$0N|s#zL~A~Kf*d?rM6?Y4mY{&zp$sq*fsBli{K9x$pY)X z9ky5jxl(_$>@l)AN2yiY8+{c202OZj%z8GH@M7=8-WLA=gojU;P1iM(ec{;Vd`i)I z3M7arkkv?d%v_aiFbg926&GWM17e_74CXwzomGO!nQsk zw7-V--ri5O+0T7|*0KUY%b)dbxn=!16eizLl4+YC26Z@(?XmGbXf7?D3#M{QNL3_^ zY7rS%ARO>m6+AWw??>(L;!7zmJQrncVQpt@A5plK;*2UZ*nvPSI4o2a=bR3DSCsr7 z)Z@DSpuAnEX?mP9TQm}txPkX9!b^pGt~!8s0)2k9>KfIgTE&{$>mF9661qCaeQG9* zI^=H(+y=oTB8_ce)jOUy@LR*s{6P4Zn%MlLbfpSMbAR{O6uMGH)<5|3Kt3e&SQbD0wO}@@HjH_JBvtXV5F%z7}G{d${E)8Lj#xI3jJjGu2$Ui3RyF553Q+o&-deK;~P3NiTm z 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�Lw*?2~||Uk2)0tg17K^;XzVrXvZ* z;A@`vk$I+S8imfIqiC_{_HOYQ?BZ?93WQX^I2}mbbCZ@ln%wY*!~Xyp__pF(Z3j!5 zXf4}q<@LbwZ0&jLBZy$y9JELQ7rNZ*f61>*s!zIA%9ybjcQH0SQ-jjg2ko$(_>p5`Cy!feyd zhA@-c+$tB6Hike-NfTigcTQ_J$6hSbbxk`@veBf9JwsX%TF-N6Gcrc56U%k%0A?p3 O93ZS)chHO3-2d4waU|IQ diff --git a/mapConfig/Loading.paa b/mapConfig/Loading.paa new file mode 100644 index 0000000000000000000000000000000000000000..15ad143287b5d06ac9e42993e84c3a457cf4ae28 GIT binary patch literal 80572 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

O7MJGYiMx!26r*1r-Zf?w2yClY2XY{-^f=t+r*` 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ⅅ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

~G5#QW@WXmnQ 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/digicam.jpg b/client/images/vehicleTextures/digicam.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35bdab9400a75a7e3de4f619a314f97ef54189e9 GIT binary patch literal 100915 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 z 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/dmr.jpg b/client/images/vehicleTextures/dmr.jpg new file mode 100644 index 0000000000000000000000000000000000000000..733c8d58fcecfb90f92bcffb37177bb650ca40fd GIT binary patch literal 167800 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%0ASyI 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

  • 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 N+r@|NE|2V2e*(1J*CPM` literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/icecamo.jpg b/client/images/vehicleTextures/icecamo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6edb8721968755ee98fc3e36608efb8709753171 GIT binary patch literal 147319 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�(&I+HJg%hDcqA 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≦vK)fm7G#2g7zXaX_83OVG} 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/leopard.jpg b/client/images/vehicleTextures/leopard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..05e4b878e3ccfc5dd7a0e88c6c74d42121a2121d GIT binary patch literal 83408 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

      Sqj1c77zC#_NQdPZ-I(h`f14 zXWrAC)8=GT^;|xgwLyk_aIT?@@+}f^r%yQf*RN~26T_z7A>#O4LV_T3#UoWFiWH1| zLkmvdO?pvd3gz5Je*7w6 zL;Lw1LZhxEDi#??9Z)lJ!GEdQ_2PXURj$hGBb!{m=Xs6VPQ7%le7y5dfkc;v0J2#^ z>tx80DyBx_Id_DkwA*}>P;V-JzA)FMSIrNrRLyUql`CHUL@qpL#LVCQ+}I-jY@rol z_9Z>(uX!;W(Y91~268%OCZ08$VTApA#_QE3WHXP*UZ7&_T-{J;am{i|^SZJZqQa-IMj4+;Il6NL10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDs zA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@ z2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw} z0$vDs;eUoR0WSo+5b#343jr?#yb$n0zzb(<%0Z9=K@J2t5ad9R3)qn|#wq%ej*Ac+ zblUB#0D|0a6663cg!Fz>dVm)KUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjj zg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDs zA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@ z2zVjjg`Swvr+Y&TD!2{IBzjwBcj7a>D3-D4X64!+jWX?k7Xn@gcp>10fENN@2zVjj zgf687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f68 z7Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjj zg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@*x-{h!__cOf^VH g$EzhN87@q$po;-71iTRNLcj|FFZ?g@!k_*B1er~;5dZ)H literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/psych.jpg b/client/images/vehicleTextures/psych.jpg new file mode 100644 index 0000000000000000000000000000000000000000..34f2d11d52a96f0204e45ac42f7adbff276290b4 GIT binary patch literal 106517 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 Sr&3iL=jP?#MfZ94KmXYlMav@q literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/rainbow.jpg b/client/images/vehicleTextures/rainbow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d581858abe91a50a0bf22f90da13e1ae87e9d31 GIT binary patch literal 34945 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

      J0s~; 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

      %((wH$Q5;3&{wZVR&@Mki9P_UnE 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 G7ysGWu|tFa literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/skulls.jpg b/client/images/vehicleTextures/skulls.jpg new file mode 100644 index 0000000000000000000000000000000000000000..daffc6e1ce23667808af3d27f180afd05f0aaa2b GIT binary patch literal 123961 zcmb4qWl$VU(B@*n-Gj@%I3ZYY4YG?b?jb;Mf(Hrit_vZ-eOVS~kpKy9!55d{uEBy| zzN@RN`+GArzj~^tYi4?+pQoSapVt5+U}cap01XWdp!%-@o|gcM06c7L9PAf(I5;@? zczF0kG$cfXghULKRHQU)Oh9&4CRUdJc;3AFk4u<~g;hZQwXnFPjEoGB|1C&SO7)Gj zjO70)LBqqxCn6-GCn2Gih<@K#(zG+~MC!;|CM7)l2DvJ}mNW0T~9B9TOrS zJCyc1y}M>G8UJu>Sx(%hv7qljnKXpk-{NdO_qlerGVm*p%2y zkUH04?66}k8x*pfA{9BP>M4``4EPM8T9gFQZ5{p6P3YCqN4pBp@%)OdX0CSTqRa4M zV+x!?RaN@S|3h^XZ{~3tIre&w`|zjcNf?Nazsd9wxa3zWXGy*g&1+h8Mk^I4xbl+PE|gJESG|d6wUMoB-rdRrn#oj8!B{hLXkJBygZZ^2~As z6j9Cv!mbfVuQ_Vtz6wyueJR=-d?4k<`82y4+0yXf@ZF?H>=W7aAViyjxE$P>l*P~Y zpWGK?2kTo|oLV`?jWQ%S?jY)|pB48${a9XrObDnG>)7JXdV?yTRGaw$NU$v-&P4Qxe$47$T zvWgPRgL_(gf2hsJJzk{l!ebh?%}=bO??~_Z6Qcud4Qd^p{}FsfBQ`FwwaIkAGh`qX zk=Jn`DU$IpES0}nucAAy>Bd7VwL4c)6v$G-gc^h6^C{UsoTQ?zF=n#~1TG147A~jQ z+eWNB(#-jZ;S3EB%efSnXyH*W&uHmRZ(6^; zs&*3wmi0u!@LJWhm(!GW=c>7RzYr>?+ckrlO}G2(@RB|3kI~rbf9`2e(Fv1tWviDC zj*DEvpgE*_Dy1gP3{rzLY>Sl8au57ka16F&%ibo!ZWp;Bu1Nlq|eqHuB@+Ar0?`pf8E@tn#u zCBY`e5AXhEE@Gvz2CSa^dT?7_+<~iq3tq>V!LzOie$RVre2d}8{S5eyfga-OVV>pg z*WH8wyM+!J(q1CoACQeR!>1`D$y+|RTX#@6XaKn{K3Q)R^R>iE<}K&E^BF);`bL*5 zB$qGbqowIn+DM`M7hL`qp1yBT+&nSsemYo1qPi({@fUXO%hY=^S(u-p>dmQrg*jby z@`fws?74tvvpTuoMr9n?E&a&_ z`-kR)YXpMI$zhj=+S?Vesc96^5TOgSaMjk@oaSK

      {+=n3A4t8Fq|+-lSL9&qghi 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

      1ofuPPxvN!#PlEsTF5dEcR@wym;Ygo;S|j^j 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�u%08W8dKWX7{q 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 T_#^h<#?h8jbmdxbQ~3N1K&Koz literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/camo_pank.jpg b/client/images/vehicleTextures/camo_pank.jpg deleted file mode 100644 index a4655577ab529cf82d0cae2d01a28b16d344d22d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57063 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Ğaoa{1TJuh=34-k_L^(RGvM+2FK>q62 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 MJJvcs$DaTDf1Qdf1ONa4 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/camo_red.paa b/client/images/vehicleTextures/camo_red.paa new file mode 100644 index 0000000000000000000000000000000000000000..dc6f0eacff7f71ab62f10df89c339b697cb553db GIT binary patch literal 128017 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/carbon.jpg b/client/images/vehicleTextures/carbon.jpg deleted file mode 100644 index 0bbff9f4818b01de06e38506ee74f2b7d3591f77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75360 zcmdSCcR&?K_Xd3FO^Sj*P@2+2x}ZpvCZb4DELf?6U_nF$D^e9v5bPpy!PpyUj4cYH z2x0*%#3X`V^{ONyqOW56&Y9W01xen#zwe*#Gs|V~?#wx7&dlsS=gc$YThq4|j@syv zej_;&5)zzI@E_+}tDLe=^6Xh0j-Q`7N1nss$Z`5eNO2_K41aVaWXSIbIPb@t$HBQ7 zQ$`ZbZ6zc*z2J8u{Mf;{2K-(LKeMx?N!>J_Km}lETLMQr8pcZ zk#nfVk>yA+cFMvxwk-poVQgE>;as#W5|UJ!9bA`W&hLOB_>Z-l{ryeUpV&00^X(zW zi=(F0OQn~hnu@YYpWbTf+GaZ1nwr|S1C4dfoQAl%3?Je+Y{aN(0VBL8`3!Rmnj1W6 zW<*SEjN8}+DG5=@)1qS{QHVtEK7F+NYFq2*SVwv~dPe@w|GrgnddqVzb1q9s4B$xi zmXPW#@$E84AMBKY-p2vJ{F9KBl9rK`lUGnwf&xFOaU>rh5JJ#xB+S=7PLdMcqgEQ{-xCTk)18({lTXKvo>4ygA?KA$dndrNmU#)D3RHbf-X4 zw_9QYIG-=-nBAamh0daGB^}B5SK#QLPF6a8HYbK@^t+M8^Nl6J#*4FbD zT7^f=kBGL4oIlq(IXuDI*2>13HiP7Vi282W|jgK52W$Nyx=#uP|JU3x(bW*rM^4vM|7CI%nniAnoaE_O) zO`%X?)GViQ-XobJ@Xghfv1Q4UC00v@Sj|t2v9=vPe7LoZowc2vC6usSm@+RZJlS&I z!hs+`(SXSCj$Rmxp2KZyZEbz*JVtsAfiFXShS)oJ*bE!S z%I!gfP`*&E0lG3Vdg1&EmnxB}0SLlcuAH9Hnu|~%--`GA8mUbbxMTXx$56OQX zkb=?Z9S)XCGo?=QPB@$-&Oj2B4>nNNrk@tvq&q)a+R);+2Po*w{D?8RBF! zOti8{NkL_p+)?34;s2_-Xjz!c|ARN9A_dM&Sd=)2JSn0gt)u5e<3w8s&n{bLdPhY% z&6=M$H$2I0_T2E8XzRFy=olAk;nn|5Zvxv90`+1K7r|}v@T5H|xaQ;^9TOgz;ujR+ zc_ZJ}&Q#2|aEpm)S z{o29CeMFB~ym(1mQQ-)@$O-q}Wnb+N2l}BBN}^1g+n{$W6)vW|kQ6Imv_o}!oiN4;sG1|I5xy5B+(Eb4 z+`%hY2DDfEp?s#*7l=UO4RVR}9cdj?LZrRqiVk)S=@D9P$noqeU84eXUa(I zA>A#MNt$3JtTLO9oUCmEAsl-gqPeUD2=D2D31dr;(Nd<2-lh(RUMOIOpFj=~A}WWm z#CsF;S1;P{&;`^ykyeWgMaD?cGQ?WigJNTz40!P&M|(k5Lu|BzBJUm84uQe6`KfqK zL^Td_GP9&e7l_YUBDwoKDggoA=O!5{-(6&f5aW4j06PxWPqe5_nBQ%T@60w|o5C2XDof@n}W_X7QzS~!RuT*@>cek0t*uYLSNdDn~(Vm^k z3S}l*CHoy5$n+rl%w*<8E1N&G@JhCcc{>-BF~wBXFtB(MBR%ISmss2b|3S`6q&X-zi97QVw+f>h`w0yF=cZ{ z*+$A=bmTxun7q`nC0G?+CAsi;Cs)Go0`rfUBr>P=Vqb*eO?;*P@9)s=bE>;W5tC3n z8QUW7CiY35N^auEf0?sP8-*{#?lVp>g_YSi^?#jlWC{x>1-OE~HQ0&6JO>b{F#iN^ zVd^xv$_{?vhN}<>SE6G?O~R5rO#$-sgR(x3p4nIu#L_;`)WT19@EYu^WEkSRVM;sVHU&t zk%E&-)B}&ZRDm1OdobDwJcil*x8od(v2a~5VnI|ab>`pC6xz}-QXM`dGXL8fy#jVXfjDRTG+d~3sYqM+^UxC XL?ysK!_e; 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%0A%2WbWhzRY+apQHHe1b~K*G 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 diff --git a/client/images/vehicleTextures/confederate.paa b/client/images/vehicleTextures/confederate.paa new file mode 100644 index 0000000000000000000000000000000000000000..9d486eded7b6a1d60f058375df779371043c362a GIT binary patch literal 25895 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%0D@znbo5t+h^Kb|epZ8E13)vIdIXrt_qF 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/csat.jpg b/client/images/vehicleTextures/csat.jpg deleted file mode 100644 index fd826dfe676d3d1f48e1f69bfb30c4cb3ca7f994..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmex=X!XqN1l2cOC(lau%ic3n% z$}1|Xnp;}i+B-VCCQY6)b=ve9GiNPYykzOJeA&aSFc^aar4&0M~|O8efIpt%U2&ieg5+G+xH(oe}VkP$iNH_GOYd*1p14Kg@u`g z9po=Yrg9)=7Gz;nG-MNU3}jC%6jm~7K%C@?U% VC8-60497*YFt7j>!j(bn0|3aOD9Hc- literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/denim.jpg b/client/images/vehicleTextures/denim.jpg deleted file mode 100644 index 071ca1346553f839623a63f1eee43ac90703b8c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98862 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

      ~G5#QW@WXmnQ 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 diff --git a/client/images/vehicleTextures/digi.paa b/client/images/vehicleTextures/digi.paa new file mode 100644 index 0000000000000000000000000000000000000000..af5702c67b6843d068254b0b2602e25634852ec4 GIT binary patch literal 154504 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 Ckq12h literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/digi_black.paa b/client/images/vehicleTextures/digi_black.paa new file mode 100644 index 0000000000000000000000000000000000000000..b1cd5281c40fcbe12109a221ce4ec532a2ea9e16 GIT binary patch literal 35384 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/digi_desert.paa b/client/images/vehicleTextures/digi_desert.paa new file mode 100644 index 0000000000000000000000000000000000000000..db5fd4f8b4efce8b42bf13b3e17f48799f22184a GIT binary patch literal 40493 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/digi_wood.paa b/client/images/vehicleTextures/digi_wood.paa new file mode 100644 index 0000000000000000000000000000000000000000..6e0ff2542ec164b48bfc39f4c710a66f3ace8679 GIT binary patch literal 39944 zcma&Od3+P+)i!+3j8-qqc#%EEl6=o-u_doEHee&$ve|-@6vwf=MUrKfK%5ZB)}+bE zl7Xa2NCH`$rIoP*roo~#dE3%-k&Qzj?bGM!^E7Ykr)@ei!h|lgeVZo%Lg1G4ouS|R z`~Lm%`_anwXqI!IbDis4=iEbOHg0V1S-Y{fU4;;`tX%!CpZnYIRDRCDf6CwQ-mqb_ z2Y%iI|2j7zRQC`HES(ZjmET+D+AqR+aQZ6&?I5BhLL|Sv! zm8f zHAW=4Fe7U)x(&Y4mSWFhny_(|KYRis^i-NX>(bPCkLBDoiDC$?G$O{{y-z@Wp{o74 zlsAfK2U4>vzV9>~7zwngJC{+&ix2}}>mEnp;=P==+Jq<{!nJ8u)9ugpE(;IqG$M+r zXn(sdUS5|j>yM1mW4h72VV&P#Lny7YIDFwi@uf|<6lyV{e)uvKX9-tfMigB^7>SkI zCQvM%=QN>d*1{ntTk@%ETSz^F3!=*?uNu*#x1m8v^ijS^oNuNaUf=5z2uXJ_!@8{N zKHn&;?Ob)FEoUg29rcc)NMuC|tw+ddrk?CVa5ae?T60QIjY{71vfTBZLyntMQz_>L zA4N5`Ii2J#^@hQ7?XlS9%aVo^G?pO_)#ilpU?RsMP2w_Qz*`B63rI08C#=*|pDvzm z%I!^>|KOU0ySpFrT(d8hS9 z1;&FMX^YMWCn0LuKB(@v>_PQ%)<9VAG}*eaD$O3@2M$usxL(pYeUy_>QWz|ymF&$j zmfG;`(Hsh){;tp{@*GmzyQhWEK0BYmg(>z}{3j#A z8uof|nUB?7YM*vwGN;=%bZ!m63WFzvO@Tnn_o?p_50((+@r-yen_}*@k)Q9VzF9V^mCt~0@m7(dK1)%s7TRtx_9o5jCU^F=dDh$`DVge4>!b~%%v`c zz+ze>N`&vmKgzI?{Y?|)utF5$Xh#DKsfp{TGkm+wPs0(b@G8OrhAiU^&bqAOOPL)V;-o!uN-g^c zoRMC=sIfTisYRDIP1N87LfXvsj^h-X!OK!?Ecb)GPIpcl09Z3ijgL33AZz=>LI7WC z_m}<Kf) zy%MkZA3kV8>jJ+vEFf^li5!*xn>{#R?#8Z(>SH+z@|e(GPhlhz)|vM1Fg1=$(raB;Cs%KC4f)V$1f?mo1Z%7UM5o(zN4OcR3bh|$pQacl z3c-OJ&FBax%-%i@Pn@^N+PkHdg8#{;x&Hl4B6%FYpJr_x0`dF$LI_Phe%9p#2paQm z6b33hn03=q81QT}t_0H=5_jy4?yPVJgt8qAfDUU2TfI2K+29Me%>FLUCYx3tR)PDj zT|9Kw72gbw-wubph<6jVz6Bd_Ct)q29aAFl`~MP?{xTFESuj{l+i9D7yUoA->Lk*6 zGjmA)t~6u~yu6`9MN?C;W5;k=ia8Vb$S^L(w_Dv0W3378^=YWCL9f>pZge3g9Cs6L_tRn7v$YUr!Hy8H~P{(_f9di5(!Pryn<@*m>LRD;Y>H z!#cq9>Ztdh$pOc^^#wmQ(H>?SvCs0P8v7t2R&c zfakz!BMOBBj`Y)Gob*rY#5YeYBIiP5iakE}qYM%=o78F+i|+4PW_Nn#-bG#rjJaZ@ z#|4=gnm%D`!Ldb@rN?<8b$cL8kn{9Go2|Ay+AK!D?JtZ_eIaqo&oZZ)Zy)sUL z&H8$<(1OQu&chwv9zRC)_NEcpFd5b}s3NS{DwI)(#RDmJuRrXuNafb(Lvb`0o;gu< z_%*agjIW)$>kN+z+*ueR78e>@8q$9p84-P*Rhf783s>Nzu2JAZfQ7VFE0T6>iNhls zU#&~4j|%>G=UvizTnLWj=9F+S@=o+m4pMG2S=6`>A|={9 zp#5GOxTx`90u3gR7pT!d*qaE)F#J|@H;d$(33jF#GU?ZIZ7r{666iGENLV5D%qIUV zNuW%f8J%_1ryHjom2!hcdO`Aw(yYWcn&7~92%Bi=g|h-UZ|Ix|KfT(gjw2cS%QaDJ zV(3J5OU`8lZ>XcLa}E-bmf2E$X`BB6uPwEPy>)-S|Cahg1>Q+&+7V7vXB>b5@ext} zsD_k;oEb}eJ2+e@+uLYd-(2QB>sn_s?>O5Y*Plkyu1jmojcT~4A@pJi7G@qO87 zM82>?PD`sP?U5n9RbR+9Vbqc6DAf1GweY`=jw!*Xd%Xrz^BYv9Lh_f9yFg-ZhL824dV zMsL;PNX59__XV8YdU#K*jngL!{og@0zc7zWd>Lt=+(-#6*EB=3J$=39roV3R4Kt17 zSC6eN3FRT5nmMBL1j8d(J(oI}TN6)V3S2U;Zf1hJ+jq7kETV{9vncvW*c>PGfC|>5z25 zfmO3%#4Vpv@`jzfF9n-r8UHE8 zo)YC>S`&C}-o?Vm!n%T`VlPnoGGr-PA2=B^NPesD=?0)By9B=4;=a3ID41F!l&l{F z0vlm-@NHy}J89pgrfJ9Az0YgTSF#g>4EY^{O{;(c<;!a!iL9PVxRe-}e#)Diwa#u(@ zFj@u(>Go*_r}OfN#WBY9aD@@CAVXQHFjbN*$}XpIf$N~R=xkU^{CE-k$wDT%(kV?p zqA#Co-^;nP!rKVzE90mjMUZc}$=tWi zRY*N>&T#bpbDPF&bGwcJnN7g?S<(1h{u!XY_Dlw9JfI>Ui~gf+0{SU%@bw+m#4Fn; z&^A$e`f%|!SG)|s03t1@gcWcsdaGb-KF*2BqJrRRpN^v<55$qBt*WQD7vJaZ8tT~7 z)m0FA*hY3!FAP#OjQI>gu97;H-l0=Uf*3>|QRndZ*Os|BKV*(<@1*2<-$qdw?rL_u^u} zN7H6Cwn7c=;I^V?u@=@jFa$THUtG4mv%&Z{@Tr@kaXqI_);Ab!t-v3K)tHuF7!AY4 z1ps1l59G&6t`xl~sch0`6KI1V9iWcKD2h{`+1}k>nJV@gEKfthj+Yye#doCv?qPnr z59Q;hDeu(Ow9WXXWhjlt$Lpi7i{z`KB$DhD%F4~H%0QW=j_NUGMw;$88r2;;Mv79x z2dgUA|o7)?3Yw_VmEwJR~kwdA(JHjbp?7Ljl#o z0!w}B>WkhPF9qNjHFX6sMQo$lbS%D^R8qOw@N~8`d+gY#5$Ws`58F61I$lY%y;_fl ztHk@9#xJSuoo8M6&a%>N!mmLp2^3od&Wr^M*~Q)Nc?}@)0H;L{jJA%9gvK{oqt&0(l2mG6@U;O^LO*oevl&*4X@J4PGs(^ry-jp(=EdN5pkcS%Z zD*69Nf9Vg;eF#i@dTJ_S_Y-fv=XoHFv2k4K&gC?CA7s>ta0dSzzWcG?+@mlINY=iO zg+Hte0#23r)qCbv(?DaqaQbjfPuDLJm%Y&>rB-JlyaNin^F5biXAk2TN~3eY{(-05 z-Q|d8;cOF9w-9#nslL81ZHYI$Hq)CaPK6oDX3IuUTJ(oG%@KXfYj|5a0ms=)*jo-H zm2Guj+QhBLjjiNp9nmV_={B{fv4+@0lT$4ix3)%A_;%lOz?I)qb>h{8<*KlSD@O62 z6@l=`<%zdWVBmg&`;Ve=E$4{r#>XH!go$@3sd*p^szDZyrP*`sqWrA<{$jXSc`iv~ zm2Xs;(f+2<3*IczSWfwTJ$*``G12hT$!ihMpxyYa zLN8p0M;tQ+!ooR=F9qut!H+8;F~s#DbG`egHDsXh0=>=|+70@IInUyNdSc&9AoHm! z_Yo-M-UF!Sv`JLB^aMq<8k=tAC$1dAur5A?i%7PD95v)0TrK($0MJ^l4avUoO5-0e zs!;y0ORCDFe(AwYDRvl0?yCw&fycag0{;*`IH@P6tI0#k9o5O74TXUYaC!8hBRp4{ z+;2&2`Yfl7D-3>NG2Y0h$;^yWYUW?q&{fc`Iuo_i8#>N#1{|zO9}L_2Xmt+ROST%(dz!2wA;`0%&CIAa=zV4ZsN-LeOy8E$9A%&mHbAjv~iQ~ zz{)gxk>`JwG%JJ{I0%EaG7V`nogZ1KB4Jx(#j_lt~n-s~2fJuB@b;oVHHvO4(Xo%h(ooLHz;tu#qP? zI{8F?$JevQ@v3z8FgJ9;JEP}{Bl-rwjUJ#w?A&Uv8kbE(*ZT&cM*FObE1nN=+IemM z{L9qT)Vn8JqcmTR3s#?I_I1-9$kyaJ1$Uv=N_F*N|WF)yT^0Q60azqiWjGK;Ed5{~Mz8 zN4Px2ZpaIUOHu_V@CRvjScms1u>~=99acn-GmyyDOv(Dr;Nak3eq=>K@M!=}dPDcQ zP46Af1!ZIL5F=RS&jScu$NAFR`4_6Qc{+kZE1eGV;hNbmdu-%)HaQI%9jZ^<+vD)v zFR7@${;n=SpQ7N)1mz$3?I0=~KJT>|$MexO_;o0k_}Vx|NGCyBR-bFKlCYR~FlHkU z{wo%NNR>|2(jYiZwY@#PQ% zN)Y%?8}*EyYevt6%WRFdHnVnr6W5Y_79ve4l?w=kS@Ro!!!9J&kc3iXSxB*8$KiX7 zHl;w|%a9X*s8@kVPC)(KW9aqKGJ}_6rf$ZOF?fil&>^6-tTe=_@t5^xWUH-^iwgIy z8yNx8d36@;KdcD81yPkbLPOD0N>v4N3`+W_OHs!_XMnI^C~t~kh+QN*sFNqMvR3+T zS{Lt(M6hF)Jz8?4pJAMbDK*PGA||WxNq}s1XS`Xs(i8{-$T9S^cOhp8GmE-h7U#uZ zlm=?#2EGL?7bYK!1cODMG&miQ-<&Y_4)dLDu3^l9>{>u}a~shE@LazE*Ln$;#I;pq zcPlZO(esKZ#WUz7t}Q8oEB+AQ4R%=rISPzm8s1}YNY{b;wa9l!pMZF=&{*O7!W#b~ zKlzC$-7rMbJdbA-9Jcvi?p+;yO-yeNjyTCv18Bq<{Sw0k#&nwVCwk+KQ0{anOex8A z4o8AD@{O7@Wa~T<_=PXFa)OyY9BzYh?-V5KMdV#CM87{ktL>pZwpl8eX3p>vbfh6w zd#ut&=cOLES*6!U{rd!KbPqvQ#+(G2$|;*bJsc<~K!U+x5LfKEjLm={$z_TA)wiex z$!;aJHN;zpx&T`r@UP*TjR)}KigL#lCzq&bfYNpIVAE* zxr5WqXQUNUSk|Y=Zn>;_@sr$B3Dr=I@81B&$|VXi<^RDeO{iD3tAP4HjX+{qTYC5W zlF9Rugz{4VK)95=0^O^%LJfhYQ)R&inH%7Xs1$vQfpiqoXD)5BB;JStfwQIl@Z>G^ z$O%SDtpj^~|a4@s7whO-NI6p?*Psv(fI`9Wq^Y z%@u<|hb}(4#7C-)>bWYqL?n-q>Kf8U{#ktFhU*gE=6f$t*q#>TH_ccZDx`6~@dvHI z&i#)L$q#}rW^vjxsdMc-&|^-Gep(WlP)FuH>dt9_m^?XDDi({i`qWCQF{3*wT5{L% zI{b))MAM_akXx!D4;|#nAkVO*5}FHZ6{=B4_k!|Q2C3DNV$bl)&`(`tvqR2GgbjEo z&el%6x2aD41Vk4#-$pl_Yp*pnLR^T^KjH#;rIHJI9_3J*pi;x2A{Wi4E0ngPx7ysK zzFM70pB^8tA^#H{YLcFV1Ytn`jkAm>3PQ&-ma_Of5M`}+lPQ5pgGhzKPwui6dF}<_ zu{Fbvag7E~rbu`W@ma~^3J6V>5a8*|-gKH0U>#c%f4_E?lAgF$l7Z$3&UKz$QR~}Q(6Azz6vROBHWkr zGKMO}5zis@kZ_{A^FFonj0n89BA{K@&F6~Q>ShJvz<4J>;@i%*p=T*|=dg}5FdLxN z>N1*I&FBoz*Tj-jE zHT#)QqZDP+F0MqpYB2D_!D4HAOL7m#%-@7IQs!1ox%_AsLQ}p9E7>t?4wR=S&tT09 zZEYd#lF+(+;ePmB&J1-Vc*SVT$&(T*>FuKry$g*`SwjtTy-;P%=SsDJ zmN$+=DCJO%pfBODQR!#?yW+J5Dhc8Et~k+t8q@Mlt{o*Ihj(zb$vsfrQkuc_9rdJC z!4WNrK|*pvOQ4M}MP^ru<@m~_R!ukb3r;Bste8-)*{2<%aU9CB8{qVUv`b7~H`o%_ z=579)-)l8ehW0BIS0to^N*ur$_n0Ud9AJImE99}ayfiJi?+~uw; zWf*%XQb$q{1ULX9x;d$lcM7fFU)xz2)Iu&76VLY{R2-xe8d|YmVu#j`T%o*AXVH93 zn!U7X?rWDeVN-@$*R2U5szPEW!aWskx?orb@`Mw=k z3wo;3Y|pj;JbthvyUNJm*MQ^jR|}}?jDfzvIP%fg^FLSOV7N;+>f-W&zeh4W0Qy#?q2Nmr3(5V9p+kIk)!D74+`50eUGs`R3IsH+Pz zvj&FTCZ6UMmR-Fro5vhrPR(r-RE!zpmaMHgwgXlB;d0 zoqDclY)6-ZTG2n3e7c-xf;Z_?r&zQ>eutptd*6x0O13f`!#XIF$m!pDV+i?> z$Eq}BA_&^qYsf5UayiqI5%tQ5(*bEbO<1FdyfoZ`CINA+F|Mg3XaFd7Gy~d(%~XHF zd0y4uf1Oh?Ok-o4G5O=6tPLG+hj6tF%`f~tL;I!6v!)q|75r~LoOiL}qT>X9-gnSC zdg=0r*s?%zg-eIdIv`{X)LH?GlmhZ|z8r1An~kW3%&a>9%T4f03wcLrQ~_JP6LdMQ z0o?(ipcbQHH}O}c{9&nAFkRendNF9z+DObDHVRh6jDwT{WsKBAHW#vR4W?6JXl7;dlTUMNlXc*r>^88woTcy%xXj&3RmD}KUqHTL`F;2?erIId z|CHY0eqKUO`36W6teE;I2(iDG*4d;7qbMJ}Rs}i?O;}mQQ^C}7^swlws4&%@%?mbC zwuQ#VQamrc^+YW1iZy)H&~4~2i3 zOmf;}4isiRUjDhrCACFD7Ix@^x(%trMFk})xZbC~OPknDMRxN%X)Js1p zPU8f_wM%aCsV}jba7254t_KNgdAQPL5JckIyYcFPP z=%n-ZUYeoIq8hk>8a*h+cL|BKvmgn*=Lt04CT#)LT1=mscEs(_8#Rpc*~xFghu+>e zBUdW5Bt}nwiQ`=$Z$D6zzUK_jmnHjaQ}1w9*Y*zzwN3yNLkIN&;q|a84Gd!Jaa*pq|gHXoy>+l8DCom!$F*NY82Ax zS>PV;fK%DXNeHdqh`u`j-9q`n{agV)RZB{hOYxOSYctu3SNO)niSP7)Y(c=x8(T>^ zl+#~uTX7oz;dg_brQj9E1~ZT-gtT=e!Z|Md{$4S)9@?0E z@rBRt%{%fVFZ69W=EAj8rSqQ`My}B7JN7#kcxUn>4x^YTU&~K6aLcB?y45d*6wH^t z?fJ|R{W3J>g#u?4pp+Qhm5(~a_&?%yn8I=ORRv^+m!qlG+YRk|RJPd%xBFF2&eXBT zG4AVyxii{z8Muk0tFTrVV!wigt z@yo$%#xy%K19LQBFbbs8MeZH6$Ti>$XHME7zg|=DxAD==dUD_7ue=mx4rTynU^FEd zIgUZSv;pG`3e<@L1hB)ReG@#x*GMyn~FRpw!V$LJ{{e;#Ce9& zPSB*wfKaZXyf8*$_GC$L3&|IjCwoNlauK583a!R=e+`m)%YBcpP%=Ta{5pOMR=tqE zwpQSB(IGIwU*LhEX>&i+X(ym*!>&A>1&Y@iv<|!(1i+m*4**`^+i)gb4p)Sh7C`<% zP|2&48qS35iqn6Su(K(r&GdA{B0XJ__`TN+1A%-FvzMl0vM!D2T;LPg(vR|}m-^!< znosMpvgkb(ft$9@d^A!tbyY@~Hy$w3Fx3iSoIUMu%4F^|H03oHuFcm+pKucac-9l&^W}x|x(D5GUBJ%mTrle+6*Vs7v<+RHhdTDDQ9M16O4-WPd zr*-roY6Q{dHGsM-;}Kn-4|MQT)d9709B`OdQ!jZ-_q{nX(us>xEJ|+%tmNw#jeUI; z@mEFp3F_p@caP(NxIc9JR9W&+{+4W~vt~34?q&#=f|r#_h52Z8g?y!owB(C_x*Rji zKPHf$VD_-;BHt?ivWgUo(dV$*SW-h6J{NhoVsUXpCub6ews+#)@-M(M@8OH-b?aOW zWPLqhtI{XI%4?E#9%x&=yPkgx-_M(pheY?*0Yl90`y86d;~eYB0PU9kq>O-pAq$uG zg~!F#nd2vT-Pp**Sz!VeR+0Nnr;=L@_7P|$>U!-Y%+v?UFwJ&!Aj&#GvaWT37BQQ@@sO8&4Ij-tZ( zD=^uN)=Nt7cMU{8WE}={n@yqanMLW{80YZpwaZvcv_5&bXfG!r%fw_~g>j?cp0kiK zo((cE#v=GSMB|#3gt5oZ^VGgQTV0n0D7Lij+>r67xWTtth_A>)_RzC2g$Jvrw0@@D zC_XaXZae&tBaBs~t(N>C8YVfD&@mmaPiSU*ZM@d=7=$k_j1O04)Z1Jm(EIuQS@~e` zdPCZ5-x`=I;YlZA7{SjFY(_ z1yy9gwh`ZHr5c~CG}zRYaW$u9b^%^T!yp^+qOrQ4FQgt#*#b+ay|%@V7^*_<5YC^? z%F5!H_O#6*9|Di5@e?NJf8iZ4a~=+Zy+FI#-hZ1*?vm1R3y5KI7c~<*eq3R)Acn2L z#Tj%B4M@3!$4V_;7FL0dvD?08|^srhJWKb1cutCm&B33`F+aP4lr&8b}FU}R(yGt%S z;8nbq)3on~b$ka(kz;C}oytfqK3mk=2S-a%dQcvixy?g+fG^N6%4QeHLzFWMy4ZG+!c?(2Cfg)#4a~AXrS4gc~ zyW(H{ERevyFSs|+9SlR$@T_ce`X2BlFYuyb^1kT%4h6ZOhZCkg#%fp>rK1lY-j}L@ z-E09a>ET+?oBT%f1VBXG-rXQ?0}oqHJ!r9*({!F{nUK2Kh4UtOCZzQNW0JlOWZ?^F zP4oI-nkaqj#teIWtzex^ZJkB^ZK+4N(hpF!Y4|}JqT`uF_^L=gvKkLepaq-sfRK28 zUEpKSs0bQE>iympn9ekh(TwRsO5HJ?kA4iTN&4Ju_&R7`Ffy4@qm=C_|XiAPc_-@h7ja?l{?8o?)gkCn9Bp>_m8b#|aO zF$i#UzM^Fr!{;DWFI7QuDyuR6FT6Q*@oY62SUp;Hgah^R4rxWR(ExeX90pTbo0V2zKmJCF-4@{Iku4ORQ6gk7jMoiR>sKaJW3zBEYLb4NOO=YxUF3}y zZ%n%e1GnvmM%2w_6FP2azkb{t+zKR!u}qu?DI8tT^UV3qi&CwWa~Lfwv>9Du%SgXP zzG_5Dvqg0Oky9VNeuVGi@*{Kzyjg@kuhxhvCSPG3qfu69`^poU=d!6EqCC~*DDqp! zV15obmpB_kCiDnJ!&D3&%Rmo!&*X|D-0vn4Qvy#)#P~Yzldd!M?tM@3O?4dq#cMC+80Y!wb~6^14X&#VBcBMm}1UjT)6 zsqs!F4^@)Q&|0|;OIM2ZliSX<(?D9ULseJTkiHwnm2-_BD((a=lryX1Z(zH5{W@38 z;uB*!s3iUl{=WyprJUC%uLx~!P;C^Q!aBN*VeIZJg^}%C9=Z$zJY05g1V+tZ=nyYPXKJdd^;3_BFGe~H#X@zP zYC8N&aw;G}`90R`w;z?!eHIn`#v7WbdPEG#Il z)c&SnC2u{1J5mQ6K<{4XH{-`3Row^;lZ|vAXxo{ftANA zQePd(1BwAn$vkw0%R*N<1G-}P;NGqZ|9xx4)K4Ixp4c0aE%w5&p8;O+)+qh>#u%X2p$VZ|~d#cjNPG`$?^&D?|@N0iB*( zMpFt^gb9}z&W12Zqzw(eH>->^)zj1KRr-9hJ?jkuwJF*O`wwgg8vu$p`p8?;4#-Z@ z28T}@-8K;RnUiT_dsd9sA?TR?&QI(4f+>0cbS5CQpo*^+eNyw{8K~N;(eq%8UyCw^ z+x6F^o7Q)LTG_smv?!hgddIibYMayiH!cYImtYjy zh<>QWb?jK^AD`w^2S1bA2if_HHs3cPEE90}gJ2Yn0>u$2XED9~S`7YRHUFS%5F65L z7hWm-96*`a$r}dhNUd}6%=~;#n7X%Pt1w7O+w+1S`;ozB`g2SvA?&2B*ptrtpkk2I zcz%o3iw*k(s8x#X@?N`iMV#=qxr{JD_H~Y(XKRcarC5?&)I2oL#o5Qbwh6xz+JnQ~ zH-fA4EU>MMcKWV6-N_II1I*hpw!{M?uC%bk=iYtX*CLYptnOXVlO5BIa5O5E0A1>u zr5m9QgHSHq2D166RbGM%JxEZfg~6h{p}vKK`$9kDSD=XWKv6sME{wrtK>cDJhx1)M zN@o&O;R?Pq@?FSiFnCZ3+k9{g)+#TZVPH_f>jpf~LZpYGmRl9PmFCMnI8EV|isBAm z$Dl9rIl|SL312PRa^uN8ZShTF;_nPcFI~CRZZ#d+Z;m_*RceUdBs0JVLkE$=tUtr~ z!V~lvgZT6rC=XxYwA77lToDY-v=W2C4l{p&@`#r!6?YBmoaAIQY+HO3Wn_a7iKD-Z zF{TS7W;!YlLj3QTU{#^~@jCfI;NF>`a0JS0U>M8WKb<)YC9y61n9DoFQD{qOWl&zV zxSCtAv+z$_T)cBjmbhT#tHQ+5UN z>ys)>hf*%C06h#F1(j|@HPYMyrVkG$A>_$`=7~K@8yUx zGFkyWQ~KgH1K@H|3fvSD@>~%`Rk>e)!X*kS*9^rM9KAk1?!>pr-}l*Rbo}`B{#GBU z3#36;FW5562&1ZTLtP+aaV$^%Ddo~Avk(=D*E9iDFsS%G@Uir(3kwQKs_?y<@3Atm z*nDu>RhZnBceIR)IqL{Br;Hw1;w~r)VTvUBEpVX!u%~Y;9dtIv;LbB#np-L zI(YMi?>g`bxfvMRE1*pMYR&om-HgDk#RuUx6;OBUIW4_27USEYVbq2`3E!sIt8KGK zQ3~1qHC}3&+y}EdHs4L~9?`d-E5-Ml#;%?)T{w2x78<$?O&||IL5be*A>};6SyHdY zQucd=_$q3!7bHf_+pijU?Y>uGdsg5*lz|~zt&nbH^iY&0%222;8tl>)#5XC2359eq)C(h4QB+xeA=y^1e z_oNVgBBU8P9PaAj+~`dw8B?+iq@dMplV7-0&gIEZ_}cm1iW)IFI&K&*0uL%C?YF>@ z6obD;LwTxXtNb;<7L(!>7Wtz@S!!bWx}29y=uz;vUxQ&=6~5C-z6|~Lw69kBRj78m z)XZnWDrnIazK(jfn>SI|Rk zFpSsDLGsQ^Jw}Q0x9p}DGo{pPjNz!75e!^bQWg3)AE!#D15~1}|f{OC+c&d5HkFIlB5lD6L1YK%} zJ4+0OoG#-ISfUARvys1@f5O}E;f&}%p$PgOX40FWM6prNo{|0{z$hM=fx0zb*OH_G z96ptHK@z24FN5-A`yDVPY&_Q9V0?&gryt!X@Rj)88gjSvEF9#m17+N_^es4D8+r{> zZm!<=)Lgi?cO|)}kOo9uAs0H_MCr#ni9;k$m8bNZhGJpp);DA<(g;D+FxS_|jhr zr&2&ne+zh*Bc!O+)Pp}pK5 zNRFE@D-#k1W%3Kr_yg$|N;c$|O)wot&{8u9Wo8m zkT76|qcyHp#+=6h0NENjM@epc76pxHzyqF{(s9iE7rr9ih}>!QSyzdti(ihvp$MIp zJWqWP!5rrQlN#<%%&>21Co+6ojn-i)dHPq z0-qwa_SE{pMBA|hg1s=~n3l{iiLCB4p=ITg7T%K32O1%)tEvuIm;uA&Y-Lf>=k(F? z`;~DzW%S~#luhlsQ>x`kA{lpFEruGiVFyc`3hDduP$ADI5x=^l*mY^etu7|JdNzBS zx1u{pzLH6loPl9V%~40T!$W*az-+ECu z?MU3=fVI^sxU@V-Q6n)Bp?$D*AjSS3yb$KTm3H_2;P30#Hy1*8woj%DlA}#9u3HL! zwUAeN&?f=J*LOhu^<)G21|T$c#7%e?_=$}^biLo~K`Kq>nC`tpLk{`c&;nu&xG$b# zJ>2Q>6rrc%d3k?*xui-qDlRECz>|Xl&LnSuI%X8U8suPdK%BeX+hd?#_a0Bc-1`XYfYAqE1d&>V~@+P|6E6^gP~!?%OB%;6#?> zd!p|@_}mN5eSu$qY$wd>_i}|I^nq8W-tBeB9W~Hs)01(iVL^`hxW9smY;C$^k-s7c zauKvFbD_Zrvl=q;XPpsKUxuNOWY-V=N%ZeLQ53uZA%S-(@@N4y=XBgE{z74|avv6Q zzmud(J~Txd*G(>X>2>_dja%ymDor@SJ!cOIzE6EP1X{RL}%(^Mj zovvNqfo<`Pc$2vldPH}_K80qb;w=F-cN;J+*r*|y!AHgDpKHjbW|;BvKQV7Y4};z* zasx0gehwx*5Gf4aF#y+xW}XOr34BFD=Jp$YZaG~KL+$bFAd-EC^Nm+Sg=&+BE^6Od z>mn=6!DsW9tWE!ApSaS?KZH*f%y*X}l`%-?54&Q%H;aOqFoHKk;MG1DYP?a3V3%0( z1_Y^(fw9LIL>XL#VVI&|D(~pmIuUH#%pd;mp-BxRGy;M8I({E8_R(Cv@PnMahBFza zWX^e!$Iw-yFY?>FBb@Q#{v+I!C^vIVB!pqW104K)$N)cVg?L&;O298Z!KKlALF>Vg zOKvy9=<|nCSA+3R$l`DEkD>1>q#U3{|PhCn2{eXSt2w03#iAO1yd^Ov(GYD8%E2$w6*M8N$;5NA0XFHA(-%F zvT{MUYn5`K!ZwN@M7&B?;vYx9#!YQBjJmEc-VRUI-=Ks!=SUU-=Q#v=HOox9_UwU@ z_Wd}!0+?J4+5iJux86b%GbdYH;+sH-ZpUu`LMVHgME5trZ43r5wi=&MN^58kiso<4 z&qGF=!TW(vK&Xu&>U{bC_hzHb;M?}@OPl6B=>NXi2;OV7R-iop_q|3+6*2AD!g)L> zqlPzDBs9~x+7mR4i05kIoknSR(NHdv3%l{+R25OgD|oFDF1z(UBi;aK-7t8meZ+%S z&!RDSO$#(FrkiqH@Y0N?A$Tp)@c__(f4zz*1Y@|+GHAo1Oa)ro=L2<@+H-eBd{h?f zqc{)jLo5OXAVWONL>ZIB?Fu}M$@nf#yi;GUlZ3#`=yOiv(#E2 zg%Lt^NCi6vw0^H3@sf&EkD{}#cpa_oJfe&F@Tk!{2vf};(t;hcZ^ zR*!bT$N`~3d*K~NqpBV>XY>Y^)o$p>$=29T9XqyRaN0Ez%I;8G+Y*jQ0Gf*`r&D4^ zHB@SudPAp5MWO7ICns`7awcGZ`lyPUS(a<-SjNVV=ls`b5XBNhs1hJ`KB7@=;rvap z3TW51QH!w2Gk%-IfbifM$qC`?c%hRN0bkvH_)IILr~aJW^N0o4j-Rb z=7pjH@{otGOlPC{xgnHUL9|l&N}pExF6>ylJR%kPvk{zO?_toD5^Z`wDD7Ncx>pJ- zB%N}$Fnc^G^r&I>BZn$1Rr`K1lzY~7#HW#5bFk$>f(>6!dEU!T89I=g6;QO2;tNr9fMAWXn!yO8K|U9qLj* zcGNTmTOKzIkhT>0K}arB=FWw=x2C{I#-#P7q;nw*lWE9oN&nwEj?zx~_^$i4yOPe? zkG0o(t-UtX<@}?6JCLn9TXpoyA^HBJU*y2O0cnk9!GE9Bjs-;L8(9v2-L~#dbNevW zf*-3i+>BQ%tou2kenx$g*Q&()zvy%O{c?NX11eQzDhE--b^Dp!hSC%YT6qe_gMx5A zJRC3&SaM?8@jXb!T>n7-$TBCIgd{?Ac~WstVVGYkJ1cYR4?w@@pMy%Rmb7Z0&^n>( zdB>to<*2uBdvLC2n?bWDn19jGqT_E^$4{;liZ)mOk3=z4Qnalh{PpnXj#jE`_o@*& z3UXIskIVWP7n|I-u50hr>SmD*#V^?#q^!Esjj^Y@ck0Cb)0<$H-T+563yRIJkRKx16QzM6@kgibSu{eZ^|jb26?vSgkXt zz0h|`qpJ1fg?|Q)w~QiFN3&9K&emkh#qPf<_&E9L#$ReqHVhq%*Fb>fID;RUo#|`u zu$$}I&NPQwI6>~5rNE<8U2;8N70f#}^V2T>@;4B2Doo|zeAYV%zs0kcKRRhl?n;NN zVw@Xl<2k>3DSHv6ySUyXaNFUe*&SXV7ryEnteVyuDqSRLywVLE9sa1Q5}W4jS!f!14)%*hU9r~2!TSG}44 zd%454R5CJfRn=(QV-lJU4okHaj0-My3q||I1h<%|J>p8`%r-xbS99(o4HH*?-xkuhc zE6EYVCCjJIy7*w-Rl{_9;IG`SaI4i*EAK6pRHv;ccvYf=OSI=&cEobPO2WA~Cj;ph z5&|FM;u<^aki4!qssxI&@~ME=y)T~aU>~Vq2jQ06L%hWqFrLl-XW-K_M{DL&uJ&H3 z(waQjk^g`yf>ZxvPL$nq+08ya>AoT)?})~VfxJ3@O06DKsWhkUx}G^_xWyW4miJZ! zir$n2Sra?N$J_W+-Tb_KFOv0oZ^S<0NF5gY1$IOzMj;O&{$Ur=em-jE!q#kV_`QG-9{2JJMet)~bT2k;7#IjE7^vD`10Yh{~IeU}aUy?Kr z^?$slCn8n!k8paywN%?sZSJ$Kw4$Cspm`#o)zq2$#=_~em01EqqTJYD&^^b=_sB;1 zcEoJeT(zgv&U(t&?J@6x6_+R`Pd|$Sb`}e3viG%3ne4?4!@lsKZ$G%9)_qj7;EwIr ziQ=_+N5`bDw>PwWyVz@EN1$J(9ynu^OICQle?I(c#-p|rUfgT*9PYc1yO!wSrXNzP zxUS^_(Z75f*W-*g!0>bjwf+|4A?d|{dQMn6*dwd0DG%IxV|Thu2`|bQ$~h^dW-O!9 zQ1Ib-mRD)EX|;`-J;-zzMolNtk{dq|_J%EX)*37B%Xh)oE^V7Obj7#Xm~ixUu_Dz( zi5+HNT&vRF*E$jWixK%1sn{0ogCe>-#I4C$a)G-a2Q^f#fOe2i)?bzH@AG=$EdwoK@~Wnycq$EPNivc^SfXP4JEO9pwLA!=)}( zm8I$(ofboU*a5D#zFo6NK4nd`ulTr9!-)pdJwd$U?S>=RB%nx79`lj{QaP%oSMtGm8+*{2>Ia`A99KM3PnxOC$;=i+jU{-p#lU!>uJi?Y4@;@?1Ep-qYmyaSkKi9c2;j= z!9e^im#5j89y{B>3F~)>^YFF!ei+Qw=l{20me0{Qy0L0we)%vC;YwO-lUG>j;JLL} zqe={M90Gy`tgtHiIVkILkt&TsDb>(K)PZ7Ucu#;ie=emd_={_psW(h5oC9&@M{@^j@H z{*RxSuP|?)-WiG&I#Qn<9=6M}U2f*5?^h!v`ZV*|!;Px$?)F|syfJ9Z6;d@LBW0;a zeLneH_U40UtK^b!I^2$^7@M>vpE}}ucI-9*HU3UUqk^;&aB}%ANLwqg$9<|3{P?(# zXhUE(Ia+t3Nf*{t)Sd#vg8-Me1q$`{^v4GV`s?B+0w33DE9pRz#uYEN&g_p2 zEW-;1(cqr3`~CK!5a+wg!FYSJCKPjJiC0j52rPts(t)fo`7fi!)ocS zzP;zq%R1zb!}C+fW-OZ14LB)pV|Kge1pnB_wR)R$FT4@sW<*UZ*)D`wJ?x}&DQlKz zciO{G%LDe*r~Up0HY9t!am)BpuF4=Jf}!x2_~gOS3Xclu77Isz$T3ddcl1SW`5<>h zNd5)aD5)zXU0}CZn|3)mk6V)u`JC(Z#vtO;xKVXkp3SEI>K!!%ev&H3!>_fkN{HGHQYWK|G@P2H6i#AnD`6U_(y9!YPc>a4?o#B;taMN3wno> z-ZmkA5Nb_4t-fK~)845oElGWR^Dchx03|GHSdKgX*Vb^E&HQlrc=M%(!C>Va+a~uN zE%Xb4vC(XmwlRP?r8?8Tgj#gQvh3_m*}(5{L=#yYQfN2iayJ{VFbC_y23zvMDJydZ zTqcVuAUtnP9?Fwn4UCVZ@{jRhUEtZX!K^Dz^EN(lRO5^n%72jIB$Cw?f$fvdbfF7a zi^8JgSr?40MnrJD<}!JQBXz3A0wyeQ?sm5G%9!%lN!EF1nz-h4^of-4beJowy*E&QFprKz#XH!Sv8b&RVHp3N1O zKBKqAtDuPG1V6wD$OF@U)qBs9T z2@9%FSBq5zRA&RZoGra_yunnp9z5G%FTV2)i}oi>F!Ri7XN~1cD&*n4#I~`|$e&m# z)a+3SO&9V6&jAz-u4RXv>`~|VXb*UsF>S56@ z*K5ugwby26$9}SLEnlpcrj|<(;Z2>oufxtlwQTJ4TPt2<8+)Wj)}O5EN~=+_Vww}= zBT^Z^@grN&%PVjV*IVN*mHWo%sNAUHDr;(L*?jO*oOEj1t6nPTVa6(!=VUL%yz1>B_66IR?Dspu^4Q~%sFl6Smz1Hvl!N^YXeGLuvvdQzd1b7# zrqV9g$axGlXbYc?AqlURz2smm4%TXmTl!Wejj?JgDsdozOWdFMCoaEW%rGzzE0Zf( zvvVfmBXVIw^BBjc`_J8gU1ag%cy4w#-(fzSk> zTArIPOLm?Q>-eA7z$dtpCrPZ-vtni66WH^@`UK)#*-NkVKz9Ova+;@u`J!~%&RX`F zwbR=MWE^e@*^3W{M0b3%XW#lRv8ybppN)5ql@IB3hOzodBclV}>qtXvU-GGZ&$`F6 z1+CuIG=8y^?IZ8P^Chv-<=VNfB`&&N*DE^M+d}e*DW}}-2|nhqH=XJ&hgukGcf=oY zvPW!57YCHHP3JAdIY*+Am8ZXl0w~jYCad%;|3|l5h<%Pv{P&CF+UVuoVO3umnG*+X z$qHm-ukU-qBAw=06ED|VF%=xT6jGf7!_BE(7ppwxZ!(TO6?{DD;~HacmnB;-S(9HF z-)G($#GYMxms03ZK(==bvF3psC@g;|9GyJ z4a2Wqi1WY&6sP)eGeb%_3?9mS;1f^JCmvpa^Z2Kz@=(FPgYuWw*mwAbfg15(C!hRA zv^t?WQpNUJ4$A-OW}N{Jc>@2Zf}Nxu*rCAj7Q6S`ms-YsFYjk>gMB84dhy?B`=~26 z9^_DR;`fWvu0ZcyWBH_jvsP>T<=S|AIqRrN7Tr-AhsBJe4;S~x)?M(smdI_EyyD&S zqO0f=ExL@$vH6ig}e-$$ZJFZM;X>76O;APR4_|Zf#og4hp^Ol`vjXmyh$W0Zj z!#aIO$d-J^CP=GGT$?Rbj+{WuGoY_>B%9R2-ij9thQ8g7PDgSKDrZMp%BhI2)MDfw z_AR8z=E$tFX~i#}vd5FtFNyZ)1MvN7cUZE*i+pl_w&86Y)?czNw{-gjwjwkwand7h z>0_)USR=%7>PKTOt{RQ*T-7*YKj8mZ8Cw3B+immsZ1FUYW3Or-w1J>DlC10HnV%1Q z{t5!{mGQiQ0cRz`C8u-Fx<+QEF9N)Wp^hK0Y)|ZMv$1y^@$b4N=2#z#F4)({40+X_ zgS`3IzWc|%9gVt+p15fE{k%Q(6+g3&2ek!UY4P9rR<{L)j5{r=@x0I#(IxHYQ>$~F zja|2zC&zB1^WB^#Xqa;BW$v}L3ih@AOXJt%FT$)tf%jrHYz6Q5Z6{r6-{EHY*w`Ln zHfB|Yo;ZJg`lXfS@4;U>ZrrI+>9yKY`9Yq2PCJB}o$xT>=!7T75gv!X&S4v?=sB`4 z`C*v8{}Dx5!|$H{3{JF-n{#s)!X-!!GZ?BpJFD4o`+6$scf@6D>@c5LHMl)y{%8Ba z*sIt3ySieh_@}=rT~`gEx}KxhH#)HV>y@-a_8gc#wHWSJioGGV)|TY7Guv`=?S0>a zdd*pje|Y|U{$JO!C#zGpYqgH>vYkDp8W>ocs%0Tdo_xENT}1zERN`z)|6fGKEu!3w zU9RVw6QPihYS_}BjyXJy;n$Cz>!}EH39neq`i$CN-98w2criBMV*h}ODAnvX2fMRR z(D{9jqXx3UPyn*}xJ6S`nk&Sw1WZyjQ`_TBW0B!BG9T=zS95dAifcn74tB>bE*}}7 z)$yD_NiH%vv`2uSzkwCtW=^Z;b7LQvZ7E|R8xwi%gIaB?W)BXIT)Qo_m*@UhZE~A1 z^EvT^bjDg#>bJ&^9epPPd&<+i2R5V^TGwZD&vrRdb-2#J zAuT^_FkpVQ>{n;3upI5tsdr}FL-o^f&c^!;(eJyM( zHLIju)~5cbkceHY@x1D0>bj+;T(N+acRl3O5_paLDaoc{1mWjnxL9361$12JI{*uvLg{b|Uss=0)=M?%7n<@dnsX zl_!O`Y{`MO8+d5#bnTlB*KFRJHyiq=Ic@$*mE3{Tgn+rzg z%dYihwXDMRy!1Omr8%e1YnpPh-v*x(g{ARi1N$xW?vJ0@{)2j<<8r==-;k~5ugW9! zaWx;Cmv-&q8d1iOPd*T_$G@vu#5p4e`$A*5RIU$>cbQi2bdv@ea}^&r-f(~w^2vsj zJ#~&to7yT1aH_h1y-*U)3l#S7T$wddG0SuIa84CVRu{Xw=7ivjNXq9r`Ja1yV65)t zQgOlbt5(z|Ke*_(vkNh48Fiy}`7}uFszNGxz{^*&L$>(ueNJofH{5GM?Vt_X@DBG_ zL^FR{uTyKP%^$I|1}nr|6h~b={N9If*2+EhisZMO$E~T)BJ8o#o!?(Ao#B7+QO;&F z!%lC9ud=_=2!5Gr5(I$H=d(*E%1$p0>bh;_ZdlWn)`re*ewW!Ib+5=*^1E!+8@ zC*Y?UbIZH!?7RKLZ%{PCQt9z8-8FAg>HTg`mi$ALswtG%!zEx2d->w~+x8sQsS+Q)n&7#;O|V=B;_Yl zziu&39|I4$!&`5bAeirSv#(am-x{mmyeljJs0vZ5SOZyrmZMyhafw1rwdY@t=1e&~ zO*^?_k zn=K12<_&gS7s7vVB(Kg&#n#04(n8UP==$LvHBX%)NM zS*+H$Pz^!DXQ_9oPKweOgT5=2iC-1xg8DwAdH{a5hc~2ttLI+1-I=-rwGVMB>M(S! z_TUq0L8?P(nepHQQ}R=VI6nys7`_fyvZGJ?Y z>9;q9OboH&ofYg02*xI}v~KpWv^QJ`{7A2wxF%y3Sj!!_v%y%TdJG3GH(E-Q?MWeg zuy1#J?}21PTMfHmXCF3ZztJjck%Sqkl~Fr-^`V&8zPw+nwXVm6bIZ8{<9DiCo#vI` zwzKj+oBS!w@hY`irNaFva*jQ2iQ7$T4bs3=p)sRFRW-0n^>DU{YjLu_-^pp2-j+Ok zV~6UoiMTD0y)upcHN$guB5am4V^Oi&8PD5c^tp70-R@xSL&RjID&!XDGa2gNe>C7dI6#2cWTePDUVDm*|+rP7%}%C8ih)KmpIr8KBVSn+s|%M2<|c=<8r$-7TF>l`l~_~3 zDbr4MgBuPSi84{rOFrH5L6O5js0rLK!U+!lKkx0t9}jo;TD z{V{^-%eLTyDwuqQ+_;>xQ`IPT#IwzlM8@n1hE5sWR3Tn+C=WiTPYvKI# zm#6x!ZH~VoiUYOmA;b{X2`?q^$@d&pUD0YsOwf}nW&CEjxKfrblufSO_#LS-K5gH;_C2ToZlPR#Xa6^?r^Rj zhGT=7_U--Gll=AVS>5iX=1LSOdNc%*KU7)tN=upf6>D%`q`zcHmu+JQD?KLzk-4_W zrG|?K*(*W4*TqyNeVT?zsEnbZx}*gn{i#*aqB0A?dBODkvCy(!=SFm7TAr{npW4Q^ zcW}0%2ipYJAaN2-O-+Pxn)+uu22ZA%Jl_HrM1}R(7t{i(iHzUIJr&!|bi7&M<0R9@gUt!t^Noe%Ine&e`PQjHZOgNyy#E_+A^UAEi-X-FEM$b$LEaYWdwsj~QTY?jW$(afe$sM#D#tWs_jK}q zyf!uMe%q33UWS}K1ZF&b#k#%%S3s(T&IzbKcwcb$6DAx+$WI%!Lqk`tSmUqCj@!7u zGiGggjcQfXDvnOSWzzi93Wt0w$VD5}O#b?!)$>I@ey}?6pMy38hEUf)%Po~9bJk3k zA6l7mNE;H-HZ1B=B zifo*QPB5PE>V;(Uh>)BYt78SWrRpl2C_OLV-KQ}j^JdD#RmU`ZQHAIZe?PD-w`|74 zAw-7A0sEzseZtOuXvcj{C~FXzNN}qTb3@D{!$V(%yoi6>!L7)T^SD3;-JayHTZGs@mB2B$^UMd4q`aN`Lc4YB*i&id5-aYq)Q%|5Z>3Qg5^*=UY`8s6f1_}eKyWbSBlBv_NDe;3gMPrD$|t`a|;fM zCA_`HL!qm+>`S2hPlGpH$1NDUI2Bb#YhXXALCo$Eqm}a-+kB_NoNiQ5_}2KLjdzgc z7s5YC3RJEy#N~*N&WlwXm-275D^r>8|6IHE+#@}7!66l+qzev_p&vye9`D1SqjSh8 zii^l#n$V4mgeV!#XfnOt?dTlD0gJS#T#=|eKV+o$={XvI$at|z6#ZRD)l>STaYV6q zB-8(Woo)Qe%G-B4ItGoANSVfx zX;klD58ii01~xGMkP-QVT{l~m()L`%dqYOOAP5($s2>qIe;2DltE-~6^Q|s3MZ-?w{;0!P6fJh3I+UAKEiUB*^1(G1?y?O8qg$l9~A`@VVL( zL90Xl3;I3Ad&`?v=r%)a>wE^zleC}c;CKV-8)AL5FJb%Lj5?&Fb$n-<=p<|&69DpF1 z?+Lyt*VHZe4g&v#S?cF_mFmRm2H=eK&&*`TrE$c*k&z5N90MKzjZB&T-rv%`JRKvr zI699U>FLSz^Zu6h4d}ZC-_Xbi&7XrlO)b&qpbmFH;g9Bv>rh9w_LuPGjB)2qC-8~B zFHq=fWF(?|rqZ$WJ>h9K+9wUyur9){(GkM0g@reU+ELQc?I!x(qC29$oAhn0sVPOm z718s2?tOSZ8oiG3hm0d5=Y*|(q9KAOBGk9w{QmWytr|3%&2dRtUr#^A2mCO;1Eu_a z@PpqZseisoCxj5kkNpvo9O!y{Jno1Ep8Dp5I(kS;V0n- zH>s|n=et2qBq#{Kw2c$Skh%V*{K5=XP z3Vm^$Fr?FVU^y6{@Rkz^FYy`hrv&nm^E5t&Z@$@bnO1@C=tzXxnl%x0gZDM6CE{mC zjvR@AKk0;PBIa?7kIv7BGV`T=L7xho2@b>$!B;pN@D}JjMRLGkFwnaBbUL*`a23zj zlq#)Xx_)!~>zV#;e)bBD>OFK>E5S3GXIMlb8Jaiez~^BAfaW>%^wZ7^J<$3EEOf}I z?NFnl0?ixVedRgqZ!dk;;(>P1Io)I&2-RC_dd_fbwj>lzV4~Dn|%0pG!LLF*AD*Nv~*L>gAWjWY8Adj@j-{ z34SLbCs%zLxtWn)gvYdgdM+1#nQ=2MjZ5p_;x8e1MTa1NqtVR#Gw>t+IyL1&bmm?8 zF5HCwz`zzBt5oVgOaC+u`1_y8al#MCCzctX^a-Nx%=ilYOlu0fIqt*+eeMDO&|*D$ zAV3@Hnv1AWMR}hx~_L1N_w@p*0uuCV)Tafmb9S@bxI+A9DX| zs9$_7(R%T{!e9GGdKI|_@cHR`l`7YC^SN95o0(?@&lUXcy@CCp{(#>%+jh)r^1_v_ zn|#TT-7$&zYxSA+EAM*|S;F&CATHrO<|AB$9x(^K0j*9A{+Jn0k*k;}=#x+47D=L? z3qY`pJfi)=_C#$w=F!!KFfRDub*YcO2U`_~big0{PH?EHtE;1Nr4aQuWW=$9o}2Pt zf9$4wr+Juw0Q4Nt{}z5^=0kiJ({sIxSA>t;2+a%X;p?>iuGiOAXk602s2`{oLT3G$ zerUf4{sc$x=kd&X{+xWJesG~g4e^0KxC&`~;xz;5uSRS?_J0fiGyS~3rS;a}kNQCo z!7k`$p#R=p!XKi)OpC-KU2dt_j5O{}pwX4gd^0V*PxPhqgIc=E{5Oa$CUiBGq)!rF znaz$)9Mp(z$#3EO799L()GwlSjIXZJd%ZXG`uESXP0=rip8>Dcw7xC*P5Y--pF2UFROTzr3R>vXr1xju%e3_S$VmS!J)71wGvijjiyt^Rjo(SX z`ab^N%U2B0Pqx-a{kQFLxfY^$U*Vq${s2Eo55EC&COLXOO7u_jNGkA$o_>oy32%Ig z{!04E)YkrRkshL-^N3RuTncwJD{_-TAZ6x3@E!r4wqu;<7Zx&d)=T4D(;5^yLAiht z;+I?e<7CxewX^}w6FOvR8!~Xnv=A`BfZtg6r13oTf4ar|udolK7lOSj{0+k@ z`qixRI}Rr)`_#sdg+kY9-WV5hNzw0>d4YW@d?WYsuLfy;*q&Q(zlc+>5TA2If4Ngr zuPeWUKi--b>6aWgK>U~HwTTwPiDyCYmgt-K?-%DH%6xF*MNj-z?Di|`hIyyhVImkb4yLuJ)oS!l`YM+aI&6EKZ{3fe zG3+LsgQoGIe<*Otw9rG8<7%Y85FU_xZv%g$Ory+tGW$pUig;1st7*n&p?^wo&>!$< z5joPd?;H#?!n1*4@s?ftE?p3Oi9TU}Vq*y2p$$pO;9q7u!V}V~Gw)?u+E>8w+`IU` z#a|ToLxH4r%f5hqtI+>3eteANAncdYo}c}f_d+DU|LZz4e3||- zEzNTtf3$ztRuk>>)YJ^@v(3BGik`K_Uy!=m@ys)Ga~Zg1+RV7wn3qbE#CnLo_!T)x z{sX`Z{sp%_GoCVkz=`k|`*#z6ui?G6J*%sw<@CEK{uJXwe@7W?YTwI0GUNTfTG~(G zlS1EU(LeG@YMO589n>%Vu5GpL5un02I1a=zr4KU0CR( z{hSA*qu;@vZ_yilHfc0(kRD8YgXV>CZpm%p3*46euA5T)6I=2lb*#n>38UNu>Zk-0DrsT{<2Iz^xUyWiO#St(5WIf zfk2A;VPC-B1vhTB@H^6>`f5FC+UQW+bJE+TseL1Ur|M*+@ zwW7#B(jQ=jbkaQq*}zxSK8M{w`kxS?{AJebApD&@5BkD-;6Nn&1$z0kt(U>qBePrUpM`yRjQ{Dz z6~&(>NpdJNF3~6C`v}p&!oq^-=K8TN#s1@n4x^)^ikxtpOgrB{er6tRNbQGSJmu(U z<6W9O1wO!k#lMPngnsuA58qGr8Me=N7JPvCL3{6z5$K87Ty|#^b}7jb`kwGo4+WOS zyZRo#0)0OxN#Kw89l3+VM@1xy5?!j(WIqlXSNp}^0RPB7-}0}X7u*Uz^z4j~{WBbm zmO`J?L7za;&q3WNCaBP#(r&h(x#fSztPcl^jn70vZ_)T%ybI%Co{-O(--+I_tQSfD z$1)VW1NmJgI)?bc{-5BRunvN+@AJ8f^ghJ0;_oE?3CVk(GCpp?ipS?@UGTp~XdPVT zyZ$*^M;Ol$efFYN=qxfaqR3y!e*xc5e13kO_HFT;{$06)&%RZs(*b;P!4F9DfckgK z|EA0f_V3O4n=<;n@*L=l_;wcr!*S?Q;+n}s{TuQ~Z$>|`FWRx5+82>FO>n{UN{bDm z-(f!9;*;d>crX5LR-LUP{|E5}-~IIdW((lBI%GWSBKw}`C=w<91^yl!9HjolYg=@R zEI$Q5M@OT2!Y9(d$uFT&C4uj_ds&}W{8qSLbC&ev!oscjQeaByN1VO2f8-b0x%0Iy zqMIl#CC<>>pKEWvuO&Z)LjPDd#HKQz`T5DvSr_Q%2=`y&6Hq@nq4fgzPx$F<;O`Oq zu7#bY)e?UoJCXP+;oqu{`X~D$gI|BHrRQ*7StR_qAArlyHQ_1H4*DbfM}na2H$IyP z&Ri&j@lbjI_><}PB-RhLWT&?E4EgVseHFz|6aUe<_2fUmdunwn?L#v6^FA66um8#X zi2tl&9z;(tuMLD3dMJ3r*F(PHsf$(cAH$$j_6G>GHP3Fy2b6SD{A$NZ{3iZ=N(;hAf5uQa z9H)5$zTivXGtfWqysicSqvyomy!vVeuZX@Oe)>^PT!%AOiu|AS`(Z~AK5#vxH=%n4 zKI$6sJD#nQ;$gJt2lhi||LF5B{Jr~mNb#Rz9=h3c@9O{b+?ISN{5x{wO~Ml}U|KiD z2dKsJmHiXX)A~pcAo&Qs7ixu-3p@dzq5VU_q9=(@fxRpKbMil)F+#pWe`u%mBmO|} zi$rH$7bQb&z{6<+H*%f2*{doS25#pDl^<(){)BE{2@H4`pk+((&J-EDaxPOQ(X(s43 z&i6<^bq}|R0@mI}ET7alz-9BULEVx5^DhvXRU5?S$gOzcvj_tkqjQz#NgPh@D}J5W z&FCjD&^8!rN*AJ-rj9E(A65G2)NrS@xkjM>(>RlndW8)+)_Ykxb}3Ra5ECEZ2eKadU6^ zz@{(k#&YbJcei)+4tI1=zavstS9@n0udRgp9BPFV6D0HAIT!V9Hk>gEC*NFX@4QTE z^|{TKNn`jMUoRmzL|eyaXq%-kM5FIFJBfTcK0|8Dgi(8z)Td*7ULMv9HGe~2ki;d@ zogJb$d>_Ofimz;mC1tx%dtctTg0Nku=^3CQiHma-o+tK8;^kzOfSi+d>{I>A1B#nt z?WHnho4fmbzAbX}rZ0jVEcIP}THmKD$&KFT(r)9Bc|WOJ)K*3*%rP^vO8aX37N?m9 zIvKgE6vm-6ju7_cEX=v2coOOh*w!RnS6>Xg7og@{x$@SivR;_w)PD=;naqRv=PA>Y*VFaW1B6ex z1)+&qsLONYmV?{8zR`pdHM(G#AYP)OXLbIq^2G0MtCv00P|Ld8qJe5zBaTmLgRHK z&4A`9oKHqc{mzKNP<~ELcE<_+)wCCB5@)N#M=!ia@QFrWd6vebbOu_tR$Xw8`pL@4 zRotH_cx45gbpqU&w5|iS7VPVgPNl-_hzJ;bwqF#9{f*v;MgTwK7ZzVa)zPykVKK#R zV!kBqiTnq8x{i=p#c|I*Lv$0C5XQ#3ER$R6RNxH`V)9~DaA-i;AMVVfaD!jo?KFS& zez+AIz#V~KTVcfv{BE*sn7_6?R-E*^8Acoiz8J-+S5O}cVt1R&3Z1H4tC%6C-yT-*RRVl6<5K?|7gy*$ z>YjWO{ohi*aI5-BJab_j&jQ>+p~<^I$Hrg0qSn*z)2QP}W><}N6Xx3m^b>`8 zL~e2683E5nBljPs`K(9@Av(zvjsEm!G(M@Z$B8~nJIe&O#hj_cC}UN!MC|0gdzL3nCi6W8v;?=LURL!E|NXc7SDGsdeUBUdTc zGX4ACH&8ew8a?xzg7>CU!0&h!tT!^pbRUac{TqU3ggfzn={R!7wi++-8I|GummTOg z6j>eEN{0pU8+$QJW)zpi<;Y?=Ko@ z{;q|&f2DcJ+>_;smS~URfo0ft@H}Hn#}H7=GCTxrFdduG%DE-TmDu;L)V9yrw`A^K&6`8-xBMJ$_pEl}~=_8TuV+KlsOl z?*E>ETyA{B(sbrswTa-Q*EbS=gKi?fp>fWoCJhuOnQ~J)&+)2#kc1Ze!;uzg}(E;T@W{(c72zF>TDE)vpqXtt{jZlKFC z-keIo>vY+|O+2<6;-u<7*&Y*31;`5sg6S{h5t((BtFV@To=ubZ!PvNsmTIqWm+i2uGwIHj@ zyC>9YHLRQraBVg~>|uVB zM(#xV>zggO*mhtJ+xEt8{ga%foyMt*NMi=>9AJDzZpdQ|?4Z%q>1yuVy3 zrGCGDfH&CFg=Yz#8$Rm;n=Lln^!kK58}mEyPvalJKJ4aB zEdCbT%Fn&{LZ}_{a5sP1-3~H{&P6{-X!!Q<*i!_La%6EK>xh5l2|c1@ZG460C(Rh& zm7aZ4Z{(mv5)~hF>Ha+jSLVOH0d%VB{+GE|Xxh)uFFNtOt8Om(H=8ZTT<%Yg z{yU~g+7Fy~$E$MJ{#S(#8Y%Gc5`GT7{M*y?*pp8UKfl>>vg&{T_+Q58^YS-ec`}R3 Q!h;-rJ+pZQN;&=g|9?{{(EtDd literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/digicam.jpg b/client/images/vehicleTextures/digicam.jpg deleted file mode 100644 index 35bdab9400a75a7e3de4f619a314f97ef54189e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100915 zcmb@tcUTkM*ETvKKmd`Vpa}$mg3`o?qL|PT1%gTkQBlF5Cs> zKoLMY;ym&HJ?DS>3$FLy$41}&>HyHK^xtRx5B~Bw-SxzQ^LN1?zdNq@$KcKSf@2Y% z$Nw1<_s2NA$Nu>=a4hNp-XJ)x+&}O9U*qrl<2(N~rtgnEtSt?|IqTq9&-s5F-}&Fh z|Lc3fDFDiIUvTV219cUQy1J68l8V%whmJT`DNmf^!@ExVQ~v)w_I3PUD?*O|08|YC zI5Pj|-2dqF@m*g~ZUDI8@d$tCk?$!ftUK;B`2YWz`{*42pjqG=G5>S!&T9au2nPW8 z(Eps1Ndo}EX8=&%f%Ee4-d__u#K4~>$am-+u6Q2T0~LG9D-`k8Zo|Nb2Y3;=FUE^aPPZf-7a7>t{TPl%6?mzPgOK#*VP zs0bW>ROHAJF^Ll>F>z_+kt0&4q@+*E$}7ktP)f>5a>^&<i}UM4m+q66mlHk5Qad7A%7bI6u9wRkpCS25fc0b;edko3*+JCI{;27 z69PCOP$&l{l#7d#6Z|v~{2bsE<~nptMW6eyg(K`ZK}0nqHl0WMd~v;~<ZR_gp>Fw(u z7#y1T#h9G>&77W@U0GdQXKif$+1lQh3j#p@ODypBe@XWLkV_bpi-VIB$_d+-3&P>E zFSsx#*D)3DL;4mlN5bLbsv$fg=VQ~0>v^TsESE*^c>Lr$B6DWq#LB*C|B>wfonWE= zpCtRg1^XYlh5&vj1l&BRFrW*pj#7~v%BFrhwRl@qV zfam7hDf1D=AG1FeU*p3nD2yHI?m+-r=F3SS&#b3~4$3$%iEHFXSU(5lS zzkrW!=Wohjd#||nwr7QI*GJn`yLZO*03^JnRgyLoztEjCn!w5LKFhhMGNSd1b`Q^WQVw zWh8w${{kk*P8`jdv+~4VXlhoAq8OcPNIf>i3^%h*m1uPIwHGF? zcilmaS|FYA$Me>`a1NjFUj{hVF#9hhyQ|M^wn}SL9q49VOZn2H?2(p47#k z6%^rM0p0EOhUj#?uN(Pq9&`NKfK%d#6W9*vzEbzL->tXLmoHGEp&9}HmgSfcW7^Ek zkN0i48vL};lY8TZ@?EFYVjogAG4$;~MU;EAD8ftaiOlnPH68W$uZavQbp3bfS*-&e z`a?cMM#ZhCi5_F{g-#>)5FzJ~pI21vF0|#TroOw-w@wiyecakr`Un03 zA(=y0m69vx7C`qZ)O>3kck(fp3DLt7bb@=!#^^c}wW6z>m{5*Z&~F-yHmrjY1-^`d z78ip9lmS%t_{`-I9!@}|Teso-2XRB=y7ig)z`V#4x76Y*9?dMRXORgATxnSM&KK|+ z=grst8yg!`4v$QMRBB(0fTd`0a^=Ew;M0VKx?%>WBy|FGagK)Pamoz{ z$2h@J&~p{W4)hd5VJT`A<1=@bC7%_QyXrkJ1=FL#wLPZv-DmGS9tXakhuw6USnTYzgT@aWBr zxG@j7^louu(9?o{tXdTC8Ssu>*gzK^O_S~43Y3F{2S}=~t?N!$msuX^FY2^+CV|lX zrA`O}-}OhCW!Zf!i^9(+aNn$fKgQ54etgS)%=jTgx&+6?Zb`};8ZQby^}lMBH}kT1 zW(|vkAgt-R7}&02A`*vgV|BPxwqkFJw+o#9?xP<=2mzt&#t>1c>LH|?)I$!fA#_aX zTjE6+b3>&vmqlA-WBZ3*C8r%y>r1o_D@}nx&&ntllpI$XLR7KRc#@ElDKLwf%MbbK zq|d~w1{-pIk50*H`TzQme7>cQ18RpZ3Dy*}N=aee zzH(ma8(x)`YF2n%%E8IO8D-|uej`??na)ucs?tO1nW~eDuYj)ZYtvmCAcR!R><2hB zp9;+}Wo+DpSClkzxEX`q_sh&?o`>M#cmD!n$^zYWG?W>;>=?R^jw7ZJ7W4!! zL9D!h6WkkIj>Hy-&THxQJbH9ms1X`8k=*04>4{F4^Ygjw$)Ai&E^DMD=vYLE^Tkqv zcv;(Gbe4y>RW*js_B@&?QF~h9@rvjQT1f~kb=N;2P*K&;J2p9~q(Ub37EAfx8*gpi zyurf6^`xm(99z`PO4H3B`U)VMDs`zDqz?u!L-R?bf;{p+JoR2Ub2gZ=LOvWQPJupzd?J6>hkjD*a=l1&xID_%e zbQaHJkKEJU?(xvE0dUlcvg5?Wc|rS)Ok=v?Sbz@=R0MQMNY5P8><@l31Ot*}3Z(i}ke~qnNKIE2m&XaZi%e5vTvKX ztF%c_QL%pkzRs4LR4L&KH5-LE<55u(GP!AF*sNMRyRX;_I11A-OkVjGZwOc)yM9t`Y&;E1q%{70%7S zB_K;32G<(wFk5#xy=MKG=~+GhynEAo==cp8{#asEi}}$Q4}Zb)3Ji&}XNZq`dc>+H zUIY_jBNqBIr!`<&yTn?*4%Jt-DM4Tn63eK`I?mKj+Ckf_ z)Z^;g-=n2{0EYu{{sOuy-R!fL?7K-)&t>E=r!=p9xjA8$Bd_ z8NZ$-lH8=R`ew?>1vv2>%}8N%c0u;W(?$aP#bWSKB$5~yNUnhx>RH5$WxW3j+$w0i zzccQG1_a+{p&1Ayj)d+#@5_bacLo%kgietM`o&BfK80mbcK+S%u4=v}9LEcVr zF6%^;^fy#Y23xACgshQ*>Uz&xkmmamZqyJ75ljT<_Qqz`kV-ImA%!si;NFXg*BN-5 z#HbkGnZ5gn;j&<5_{^!3@ zqmQOtThGiK8k@Rxc^-r0XPzy1G~r=`9cciBH%mGLT@hawe=!ptUp(3SI_sVafOs*v zv98NFKlE>>th3yAl@bJ$lX!T`TKaO;ou~R8mxZtQt-#$Fk-^`&1#8RB-CcfN{<86i z4(d{LWBXO40Bq9L$gK0u$0{tbXufI)4yXo*RcEFP7fW0#W^ZT)x-5>r_JM{q3yRm& zM0>Us6!o?bshBF5;T^6*%%s*T3GA7yheFj@$yC$XpyqfW=IOFKL^fxA`zP%iX&17$ z^r-Nj`?*8}lwXaw`4@2d3q+sfF|R_BAPck9-3LB_T^@sQW^M6iddo;A;7jWtp3@Uy zojm@txI3IlQtRxKx70|^+|>CJQC9ZCQe3G^84`KRzoMc)iaEp{VG=w^8c4CRH&3Vn z$IdAoxWHl9rK(xHcaW2b#8qhTMO&Zi8&t5P?0A6&(Y5yl7&$Z=ES1!LM7c>L{b*=SCr+XDz2rtq0lGWt-*!WPDl<~fV zc;lR=@_417ui8&FWc;R88&=O0`}$ajdmc9MAL|QEM+ch0Po!*<|S~RPrZn{>i zJkER|&WrHlAa4X?Xgvh`^THt{Gilk{ioVh?x0@8!@eIWa+{yxavzT4qGp{)T4FL!{ zf)cD6j*R#V&}zPvj)=mfrB=vG0b&^{5Sm2`T)cV*wUVK$+ziY1(>1tMS)t#9ldRqI zhlmFp@>`b$gSXznQwF)s6T{kj`qW7rAD~^b8?6jU&O3K_u5%~w!SDwjt<-AP#>N?7 zo*z&aeE1iTHvWUq;+lr6uV;j+$5(f2?|mub`q5)9dJT)A6XJ|&v(AK^)KY%*NpmG7 zh%a(7kMYGYC>_*H5MFXQg|q4ybi#~YCT?9GD{>UlD>RW&xZplvKZO4#e)}JpWchPpl7Mi zT%-3~y}#LXeT18jrxo40P8}G;ip;JCD`(=g&HnU0aJ%%eJp1(>Yll^I{nETkXE7zX zUQZhOTN}NTofd+9e5*>6us4y)yfNX?hEXsAR#G1oI?7kh-xM>+T68#bnPl_)2M8~{ zKa_wqaZIxYTUQAg4hlNVHrp_8%evKSZKyztG5k@|~4?R%lkk>F<8;x+o=Q@Jl9 zDxV`Qtb3pjv)p5#=`JHXYBcGZF+^X7X$b{@xIH~2AaKr^lx*~;k3h*N9-27f8P@Qk z;(nC}q1jrnt}9hQ3U*Y0mx10p`1pn=kqIMjf}8!;c*=C12>5pNkL3@2tE`~}AZvcV z5IL1;x>TK-1gRM4RywmDbvFj{5Pwd99Z~Lec`KI4!MBq7Yh%0j^fkNy7QO)n!ag;3 z4T?>2W|vr+Iz;O5+-|h11^Dj;#b(|GoQM>{5^FP^+gM8lxgWYzji4{VZSvgBt&e~pq20PI-Fk?Yx$e0I z7IkrC02i*s5vZ+G8f;YuE`G%j76SgXujwuC+xY{S$~d&tlbUX zUhAIIJCXa(0QI2|a4Yz5%f^`lU{0ULOzW7r0p$v=lcx3$>~sa=Ra#`;YaQ9pVLdN% zc4@fKtgePP;TIkOeg4!vbMKrD5N>E!T*D8B1z&~Ff$(eK45ctbQrP3ywetn@FSH&x z9Q@tfiy^yy=H1sP!u8tRU_woL(_4p>^rV4aTS`w4ExH8Vci_?hTa@jKX9hCib`I~6 zY^0d~hEhsEfIn)5dNcI&?e`cYxn{wFBrs232Mu81dZ7jF#J$dmx*>r8iSd^1s0ky@ zq;=R9Y9%xJqbQb>0o{B5s1TzPEWnq#g!-(lU3@v#JA%&Q3^rqj-Y4I;tdiYZGNpGp zC)SVlIBY^I`Vy4K;A=5@jHLiDmj7fxPwOEaNP@+=ka~VS1>c4sY4%x!?19cn#=gp9 zjNwwuDWuni&iXUL#0_!`h2Ke_v>IV1T!o;=_!Z^IO9exiGUVU#$QV<)G8&E9Rt6Ku zeoFU{AF|@*{3SVQEha40|0c;~;(+(GUr{ot(*xVm4$ywd*Ey(Qtoo;xhNXAqJ)f7Z zV(vx{IL5Bcrmd}K-H!@cO|EKXpdvSCZfY!Q$;se69T<|o@@Jios7?|I?b@{CZ*slQ zS}xMGV|a%ydCA0ERD6d+V@!=|j58uyruFCg$71k!pqWs==W3uQ{fBJYNMK*NKmGii z!2E&3k^qbOzOST8)>Bf@K1idd^Ocg0p&pcK@7a?3vaw_0EU(hEHJvnE!!Df!RBXh* zd2Mb7bVm`9Df*L;h0Sm&OP&!G8k&vURXi+Agm4zOo8mS1^FouOn#B}S7`1=SRNDO# zVB?2o-=Sco7OhHCGPa^PRk|s`Naa@AN)T&SITIOYtTSr#rzg`Xc0iJ+L+2NTQ2QHY zUbEK(=$AUNaI-=Gj!~?Y?-*j4bAN$;k-b_)m4#NxFTY5iNi{blbl!!;E&?CAU<>!|NG`HHtok0OThi3Z_;M1KeY0rrNPj{>d)b*Y73z_#RRQP>|MmCoV@Gi z5}4@@Q45Bh&~Mq@DvGkfj4M62MCQNwZTF4iyWsma0s$rM4J=bx7d`*4yTQM(M zpLj$zn3pxvV|yr?cvsTO>awNVp#Espi;m68IadDVtPfZv+8%4#sIs8tAAaQoIXJW) zi4Pzz=W=KMXwj$1a?(*2_N&j{YRdONbBMpYnx6Q4tYsG6!rJaklc+jD!sw1|Zufc2 zp4Jx!v=-~veJ@6l0~`@o4_Q zr)7#Rr;jGZ#O`%(N2PoIld7m0ow;#q?3vBigW8u}ZHXC9-)ru-ET>6TjmLRXcKR>^ zB2Oxjo*ieqKLByYj1=9Zyf={toaO6e=;R{*{tGAE1bjQvLscm8DIS5_mhK1FaOgP` zorfh*QkBSa48Y*WNO?(?<>usNm4wvF=7{$1o(rihE1GmV^#yy&x83gXCcL0V?SK=J zTh;WJPL1nrlb+PeeiG6G1aRi zEi}W;?Wjpu)Cri9D~jG2R2MG4a$)Djo|v-nT;+1mXWg$=HE%VvO9NgHMbEF!9u?ep zp)4Z>7`L>;B+KkaJ38$zfA`bHFu`bKeq>zw^fy)ykFHVXT?)70=9&zapP@mc!OE^xc`i{CGA!H3#+ZXd;Nc_Dg`M09h?5V~? zy)+hPVOGI1q5QN*w029`S?;+hC_yh!t>gB4Q5)+LQ7NH@iXe8)6|IN|Pnzovwi`Ll zDgcJY9q0~;nmONTvWA<@Wa zw~_Km9;?E~e(;*s?-q4Yh%o@)U4 zb;%m4_4)h0+y;jaUsk6!Rsl&63~h>oHJ1GsbaRTXm5x2P;Xz+q<5iGWIhFo`f!+Z( z{JO8WbvT04nNOv9d{%C&R=Qmy=(BvC@HiBp1gTsb8I(DFPKDEbL~RB{G>g%@Qi%zS z$%XOpS$R5OEUUe&v3F76-!pFFaZtSXwznf&q`SxR3KhpwqRf@tjwi&g1?;(c3tc}u z;!`38)_4O*wf4QX-NL3?UB**Ur13FPc#la64vxeJ9oPL@`l`108~2QEP_Bn@m|zk& zoM!rkF_!C6oJlwa9J-N5bi!5Cn)ubqlI5Is*zfYjE;~O|2L3@?b?khNG{nwoBs%=+ z8p)X#kK;wX3}lz$k8-*zwPW|eo|*_T#cLcUd1xE`F>j4vufX6S;FqCW%7rrb7RHkI z*k$DW{Ih-ZXQ9DP0-sa+Dw3cm7|~f`WmZAmlE>Un>rh62Wp;8h?WnWo%OPuFBC|vw zqn2@1OBeq3#z)KQkc1K`9M~ zeb5&BTm0Hg_!813_1<}FNQ`j@%J-@fbu_T3Np`TrV=5RkZ9G!@%A`KK%=zI7#C>Aw zktV+Db*+a^g|8$4cfC{lsZ;g~9~VkgSXVIYGcw@c;PW-XEw-_TKV;gbQ^o&q0&pG$m z3~|t7bKLoP>M?V}I-olae=fh2z}J42^KeN@O_O(``bFc%1fI_5ez&!H`)_ftNhrmAFnr_MD)vSF ztS`tVW$tKAir$Ze{+5-{rjWY?-Tz2s-pQY{d;x57MZH6B*Z3NB?ZDw+ z0}3**J7nA1)Kso3K|8Zx@a+cngO4;x)pw`X%;omS_6(iN!Q>=j;CN7$yE4}*)m<`g+;}GT-sCfXjNewek9KWM1G1u%KCu^^;?#v0{;KGj04{k(IsfV zH*T?h<_I4m7qk}qF?_vW^xYNA^u?L1)@v^0~WQ})Qo z$6)Dxc>4as;#1rslCRrAu3m@}Z%0n@q&*@mTrF+w5{+q@fYT>a_AMf#`jq!>9#02I zc3%%!WlBKkK|aGXCYN5@Ld2sxDzyCptCi&Y!ca~>KTmR926oU)C+c82YDJi{=AG9fzd-YJ9 z;tZ5|6a-XS0LvVx^dj@keQgtv^(xbE^FEx>+R? z665cA)52WvyLSq;Ghk2QnV6-K98P}AbRL&3q09FZAioNQbo}T9DHa4)o9HaFA>LN| z-J3c59~ur3EE}EaNyE)*=Q2V*PrB(O3;wYbLSXClGy+h|XI_Y573&oDGnn;sBil!> zbW$6ZO!-xt^v!v<|EcIA(sOQwQIsbDnJ6%HD%7FID5aqiFd69&j z3uB8sb9@05X@k^JG*s-vYqjD7xE$!>&Yl9POr&_Q__5ppQlQ|L=pDv2^+S;_C1~O= zaGQZ&D7Nmo`9A_V8qJS$kKjGqbrXe6cka815vFQbs`|~QdQu*0hIT^Op#}u3>>v0k z!HFmk4jioi0=JioLZj!7A89`!4RyyGnfZS>=3{9i*ydrVvs9x#XfkA&NzW6^Y1cLB z>*_h+^DyMq(ylgoQ}ljirm8ajE^Npo&;xXAI44wTPWMl&zGo_%bu`$iidGB&v8FHoI2W9Nf9 zvnm|^Ee@Ej2{Os~megE!;>yW?{XO3)=C^)GeJi^a)k(TP$z>B^q(lO3=tJF*DH^p6 z=2(0WdblYC6HpaRYnA4)-R-Cori;^gHk5~-#8*S5y^%l`Nt4hMU@LHmpYaIws&XT5 z;n%fmaHWsXP;R@G)R_hAaa%mMG+*6%$K{P}oAZ>H6F1k&+AjKdsgATn?N}oL&43=m z)hEm!7zrZ@7x@!o^MAe_;-$fVoKa@B#Fox)a#SLf&}e&w9<`bL*QTSrvCl zSCNu`Hbpq#tl_Xa-LHWY`x7cJ3fU)Hw(b_sWunhkGaL=-?;Tj)P2x2d05zMdIx~Ctmk%&ZTZ$S zwQIL~D5wNH?0nGkeTr}1$7!SQxuDEdWu0+zZ)oj( zbO8;*X3%yoH5;|=EjuN?ry+?3xp~w6s(wSN+Eg+AgML+u-e*e6(GlyXfnOkp-mT1i z1ugj?_W5A1ew`puGJ}+A@|}60G}tqQJOPSj-OQU$D)iy?$aFuDWSzGKra{2^rev=w zCAmRdZ{9y(PcilB4F&bs*{5J?e!ZM-{^8_EQ725dfi`>aP$;R%BJcNTYlY(r-O~YK zn}M`4MOB5DcSONrdG*qIcDNLgP`b%J%oeq>2`pBSs}oQqZ2D>iL_I5-cg3tWeH?ie zEAm7`5t8~U2mI0(F{V6&?busm>-BYWrO;r(WiX4+9aIny=oI_~#+NabDXs0qo0sef zOO*>t`#@^k$WH-`5jy)I>K{K-O8z8h9`rRdB*~2}`5N4YUPGMq!S6TTTN*twFp!g3 zA$br6wxf9D8grX@boVhP&-L=ZNgcp*2_sV@l*yH6HUmF7D}zSS5?E;v0_5`_pplK% zI4wa?nj+F=_n8t`2>CpSRimRt}w0kbW@`<9ACXHT%jvmsdY>Mox9fU4**4TZIL!6g{7y+$eiJ z;>7uEjTrt-;LB)`#@JQ!lf3dWWWD=eBU+@$V1iS!sGZBP+Gg0vjb$%YvP21t;Y7q` zLWd@HfjyJ$W&?Y-pyiyLxv_oqSf}l3yQ;q&2zaR$3-<4c2Lkg3Rm#ebNCgR)SMQhfAku2JFcJ6_-zg z9Q>lfJuZL#SlUh%Ya^Qu_zjc0b-OCik;|7nI|YoHqJ#JS6B9J-g@0(>ual_%l-psk z@Pja6jG?C5s!MAni%ecvdYj&@{y&fe!f305pm7K)bZ@Kz(I_;ET zQWUIqbaUGlfQpAeKj`lJtYwV#kxBl^oq#}vyOKB)FMD+jl?Z6;ETJ=i>|#EEXa<;j zf`XwlmDbpYb|I-oDpbv zrncX35*qx0^hQi8erfsjQTAMgG#_%iJ7t?0_B-YEg3W7Rse{xsCKdGPHwE5_?L0I4JtBFD zG1nye660m4;dM~i@#4ah4kkt3v8%-GzW|udMBkmB6!mWQ&|4p66(YH`RRw`_K{$K0 zKcoVkm*OsGf0s2v(;Ilae1VeAMHrPx7DR7zq-9Kh_-ui~j?b-Yaz$G=shF zYje5BU>=x`^MsD#%}jRJd7TL#s z)EHjbu)S{fnQ01EOqqRx;X~N#UNXDKN$4SEvOr$ooa^~5X{CpTN^ZgCV5?wSal7uI zP7kZBf+h?!C~*5D84o}j#asYr*QXOUYoc`tGK(@1@OGVL_RQwHrOE*GhV%_MTF1Pe zp_HOc{?jK==<~q&$?{}QofJ;fZ1c+FfT)>*zthk4%Q*YhwMu-P+a2{uNj(6! zUU+|}t2e1Xv^=tWsIXkwF7^D?^|M?H>;F8E!N*s9xn-!n*4bzO;YWNVWusYe%0kr3 z@;fPbWsM)YaMMI?YU6}$Uu|Bix>(v3~YVaTUPxqNNT_(_xjQWfXW+F=P~&e~KyOzIOq_ zvgz5@G2Q?V{pG^^0{}4^D#GvCgEFxw%S33AltFe^3__rB2B}QD9u{gghO}BFGK<&G zKtHKWKeYfEEo^9(@m2_HiIr6ccR0s^{tLJcbOI`&dO&Q&bl^cXcW(Fs^N}_=oqF!O zFYU4uxn|zQ7`Jwhk9vPN?lxRXVEtADw!-PWhyp!SlOrg$FthlXQ3(7F_c(~{N4?IP zUo#}UO|p~3gMAKxE<0vI@l!8V1-$xA2n!`unm zeb}LbOJG-~zwOJa<7WBxT27zTfK18HkUd2-Fyb6GJX9^eEB9(eQ<&&3br;K8Fq3*Y zr0hr2ZF?pDWqO8Y)|JX1@H_e{<%7L&zigJ(A964Kf zqiL50IXIF|462zAoQeKQfrhHI%+0%YcsyLNxa4%s9dN)KwW-Zb->)C8t4ICwV*mt= zu0#ZFtfkp(B>?45K+rj^eRBR&6Agt&8Mt#Y7L!NG=|#Q_rBF?VEVZ~Oq-Av&tW!ZxwmHTmbR)fq!1u+Vin+beTaJy=j;XGg59 z&-lS{sM2bD$Le<9^2lVwZ}-tU6wjX?gn{@QE>P($7>`HUs57^x9kHNKdJc4=gA=)>Pi>?*Na$BVekp{)Q0hS$7-vYG1{OMS(+|Q! z+}d_t%*6Nji^V^{Q6_Q3P0&|mh(kVMp)fZZwKyZ#xDMS$Pf2M`-As%`bl^t(#T-$m zJ zb-jK8G`(zJE0-$s0Mw+*;g<|j5~zXRNOx*2*v--Pq1*M2;p?oSoB!g%J09V%a4x*w zI%w?K5q$UzZ$r$qQF@lWm$_kJz>b*1uz&HqpyqW9fr63&t$C%xXmOd=`^wvm#nCthY;@7RxQ{uJH2YO7i z&neJOp=bJsf<3%*q#lFaBH3}%vhoiHrQGq#Ds|xPm>z6_H~UUHk#QD2;w0=|VD9i+ zO}$oWgf@-Z7mEFt`r^KvDW20V%0B#|9){cjJ2pQQ+HdTnbDj!mkyYx376r~IgYKz3 zYRY4iKx)w4<}K2(9h)C-w2QA~pPli!CHg6%>)M5tPm$l`fan1UowDEAvUje<#A$FS z%%JCRPMKd+PeE4cxmIM_7uU~!EChCHE*4ijyq_T*ik0Qu0H5b3cC&|!jnK$AwKwxm zpt;%cT=X{xWP8g|cW!#xvL}mr)vom4X9;(`eLjsg49#3sYY2ZVZe6=vEakv{a+P!i`QH5_~EY}xy{6&G9XF?iDAOo{l19>JvLT!8~$@*oxAGm3I(ZCr-sLrjC?QOBk9O!m4IIcZVz6q~NP1#~f zcg4g23J@8erTGWJ?ofcpzcA^0M#?@CXKAzArA&a`a_N*9N&%x%$U6=Cs`i<<=I&U28vgT|&g= z+U&ZLi)X6{Ve3k1oHfNmyY@PDW3Wg5kZ?1%-|oSqug=qpxH*b++}X|f0yp?PX;NV8 zG$HzBW^c~O+kZPtPctnGZu_`{2;i0`a~im#cgx?ov;S;0>^>)v{j|A^J2O3a2#ZEa zf+RKNpO0tKZ4}qkE<7F*@EdNSBiGNy{}Sh2DonRizl$VdXzq#c;{0N{Z>hpyVA6Re z1TTY6TOT1*5A<2MpPruUGM-p^{O>nA{t_u`xTO!2{J!F>zL8>_AKkflz35xx+Qq$> z(@0GWAGe1wClb|GIsQq<+;4$>cF@$+q8j5YdejLmgsw+3be?yG8jA<>kNpMOUSUp@ z#K250I(UZqKQ1)ZOqL3P79&p7E~STTM|~0}AQxGforZ0(jO-$%i20btcoKEQhOYct zSKZK5lYE{2l6mvQ{deaL^<^k4>}B>dEB^dW^uy%_UEiSd3gXSj2M368Rdm)utlj5B zyl@#$68l%A(OXM}z76-jldl^tDM~5D>0z2D*k^+--M!&6Vsy$^Ry=}RC*otf*^d;B zmGQAxM8->gHP)tRL1HfnZ9Vl$B|o<%8wd$Iq$d?5MAJR5cdt)CxE zZqSUtO6)ZuqrcNmJ$)DyAVI6a$$Ls9mdpHcRT!U<1@j-lzAw0eO>E_h1Kh z4M3hc0rH9BE;7h;6dPO=Qq)?~UIl3<=|7*%njk88?P*>raLS^V~5sMYsF~gzY4i z9k%VCuJR+j;JUGetE!oF_q$999u{iC;^vJeFT|y10?(YnI#Vr74o$^9>?8b+CTo^l z*}SicxUR>;LKJ1iegw|f(H;1YpcvPcXS~hZ-iww7^c>b-{Qr7(gHXPpGl^@31%X57q)H~92Z`w;^uS)@B|L^^z>2ymT&UhB!CBmqjSb?WU^l~~eWRdQu zt{4VNg{id@brp6W3Z#sc!CPpW&nwmnNg*9;LTPbkRD?)Z!-*u%?(Q=VVPK{Z@@DSw z!P8xCT4tU{-z>$cn)1L9qN;IG)e0&e-bTl(BTqz3grvCiy-6<8+xqh-KQoJ?}m;Z(c=YE+!R)PFLj4>-zVhv{(b_PTP* zR%AT_tsBru_HSG{JKtA);e$@IH%7WrqRIaFi$ zpQ^0IzbIP?5@ak7hIvh8G~><0pg00r$;u0RDT_ukD}E_{Oh6u?p2f;*3q*CQ-MAng zXYQO@Lt88OVHaLyFEm~azR}XU=Xy)D(WO#$5=HgL7EVye7${-DnJEBZzdd$&0!mV@O13lMKnYANPF)GZ#1HO1NVzc&c?;WOBO2_zA zvS1D8;WCmSoKXvw%Ri|XSJZ7mI6+@zj8*-H*fFUtgg6{AAtLvi3NmH%qi*xt?o-B0 zOozWERPtG{TI`hJh3<7iu(aGj?kb!f#l|(ub(VwoMDwAC3N=xm5|9KqC%6f~|*Ef(CmhSosF!aJxTwMdX(eJJQl2qztcjVL35hQ(*rS0dK%CvhC=wUj3=7ZK6$rXQS_P`;meYxOj zdQ+Nf!g)Mz2Yg|_%5IFLgl00j|A2cg3FUWUfjAhm+c=37P62O<^Ah*<`}N{494V-p zjGO4)tgs@bd2NbZ9JO!5 zPbR*wiBJ|`5K)AMB~ygVA^jGn>=M}NB&3IKX~sy`)}V#32gfNv*PV{oggG&#QJbCM ziet;Ti$@9;!N%pU-{Coir`C@0qYUYI> z__%j9FH9v`q_SSaB{bAsf0T54-;f~e-ljiDLJW<>Y5VU)`5t@wNY4--uoGoLmiJP? zl%DRtE5k8}3`hC;?}+g~tVAoN2uc{OpRMH!6ARV_S#(BUR_h%+1bk`eFR;KzcAb2D z>O>z?b=LaOpezC)x`VN?+s-L2fXLhdEuz0~^=Gqp#K9D!6Kp z?N7a|R-}QW_-tn52pA+|P4ZnZyv-1@RXNk`1IA`cQH%q(QTLMIipb~Ku$L^w-KMii zbcRx;_tK&q-q-I+=xXx>pUD{1ie#h5;W`#h4Dc+V>GvW9z4(l>bUf@ z!P>uk{Do!BQ_mEMhx{2J*NnSgj{9M$*z(4;>TYymB%kTLTr*gHwU3YELC}fbn<5S& z5oqcDeHJrjncIWgXcxA7(GvU6SstTVTyLrpW4uMuO`;mDxy!^ffNf>PV63%uB$n zFEr!B@+(8o(*Jowl9Q9-Z42{(rn7Q|hcM7)lf?QKrsS^-Xo~Lv$_{Ed3+j^My+V{6 zOAQB-%PuzcoaPTc_!fI`m1I;|XgMG&#jn1o`)oUknc?s;L%5VfRbydhTWny*t3;?V zk=ebNdYfR^t{ppgKAW8M!A|XvVW;U*!sAWRlOv&M8DyNcXOETjUZ3m%n$+G1n07qw zE-w3E+9|lV24-&31)+=gB1T7_E@SHE%?Q@IrLstM$XwkF&BC?}SN_v8_SL*v#eQqI znIa`Q%j^fqSa;%jca+QguSRP^^1E+ALq}0+{QPTmGm8qPaj#GK!HG;60gzUEh4e59 zUuPoN3B9&9BMk@V_C`{BY@_6nU6ia02M;W5bS~A5aHUneYGzFkH!DAE+6AXW$@}H> zC-~AL8;y|E%|Q0^GmA2By$wVSVloeX_rUu*R~AJEXQmvDd1}=?5@375`y9`#9hbSj zEJm?owJ^p|b@1Y?+Ii--SaW848EO8^36ZVX;_R8&EB8KLwlCg_w2IEq5}ws|DJr=u zk>6MxXYi!as~*)T$ha={G}rB5CgIy}X~QftgyN#Mb@x9%%Z`$6=y6&cr26d?_$~F~ zFFHL|`i={3j4h251VPl-@?G){&!Np`3|G4LwdHNn zIdrp*1L(_HIHV&P>0vA(m{XW4>SE#I^Fry1_i@gx2$eW9Gm}PC!>%kEB>Vo@{;VlO z&)#@F>^PD$8e58kv+u-v#$6K7Z=tPa)>(oKDjIAf-jz4tf^!ljzwFae@A!uoj2k?D zp3>i-6t}AeUUa@aRx@GVVk3m)!u($xopo4~Z5zf1Lq<75QDTIGj!>l8sDUV@bc(2? zfGFJvBNP#b*J;1`;tu}fv8_B(h>imBQBVSqHS#lvcKQuKhudslZE;% z-o8K!8}~sn6dBR82NG<~hScaevHWy6;hurSHoav(Lz8hZE@A}*9_Pp`6>=V2m zI%taFb)VfyJrpvx$}b@9OxLL{MYs`aXOFMzy}<)fK~7hDwq3DuTWMn!$*(!uG#7SVWW0NW zUSo9~Pn;@Hys_?Gxw*NsXQtak(Srzm1lp(%xh(Y7&iSu@Pp|!G%Zsm!BsT5Ebqpxz zDG0m}j;Bx7Fu|R|W%L$~J^t+zr5{1#9P&-*$l{Tx;V~ii3@&imWIy_OvC2W934xaz zsqQ688^UiL){yJfnZ|rSW9r9=XUFHQ&h=g7I_GtYO$h<=_7;jsC$k?ytOELo2Ur>X zuUDWDM8@CK&enbsEgw~Y)`}{JBwn3ZR|Zn8^(%ZkZLJ2q8v+lBa~Hb{Y2R;x?)By~ zq>ChYfD@LMA&KddcXiE?5I8(AJuM)Ank^fwjvdg;DOcOmbd#=RG4u2Z&a>|@2~p)zqa=hRMFVNySF=? z9G&Cj5YKL(FkG4?7GU+yS=x?mC?ijJ`U^gKgo;@~2duLAXrQ`F6^f;*q1qkkD*U{# zE+njEz-epM2=Qs1N9yAE41Axp^=lty?gDFS(??9=`cX=ltjdKev;&$Ojb= zmq4?Oyc|B#K#PW~p%2f#52}dbgKCFnY|I->l-g7N0uNE~jU=x3Ne_;eMn8FI#C?c> z2d_MM>%#=0s_uu02U##A{P3HJ=}4&tCnm7;vt$<)#c@RTiHHy}Ic_ES-=ZNM5x$N2 zTSecE`Pr`0b`Hf`z1yH_Vfm=s8teLtdHZ_n5wpV3zOiEKE)U21{!Hfh*o0yS#~J4Z zjb`<<`pn@@g%6)_Ps6fjvziXk`N<|$7fAaeSHJrzuke?rQ>z88yFC?sB*Gv-3E1Jb z=@^)NB^Oa+T8o$<#?D*8xmmfm&7D#PfX?2j6qwa_^|Fpx23TzZ6kXIGzvv2qCTOkR z_BLlh2KdSd;t z0B`;t2hNTGhF?;cA+F67?32x%BmaWzPl=jasKpEu>t92LC2!XX_-D{Cp~DA*8WyrB zweZ*ji3=VvKGj#h5%57HT{@eEU&6lpDEVR3i9Z{iVPfG>^{!tzq7X+76v6aXZvGn^ zLvn3(1z`ev_TxHy`n2@rN0Mi3&YU69>)Cnl;QPk=O?B)cNN+Tc108rO{EM zCVH!z3K9*YBbq|@CU{g?g0?3NLyLe6HH4wLg$B{XXH z3oYFLYj#ASHxAl8ifpVYRU5QcEDZY7^@oXsS{zv~{BQ!9SJ3{Q&#FNrdC^VrZ>DLG zrRph)sm;B&FVdf7YJ@*(3lXyE_*|7vs~}~Fozp||po#^QN!BiI7mYKeWa0X=4Qi4( zBpFK`w&6fe-o(r(UI0FsQz&gmCI(1F~K*SP01+tv2=+oHXr+2xN%lHG?or zv2jW$Pxe^r*)J(tDw#Oxd#{qcyYmhfpoKEDYY|t}Ligfw{e_bQA1|}{VE$|tEYujZ z+RgGV+T<1Tixocb4?mNn5N4x-HhwQH^_@Ml>w3UTL7p<}SEYoag4+^*$op4ogrIk> z=Pr(gk+w|uOK7~qK4`M{a6QYNkd7I}>KGla4mS5h4J!}W0mC5oDbt=o&M3=J!YP3# z5k7LsXRGUV@L75j9@M-Y?yqA4{dCUaJi{8upl`ETdwk#D$nm!&)8n%X>CtB6Yaic) zBD!Spb1#x=QkrH(%C}CFkZkafS&)LEB}y~#G|eARR)dG0-ffa2$8L$MoOnZcz#%o^ zo{g)JOdG5rOl@A1-x@y}21NK*!%XcH*m2C^14q~@Q92O#?p-}Kf|`LZKn%G?#%dXe zuC%p@M9+aRHso*!ri!3ZcjII=o7K=%@X<{{qR|mL6WDL5K7Rn7;Xg=3##$z`65P;t z6BrAs2I43;*VDzkm?2JK*Kaa1-d^wp3er;*Bq0iu>)G*SxeWOz*3EsJW9lN?&zK9b zH(io;2Ue>)>r}8BoQVltZ$3(k5B(1!^vQ$frEb66^IKja>DTjK zrUDIGQu73KWSE#qOO_de9;o+c6Qp3O6B!<)luL#^;SbrdO-EJbtx~-*conv71>p;ke_nNs0O2SP`MnT|QevluUHf$%BM{Jy24Qm)t)P8hxACL=_>hYl26E916;j z07tJbxjrOnkmz`hOYI6)Gwo=PcgmrBwjLL}BVdAKy_#PPb0NJx|F)B)@LLYEYGy5-iezV|Y+Pze^qzLwP`E>!t=}j_b@8k_D zO9{fRXtrnBu!bu+jXFE zK-)_iO4oL@h}E*zS1lpu7#8G}I^s<=x}-y0s>`=aGBjaJP@!{DUb_4BjO^v#ZDg)7 zwd&2W(sl1&K0JBzl}15f#0OV46|8?FDf9D+Z@99Z{JuY_*9q0uewV3vd#0v|9+xMX zVA2DaHAR1E5&Wmy&|{h+#1^+h_f*SE`VpE!fk0~lKiFLCx8Q*zMPU_N*)^5WP-6(4 zu4sr;*s%FX4+5W|=gM0U>7-jAK zRx46m+*RcAeQFEFgtz5ab;zkG-8QIznh*Q@PqX;64)0I3rKBai4Eb(s&%PNeA|<{d z0(ZRf8H#?IL<`9N2Wji`GLOVj%U3X89_VrNK)h5q+vkitb9g0jM9m48tj#@BDLoVq z6|u7o3=NHeIL|?TunaLU|@U=CFU{87cd^Y+1qG>+)=~QjUpTyQbM~ zJ~Dl8BBIo<>f5cc^X&aLuYpLP!v~H22g!WXGywc|8Yn1~!GFTrhGf+hs_c2**a{RfRXU^`*t_C1dY7nw~dq5w?RUpBh_ajne9__mR?toKFo9k?vZtNyC0xTWXwojF|5g(NqM^X&QFebBMUYiVVRaE@UF z13Y=k5}kZYsO(bf-?<0)vgslxv=ki#rnZj47}<=y^|sCKD0n+G+a^rUez%gz$-(yA zZUT%kkzNl95((fivCyKNX5j#7YDV#pM-{Sj?9pN?J~O=Kk^FfgHL9k;W-;Aq=W!EW zMw54RUhP+V`gW;1gkb%8fF>O)j7K9g9L>7gXLYX7(4Muz=sEK>S83hONW^O-5q{lo zQLfy1EQABCnxLhbwqAFqi3dT{-Nek+BbLy=ejE~QY1byL@aDhoO}-6`yZdz{m%-B?jPCN99iFtS*12|c#%^;rlB#Cp z>8SgM#5}Eo@Y~M6`t(GCRugQO&l6&YOV$-^)ViaSepP#hI^8xuzr2~lGfVJ}TwXSk z(2v9g%vP6wd5*}X4LGG={|~b3u-3U?1II~*uz?<9VQ$A z*{B|wzZ>fJz4W4&%$KW8d%kz(Fj632`8OnlZ-eA88oIqTo8uXK`;}!V|FB%a2=@l# z#BAx>z&`?)VwruP=q#+~x9C?!`xeK@jGn=gn1G^v!?ggm0I-z(8~hY&hWA=<8~;2a z-o_yCindu|7p2=SNrFAL(#bD7bEPf~1yyUXPsFm!K5^C+o>k>=YjMb5Qi4D<+vnf- zOnYUg%r9&AYBEH4ldJQxG(^zIYGid*F{`}%1D7=NMP7Wa@rn*9F~eQGjqb}$e9&t_1UTkH$}dy zH}|!CsF4e~5{_Phc@~Sc_$GBf^wP;4OclF-p`s5-1h@;I$n;@35_YUW)b2tA!`6Wu za5c$>uQfAxv12`puZSWhp9^I)4klU6pw()dj?3r}Q)WAjt|0W$70+S`Duj(l`J3^8 z6%p06B7(VhRIkUS-~5{6%bFh08TU5n4d!Abo?duPxs3|}72o-2=W^w?+Ec(q5s zc1gVcr*{7Lakgw~Fre$aFEJYYr_}66Y}-Dk43&osuI&rL`})$5=H2q{{k!C`Y{d$J zoUF%!=ml^k-c|1s_L6sbC&E^ZNO&iVi&U$yiwEViA)NhQX}xttgn^hQNyqHq-eJgt zVM@V&kU}IrJ8T8}?r!gtf7%<1bGH;DurG)*D-zD4=}&t?Gynf+KtqEJu zc>CzTEkNht(1mNZ2+At&hdnq5Q9H;h`fU1zGf`uIXmtyGZ-<44AI|tH>fAg=xWtt> z`L3(C@>y)m|911{f{93IdDp3FZYum52`ae#V$LB{<1vZFaOJidhSPTXXU@-(!Mdnx zC)?mMbpl6~ZYzo7BR7;}ik|(%PjFzB5oY~)UB&^m^M##^7?eGz%ZCaid|+v-8^l>% zKJ5*&xZpE;qP$<|szm#sJcY|+%ArG+ZlAJ-9pmn{t$yb#N|3EP)3(r}7GBjgP^~6b zbs6tT-mBag8-AboDj^R+4Bh{09im2Aza!f*-BYTyI9wF;{cj<;n(e)?EapW@`_9a# zq7|D#OMfO>NiVxMv7y!K5o#a6PEu0J`=!~=LQ;Bw`z@iK2kCw)P4#$`Iba`Q&b?>g zZ11-5S?Gd#JQJWK>a}kkrPlIxF40W-`TY<6h(4y#hXU}60h1TrN`wKwRp8gGw0f)E zO?$}^-K`oXF`5z6J9T;7H4(8n3}3?9eCb3ivM`JUt4gUgcF4HSm2C)TA7E8*BeLuV@gM6+=wc19l!svNq%@%>ug_wlrd zXYd0PzL3+X)P^8lfv|?EjPs`hSz{p7L-0wXY|JXP6tvJ7NdA@GKbMUk?%IanyB;S8G{?s96(9LrCPudN7E4ngS&7Bfsh`Gzk z<{tI;Slv%Yn@^7vR}{YBb&_QZM9`OXg$0#4-%Pw5=-_p{RHPia1BeZGTjD$&z8Zh$Xm#Zbr8fQ^Bi4wr z`Gccz=*Z#?VSfjfMBVwtag5Dr`tRNZ91VLGyu%BM&DLp@cm#;S-t#Qx$J0T*)f>UD zn~hSX28&b!Uc(&AtxtxUJg8$`D-#CSUh<(F14|^PBibm+r;a1LA6LNZnn5x#2>a|~ ze$(u`+5gPkx_agtB%!!CGpa-gbu@%*8<)nix%>KlEvSK(xs9@mB3Y0 zHvD1kc&$aR9I}7t&RdJj8qnr=uuge0pC3Qc>15~R7+AiOIq#}{Eq7+Z8?0nz^)zb- zr>lm{v#WIDi@H)1m!K%SVAaE=z`gzr-H|`Na#G6;-C|cqB5iRv4`7Wny{_jVHX%#Q z{13tb&PMh5Uu?T;b-k;3Vf+cI2_YZ#kf>2&<1z@yx{eJK#~y}^st_N)pBj6j zsc8$$zp5@Hi+a_WW;KH9jfWwLC38ONWfZG;IT>K*NXIg$M6p=)pG>*cIrIYuV> zY92BS7`N4{&Tc!Ee|MecrczqjeK5-9zEf9Ua%FqLjP4Id>7WhS2>4WxKPI zl_%yPM^(R=y7rcQjgp5wWZj>CG`^5p*1R~*&HjVTN+2H9WLq%MCDRFnh2`ra-Ql@q zt9KY3U(g%e2Px2YU-`8ROS-)gsKe#dZ zsO98-%SMRcJ9pmZ!<6ftSDuXvaz;di4~TGi$!5BYlrnw*Wp#a_)M82k@kwNtN+=)M z^I0I9uJU7~2m><{B^10g=a;I^qkOk^@8IdCrSG?x_y3VaDEBLp2^K^BZWZjed&~^0 zZc$&;v>#at!bMs=(NS~{b?Lx1>I)f{PVHAUSj|VRsGu^A%|3BGXwF*S-dS{e24i^1L z9_#;6)S3)~CVUN3uX5m*VP%BdRzo=V!XDgF3mBrTLvxx_444M1TSd-F zp#q!vI%)dDiD{I2rBmd7FrCZ$(h}go^GV=^GqOI0KFaJpt-qf$4UPCw}Z#-tFY2$)f3b1V=3VWO1cR}0n`DKH*NkOVQ&-F->bHW4SPg;Wes9hIRX&y$wj-g46Rx@2azCJ*e0Y1&b-s5vvHbRI0otK z-?XB3{Z`p?(ORa7r$RC#UFvDMmy1|W%?L-D)1ra@!qr?~Uy4*Y_a$jYo7c3nogv|E z^lE>|An6tTu++ruOSka{TS94$RET#J5ad@R13Kw{!M(JN1U`ktSqR3wvRIWh48Pxu zrY&!7ot`9m>FhkacgSR##!F%Bdq)iEjAft1F)|Mer7=Q`He;84)g`hn?B%l2ZvSy5;uP!{}PZ&e3V7`h8i6hY_ z8+L(0W85b;V_3DtAP(5ojP0k+E&eKoan8bLAdhBwMUt#|(2}pZD($5#6U;2cIZS1* zMz4cq#uaN~)Gj=Gq2ccc1sjYl)-JN*RW1Dq0J?DOvruDE;fX6Ofn2#O|3NAn2S0vC zbhp9;ufIpoTbB<9J*3-U?|w6t;~xhL#t#_tfb#s-?Zw;f)7C5Rb*`&C!+bOP%jOTO z_Z39_TFzPPuB?@P5-r=@*jK)^4=nyt1wC2rcP@?!1boWB&)}1ttXX(a$T*Mp zQW0zowG{kA9=$Cfk?LHCGMOCJx}cjN6uQd(!#ui0887Xa;I)hY%_A~c=T$?RY&%!8 z6sA+97_dHdA0yRzDS%+N7p+sBc!)DZD@ZzDW3xRWBm-S*D|xA#WYg?y%94ILjYrgl zS8!`qpPBA|8{udqD-=@WFujvOR738Il5m ziMdX+g!+}nu1re_BejhcweNo6T;^2$k-5b@#GD}UiYitA|#P}4x7n^s`n1`o@+ zpi~08k%@khv^D1fC?A;U8);wB8|Ll1xqXw{@p*k=ZE6_ zGV9Lz#vqZZ6MJ#4qLBJ##GXIR;)1iI_>DIP&)^d+!hynpJEvZjy-oyP-Elm@#K2AynU6RO`+iPXjKK$nS_Z5QHl|@CL*1RN zOjv~-fiRnB)mZbfkS-kncY^4~DW)#GNM0CHp#D3H594IzmMHK*(VZ{5kV@D{0p@UD z)ZGuL-Iy`o6$!498+2*FN#wV4I+I(KDjY)ftjT27JK5Zgk&*ldo(nXFjI-g5xp^NY zC+w0U!8%2r)}9#Rne)xiS`ecH9w{hVopN+OsUjnF1<4EWD^Tup!E9(z--Hl2?>0u{E$4O4mT zms0e5Z+@qFSOY><7l#{VEXP8jBN12QAanFf5^!q%jS^^ZA7IoXYC|OPhRO-vn$sFW zQp!|9C}2IBW^%QrLtLhT&2--9bmE`+x{VcaMwDn88HJ#ZMQO5W@WNOgI+h`!u5Ekg^m2~2?|Ssm(feu?(?9z< z0mjwRnvb#@Dc$I8^{L!RT~n`2XaewPIg@X54x*j4zkNG1Q{V(jhw+&5Jz`cMNYw@QPT1&E$lkV39lf^sd%fBV9CywC9$o-)fzw$=k zi`~k2a4^KPYqS$vYzkZKHox;r^FbRehD}clwHMdPra|$J2+Ea6zxjx& zy3AYhv7`!}UE&w8aovaa!-Z`^5>6;DA3d^8J>DJqEyJU5FGR{DSlPIgz56YHKCxdJ zuyuyCLw64)d515mR=<>xpgHEN?RkZL7vX%DoeWbA{HLkjk*CX04eVgrkA%ll zcx(|FAbox-^qS|E6{XmbcmMonS@xe~Z{qu0e;zxHOEnHUSZ}k_EI^iop-jGk^#4r{ zJyrOB5RgJQ9v$s!(@7WSSe_#%!*vD7dD(V16!k>FbHxs~jIE-^ux5Mn{E9e}i15i8 zH0Ho~JICi)8;`1^kW%OPVV15&v+A0UHzg!4g~#G@QuIi5&2}#2^gGHGGyK@pi@4T% zLGcu^UHtfrc+2H>#MUnMRgMWU))l7eCpd*89J^JPSHyAc#*k(nvIcq>o0o0-^x+y^ zn_BbH`)qUn{X8oKTQtDB4`w9|i5Y9aaM8PAlA%N+Ns+5s?32yiCG412`MS`|VL7l) zWXy;$O;GJ22slO`emYHbWf?TSkpF)F`NNeHl_RfxK1?I`bAMAT=Bv0}U!Rd>Zez%( zJ33#xY~v>UTs3{T6$B@T^XGTW)P6|xo;gvb1;nSjKW~iP?;(6(MP_|E9ldd~21W9% z1Rey}=Eq5`1#LbAC!xC4m6Il<+g`%5#6zICUHWl0Pawhb0XT+p5HeR!-CS_Z%(xVh z3uSnm3oHqT$bg&x`=2cWXfs040^%^y^fn`-l{cGbfB7ws zUoLV~uSKb+HR~55dL^KhXeg3cf6|jBE|jkW&YuKnRFqYj*fKi;CDp4Qp1c;Hr&MWp zI&gU6`hHXCf!Oa?x{c3jX))c~KpIRhC6; z;*Rde$tUreVSmt(QJ7exuF?l`Cwf=!Xx=GDLx|?fn5+_`Z~At1?`D1kY0!nEyNzeybScyuY~v1Zgo_iR)H^VuIF z3^X>OY0ZWj(yw!Zwcj;-blEi23=RBAis%ola-P@j-@bnz17xP7Q;~a?L=EUa-R@(@ z5a+EovXM@_K@@Vv+=F!jG@b03TV6C>n_7LL9R(F3X1jPElQQnP3OjnCF-!YlG6tO< z{9Ye+Lye0&()qoAc zQNU&HC99_62@q%hh?5rv`8ywVk(%e8 zFJPYlD5urWXfLfya`h~1(9wL?{g&7p#I>2GUY30>qCs3p6LI~vxgwUJE69ENCH-?-V|R*gKE2i^&G?z-Bh zR<&GDQFZeEB8J#iKnh^*1lvpYBX!MR--H*uf-n>AukSegV|(#&H+Y#`t$%&+%Fu+Z zUU%R6yv0&3g=iBNzdPj~Fg(;Hmjv8sk$L@TYBD_>!OdU-HK!k~Sh4+<@={z^X4ki` zt3jT3tYLE~HVf$QF#fIeUUW8Bq#DRvoJMAK3?WHdqai~-hB|zIcK!RopJevp30{hV?!O@ zkt5;3NY{2AKg8b@U=%QR!XaWIaOIs%_5LYJfZQA0KsM;ab6>w!r7tRIb{cdrqx@0j zJadUR1k(5|_@KGCQHJ@__p?2-NdQDPYS9$WY3q;VZ5JpDE7a{U7@E!3CpZktRnx^l zc~CSLH}Zlw+^ECr>lRW4yGJ6NmYu-AL+=9--4p_~4{BZr#cmZkK5KmRIG;~4-?*OX zxJixtM*g+NrpY=-gwR@vLTRpx_Y8Ln2V@SGqwVRT(;*64pm;Ce7((Xv7ntk+RMR~^mzHX^&|3DwUgjj^zchJ(67n|rlyuh zdshE-{|#nXEOX{O6B;5IyBBAYN6LiYYmk9jl^HXV(vPzt(lX6z_4!wq8Srw8Bg1&z z*ujh7#<{)EWW#5(QH8;dZ7P++J8fR_tJ^5`7$M9AX@-glr3wab<~vpr61jMxry^L0 z>{&TWQwla8l-{o`|D@gU>iy1~=sD!0zd{R#ZI&cx_TgW;Is~$l3}pfrOa``iDn~R`vo^j;y!Ww4 zKrUoMZD&fSYMlF|dimWrhm|bQJf@lqhccF5z0=C7EvP$BCbp@$eQ&7x?3YRym3@J& z#Ns&mLMpzcZK-oPB4C-E2a20d{Q@E`SL(~wXi(r!5*GC@Ee~j{r$ja#r8(=eu17&s z=`mW%w>zw)2`lms&4?D7%UzgOK4O=>C;Bl*mhRT^UdscZk>pZO&m8%D)u$wOQ{Mzf z6bL}z3jy)V3TN0jTlEFmc=VG=X(VB?dVQw_umDhM7Y z%KaHn`dr0xdlP0o^Y%=icx(x{t!w{vdcR92bk5|TK<@DkzfMT?gE*b)0;`tG`M>zs z4RZO%C%ciVkf8SYCHK3!1malO&nwGJ{ftahw#4o>WME&W}S$U(N|!wO@88-6bx zM}~TWd0`ph!2OwVp1sJZwr3&Gfke9X`K)9F-O;5)X{>rxcWGSCy_ZYn=|W<(^@iBE z;lX0(hCZU?LwQ^i&?f9aW0j81tnrppKSf=Q#gQkwPDtpVbg%tw(vI}F@_Y2c66Vgjq6qffth~{Ha?i=TbgD;; zm41unHKx6%s!>!Nl@R9U&l>dpi87ZS3g9Y$Rw^iY*Etl?kxB^u!dt_8vYCp&d(XKQ zDcRvMu`@^7*^fqiTRc!eV+KN+!EmM+(%bU@=*^Z+(&>oE#Gu)lO?kVt6S^jS$kLu) z1Tj&XAfpaYn%QI_`@748`w=IE6J>RGjtMagL=B$#_QR9Hq@LR|?Z?f2t|s+I`TlbO z@2tUfhG(A)aa>$-Yhj}!h59XE05mJ>G9eK5e{@tIRpmJ{X~zru;`oo*?>Fy;J2pW_ zdH^o(rs!y^5l`FR-<|1n3ht>oa-XHX1KeE59+(YT7glf)<;Lg^o$S0f?KSc^+KXn%}6R)KRq z`FiBibu<7dy(_P1NT(>S$3lp5HoA5aSUy3&s7 zt{$vbmAt>bo#G)}nSgV_!;Bp7oXVrJ=H{Q?b&)*%_FH@8+vjvhXe99N9f+7nrn^7q z)!`w@EfdFWC<9UrEgsGe@FlTs6`;jFKm2@gSGBn|!ZwYB-P^)lFx8)bWAKg7`iT@X z3$w`YUA`4n1r7tgGi_t71ZwGzaLYq{v#+?Y&=7=3-EA z6aRx8hLqgbQIR{jI4q~}Ou!L!0xw5E@YUwt;ZIHayd>eB9KNQO0Cum3E^j8YZIu;u zMX9-ttCoIq24An~Mg92GgqeL)eA(w+ad^&DEB&kXIp!nn2(lM6*$_PsnqZj@wO&k= zbU9&kzzRg{%yi=z%VrO_Z1_(3PLZ>GrNn8%z^}lk5+9!4eGM9bp-YKy7uBfK zNqdntW?G1)tVjoxK*dtn!g%bmqk+LK*&iHR7%)R@wB5AHs&gG?GjkS3kl~`YKbMML zQ_O+&ZXuV5TD3MDdPuAAUdj59_Q&Uwn_GAn@vNW2r%i3JZqBQBF*4CkB|AR{}cwxm>eAktFL~0UyR2mm}5VH z?-!eDN@$D{$HxRSOm3M|7FtUE;DL5_potXLLf&H$aPuOtNm)MF;gck$eIORP3KP{G z0QM>Dx?Yd(k<`PmH1ETs`cN--0@alkIWj){hoZAHA(JBZ~4O_*wA z&z^-ee4>!#B|~iJ5B=2NW%Aq1`oYp!?`J+T$yhC$fC^@ZTN+R=)XBZ*y+NTNDMM+x zlTGdaK~x977ip{bX~oz{qxZ+EWKHIrFL0N;i$uXs|6K$vG7L>3Anm9ohOkvf;}xE} zbVs1=(>2vuv|}Iea2V^(SeSHo&et{O$v;6T!XZ4y!EIn@>;9|_C?6%Nfj&(Hes6Sh zw-E5{(bx1C_6&8~u><;-{`oUOcDjwLkOiVuK zT-P2>jh2B$j`IS9)+tpsmuk#lDfT|)WR?lsP<= zGlg93^b;XMhCvE>=5%SQ`#ar^7JehQgr7gj_V6V@e}gINm9Oelu3mrG@V+9YPWEjb z&uPxe$V!3}pp$FS;h;5eb;tH?`Q;qFE^E$&{Ey2QP{J!zu#Vgdxq3<%k}L9AcX9cq zv&4wGm)-(a%QO)#v*A5{?3m-%a?EcN##Swb%|Xq+Er<>-N6@97ia2EN2*ULI&eB#) zY?&cJx&aCC@MLgIhX3WXZ$F`rslrZ9(whpULeHxh-zDTX zxM>#;#_1OJy7lP>}ifcF~})Q$fnv%wCCci-g~&q{P? z#`ph?QU?nVcjRbCM}xBO+Y5{FyP^TR;bxm#B_=%3>SSiJdd8?i=@e_eM{eXtum2$D zSRka}xv)hM*Gt)i6&Tp0&w^X|<=onbuF}8d0qZ|xwONh?W752d)G`o7h@+3lbU`L; z*XOq|;P;>NYyoOk1!s<7fD;>z?(n3l47sCGY{I3lr#F!YE~~qGpw+jim)Imh6$Fiv zghC+pyzO?7`RG0I%*c#a2$#)nEmONwiApZDnBxs!_i6>4724E&Y!jnDb3qRv-!W}H zPn1Y0;Sn++xYWyDd}R$f$h-qweRa`A)o#b z6s3od#8?D9hLoHvz^@2xm4Sc$ zi>%N74AA^lPnAUtsR}t@a)Lh*gl(NBT*fJuV{cCX@i41NM?)LcuKRQWapwI~J%c~* z&Q#*eYi)zE4iZIyt;^SGnhn&90>H%)_ibazZSj|? zYvK2%cDUbI1t`Cre&O^e@2Y0!De@1QsG-#*cL|-1i-BFsG$I%uTi@lmM!zIz{Hr-~c$vRvL}?HsYx28iAIQ zF$IA)Or@oYb@|BE0lDv`L_K*qr?az1w?*aYz1OcIAVSB3(DLMy{bq=gU}LDjQI$aA zeJu1V0{CM=c1nrQTsY_#)KT<`mzvsdHt&;059M3XH;BZ=WVfDdA_lc1pu5A_hD zni^y%YLP&fq@yPiN^M=}t>(oQ$!lE!RUBLt$0*tVLqhbT^c;fJu*2ZK^iVx~n7UO3 z$KJo>x1PQ9RS@$|nh^!#br`EZc58d-(m--oAn3@iC3*V!=z(oWNZ*&}WHntdvLMO| zysBI>pnDFOwyA6@!%FzZRWog<(8utGsnoI)c%727xcxXtsuU$U#uR)qu*>Z0KBP&L zd>EAg$mCm)FqhsjgDb*^xmzFzfJ`{g@kdoab{D&pfZfbY|IT1n?S40Cc!4KwC3aw9 z5kB7F{?EM0c|^C;Nyz}F2 z->BK~(mslnvX5pHh-PDzSqS+5&%Xx(f1=~&{6KIqQ*pAr`yRIR^b-Uk;j5bZ8mKTA zf24o-@^VeNs2x_KhA~W6^`QRnyVkE)RW9~*dS(L^{os7RH8U{%>>Yjp3zx20FwF==}Rtc`AKYbpkXBp?X0Cy=1^^ zPQ2wc6=y|V2%rKe&%GNp*+~|9k6HxZmLIyGOD%MaGExOdvVk*;W9zYF{B5D33? zbyg)7yA3>%fqGwVguV<8cXpESLaT1={k=7N36Kp-U|4TW9yZPPMKG^4b#yKkKg{d; z0s1C;16G?&@qZBJGsHh9XcriY3wu+D_xp*4+Xg0anJlh7)11vAxhXTSu$OYJwShA2C2?d``|a<}^?J)H$Z z0GQs`To}^X&^u)BRg>6R0*AI&;}7#VnDDyp=sGZMyuNP~2W=p}JzXYCKN5=Lz#!ht zZ0_H3{u0UHb4E&5S40?*F@2{`QLZ2V6_`CZ&_~<8Pt|ntibX6)isiWZ{JPK1hcOQ3 zvN4X`cY(V!GT}$lo{yUDQPpSbjh^Usa6heOWn>#P5h>(wx8_<8pTS(dfN6xaqULVo zVc1cX@I!(a#mEfj0@^fr0A~0~*x`3orIR=gG-`E4;s-M;y)G;u7zt2Ux*Bcv={(J9 zN_2-0AVa(;Vcg&Ly|@4$>1-~;N%Eowmz4EMvgo?rvHh6AKG4654*0nO4zA1BDau7B z9aFSy>5DW)50~IaQ;{suUKe7P_WnoGna4x*{eOJMV32H4gRvAfwqz-0>`T_N?@JL% z6lRb$dsG@@*EaTDStEoH86;%SUPEIiYu4}Y%;)!C9^E^0=ic{upL5Uq`F_0s1sfZt z6sdQb_&-Pum5||yl#OIiN*q-Ao$;iiZzJ<9thp`=#+w?B>6KA!ieENlK}5EE)VUe5 z4hpQa(oX7A_;A%1lct^*tLo-lLF+zb*5A`CIWZaU4G(i?;C;@Goy-JWGgQyMk~SkE zL|Kd1a8h1uaw9k>7Q&R~cOsEN;RTXkBfNwkKkAhz=#%Q-tuOC$UmgXIT-uQSS3;9F zxN^vK!KAuXA_1@35y{vkD5c!oWS9T}+TQ^{(v9Rt{WuW2auk<>&~ft_9a^7M zFLa&}`e@X{s|@mF0VO=^tR)2~K8Z^Mv(^svlicY9l&g>H>h6kca%USZZu;riaBB=x zI}IxeNxuztZNsE_W8<0vl#PnYo~w&Bs5zO-Sv4PO)KkEWrO9e(*3^^ka9RORuP75X zzT8(?qAwHT&k{s4Gwc2*uVwlZMHt$-5U?bcfi}Uf?N`AaaCSPsboi_SD^Atx3G-2% ztE$OSo%^+ql;zFL>3Y>L6ma+W!slb=g_NZ;ah7UpD$5)#JF3&L!I{{gA`B!F;SDm~ zvdPAKC~pceQdxS)v~rUBX;08b=w4m%rLR+phM5+1o25e2?Poo)41D_w?o*Vf<*ObU zfw`JI#g{81CKWS_N>w2u@>cJ4`_i5=1qvxu9izYd-WKur#I?}bs$S~`G+cU`N1I$l zYs7^LuIBve>669W`x)8#3Gm1fd15yDk=nuWzo~=yId88|BoqXx2rcWYq!!{|AnhSU@`Me%>U|}Qrtlq*2d66^eY_mnI+jqv1URDXy`ddiAClR+t;j7NF@GzC zif%n~$MzkjKrf(hM+Z+bLZ6(U_*>?0fLi?#(ba1>V`RI~b@3U5Bd`Sw377g?&rM$qfP=(uuPsF+@UKm97qf^!D9|Jj)`}yHb4kukNLitTuAG4@5>l>~3s&DBp zm~TZ8fr^J>d$dT-NMaxko$^h*4j)&jgx>)=|GYB~V!RDkc6yb+ntiCTGk2j)GW@MO z2a11Vv@hXIaIgnTtsBihSa21+wLn*I{1cexuu=?ezH@Q$NeE#r-`^>u@o5zY057P$ zY06&to*b>z2 zH8rS%UDSh67QbH_7$!*j_-Wrxi!L{*<+A7kpjUkFM=bQN67w9n2xKeMr8gQ2SS=r9 zes@=86tl-93j@jI>s>zGBEb%NUZ6{(cM|g<$;V&ku4qTneA=IgSiTi~<{h*^(Mfe2 z6LS;?ovPG0Tws+c=h~&i&(?HC_EZq->XKnr6dMA)49rbB3e&VRMqc}p&T5;W`LL?e z7LP=Jc=WO{JI?C}X8g`kNRChG;Ed|(^~>~fHokqkv0I3N9ZIPeICd}kqPKK?$qeVl z#mnvKS8jH4;cYb~Vxj#YINmd*u2nFqrT0Idq+`Yf*-K;cmD= zGfYcUPJLtVojIv26{#LF#SbJ#B}um^H#0pqxXhg=idp(7DIqN)UPFUt2eA0q2SfAorkYvYx+osjGLGl7?O%!;M zW>jrg{ZgrF;L?e`e0s@u|-_ zWgPB$_OY=_r5_@gxEdni`&YeNeTW1-u2Q*IiCRMM^Hynz1Y($2r+v|abpIjGnt?Lm zqVVpe*x%MMW5gT^`gW%6qLRd)--^jnEL`Dc1S?=&mhb%!T1j+t<$pTziIsV>rm67> z#0Q1yC-0kE*xt8CI*WfOxNj!Ggt|2&2uD5=7*!m7^V( zcR^C62P|&|JpQGPAz7g6fMmkdphE69^fU?$2b+WoKl$Q|O6?HFw#9d8lN-=|zmtl=p?&*(QCWn!xMOm4Xbmdn zmtIYPrPk!Tmt-OvYmX{F&UW{c*b?sbZD+Q4!C9B$odX|R1u(>Ms{uj?fah-iG78)ALMV$iAokTb)LEqh2pQ9JqdV!%3AAFRg7>{ zeLSe5*?zimO8VAKB>5o-!-gdKP~woee}kARhoUs6eH0Hw#S;PwFag14HW%7hC9kzk zMZ=66Bqk_ zne*t_hf}z_#Daojm#_GWl%bOR()*JEX6mMVl4||W{XB6}A#rF`;0m~;8q+v}jfO`9 zayD^@h!GCn-nsB3&9qyS&6|NzSXXM`tiuzMb2HiN;+F(%xw$i>qTf}&f1BIm=^;R> z`6Si$n(w`#TyfbzZ$>A%T6@;e-x=Py4{*IJqK8dY$|X|m~l$mzp68gYU{E-`eV_`4QD3Jpu(G2VC3utt|?|;M^FTwx$85ta9_k9c9{@F z?g#h9l~K*_D^jvo0{3KV2H_`X_GBhAQs%%!>A3zLD| zN5FLt^aoh>;^N;DNJHi>%=Av$gNX#vk!Wi;H_CIc4d8gfqJkamj!@e53kY9jZr*2Wa&xi+jpU8)FNfLH3lAGQ`FI zrw3$wUKi33GQi;31W;KaK|~9QFFwpRpjQ(a*(k6JWWEsHGEqcWay$^Q;uC@HkI&Jl zgU*x=<*(AuVad@jG+$p)p|lvQN8{XoxRI_Nq--rCmpUk3L6Q78umrEIE6ginQToCa zhy=Iv?6mf8&T>IAXu{YjR+C`tv~XxT=>m}BnFn_$5-hBrb?gt~N2;#|L1y#ZH3@?XRWb%_SeO-Z5Nc7?}XG} zQjuMg9xv`vsuE%pP8?zz6HZ_)>LXh|@@wyI#4{(TK1J>Gft-t>1uX>)*5WuG~MpS&r#Db;1elvuE?X z2%$&@a&glVu~LDQwZYeXF4%7MNo@utL`;MJ`ElQ(-dj^w6(X%8k4W^^IleMt?3zfV!-b_UPe;{9&bWJosjo{!{l@J|I=dR5+ z1e-#AYGQ(*@rAVmuj@YWhr{}J*Z0j{(2cV&!Ufh2d0?WR(xaXXz!yhQ^3uz&tNK4| z^}7SjsQxMMiZ+HS-4uc+mLxBGDt(!7L8Ap(zZ!}c)EY@5&K*8G_XjZ^`59BqE{%;0?Q;Qold{Tj(EGOs@EPyCA=-WxAO1V5$=?7e+<+iyb$1;~XY=AX38 z$OJ>c&J|DGcsw@Cm&HHb5l)jN1-;Fv+IeVMXcn4x_t*Lo?uy|uuuw|`h?#|y|3fNB?6n0Rl|!| zY5XqOvw!*rYJ@;j_IVryh3~v2U=3B)!I9C9OhgYpsB+OPSBG{0WOp~$&-_fpks$x% z_Eo5a-)04K(ZAKzo!vs-z*YgEjh;=t?GMF%Sy)A?m}HRp2lpUU13VUG)t}emYh2yi z#64XXEeCWIuXdYgr0zGkepD8}E;mU}D}@$VITUceiN{4#?oTaeJRMKRLwgljosS1i zP(5p23}U!>ja0=z#KeSvzsl#1oCmMcGzyIKL+z!hHe^N%n!YFeAz_~$WZq-8N!c`{ zCl8Jd;sc+RT6`IiR~e>RH4)+UrZ+NjUbVP}`R%KPe=4>wDA2I{&+^{yTlBgoNC5{; z9StTjDxz=ERz!Hs`y0C`DXmS?A_H!$v1Zz=p{**`rr^;p<_BD#b!?|;xu*Ky0`kra z_b0JX&`Aka&1Mgr5nb)AC%yH|emRki$i%M?-Q>)^y0djy#|S6(0#P*6BwWjSHLH>P z&w-y+5*$-(35lXKD&Un9guAaWC|9$D4U&#u=q%bh<64WJ5m2qADz;1rZvs2 zbLxT87A?pUrUFX}S=@ws{;ZTe4Ey4iM}shs)K)wGxgXN>Rl4zR9vvc0izKG>Q5ZN7 zeyh@(g#JeT?)~1t{rgeo8szGoEkgXwZQ#wbkc{Yq z;I?&(Rm3fbZ;7ER8!Uhq1 z=n7NXI)RUWRKoah)ht){oDs3O;Y&*vJj7XdW9GtD`{<*)VE1=B!t@PpSr>gvom^L~ zd6=4VT%elb=tAMoI^+pjO4CHtL7VX|2o%l=& zy7oYdUhzC34P6rPxWo4 zN>%e3=V#Bhw31Y*QBo}3Ye)F0+ws(c=jv#5uv(fagG z?jD#{w9ypCAh% zE6hs*tvYp0;vrM92Fn_Bg%to(qe_3qD;G_3vi6e&5Mn=D0HjK74Dgnp7R+FT;a5?$ z1BqzyrVJU@}f@k(ihiCgn~xdh5e9Y|l~YWBmGFeRl>89eD3lAr48m zZ%UclCt%TspPQqtY|dbhe>1Z@A$)$id9667;$9{)BDzb7r4d-Lg{~MP%H5QMQsdq) z6R+=|UZlE;s&sj0-9vpL$beb@T{cr54U2T@K0yksJRGIYJrNL@RQ)?>bEy63*jBkG zxqNIQr+pydZ+K}m$_1QP2Z}%3kf`da9sk-`&78AAdU# zRq((|SBKCcrOw+h#~iD>N`_*9W^K@$}&H{XEkA2zfcEAF1)lCqm$U=Tcv*RL&9 zNA|3WOmzT}O%m9yek=5Nf}~u(Pu2Mtm~4r*etKn)kF~b4EYQGC+f5&zlAP3k=i>`} zJA%Cy1q$=rAD=$BOEc>zu;Bj7L6f+9va4DuJ?bsh>(5L>Xx-mbTl3bL4Jdl7=;``-JkRC4 zs(ff>sYegd6QebgGI=Xo+gp!s|LC+>lHtmk3}D;FQ+;*OIY(~~44 z!EHYI;1IWj`(-snB^NGE;%PkQV5IE6eAk{nocIlCi8b%`3_DUdT$CJ+Hg%YLAR zWyxW{^Qkcamk|V3S3{qzm+Z|8bA}2Ksr>(gfXODl$#nR2bV_5ighr-WpQc@Dfj-H- z`<2ijFQ7Bv6nc54yty*(;hFlUFi7y$o8@v} z2Gao@YqFxVL|tdE0wH)*@LwA;DnWr--5c3R%IF|meyqE?&1-F^S1Z%O{fgfRmrSbV zTs6J;Ja;qPv|D{@GRQngYvHM3jU~Prh(%%%k0{fxiwq@QOtZov5CGKy(?;L?o(ZwM z?5_K3G9B!f$KTPk9PB}S0ps=JKIrH6L*0L!Z&aizjJa zzL*x;IdD4AI}*O)9U9kgX56JYgmKQ=Oas@v7kZtPe*7> z>0<3*&5}n#+8oVH=ZG6^-1ix(Meokip9I*gG$GtXi<0LeX(a!v&6|M~;z0cm$!x#7 zH+$^To8>UO*M6L(Wux~$omD{r#<5?$E9f3Pds#+-!Q*C*gO+I`Sy=SQ07zDOV#%;A z9PmE~LD;R)ASnM^Ny59jZKxXQ*LR;a?_3nTkS~m9^sk;wK)i|54XM|oOHh((s>|_O z-FCT#qEO;myHc8%qI1S}-G0nKsHgNBjgUYTA^ko)sxHHbujILc;7>#cS_nSa|6@iO zU=asAU(T7$3P@#4?v=jtyH^|cil#S|bT<%%2Xd!^iHT`_0>{qU zH$>Mnz%Kc5kUh~`=igz78;8yiWgSNdD{qodLkJRgRlD;+dUc$0{_iNynKepshmpfc z6GV!Pxr6^3?@+1@6&eK0)%(M@#c98_tQ0lbx6KE-%9$(y@YTvF{nQXXA?>^*U`48pGzPgLd7Fm0KKK1uEA;%2xayr}~nm*64+GNkA z*Z`JWP)C@*GWg&cr=RUIF?S`J(Eo!dyXoCxIpcog*6C2A{=dmbaY}O$gkYbe_$G70 zKKGaKP)`{u#IrPu>7%PcD^u~3vu`HX@hKlcmyH)@*7I1s5Savl7XZmGLLdG=`EikclHa@KsBv%is$K%#Te^BPm|U69gz(mM!DRr2#M4>vLq`;iai(lQs-pm_Di>w*GI(z8;)uy6N~`;}7yg-gxx+ z4~RwJ&(q{P^3Nn%;Q8Ai3;emapNA32o;1%Df}_?K4gRvcz3WwQwc-nhnnqNg((%Y% zQR$;+)%{&pjZm*-Qw3dukb5PcMn1iXi%&!vMvR@6Vc&vIEL*GJP`5~VbnE6>+VnAQ zB`CpYB$_t8kzbnHB$QtZtv=faOsHpUHS*ZnT@neZeYTUonUf6ZZ!iN1@;wISX5k zU$!REVP*8U2$b>an2w6E&{JaJ+UlfhO$BTcxdua%E?Yd5>|Ha6Z50p;@meb zYKh%`2f!fuV0+T@smPX4E-JkH#+l7cVD`j0OYnD{$E>fK`xa*e*c2!}dl&-P@Zf@} zTnw42jn(xI0YID1Mm#04HghgyNv)+E9*GTU>4VR_d3L5QVhc98CqOnj9j+1HPV_w- z+u6&5)k`XX%E-56o1niJb4({4lNb)1uN4Sjd7nFK!w)r&9-!=G31SkJIJB30UwYLfAxL0rx>lY>?P2jO-g$KV zlZWJzZ$-4JS$KoDVL%u8NIY%aZtakItKTRV|1y4Y{^#O9(4g^L=e4!zpM~DWsmU`D z(w4B<?e1bjVrSHct=olddI80rXt&HCF3(kMP7^^?)skw`|aa7PHUES?|E z7pEeFrPo;7#|C9On;Z?MQ7-6l;M)3=&*wg?w3PO^}vb3HYQ*hw;V4m6vMY!jTL zZ=v|t6)3FHMkED-DWh8aHGk_F_Hb4~JTdHC-ClvfTR)5?HyWr`6*I!|o}E;R(4dtY zF}EoPP@Grnv$HN6A&Nk5Rrgeaf;?(waorG-pa*UE6?_=0ArqWTJo=oGliJcdT%9*` zSMQAm{)|_*Y#sB~&Yzch145OFc{aCxzPwL{ad)ZON7x!90aAqO#I>$HNaEAh1B6iU z@K%FeHZpea9QQp`?qia`S1`vG=R7=%Oqks1SjVj!Gtb7%3A}RL+2fq`m%6iqK5@#b za{0#b-rsXhVBNWSVBiNy0$p4zY zI@D}pPKp|cYoycFq7rJJPcy?xedYeK<#eis(*t0b&}?D|7j(I6$f6Ur`*f!;O#sbc zH|Q0%8+|>$$3s6hZ=!CPZVw4-nPah=SrV05-vn(=Ns#%<3>^Rj-C*ycoC4_I=+g_A zC02A5)g}mqsP)V04gIanwP_D9WcCJbA#uFGTcO&zGT9UMMFhvq9)-+g-lzXY>!Y@i z_`ePFN}0P)n~Ok4yf?OGYt#46@%-LS=^c|+8|2RURlap+Qql#X>kRrLh?c`K2rDU8 zdrepPL>+K%BR5ZVlHhbN9_M}xDs^Wa$Ywmk%?}-q(E)x&f zRKRNTc2s&Bk}^@=JQ{0d&mL~{_(~W~ldlIW3#4q1vu%lF0SX`eqz~!#OuCm{irhl> z4^o;U84b%U`g(`!RIfjW4|wi+webF(UR4tlku6@+cPmpXzBZHD@x8iy3i5S(d6>H> zz7W=F{$|@KL*vUjf)o@?Io@R7{Cjvyt>9MT%w+JWqNSfQ!?!o0aTGuExhe{*xp^dk z<2&AS5?II{45s@tM??*I0KqZDsX7ilo-%Yu!>#cZ-NcQiUW*X}`_Wi?QHp!J@X8%YG47e-qJh<`b%m?YiE?U_uSl1f%Cz-wHL? zWmm?m0pgKACmGls$N-PQri}SRC>u8myg(f!V znC^XaK}?ggKxXgZ@%#e1A*2)M*iq5W7|QD>56ABF@6iBH#@EWC!w{4f31B0ACQ z%iD!#CN~-S0D}a%_sy}YySFzq?Cr8a$W<exY^OBGI%GWQn$ZNFr;e=n z>y*o-v=R;%Uof*4?sIu^omPNuxkN=!^(ghpxDIchiRQZE%PAo_(iw+!0!2ASYJ@87 zrmkhuTi;|hRy^TUuUzO~}I9T24d1d~35OWA@7z3Ag zN>i~n?nIz_)eoni1P`5aIc3AxitZDzcd^tbN(Kr|?8jPChA>SpKJF=;?^;f1tK}w_ zk3@f?sq4CvLACbfi9>4?CgT$n4`WmA0CicAFyFr(su5k{r!Sw3*?EI;z`G)bz(yDFa@*YzH-Zbx}v!*K*O&AVm#F?hw#Fgzy zzfE1if5BR_Cj_EKn&`jcoISH<84_?aOsckX|ASOq(G?J5@gYVfF5h~hf0j;zg-eb6 zS@oHTtzQ0}ffojo*~Pil3oU0&vo=(A8IRrH#vlN@PXQ@lWX(v3Hv&vqYhoGi%}EH_ zBhp}b-TPlEF&0JRTlKG0JaaK%9ZhOF-!&5h=EB5>|Iqk}+TEAkJ!0zdZkABu6Ga~+6S^`>ecEi z@lvx}{b9tBwBJw(b;U4MoOy39O`4^1;(}}@&OHAT@_U+x$G|Z2eSg@N&v5g>?*f?D z_e3hxKC^7zk?U!v_#E_hmDd%|W{8J>XPneN#gh4~*ln$Sa4IP(oSUGIq`U)d87qb@ zp&NH5KuSzZy#cB3kPptpop8SWklv=W34XG!Mk=?Mu23<^<;%mt4HrM%z31Iv?t1^Q zg}>Rvk}0_^qIGW8C*H)+iG}eZ0o_XaEn+x9<2UwQK|e5@(U74RE2C4}B>1C0;d=HM~WmN-L<|H;?`QrT#4K>87UuM z*n4UAo-NA_nUq(-O}bVL`~+`T;htqHxj3o!)xGn+;pds0Mna>xmA3|)?pu$&ePyfd zlvRu1?kheRdA)J3Li5T?cGUnU_0HYm(@#D*o~@;oomHg8An_X^ZkTuXJKv<3(51ea zXpsB8q6VuZ{TrTYLkpi7A_4)3<)NG8Q?1JXPMjiJj@r)*(gI}tt^efLhP9ik8O>5? z%o=#}X0h25p%r-hU;1ZrghO1*%R;{D7GhiWYkdG=1W`h!lKn%2K~&0Z=+b@YD+oEM z9?*4S6n@ll;*`RIpwXkwRmSK42Wi)sf6k{&<(6Z}^9~m$GkmJI7Ofs**plr(=Jxfj8kSP4|^ONJU*xO|Hf4?!Uiik}@EOinmw+yCyV?biwT&ny}Ur?+gt z(Qw5OU?J5Q=nRM8$^8eh4=VU7RKR4Llb*l{VVZ@JOxBc(4;&n1Zcvc~%W0tI;Z8C=>u-!1*4 zYBMPd0yY--pAK1wf2(&UmOx4haU`XKSdIfW^hI3Xe;fHFPc~y-zt-+I0-kdvQlsW~ zZkN=4`W9tEEav8~gXIRrZ{+jf^Vpw2GNcp)Ol-*WLPU@CI!Ae_Az~{A8Xo`rq>SA^=&vP%>hU=X_B^_IM8%urHs4 zz@pjY`_Xkr4&4p}oAzM;R%f24@#!Z%UHns|Wuu2;L?qYAy7LL=FjyEqBWHo}W5NB* zNO(3Hrc$?kftWQ1`$86`WEN$&F!|rLQf>gHeqvG}Szr&OSKC)-zTza|anVqc zm!?&MUf-cL-?_=KXcU|`qQf7|&Q^yHnL@Y9xsm?~0X z=vAoQLnihDdrmP)^;xl~2I@X%FD^Mf54nBVeC+=2@*MjIA(auhFqF!;CK;@lB@s$r z;M|kN;GM0L(xYe)0mZj%@+>EY(r07fMU=XC9z}NkPEUf7@nQMqji0om+|Q){R0{dA zyj?1o?~{>NTs{3##5IXN2td!j-zGr-;-dt#he}8f*f)!SxV!&!1U>_scvNrYAx>$av;W z$V!OT1p==S#9R94tNlrDCRz|SDoEi6`#U^e?hnT^mB^@JNX-K;uLh^C%+*v3e@@pP zxzi^U-x)hllklCXftf>|FE<-r^xib@@lO(P%?!);u(|7TCLx!*6DVxH|C40PhY0L8 zDEKO-#w5k!t-G_s#aRL9Ag7W(7 z*4G(-k+^3;*R3c|hoCOd;!v5=au7t$u68hjw&BTOQ-%0XEh0$3EUs^t{Bb!H*~KhB zJ1Tyy12qI2D{Q9awX_jixQR*2)L~+&;-~O)MHDLLk#kno)01Xz_82ft?s=v4UlzZ; z{>i!LNQvsjD*NdB)E*Xcqrt7wQ?9OvmaOB?qIfkAHI$QidmGi8I)LEh{Nw1Y2hV>&3m7rx}c2eS6%48|3?H%Pd{5*CFpZ2%ymN zJ4sIOUqOR`)1;WtgC!4>hTwdgvbqxd)b)=$CW|)Z?FQ#%&+p2#%-%c;Z z8N%L$=~c-Xu5v?qo=GcZy|MTbE=m$4@08vMWUdrfk(cV4n8<7tN3A5UVj#eO#ptBQ zK4uB+Z2c;sYcHG|D7X|Q83Y#$-4$sLb~;&E6KX~+FNsXT&i2my20DRa41a9Sd7s(b zYN3vvWWk8Uh#~Sn!0M$E@&?C2%$>O5F zlW9Zc-8?Nzi55XR0>jZ)A0lYxaaQuX+SVc_1vwTyriZrdY?li0@^r}2eM2Vb^@iGx z_9ycPyU@@69oy=BA2EdA;XVi+`TQie>(!>=tk2^0UF69bv-CC$(pAt`B`3iV$*((i z9HR5jEJBcy4X09?;oss~1m404q%y6m5p_PbNHPdM?E$nPu9Hc@7{b~+ zhJq)+%ZsuitpWT=`3Mv*AudVu{g_T=Q4DSQDMFw!;07Us5kms@EYrUuVI1a(1aAe` zq0p3QwTH|e$iF8+#@Z~Lt144XCn->gGfkxf28?ZmJ*>v8<%4gARD_#ho)?gjQcbKy z@12Y;gUS-fKG_yOQ_cCl$7T6M0Sk?RV1i7F@69olOU;vd(r5PS96p8UTub%G?)hI) zntP1^{cJ|+gyDR!dfYkbsnRawZoRX4cr04jwm0h`Dj=|m2dSFz>)E0CdQ{AI=OdV+ zp#!^Pv?jsO@YlZYyYcBbH`jv3er~Se2&FlGT%y6?Jp)?3(|> z6F?jai~!wJY5p=lC);qRXagp&LK$P=9Ro$KFszf_2~(S*&a{uX64ZD-?jz?z+E+H zuRk(kal7ofy}~<)xfBBa&j;9z$vnxfU((jMqt{*$NMUJS0Z5D{9TNfqMWfQeAl8tf zNseTpsx%dcM=~7N0Wzs}ATPVSjj0U}wmMNqrxoE?@y#vLA!=~J{eqeh?EW%PRdSoJ z0tIuU(4W-vX4NoVR`77lMBnDJ23~4nvw}L0s1Cfz^~6AYNqZsjH83%*l;a=x3?P&g zF6#dMgi!aT!t>Q(E<8TpC8lMq=_wVM4vTYle-fyd#Cdjk5vWF8t4DOe4TFLC*|Y#7 z#Yy1v74>?(Te(1gZ<&X^!pi>}A%LpD#-t{rCm;%F(D7tp{4DMunCAnBW6NwfWJQ(; zRxKLgSeD69MWe7UIoc$MBcQ2yyg3-j2xXE{so+IsjWT-PnF{bJI47DSMV*_Ozre?v zUr*3<2A80cvhxtXp&g)-F{2Mj;mF$BGol5?q~)Lq@oGYzH)j+esY9At^J&HY5@cIf zSMCe)>n;TE?j9JQ_o;S1*;k#~5zueS&Q6_J@7=(Vcln%cPlnLtKOc+j~c${7|@zJ+JF+-VUVhizG)d#`F<(EfT zR&Q_P>9#TjR^r-Oi^`2P6y?4!wt8x0YOdZk3H?>>$%~@b&<-t(&o@y1S%z|XhBhOz zDfohBr=m`=a|M%75|||rf{|H8%Ncb*+3qFQAq6iFJW;*!AL8&r2;p$q#FMV|e>_@F z43jkMW6X&eQHut&G2CRNYx!(QaZfH9PP?Jna%cw4qOs!UYh3~xK(=pIbfzHAMbsHc zFVgRCH4E@b6L9zXiv;pXV+Y1kEoMnU$gSRK)tCB7-!=NqxQI+M_GxjSnD-=T|Cnh8 z3S$>27;czS)EIzpl#M}8V*aeys!+VcFV!I{WpB+sl+aUD;S@LM&p6eoed?oZL^3!q zZ-b$G2f4d@jd;G>%eJ;!&-%WxU*hIT16bWpTj(GjQWk+4?$-)zo+#fl@}j<)7{ZYa zRPR`82Wq5*W_@{e(VZtqfCx!-i9zgHl;eSxM7k!$}PMNM9T_H{#Z(;8|wM+F&J}7 zu0T6g!D@lcT`}t8xMlB%aR6zGT-ZN?aN{z+`h>qFBcmh#gOleS+BDvMW<%D>_w|>H zhj&shU#@q+-wkL*vXGj8*`@t`QX6N^UIRH0*my@T(ssJ&MIRi-6mnWp3eBsHqjIwP zrhl&H>m=5CGxNizT6^J&VeLF_rYySSRK-$Pkbef=({c9+ee~H2`JBpbd6|Gqq7M6# z)9#f|uMboNZTsjb}jBM@Lq3Nn4l$Ngdzcew)V4^KG zb~~^SP_sZg)82O<8$jAP4vDkAODSU&0>h@5W)+5lqx%Xgb7t?kH~(F0^f>=1%paKl zLcF1Zvm0RztJ`I1)@_mb>U{LnC<*`aN>z-WKNn!mHPJW3k;5YO-Fuj$*$rvX52AYP z?(mSD0bK>}wxu6s>JNK9Pe(~VTJNk?Nb@Pr};6w!6#mm8uCI&h|ag_6Nh7G%j%+}5bbGs zXlfq!>A{7NclB}=Z09o&AFc@HaC(H`cwNT%j%+ab>x}i${$>f!4 zghRQ<{jp&{Gnt6h6Y%G20zXV0tKZVY@SzNVE$k}(#S3~#e_JILi{tGj)JAPS0)&SMz2N9iW-3GCWv&#rI zRmOl-?#TOwkD}5R`<#A!O(k@0I)4*FWDi0_uz!ZQELi;}_-ObuTcdU+2Dg_@MY+xP zKy{apxpA$J9-B2+)Tfl89H(1Vry8=U4ERgK*A6zf2;tRb&bxcijI6N{Sh;uVYE-Y9*E`6hChZ3yl4%K&1H*8XB( z#}^L4w34PMg9Ei12~2ZWln=r4ax?E(jlz(z3n8pE>@P*R+_v({951XQ`V61!lJ_l6 zyF|EWKZ7*Sw;s#hifoU-nkXw!!^(VUyR&?jJ$e3DRUT^tn1*zRt%kndc{4(RyxRhb zf=K6lP_~Y%Th16B`2MRiH}37K49B~ciJ1Yg-Q`lQow^I_j~MMA)hNnnH}F=Ju?yBc z{V5H9b{vu1%gCpadhe>P6?;Joiy8pqH}hkpvN<`p0w5V-K!!}{0nAOsr9#_gPCN~= zp#WR8(f6~Gd2&n7mU0#jdB+9?Iz^_Hygoz^AbaOCF==H*Mmyek;KOqvbR%4?gI-3R zi2 zSvqO+X6^!LTK@hr(HXx(jjh5>Qo$s@Y(JoMqap?qmyb{b;p`Q;XeMRg{{@nefg=N- zTm%W&pbs@Vu3|_S&*_f0)h>zn|E5i7cPB%4S@15nR*Q5A&!P7%-M`Iy!=88w~+3C&Z$0*&=wagmV(e2NJ)r@7XC8r<_x zdYoGbRB%6q#7S+aElyhOheali}L@JF$V*DrXfIa$(8#JLNVAleCx8-Q; zTZLQ^)U%e>6aK~!%zH~gpD&bpKIL}-53xg`TS$Z`w?}@^A(&Aob-qQARDohMkKB(| zOfQB{xtLz>a$;oI6|a07+Sb@i!vJ6zyJ(~#M-g@eS;js36&6ZeBjhpD%>AAD3z`(} zAc}>FQXQ&4sVk4f$~%!*paghQV`Vvu)eZ(gxoCH&Stq%D)O<9W7{b za>UCjq#8?^|83bfDj%sM_k9ajhcNRn2$K1<8Bp7$u5`-1MFu423Xh<#Sc^(7+-#E@yF6xAB7V8mX#SX z;Glennyz}sbCa~_=9q?HE$Z?|SwL*F;2&`rPE!AK|g6d%M zUh_|t9myXbAdh&pgUSDlnp|%EjPUt2R;bl8FIUUW4e~7GQQb9@Mp1Uf&|$$Pj7jUs zVp-ulDpgpD^!>|lN(cK*F%s%f)} zi}ThBH#<^tbS(zn+PCvBd=Rxjriz`yQm?sjWAWVA%3VD@xF>FOy!ypwin6<#ZD)QR z;mLL@9MI`pm5F$yW7NdhaOTR}O@CfJZ^LOF2ltpi)Atb<+dc6*=Q~cZYVKQ1A<#9S z5Lq-#v3G|9bc%0Z9Y3IQ6-v*;Vf za$5U~;%iTRuTC`xS}?JuS@N{^VH7O$Rpz???zPDPe~YT8Ix&o%LIf>3-B8&y6ntyh zW7k!ZWo+DapYJ$#? zziG>T&L>w(T42k2>UTivi?ELNgrvnw@t9eB7-N2{{Oj0`=q|qhK@#^$4X?lT)4ahY z91)JTCjctk?OV9@92;;|#IIfx|FTi!mLsNcw*f3(cTSz2kv?CACdX&*Wf@$n^B8CB zou!9*IcVw{iAU1I0Usr#OAq?*;o-d5yH`uFj4fh7rjRF#*=6mv6oU#WAKArdfVmvGswFrky+0cbVx(r9CF~d>_Ym?%k%3?S@BjR{kXBteaqnL%1TiO~M zdSoDy4Zf6#sTTgR-`ZDo%IojDT!Z>?y-3Xr3}4vKYleTn=H+`nd;ScGX}z=H2B4<2 zxpT5w54?o8_=>VN+y0NF^Ny#w{r~vk$U*j~gJaY=C8IJb=inI0zO%AICC7*&2btj@ zH0*VgV`a7HVZV!JA5sN!tROJ?vZmQnW73+!xsGO`)57W0OP4%wa>ep@R!NO{ zP92_B$|U_$jbn$#iD71lXHmn;y!{>m$LhUw&-|gqCDvd5 zyYf2y;V^`Gc*&fIQ2ve`Q9-8K#={`1S39(F6eB}c~6G`JeW-n8{mVq`ks+jcHYp9IzUQD!}bCuR3 z71Fh%)JI`6I&nsCoJwrGH?@o21g0$qFs=NXfJU(WyP&Z6H}Cjq_e=JWFKRSsr~G5C zk$L3KLW2x16uubg3u0bLA1Wh1dsK%arV($l?e5PR+o73hKy5w^E!24;G53T!ajXek z7xD_9z8G?%giDeAPf2xan*V-{Df7LK{euwl3A;R$tpCb-{p}@9tP6y!bOa8T`AT0Z z{dnZCn5XnG?AUSa%%`}K`8og4!e!xi9tgy&{YYBq>vg&Gvr=PP29*%Z3MjI_9!Wx+ z5cuBhoA+n}sdnc1bIiDWGFGp=cwEmdNG9GxNTOIG=k;`;NwMa}IiOFx6y0M`F`T?Xg{tE&1eP9gt>HQf}dBOO2 zCn&3gGBVnKQo)kVsA~TeNFOm~ha;|iKS98PI}}U?>03Fj=q5C;knE#_yT*Tw(6H|; zF~Mo4r1bq-I8mEX0itKHq>~V);QJ>3)&%A(!inE|t$lX*N@sMFCmA_XUM#=zI&CV( z67%eOiFXf+J?u=pBps);=E~|*GjU`X`(Sp_3;Z8Vp4$f~Maib?G>xD2wr@7(junS| zm>}s~jLn>>=Q^<1`t1n68F4f4DiE5(C-LO3t^c6n~{CJKg0h)-j%LxT&}V3emQ>!gUmy>r2C7r zGCcG?ht{vJ>C6Z?U*#Zh(RIi(uAHw7u_lHIMf+jQ{R~6z#^hw>&E2h2hp3 zf`^5#84;cok;d}EhVJ)I@k~L0KR)z6Q32iZq2w*1=-#T-!CkR@(I8(JwwE4?yI~7t z7;K)3r}DpM(qu`K^c7M)z0r+}^8 zpipbW9e-6AG_Erm7%EMqJoA)(X3MNhR!DFE^$}1mvGXN!myUMl z*jkItgB=$YR!GwGPd2g*%^nRM}Fm?sLqgKN~SJV`k}Y>N9V>`d}JhkzbGoH4MBihx(mmvtb!Hf9zS z{JaXU7ClO!DM<~)D6pmMt{6FAyY$&EacOFD@9MD`c}`s{p3f5iSh~0F+{dbPkd&r@ zF?F-kloq^s1E@?gq8XtQx-evkQZamz)f=_D2X-*SdFW$$tM5DZQ1I!Dn$6M+b-V4m zM+0uLZb4d014vMgt{ZAi#l>O+j&^A-mLp^7{is;QNCBcHEx~)VA z2QjdT0`&P2de0SxH@;3AmeA8YJj=F~ANv_$+l3liVbXH04`#O6w3rxu>!rZa1(<3N zd0&o);HF4+$I)Y}L%uV%ohOEH7*F(nF)bw|iEDHL#&K+q><}iLCX>6OgZE4|h<^gx z-cM0zwWN7k*%~6H_I~B`$1|jcvRVizf?(@{6=osh2FxULiQ9n7B!2hib1jk8?>)aB zMeT@q6S;E#YjW>+Ru|^&W5(+_qYX9wK|^0?G&T{D0zD;_N&!ns5|@-wY-2e z+ufq0Bi`oEJ3hPg+p(cg`lzTr$)1;&F8Du46u_juM5~37(qWbnSk_Gyx@?DuvfIzlJeL%H{>yq|*$Z(s*9Lojb(bokr1 zA|1MjGW*BRN`d9}p}dG}iW1=`r`BDdiz zk!vGQpzBP{Qc+!cSMP!h|76b z_R)@}!@Aks6}>TO|B8CSh%R*(9T{fdvfcg1%KV>d*C(aI{Z>8pFMj!1^g~HKU)v%m9pj@%Nl4k_!p0Ld2J`@f3-q^%UjJS zrXBU+y~}o&*VV6fx%1bq3>1q$9ZvzXu}(rWf`W*8nEGV@AH`3Cfy}Ur(3;I)^rh*hD+y~?(k1mJlq1pbRroB|OlI)|o7A^?F!T=cl?a4rO1 zX&6ei=f-k}(`v#?UX7^)P3u37tfN9Kc8)RGrYZ)?Cd#^4KZo3uGdI3JqA6K(L($S{ zgzwFPpxxbwjC_S^F8}~ejE*Ee;p%$+LR@*`L6(>!VeZ-(yv*6`lW_Rwa&C{poR@v-SohQ9y~W$a%p| zqQ5?Fux88maigi2n>FWwl(?pJx0;wX=TLg)v0VAbBbZ&Or zg-z%i5XI{nyp^ex#cZT~oiTUK?-0{*UZNJ<9OKCbPoKY(qkc4sQ`$G6;gp_mOF=Yr zs7&$s6mhXpC92q?bphRO)e1c+eU5whoUUK>)*s94q$VU)@a*~5{6EO4KVq?u6@T&+ zqgL&tTln^q{8sStd?<|qn55pyvSLJBnotzae8pF$^f#aG+fTi?&|7v$*cd2AIvxd@ zTyOJhhn zf{n9|0!;+WrO$tW_9&qIY@EP>?m z5|;;-h|u_T9Pw1Br{THAz_SwfdaV+PEQg#o0{e6HmsHS;K{C4j3-hG-oKI+%FIqpLd2 z-x=xMUB@@_A7A0RZX}P+)LMv#bv$cx31}dIKJR6koY)SD7^4gTtNvZ5$5HzaHYbJL z^?Ic0gM(LFzKliwa`l9U&%OZfbFhDOfa5cwjx4efKmqX_@BQ_8zdkz<=>5~zR;KSu zQOpjAfT7NjAE{8c=H|rKcL-Kbu7MvQ-ys+hc_^UN050#X8Jh)w-|s1Xg3-APx+=>) zpumAKZ?Pb}J+>5iI<}YVG)2%|1qp(V1K|Ng9oMvX#Wb@IB1U;w8{euiTXQQp= z_5VeZ{6oo*4}=R-TYE5xuI43yLFpTLC%?V(Wh)Ax1^$(g@UVHz6p6}Y-TktA6yyU4 z#BQ2)3JO2r`G-#(aa3an$gSNboWNMqRIR`NjQLY5b|dGj%_1Odqdr1jqry*dDvi$L zNvjm;eJvAu(R>3p%l2=Oxkcjce-Ou* zNWD%**#Fi+qc8PIZRfB_9K8YnYJ@1y zuJ;O=kN#DV57pAX7~nvR4u*Z<{%gh3Yjbk{h8gygEM5_7qZXQlyzCLC z3PxN(G!S>5--5zd1>d>4vKrwB0F$khC{D2Ec_%fyL*C&rvYY2`?=Lj)P~~T;PYTjd z@XX4edx5|Yr%nhvZ;a&Ceyo0fcWw8qgj5hAT9#cFSHP1M8(H-I^6u@Wb1=i$JDg`Y zO3WyjBa=2kp>u}C1KlW&=+TEVQQDt=PKo()$ygHV3E*;9`Skioj>F8>lhs)of(x6$ zviN&r{)D)`F_kMj*v?=>V-W_k7^+Mzr>-c4{ z#P_^fb@JtwiBlbqm(jfqke3sm=d8feXgI;G9RuJe{IV#6@S2s(2(+<5ilHgGHJ{|R zvU`xtZY9$D;AjZ= z-_Mkj0|JVlfBFz~zX=*wQ+o>TPMMn8C&vUVfVDRF?8Icx7vx#9C#Y*Oe*yuyV7eP| z>w&hN=G!aA9U`?yK0^Z8)q3A2oldPkE1hYNnR?(|a{dahx^nyJ<_WqmuHv(F9*-!h z>%D#Ge09UypLr2K;EG(BXP!L6w5%#X8QZ4x1-o2msZ7(BuQ^9(jiK^N+ymYWXU4r+ z3OB47eghq^fm!v$;CeXjOy;8Js`=5+V0xAdnDxmtH9gyxWp|dlYU74{qYO5TE<5$t zOPxu6_p$+lRTJYmeCMt}43M%w=N9$AzqeSnPgd36@3I1X|7qWz;GS*Nz2L~%0Cwtf#C447pgKe|;rtPKpGHb0( zUVw}?mw*qs@!4TzL;X4146@aYDI zLL6X6r+MNQVyMJ%Z*_k3hpu=*#g}r5NMu<4p5SiWwclydZorM{mtfX(!P0nY)%t$T z%cORR+GgHGm)`0CvFeJ;jP|!%VN5>M_gLVNm;X>&-DSW=?7mHu3vUx_;XrUtc@fXs z#r6fZVl4i$Bex*#uKPI#< zD?S5yd$kuj*0RpnfLAXBKZFhzzaM z{m8&8VwP_8$ozw%mJGDX+77}ez{_Y~*zfbD9@e$i=K=UX`}y%E3xkfGSJj@Gg2ND9 zY~kJRu<+R{i!;Tdo8io|XY1JTRrCydC7DQ9Rrq89e?`VNR^yN1>-5yF%NW#^wUc?! z!o3qZb-#Vl`xy1jc=7(_+ipaH;^SrPvg~Fo?Hy0obBGe7$6-}3rtbv*VKuWCV>{VZ zDptD~|C5ZKicAJ-|IJL3fAMm74A;*e4%Gp&{=F#>oZ^3wR7`v@mvJ6{}q z)e94Pby8p6hHunn5sq%Lh*R)bl=pzA2wa-=h;3?X-5Gw@GQvhHufyIMIu;ZlDBu6U zOHe#sOK@E+>H7C_6=tlu58o;!mOIc$GcYK~8;bnfIx~3hpC9hh>H)749)lVIo+i@! zk?NCyw+b7Eo2zmtrXP1v6`CGF>WY>x1oskW(=<>4l%e52Jzk?07o}yc-48-+;zNZ> z1&6wLXdW>!5k_T8lOjtv44esJ_R%12kZ2}2-51ex&&TW{=otFK*B`d zoDBfVK1mgwh3*2|cb_K@y?NnlGt=qqJ=1vLzN_+#=uT1a@p(&sSsAU6*7(Rr1@O*k zQ!*Pm1eZxLXXWK*L30(K%>ndKA0jvFkH-4PX9RF`0F!pXUC4P@iMlJ>@|8Ikaw)ZT zLVgB$L8C?{eft-YBIzp|dpQ$La7e6@5MJxI9(oZvFlfj=H5IArL!oB-)MRcBwZ(`h zXVDQx=VIBw*bG!TOvy9U*eTVCM9yE_yP!h(|LXikt2iRRS@!_6UrJzt3`u#V`LN+P z=uXxYj7*zXF9dX%h8OeRnC3;#uE_wefDp+75+e(VQu%_~`1y~gqVBIpS;vi z*kl7GCbXLFu{Kvm5Tdv=_O6597&{;NvjR)Ea-tt5#D1KB!Z{zwO zBe}SOiUeblc5sN2?^n~Kx7_2Sxy zvwmr=KeMlSJJr{j%?Vt)y?jTc!kHI^cLHao-)kcBr)o-+QpM9$FinS%SghKO*wN(g z-=|dxhp$PDi^#@-=^%AYE3-7fM2dci8vzl#zYe%Fh(GI|QG2Sjpro>dtDYqrSX*#) z^okUac@Mb1i8xQ%Kj|RvaMxF8KwgLlb?ehYpyx2nQ2434y$fX9H`)h`06a4MO1ppt z$bjJ`acU#^Z7f_f8Ms`&MHlhKG&bOZYsCbt)q#~ z=zHy}YUj^NNvut8FQc>MQ*Dw?qVigCcz(7ony{VW^ks;(;oUORK$uVn5gakI3H5Z{+g>pV>fRuDsFYy);Be~YDiz@aGO z)8of|?wDRsqUJ)NaEQI|Y1I$)Yf_&uj(6`)G1f1(dZ77z|Bm?n%={0+Y4O5Jx%qM6 zftIzac(4NHIU2Z{>z14D{4RvXhmv>Wqgv-J6^<0|R9 z*%`;#KSPyXE#~hR?d0p4V$KGSx`PeNz2aQof`9I@bJ3+{#Q^0?$&0&W6N{4EI+N9G znr8m8yoIKhpjyx%eNrVn6^u-U511HkFH z1Kr*WgC7VbTvlJjmFDdT{WSmnn1Me~oa6(fuKE&IB;8FA9G3c(G9Kl?epK0=F<}*B`lzg0OWn%Ah>%`0Vr{?9a}eeCmU_p`?DC>G0zv-Cp4feLX@ z-$ka9BkeS7(CDCCLb@;$P15R}0_McFxFEA_wv(NW-H&%~y78(tkG*we1UI4X0Nl91 zuSL@1rOedkh?znVZgFYTzvA$Vxj#nI04tUhT78~Ii;@OZ{7>2~aRMZH9}Yd?pgLjv zL{0zu3~0Ns5A{(&yEmgsFv38%F9UI9m1U*fKgj(`8xDazl=mIbLI`?MkTsx(5(Ll3 z7P&}Gl<#qG(leq-Za^ul*OS>K8sx%FRo+;}L@GBQN9FHlFlx{!_WZmXRrV8qO>l;CV9mJbujSVSHf#w7wbgftcrbvl7OfdZOU6(|_H z5U+V%*hso_Ws50QsQ{g6P>3z$#zFjzLR@9~7Pkwa7Pnzs)gFPLuuSEMa){drRZxm}7P0%zgL0CNnDTgOVw@i(=& zn2EIDKLGXyLsnIme2ud7i9TQuTjqv&$L z*n!~Cs~k5*y%d%Cx9Lgl?Pmh0tMSpz_iSq`u9_{jBzlkNJh}k6HbY1&0+&l=ri$-B z=)$?zuuI-QpN9aa+N!1|3^%ejvbd|a_wSX)#KH%vAx%6K}MnmLFlRY)qpRJ zgQfzM1De&_$Hi406O(gRQO=F2cb!Tf>To;LJ(=+edB}Yf_1v*->*idIC&!mLmUq$I zE_J{jk^Rrx(qs7#N=#P**e%{L$jg3C5NJtH@?*RC`+CCNPIcu;fI@)oZ1C_=-c*;Z zYh2R=N;jDouGBZ2)BENHul1AWH$0z$-gVj!j8_u*JvFdmg;EYl@OJTI;az|Vw`982 zhi^mnKt(Z>5*FxPSkD$@#l|Yj{P*|4MUK^L>{aLRT7+UI|p;f zv;ZMx-bHe0ex_NhOw$T^Sxs1ho~)a+ zwxMe>uInN-$*S?cLQr=>OCdNeYT?R6SgSiy0u)H@Bqp@HZ(Ld$5Px_Hr@2TiO-u)} z-r2EHvjp~;Fv!tJZUQtgFbM91Wdj>b(-d=?sTS@u@JiN+dq<`@>fgNOdJunM6 zy33VKsq>tvpjUb)ek}60>y(>JqtcFs0yEcX5Pp{P%*s_6KszEJ|H^Kb+YQjLJu`S< zQ5sYqtI{NouZPwsc?B5U{r93YK7_P--C90s#rWn#oy0S9p!a}ZS?5lpOpMosjg;CM z@WY2J!t>|dz$~FATfmwBVYNF^K1D(cx5Ei&tfyuy)vqBdiIfsoZ|>f*wps|0f&oFZ z{Y4o}_1uq*?2#Z7MJ#*3CX+F-IK0Kwq%8c@jZ zy`k|sG!vX^AXnMBN2xcX1jCf{z{-Xaq#b>0Pu|z}Z3K5Y=Fr6zf2>FuC&Kc&dJU*Q zMR%w4DNbCb?^hNP(*2MTPD>jYA|wlP-LB0Qu zHUSN3eugBgAH7-N%CeF+H_=H1egc%FN}XB=j!_R#C-iAZ4D-4&+xvamR zC|E}aDN~*b2226x_DJ>f=p&B|2!eya9hDLYVsX%*!X{Y(8jC>xOD0NhKR`&Erh_6J z>7TCW2-y{4A|d&U^~lYBH#`&jX`6|38SWDCN5X>npaMw_iV&-@e{iSg(SM zrI(7z`DZSztw*bvQNSbA>NY{+huiTtJzL38zl~Ia73GiH%%t(%iBRcVM**G_llp%q zza%g*{J#KSe`x4UIPt-c+UFT`(b`848BmjowV$t%G;stpWj%daoK}ljN`5xFP*Z5J z$}Zx5E$yuX~wSD@wb*JraBNKMK^VTYR0_;tqq-9oIrA zB{KmoPtU6lv*t*|C|JO+Sh+=ip}?@8O}+x&fS#UaB?`AJ#)tQ?C24E_js~V%Of*Y? zkHqWLUcs~^U>jfk2hn%DM!kQ_76J@z+L(%a&3bP|X6ys|k=j=PloqreVwku4?K z#n11X5#%G{r!oRapg;P|tp@(JmIf;v)_|m<>t8a`ZUuwIfj|9edqk|`A7F4!0X6JvFiYN8TyAmpqEGRqu`L4rp6M?`=C+4KYd30rhp9TY*; zaT`KBaWG{0+S+agERji19+vl@@x)PuFs3BV<_vy8mao@vzgQvtGkX*`yk9Z8TBzt9 zjstHBbhr2KY*AxbZV5I2rrnMsZ*CpET~tB3U}pE1#a7>kN0!vnhVpA*#^wBt@5KDT zlb6g@ZdhI%rUar7E0~D8zXMvL=OfKG$7Md{>Z-SK}E&iJI_|?`(1mm~_sBzci=V7Ig?I8@sBwW6kd-@)GAQejUyk;R z&)!yRyTe{&$&uzFbNo@XtNeVu$@K_9^7_epMPhhd&CHUX95$?5v6~RszBqs4W1P|E zH^ii|w6?oIRGF&eWS9l90lshN7yNoP60zZjyM37^!{}cIu}y+$r@uZtWgPVD%VwTs z2etHdv6Uv2j-^h(hfOaBqXiSwUOPQNgP5!LDeA7RB;D1P&sAyS4wm^UAUhp15t!at z_bGoeNP{?s6R0gY`gP$3=bhO#8>v{fDLS`39>VnbcL>Wy!3-Or&Em&~N>6&s+`n?A z^M#OxrbI#PU!)kXt*29e`7?aS9R9fA(;cf+3a&1uGZyv_;@-VW73y*{@0YaPrK^IG z`NAF@AJ1K}9lZK0oTc~T71&@j?58n7JcQShBZ|7x^>Sk=UHanmt=nmp_2-dc;_It^ ztYcqf^9kL!2p5PF`Vy!Je53?E{;)`W1Ii_{fEQsqJj*oIbAFRntbhG9K93|XNAerg z+w!}KSIo{`ne;v2>0$)O-6lkmi&pf#qA|<-40Yq_wbw{X_?rCNKeT9yYyS;XIPKgCMkz$I!~i)J?#IS~HHTOL}4P zYrBQ))2i(1eJ}%nu@tM!vXEiIet?Bu%dsd`9o*kP;3ly9Ni{8kMqAOB`U6MpQ;T20 zC{t!_lhD6^-oC+CLL{3uebx}C370qT6Zn0jo*V3D+^McWagoJ?Zfo)bHK|g9N5E#x z(psz5MRuiH|3_Q&wN_(LI-G*94_gilE&KwcIn98S-w!!;*<#xA0!>@2#BBeqCYI)L z@L}$VUso}%&2zd+wYmc*Mk5?SS(rm*5*z69vQUU*7c`wZPe$H(R1@>#Pq0aK!zXr? zMvu+!q+4J#V@f=jlLvQc$j2~nx$)jC6hkK%EYJ|Zls0nlmoPnpi;q2YW;`|4oTGaY zHCFa9xH2_IPhn9Ac)+rnNlxr4c^<12+#=5FApwQsCrX>9C9h3^6$qU;Hto{mo+4~r zz=;%yR5sM@;!JeqP??Lwr|TIQLR78>Ns$Kxz9#4xDScLMbzqzHn`T?m6T>6ZI6d;b}D)^Tx?V8lxt*r;Zx|X{ALImO?B4VY97VP|@gG53tS_BEs`8n>!_S=|vD08S&f>XbO-NCSgMpqLuV^;|zZ?T@6 zzFTK0%7jG&>{PTqar1}PCw@GWq(`*(1{j0dWz}(CY~xvydPNe1291?9F$e^+Cw2Cy znbp7eN>uz6BzPjQdH-WP(IoVSLqT7=mYvrF6jkKn6}Xi3cO?z%6yz) zPwq97JV1GN_J~zM!d9YAt28R@{)3pjiM?^SsjLrKWz*Z@{y?&AM>@|0fCX}~^{qt* z608$O-FHPmVwItSVOZ?fcwcp;$55Qk;KeY#AW@y{a$ysAPrrQd)Lk9f*Af>m3C!J= z^fIKD_?wFd50PH>G05sO#&3hZ57f*XUAtLu`Cr$jcOfm|aUf}=<70%VtcU2JLBt1- zQ{-@Qsl=UgbL-dOb2w+20j$bt!uKoVYzOK}%;0TgJ$`x3CgwgZI~uZx041qDHJjak z#T9&`1jk!_b3|f}_u23lE!$o~t)~~?w*`T~jnCAwqIFZ{5kZR{a=7)yBa?fQy|)YHqNt0V0tPfCQ|MpNJTbL?(~|+|+WFtEz9vpiXK9M} zGEPwA2ZqA8S{rOSccL|@T>6w@ECY<{i3o4@aokH$0u z-20yA%Qof$p=f{s|I)cKDd%|_8dISH!EX%u3T~Blnl6z`v-$4#r60Bto&!R zuDZP2#OQ!>Z>LP;s~UYj7D+A?Gm+J+X=&9Flc#y!J^eZwT5w$dHk!5&SoVJbh;vF& zfmEjP)yilsU>c;on*Xu<`SlOJ8pa}cLkJRnG;B!Z_z}Pw|Eq}mWnTWWDE&604MxFL z+$eVR2derEN^%aDkz<*RIaJ5LSEy+|!|)ph6H?XYyv_8=#S1Dt#O>^*q4X?1uwQ`| z0L6Nw&motL*5MdXUT|xcBd-#MbwaI_#m+A*5z|=Qts>gW<$c_aBk;z5A`2feUU??@ z{4=l!2J2GMwa|yG3<~z;yNW~fYgw)_k;MJ|8^`P#P&m2U$Cs~r@cW?6izKl+V}m}S z&wh#t_rAvoKNqHH?gh~|<^yAIEbIJI&%;Lg21V|gz!uR<;qHo|RpB3EzR4LQQq%+9 zuex@-cpXOK0lO>{?V<^v<(imSGA&ts`Ic9uW`1$G0ZlB?KA@8)mg zs%|~2(WZfENeqq=89 z*-U7hN5eN^uqs2;MrTy6yzz;ltSs}WL@gA)U#P?H++irs9GPxDEYGiDBU^x&C1~{Z zQxHU2FS5BmX{se=kNYE6`QH#%{6JoL9)9w@_}NhXW_7urui?c{8O-^uVy()bfnd&i zq)Z%1rfCkm;2cdWc}jFZOc60fIzHv<(lVciL{>=C)gGDA;Uu-g`v%;>l?VW;55+ji zv|e~YQ*kTW*VkyRKoV^PCt;K_i)_zLhusy64u5uVW1FV}L~UUkBG9)U#f7_10hsIK zr5BeERbIPj$~VRoOE$k2enDASTMZyp;GepExXE3OfM!RmE#G(jf|6BydK{=>NyF%+gn=Y z*SczNs^Wt;OeG~fwt9f^H;~}FIy5k3o@b~+_FR{C2DfO* zAZY6#zl@2H1*_JT(j~?rgL2d4^wAjT15xhuSf1mtTD zt_exR1Nv{ktxIeU;Z_d-XEXS%(b+Z}OHCS$0APqQmI(%xp|I!JLWxaQNe$l9(4dJ> z72!zMfS6pm%t#G168L=8mjiHGurc*cc3>I|-F&JZhuVtj27f_F!Jl#Upb+q6-OzZ1 z6~}?s9=WFfg9LYww9%%_#3Ag6Ty;Dh6exkQ)AYITiR##J_pQRUy}{H+!_j$AifmW%-I4a;8D^<=K>z|nk!5gLUkWl z7LyKmhn}Doi<2uN{6;Q}WW}$cF=}0BSbRBeNqu3KY!@Vtf5y>?pw!^a6R|WCt9}{{ zt{yu#xKR17MzhXK>8htUvu`dM2DrdBkK49D*DB!rQ8+x@bzt>IQ^6M2wdyrzWY;sM z{FqK>)D|X4o|yimRGt33i^*B(+WpS~6#+T+Q-9uj*>4XI-#WWJPh14dMZtsL;n@@( zZRx?HdXdhnGC1=2D1k- zfKfQ=(Y%U&la*6%Dekv}i-xlX;^>HvF5-2J3997^lE^WzqB}}hXMilVBZR>AO*(@s zdX(BE5sS~ev0oqe9q}zVrNzFjZmyDsU&NEls1_Ex%6an;b{AGTUq0n8b7^um`(Tqp z(YtNNK@=nc07H8o73OqBqkL%uv}L(n%zF(x;LxT_w+pJu=Z`_Eh<)IJ;#j)xDBF!F z+yTj7eW0rv*(5I9{3)8#X%qI+NnuH*74JXLn9Cx1AY38v}=;fpm;K9v=~$p^pZI@5pH4_5s=1&yVfT;6L;m zDWQnRfL`fYREuTjiq@KQk@cX?-pcZNbU=K6J?HXF(k&n6ms5(NK^YJ-0lhfVH*kgX z<|NYxkh2>O>8zM>aWj2G_54{b4>U(j33_^&na#y!S?1Cn|6E^S zH`lqmU4Nc;{p(N<%?K(BTJ7sB=; z=SX@ZnZ@{KVH>NR^!eSwG=Wdj$>UDHAxy03-pu06+;IDD^jZvn17zMWT>258+J8ly z*429=W>wTU(uZRrZeU``T*&Hd;=Ir?J_onZ1Z+jgOO@{NH{9Gh8q^eXo2*TLR@HvfMz z#u5bD1r(`H0ll4i564c`lYsA&_3c35og5K_v{<*2jWB{TFL>-XaJLsii$-^`PKRdMF~j8j8#_au#|vT= zo!wR)lG&m+*^CXsg$DVoP(czKn)|_byEosp^NNU!92rL_Bz{)YXM^!>kX7&Zh%USL7Y==R zDvFB8hESul@)l9_7%~n3%ITf&b@_9(_BPhEgt{5gyp*^jzP9yCCSo#C`??!*0i;+h z1D^Xy7kapBmh+AbuR)oKP?Dctg#M6)n_3M__&>-$P+hTg(u+%7f;Kw&mTki&Jgrg} z)G_OdCSY>zgg0BGNnk(NcUL7}vu{H4x3U7wHyaI4w*|U_LQl| z^LO56k8xN{UV+cEgSt#a={4a5%rZ9OdFZ7;Xek|F5zC)%UYlE1ccB3!&>g$ERbzAQ z_jlRDgGmfMl78sfK7U+-@J>|9A)m7r8N#)4@}##bvZ2EF#IXlYVOFIHXRifx+D^=% zD4na4>OUw!T^N>aFYjDS$l8EX-`_syzYEUa!UTMxRJEm9f5BW-SrtQLl*s}bxZ?<> zwo=`^f+rcQJEm~@TWeH3#;gKq6!EFCf0>-2rcnLICi3eS_@V;-# zL1bmsc!bkE7ni_NPMW;Ze!}8JQ%?gNP^q~)@wT7i+DU8yIJ3Vd9!1jYkI&vG_5Y|_ zl~zLVJ#7`sx4T{2Lj1dbvyYt-VI>GcL>zN7Al3ddv5?*pA3nz{=aw`Akj5hK>C<5Z(R35H-^3|}lQ{}}tvVxGZ3L&Uew!NQCh z3fCw{LR)!fQ>+TR#B9K8_5NFYXu@<9&I#5OLOupWs}~CPM||ma5nrpWkyZCoTsukn zG_$k;TLY&z3SQ6%OXRzH0P~P%LR%#dPwjO)pL8%o^zrvOrhEDed9^yuMghRj;B!M~ zIWHb}spd{HT<}?RwixIea0|6$4RfZx<*S~q7H{+v+>Q$rr|?bEvE*?4(V(l0 zqPlb0B~v7p06Iqrw+mLC|B&zPkJL4!y^<6h1@?I!(wWK_BoqXi4o2@HjF?4vdwE56 zZxCE~)m^mbzz0;CEf-@|dhe||K)D7&Ntn}0$YvW&O(-~~yRjRpaVAC}nzIi1A4K5h zxnE6Ib1@?$gM7nf&&)FsM2?OF;1vI+D}k>+s6brGJ!x9HyWNPHS(bN?zS5I5sR{ZV z+v^gLS=c?QU)Q5?Z)Wswf7t99k%5JcH8UMkx33)fQDP!2i7neQm0Z*Ty_I3ZLpLYL zN|^xtK|ADrlKspRuvhVk=@3B?tq%5Y6d9903bLxt)KjetZa6~`+v<{2CsBU}WSMcH zy{aIJOV=#?-_O?5{#qiR{sk0flN&0?DXfwv-U@RCh_T_9mc%yP{C#`l}C9*jE=Ys zG(5Nie)GwAPjQq)ng=neZ$!XPg$Rf@(&GkkVG?>$?^h+3-Ick!fo<9sG&G*eJUbRc#tO2ki}M5LQ#erj0jz6 zr`~NeHe3``*VUNf4?C5c2~*XHTX$;${l^M7FH!2gaR_@neCqU;|K4cLEc$Z+a4h^oA_!&cc991|_+A6#tlqeE1d zw*vye;^NXS{xruhtOlnzgPlc!H&R|*<@!J_?fW5p<)!qW{Pk2uJ2T_lxT~~$Kw!qn ztdV^UHEs=ed7^Ggm+5^4tyHDeOENFO`i~=7Zse)=;J1H<0oRb-oE}z93=$CuNGG>4 z5rW5Gzztu1C6RFrLI;d>8`sm94C)y8@fVDoefEl<*F zz*hQ(G)%2+*3Pw`4l$@C)97n17LalG&sd-YB|YXFl^s|a;D75#dRxBtl8Ea_VQ|Gd zeDjNS%%XAO;?szSE)W)K%8%oEve<3Qx^V`GGgjk3Z|Q9gK?@s&Ali?|pUi5(!C^J- z?#GW@jI}z+{AckH=S%#bUrsTAt<{FMv(@8hiUYr^-ZU_D7``?|o)?Y`1JR~AdY#$F zUp4{89R+G>(OFZbEnXwVPZw#D>8KS!hS z!oqx7cPPBrZgA*LgtMu8MEQ&JkEEo5SVS=l*iJaS4t%38x;_JXP{iZ8J**U2C^M(y zCx7A+SWVck{>U578J&HfeLr5O!R{SG>bK_ILH}!Ze9va?4Q-n9Em4uz0S4DU>h(<9jGz$q| zhe5HunR(%qz{pmr&5A)x50HPI4w6Lq%X>ve0J4+HziyaqzXAX<pR^D%zMdP1NrH^40Xey=ewUCIFgc zh!dVG#nx?r-;fQNCC&*ZZ>-%_AQ;(;jBEh!{^p8N#7ErL{!t%PbFz&lW`pFQ&x}Jw zChhHK&zC889DkxhcT*i!0j$a3e;$CZrvKbnne_eJ2QN%hx!QC<{W_fRkPghOFLjYE zOFz!0^pFY--4+ZJ5m`Xt(oSd0BNyhz$qUz9S^H>6{*@=0DjmIzAoHrgF(bvPb>U1H zg}jp~UXk^grqoi#hNaB|*UILTe#)ukvGXj|Pw)HQK}mqf6EfY_h7L&uwYPCxIEDTi zc00~O#_y$$6z|^~HbVQK2VK2hcXTKIDBneGV^_E!9BEX4vBMj(EODW*yn*8<`}kGX zEFT&5zeay;6wRCYXj@S>agn4?LqU=+I+}ZL45Sv~iD|y};GOC+*nG^+!_&Ts-k z=t2s526X?Aq;n5s`uqR*m<(woid<{TwQ}i;VJ^vKl>03qqC^ODmwPD9+)J8C$eonC zWKtWFDRRGMWA1W~@cEtf`|oqvym#K`ye{W;&g=2)HY2RH^-={JNF*da?sCuX3*1Jzwf!i$9R?y?@I?{cn zLC?8W45tQWb78IjgxFFbSjXT#(17{%7I?P8BbUmVCCmcXwYA&_73!SF_no$Z4%JTi zTJd?d_3?TU#b{8Jvzbm&kZ}vX(?MP3n$vZi9-v!#NIjHI!N=CP<~o+64i=Dn4hAXS z#}+|U?<30UspdWe&6hvka#|S+qSU;>YwW#gBS~>%dqR1hX1T$TN-6h*u>R1mUR`z& zih5TE_hXyKZtowvtC79@%pL0LQgrKqi`^B69>dL-_cI0l0HA+v1n~1bCK5g*7^4k6 zWOL`}P8%JI%kNvX@_uzsoP(yJr!C|SiU!}&D4e@RhSi9S30s4no;Y(T03;P>d&tO~ zx)6(Z0cUwz3ma|{?zC-&_4Vm+YiTNm;=n`}jGR-dyYO^ALByTr!U8&1NPgW$!lNz! zI{QqqJo51rm&wtgAJ1r+5+bo!(7AWxOrvr$;zO-bQbF|*Z3t*z1bIYWxa$Qc9+_1Z zDvQg0c0baS6Ti7QIP~|YgU!)<@*T2B)ZSsOSu~cqVHE`Z4}@+Y`u|ZsaB!6ESi6`jhl*HB!#ymT_vWl&6s=y zFq*}F0Z!3N#zn~>uW&3t&uG`$Pi=1%$fR*iY|n#^SY=4cWC(iK7x*sS%F81|nU!}n zm9v(7|A|J<{k8maCTB>5U4=fnXqx6*gO8;Q?jJk)j0i>a{&OSmWO8;ckV6y=@(LtW z_#aH~{T(2B8%(8v-Fw*3-f4Qe%-K3+&KRIRHfh&)T~}kfo#F(#A@3tee-WX4JSH!) zkJs7wK-MPzv?RA&T*5}L6Of0O9#kluhv#MR@VmMtweOv_R(m}9On}4~Yq@7YkuN(x zDg?;3B)1$nOb8Oa^`Js7V6j2j>|phQ3%bo-idqj^H{CM~D{A3f5`&CCd~72??RgQn zhXr~ri7~KlE|YB_j3$Ysuewfgt%Ar8+d7hr06MTAYh)`E{Hm>CVw;reoj1%zZfb9X zDF7-kcOfmbE@IVdVuBO}SXuWR-bLNTj54$^HK$K(% z(Hz;{KKuTE?JpmH<sHpD8|Ydo5TlBFOB8v5 z7o;nmyVDX3uI~&M*ittF$9##5Ear@$Ru8`@Sd%~AGCg73)D=u9s?M*}5lKkiZYB0I z!*7;&{^q&{I7p6|gC#8I4j4@Ak*BV2HRC}GyUKCW_hz3}5_qXvZ1CA0G-aouV`ryC z^*7w6E_i%vr??B7j!h?b|0~q^2;%7|*mdw*Ao}rAf?<061W;N9&9v=2(wSNi=l>w# zVWOeB?Ly(yArZypCHK*%+y$Pt1 z3cd>!QRbR+*Rpbq+Yy0K5n#AH^5V3dUFz)NC6`qL%i|5gZOzAl_H2tB9|BLy{ku3i z)c@GXDfy-5A3(y0;xiDBL4%y*Blv{URd{)MUaap%B=@GqrcaNy+WSA=;2dJ>Oq6{L zJ4w}Bgz(u^Fk|N3qXbs@q^v#QMivEg<*?o`R4@ftP?Nx@r*ZJZyzOzoYqj5n`9dBR zrS>Quvev&DRq-`Lmz^nZba>^4q5#KyBzS6tDzuhc)xyd4myDdlBuz}(SvyC;#K50D zRXj->uJa;ubI0{`FK#2$)^VmN96PGp=`tROz!yMv)2iZY4xP-co^(x4rz0vYDhVX3iVVw*bv{4!{g9tdTXc!gkO z9GHu<1X6h7xyM3&?DGpKu9h=Baxh0tN{i#^urzk3;W?iW@D9V{wrQ%|A*+->r;#aP z0^5=_Ismk@Gt!uR;lu4nyJ}yL-<8uktSVIO8qhh0#1MsO>+n!U4pJ2UIK$o{Yrx8d zd@Ev8h$k2%*E@x@jh(iAMj}-Rl(xlzzj{!iaP6DC;RwEj)1C@0D%IyL+Hj3`VV_Zu zjCfN34T><)w6js?F<#mWV)%XU8Rc*-8rJCq)=l_72no-Ar?X9^lMF0+zF-ZzB0*rp z%=uvnq&S@bWS#DD^B7w?M~UXP4m=MuhFL^o4^|^9j_uS{8m|-$WH(S?V*lbvFLa|5 z2y^tk0fzFwXz}A4ZvXsiwxIY_njj#a?QPE7z9~_10EBoT%Z-rrcG2rV$LCZExe|1t zgCF{)TDDcW585Jmn}~H27h$Afb4>dwOtf?|==ZX>LRp;e_d4>9sv;bE_~B=vXSLYx zFgPPagFrHSY>${vza7B#LpBI}5IZAbuLXhh8=&il}E_G7I!n)ef z+=qVWv^E@a`GfDST%p3*81%8B4IunE-8kd&Y)XL;(QsIkv}457ECG_+#r`l&#mEW` z@|7k2m5GF)25{vUu$?czJD&FID`@Qd55me9HC7M9IGq?(Ijni~%xf4Hh`}X*SFitm zgR4S=H0*kZG&TBhRb@;wpQH09zmX3X#Ahe=P zTV_^ZQthacr(NBn8REa|#Yy0%r% z=*=6_pJd(9ex9iHh;YL|G`HgNiQbeh-ZdQfo7-Q=&#y^i*k#rgv=pM z?M3P$wKWnwl}P=}ME$RA9jIVBSPnN;rKiW^xfFzACud;4|MxV7EbSKx0I)4W(XPw* zS)JU7+zOtduCP-PbM42L^i}324?^!tx}QtRVgFXg zz+D|Bnvn2B)`})6#rf^2GEop=s?1r%XFh^D3E5(K_4?6tERTuG{GS8&sBUQgibVaj ztpnZv*{HA6Vi?gNgk;2xMuju-nu_Q+r~s<@pCc({gCfLYV;7Sbq=<@qoR3yIC_9aZ z{&hrw@3yDD!qr3%TOPQ?u(ODIHyqaTJeO*bwqMv0@GiJoYRO~jDmo3?3!ld{n5Ah+ z2t5FcYwHbNrhe5e`5O4+^G3{p#X_Je4gPuYXin!1TPK(g0xnqP396?C3uJ!5Sa>X; zwrtLdr5XE8{25=}$|Gryp~bg_LwX`=NLR;xS*~=D->gO!7hb4OZf)*Mnw+{9AaP-* zv11wh`l@eddIE9#2f%|uyji?dJb|~oU$kgw3nZ2K1JprcwNw%v?Nx-w=`()L0^v>2 z)mLtuQ@>TW4%`caZlAkoTjwAvplt&S%KJNc;A>*dsVq76jiA|b$YRY`_03m=Yb_9T zO%F`MRFD^df^6#E>2rd|jf-k*RKo;JN3KFy4~AIW1m9}viT-%E)p@nv=?pv&qIG!D zWPw!%W&gJQ*s!KNBXK^{&STQ^c^hm~Hj`x4xmi`5u{{4$FmPqv$yI`*?J3u-7O-^q zEG+$gV})kkhIvCGRr5Rw#`JrPR3tz&+S@Wq`q^E0^O=2}vVuV;tsVkTT3ymb`S_W1 zlas-Xz@bDJIk1LKZj-`&SGDIpuL}yB0AGe~m@0h7&LSdz@Qb2BPIP<~<7XmjFZ#VC z>Y2R@Qkby@7Cx4eJ1x>ibBhlVxK=x!=4yrK;x{jRh<=IWMAM+{aQcFjGEXB!DEdDL zvnbWJuArjd4f&Om3jBE;-di@}w?@v|!M%)-8@#2MH%n)mR=jB5h(W=Y!`JvbSJ*lE zmGjyj{C2iK_Wq!Gy}yCN9D119#;U%~0_* z${J=*MA{rGxk7%s5=qKB^$a5P{{)u)S$@`#zwIpGAnp`^zU*e<_~poX4H8+4(^;L{;{YlDkg$Fx|{NQ!CL0cxIY$(Y(>9I*}C_;#!}27026%m`e)LnO== zA_=$_Cpj7x2LKb_8F-}YVm(2e`w0tr`iquXF~&&PDC5IF$7R!H=xH_*{p*@`FCL!H z_$cn4!XE{<#ByzeACFe&T&0M-jE~GJB)W_@`7;8tcKlQnrjwyZ3M=4{Yf%QcH!=t~ z>C!6VcbY(gSk!_tHa6*o8!$q_yIPa%U%s*HT%N%2zF^djTR%)~R4ND}^1;`8xc;^S z{V8{S67$J1lsv%jV~i+-nP>?&lU3_Hb!gI;C;u=&=R*ORy0vW$y#VJ1Q;I?2FD zO||ZVtU%+1aO>#_6;fXe7bD<1kAbVQ%u#-H!VCKDPd$5*mAjw#inV4iuHZii{@|V! zLISxBt7_OOqE?2AY7b6eAx3buH9LW0W^s!RB0yGm(`{yp;ygJ~7;`FHTgU~|I0ZBz zYt!4GuM7?I!y24{#}kjwD17(73zv^d)W_v^ySZ{2;=L(I5$X@{j7Q#IVNY%%5XW{} z4nO{^<<+o1%8wk$FM0^ipU6!jrUkjp0thq#2m?oGf)i1a8b zo(t?9Hj&lST6h_6tiyD0KjLuV=>NEU{+cBV!eqmBT|7p<;kQq;A3Yhu`aO<3E%l`{ zRi*7b4*jH)!qC7jYGIF2FyWNbuL2;N=tVrEp2a)HGo-RL6|hs$b45>_Q?e5UK36E| zNe8@C(Boa}_Qql2vumRIo8V58NpZ==%TLR~%cPkaypI@bGctxb^GCT?p6N$mD7>30 zGa=%xsS|IM6s9Ci{S;Fo&5X7M-ecj&sl%Ge=H%h8)od)(2gprEW>f?>xt41N&?fz# zx&k=0gf@TzrNJ``FCk{GZXckHZ2z^P1>bzaUHWL#)cOaoXH5?MF`A|T6$)HI>9<(+ zEfdZzk)IKnj7|EjmUu$=DU5F=hmyQkb($X8JKwblV38zY=E3?f>(b_T%vzGq^CGfkx z@cV$J#}1BJgtALWyoxqb@-tXWohZ~B!(i8T!QjwmgDqi#K|wIh$FJoZW5mX6e*>+( z%K8&ejoT9#hw6)ee=G|uHsFAYFKXddb@z}MGluZWZOq~uxWOXF#=Z!q#G<=76L425 zZBN8t2&$k}|7SCsxx0X|Z@r3;+q}8mz53?{-*{c_tr!UG2$V#8Q_9-?aD_*A*AO3j zwXV0+rzZVbySMDLQ3ywxfjur_r(vg@s(7=6=xANSWp8)au|J2mcYXSY$Xlp9Tq2AT*3JW!lM4K zRq-GcOG_g9g~6%&?w{ANGbWn1d<|^tIs8KLTmw;pcsOPw0uWegthM^tb*u6H<3&mtG78WS1kRE9u_4Rm*;;hy81KkUaG_W=k?aB zoNrKR7x|^BKC6EQl!q#YPRwwI0Y1mp-30-!!HFI?!9@&H!AdqIrNeau!rLMlXv})o@u^=6OYc-Gc!?kr|V^Z z{-`|nf`%3i<`A5$+Ne-WBEt6>X|3x$qGC52l0(t1>!@oA>>Bl>+JNHsEQ$}2R=qd~ zjOu$1S%400o!H^!F;dbJ-$((g|AzU3cRBGY8>})!V>9i66S^hVydhgHs=BlGN-RK? z1U^?!@0zxrV5Ye(4!p0td;bL|PHy69AManIXLYGBES2>5BklU08=dx>cL`y)w&*2* z$M#Pj`UOrM9~1*>(gOlNh4B3G@+7WBgT43IXzn(8Y%=M+|LC0L#?__iGoR{ItAK_w zYJPkd$-tRxbxS;+F+H{PJxbq{oEtjUck#<|T33ffpfstqX@~}HOdM}GAWsAb z*vYK}6))#*7^5lnE`Ti4ZBp_q^XF|&c8PSmzSyw*>}r7T*1 z9G6G(LpCAcMf{W}1O+UDj%9h{4ulW`L>NBCb}O<%)H{Q~!4tYR zI2QKvTIxDZ5r~B^Y{kC}2|FIlt>6Yp$L^(~iz~V;UVc|N`ZOU&%lidjivi8u^Dnpw zdu*LDjl?eSgjJi!U!wi|>(zvPmHjV9UWH@sgXjRi;xkX`$`|)`rn8|z?pet@1UOVl0!`X#ZPG+C?mvT;dJ5fF9Mw~7KT^1 zDlTwZK$j^Q@R!A#E90~oZYI7pCrT{FU`Z9sPFX5R8%c-m_WJf>V<}yr9k^hJt;=lq zG5Yq6_#h$tzg>Q8j{yt@d;@i&_H}P9`)xhjcmW+h;)&I*63t&C{n`)4No0Xv@#1QBV!bfaV7|hAp=uDPp5(F4aXmV&%)1BelhR|k$VET&m(Wf`OqBhbw z#$t*zAD81Ek#Bsew_!gKV{Q>YIu?YOsGa=OJx;TjyX#&~)9JLd@~`(eLHDQahuDVA@MV9Crn>0b4DCgmz;zGdolt~=0E_(pM#{A_?!G;nUg%2m! zh@W4HXVL)gWTzx>iW#g@92jH)$uf=I1$;8}dO}))xE(<^nQV)<$~(w zLP4GUWi0tjmTM+xh2FXczZu)v1H!Y@${la3#@)!QH!p9pye7=G$@C~T<6}M&US~B5 zIJN+1l^9I*VM)6Q-X1RtA~53N)D+-D&8xpYjE*1hisgimR|p?O^#9m|a=)DtdHELX z21jl!$aMdj!jR{-03X}fAdhtK3ZWGZ`yl zkI}=H1GY-t7cNOJIz}{HlIN`pQfH-qApKbVKBu9+nD^%&yK`Q{bN_SlwJpAKz8d7r z#UMYfIwIL!!hM@ewMa3fR{8*o`r>?9_9l~Pa@HE2%Wh&Uv9y`|H8v$&E%68XLX4Tg z(!P9j0Z9SVQ2(_jWI@wdYL9v>m2>6pSJ2Hto)E3#Bc1!ICofc}Z&6*H>uWSy^GG?{ z9+!Y5HUlyn^3$^fGwI;5x?Zv z8UncFnd48=XRfEWLg2%cF5vrq7muR_qbX|-Te~CUoCO@7GmTYhcSwxR@`fa1VSWIU zd3d{aJHkzQ;JI_a1=4(cC}ddp&w_M`BWOPJQA;+vsZ=WR^Jo+q5EzUV`z@1rHrW!e zc&6Rt#p{+cy^d{^iH~%3?M@`+A%H_lDMZXe-++8j=HZnB=*%mW&#TBuoqef~<~+k% z8nKHT91*=5<$tqem4HXy1Rt|*f9jmN;TOCBX5rHt?l*p2_)xC>VDr@Y5eTsjEaO6{ z4VhEM&k-$MO;7nOInnm%eN_#`vYOOcxv_N?ODhFy9x*X*OrgEXh z%Ll)%WM(Ev+dTi@SB@bSL={rB+k6G_(ZsC2wV~MT$u3T<8v6fl_CjW-03zkoZt{YR znqbaFT>D=XDBGvwS^yriJXyd%z4?ws&$Pi7zfj^E@jHS#d`J*M)_$3FeKKo2#Ng0$ z5ipxyhF=&9Es&I!pluXK&8&PNXi*Q4A;lGfKTY0ue9`AenkE0?KDd8L`qX{jL6t+7 zeVKb7U44y3z6}Mt;9cs1!GDqB$NOMnxI_rAv-vR%IHbzq?Ti%Ip?U=2b#YW`BR?dT zVcdCu(B>k^yD9JDi75P)7RUxXMF&)U*tcC zd#vA7-vZp2JNfd{6je<)u5KHh&!cg5>fNvFfV>H!YPf**3v>T!+HaJru~9|FON3YRJOzXIn|p+^J%erGhJ zA;6+mkB!3@2kVx%ldiNwNVTUrEZiY`@1Zq49X>kk8Vb=ulY0tP0$WjY(ic_ca@9W;n@2>2&!`3Pl{JfAzJ3$zN!N#nGk{WSZbg+$y zJC;*Ev>OT{#d%gaJ@jtlKJvgL!+gj?%G0j?9l>>+U(m$ZH`mwvm;&bK2}Bhte9_3z z-nNp9CD&WA-|BU{TGkN@3T%rH?oC5B57Ad-i{c)VpiYZ#W68y(qrr$#y4vH>2!T#guxN2*dwc5gkJm0~>=(%W>oTcFze2Q} zbLj)kn(z{@lW?}bbX;pNHnFSz(*ynKOL9mRq-faDNx-GB?q^b3fwM10@9TgPqE+4X zS1Fi!{G}pr)56N=cf{8-&Yf*t2m0Nb6&QVgFU`2Dp)+qktbzJ(d5Hh+h@MP!hVZaO zQhUF3yK{z@1j-n!Zpg__0S3Y-;QV*Glr7y==fpb$))^FRv+T70cdaG<aF7~P)a6cg|LWB^Ne=*7I#-Z5lCR7`Qr%TnB00#W2 zTD&3PT(%9=M~n{no0wGjOnakC0Mn2(3=D$fo3LNfPpoB|*c3h{ShKj$B8opoBe&bS zO>PSRnVm)z%>re`)10nZ=mj7BgH7q(ecXexkgWYQxVEsdYOb%&L$WwC)1k=WbkPTn zdafD>Ub%BqRIWH)9=o4E3oNi^rPBFa*T|`{P*-YeLxDzV&mkXc}SB?%NJHq!1+1g`z3pyP#QIb=l}ix<|pfq(z6d7}J8} zDNOZ)Nkc%R^h0j(CBNTLwLTMwx}e2>+b?1Vz!O8l4?wY&T{e_?2vl?bh4!Q|YN~qF zmI`LE-?}J%#ar}7oLz{3ZBD!RT1`&-dfun58NDVi8R1@`sP==Z=dFK%M?YS#^g{&{ z%)T6g8*d!fygS52r+2vy)m!_`x3Z=pz@&UsgTh#*D)wvq1UOs;<<{tggGFzA${ zeAd31;!0d7le0~CSTetNN{ZJAmyEP@8&pSU-u~<+02q?eIfNWp<$LQ)Z<*WOd&0kX z%2}He>1oD&{o7~D?IgpBGvh7gRkopO2{T4H1(Hf5y23@7s8AY65kBx9Ay4rCi~N?~ zctb?bVm7!TD8K}c!_17|z^#LJ1&QSCXVtC9AJ2d849qr~zgiZcYDzAH0Qr9F3didy zSJyR$U0dGuGohS^sh`*dLEg`H9epSpu&-YXK?fd7xb%)`=WsbiAfNf{U zF2IjEbforM!{N$OGa=_dXuTmMr`F*N+B{~Zx`al6I$BI^(u^3C;M*rmE-re-w5z74 zEDUxhe=Khskd)E}JRWV?W?G48#h0;K#amc&l z)Bp(@U&rAOe%T(oj6M1uDOmroXtKEUQ3%%Kr)gc(*XXv+9?Rre&EkAPOXlDnZD1U~ zeAvaXL7RIP!a+j68)z=OiDMgaR>V$m7yP9>00qo|6bQKz9)$wTG(U^z%PQf6Ie?v} zLV-XaV4iA|W>nfJqTN=b_eE9DrQ)$UM9Jko#8zn*3sxvd^T1>Ht*O^-2n~W}cwJ=O zv-qLll4gUVgDeHxMiC;M@H%C_m`}&RN8`2@bwTFt(V&+zPmZQ;$Z7XURG6-vov@u( z9FyiB;)Wj2X%us{)HC<)%<;zZv?Q9(zrvQ~kO{djM1R?9^jcEu`N7Yi_piQCYU$3R zr;;6~OZZr3(A3mqx`U~C^5^bzU$;$TpTQ9K=zN9wQv%WIoN{DpN7;yD0_t0$ab220 z+MVb&R7b~tX;5_-AG`SZ^O_1VNR3TH^xPfgH|?)ezK8|TiV$lnnsy%oU_Dp0gjPEK z5xA`VeEfzWDUk=3ORoDxuu8~2=0-zNqg;uk%=vqf?kWfx6ps~cKI}bEDH2AH@@qk8 zUK#*hWqJj!y+@0bH>SZ2J`pCn&1ZDOLUt~KjpfJQK+dgQfU&ysg?e3(#Ct?sUOHs4 zjqe(kD~lHS9&je6P9j!t4I<-TIHcGIURrxPvUxQ^jFu*!RnZ=DY@tO z@h9Hr)jO(>z&2mfK}BR^)>tMjH-i(tZv_fiRu>(-aRY4D<9wDWe3&hI@&2Bv)+nX& zS29>r+GAVe&wo=<{JxX)@ zzyP2OJlxItr(Ez=8>0P|X}>JrbLZ)43AZdjFN?W-J34kmvpCP;N#}*3@|F&y5Ec`i z`$1D9Q*U-jNAcpfA%PBc;Fqi@8p2;5ekW33t;MA#ZW#X`Mh_l{r=EzKL#a$x$~au} z_*S^mVsL%qL{b#fhL7)`#PEuZ&a+ac%A9FMEBFB3NY}}WL3W*FbvR+Vpr+58+F<=x zy$f#a+c!CH-S2saBYoCJ_O}6`b!#pE^S-=<-NWC|dWQ97R=DZj{?45*o}wC-ShD^2 z35O8e4>`Xgqb6*O_U`<{!KxRrt^dH+)L|@yquE9lT!K*r?!lauMds2qR+dP4%dKni zSmkRc$*sjjd_i}wqg6vyoGns514hD-Ngx*`8iz;SDrk*4vSb&)S3gq=Idf__^;$yDHG!?vF-US zzPRy~z~X|&P+r}{GD$ZH0LdHex4GKXTw*PU({QQTAy1ec$Xs$azX{=10I3%#$8Ps! zaD%kpO(=w`sMh}WfJH?E#xzuwmgbhe}k7~5%DFU7*lxttlLZDm>b3p z&x?hTh_jWPE*GNo5g!%Dti5gw{q(3j1BrR%4=9<-4Uu-$x>SPrvb_+X*L{Hq z-D!r)?|<=r{fwL=)fI}ybs+emAHz{!touLSmtuwSJAw96T10@97g0L-Ig(m6@Ty<% zhMO5}?xUER7-@c#)At{EPF?6k%*`s%o($0ptm_`V(A(Qz^@ir~ zT69XgM3J#?s#QQw$_k5XyC5rks%a`4{ z?^3&Vu^&yXwjieS@o{XF;_mmJgyrLu zsGy6OHu1giNW+Din}Z40p724Bh?l@}KZJz{eCi&Fd6tl;y+FnH z>PXt#Fzb&z8y@f*Xf59T&(OYuJgXJ&Y=dEeD_FYB{@`XY&M(LZrq$YQR>RFq|Gm5- z&3pFIA}IdZjFR+B50BlY;ILjn~zAgLgn2@93n?kJK3}z&-{GqrTihUfxulv%peA5b`xdzq}3<8sfjj zcUR?+eB3p>pIpce0swK4BPyui<;?=kV3CBXuZs)PLNCYWun1vuN4?q4+`JH{ z?l#jVN^dOZe&r^QuBr|a5?Wke##Y_PV5d}^Nyzch&$eh3L!`F}X)c8YLbl{yW z&v%g`Tdz35;UPlM%{L`~heZL$rs$cK_d!TS$FkVpkG35&f(g~GE;Tmu>B#?Hy}TBq zhe_k&Uv9uAe=Rf$@;rN|{iHQaWkG%{!ezZoiRa6acV|=b^dY{pgS?ebY2l9*wAG@CY6-nN zeD_V7!UQ|$2}kF2CdftB-CtZ1hPj=ibHJ#NlOY7e} zFjX*8R;6pSfoi8HhKetUjz8BZ1mC9q;?p8#ml1xc0UDDNITPa5GDx7imr` zUFjCTn=aPT<>P}!1erNHTm5}CjAFy=5<*O79VK)pCw^yd|&m;9HonKA;-15mdT=q znzdV8zZz5I)SBR2wU^v3&VIN2@l#m4&lJL0u-33FTKvkr41Y> z8gyyKzUq=GIg3yZ5w}gpt{Q`7f9{Vm*jfbS+((=A~Q~?eC=mgFrGAq(9Z;jjQ zcP$B|T~3k21jJUQ-=ukS^j96F~ti55AOCohjBt(Ah_U?M?!X<^8wUL z0T+5?jzm-W-%LqLq@bzHb*;aI`W0)fNjuiClZjhKW+6_s-^zk9%KR{d)I*m<=EONc*tFAn9QK)i%&jb*z-> z*kC09dl$3NWQ1FdeK)sX%?hEBq+nX=)`ApOFnS&b#G4^v+{R-DNFf?H2r~#1rd{$@4LguLnj(n61=B&H%@E@GNY?YS6Od#1 zUpJ@MREic|w5KTq!eQxSas}CjI?PP;UnJ;pJ8gsW*r_G^(>GscUwXRYKdvNm={;GR z#BPzs5ra9rytpc065QGJ<1!nUp8AQ&Lg&c4J*NVD1=XjLDf8D4DY+^m%5Y=0{rQHr z=9kh*p5Kn<9yhwo*?L!305U~DeX+WJttOH4s-LPzCU;*YdrxoC;$d*n`IoBQzx%o?;rIe8?B**t_(BVgx}pTuJ&r9b$~)twE-sSRW(_K zT3n?{79g>09tQLq1^CL|Ij!>+=ZjOEU$*@CjSX~*@Cz*VjfGi$Li3rYXO`>SZJjG? z;D+?Tyh9UXt$(GOsIY9#_odpMi7+iyitYeu@%9@d4i%0mA%F7kzsVlx5gTb!Z}s9f zai&gs)qjxEc+!|l5hyrK*Hn4E#vSWme(T)335-LVSMd^xZGLoe{$^1C2Iu4RT;?>> zh~nrz&H78)e~|oF;t(eFKzi+EI}+E}FG_sLTAi?Lr~?%Q#MK zg@ukifz$7|Je@T3?p>OB^EQ>eFCAcpGiWF9LHxkVO9@r?cC5L0uX>9s@vjZm*Ix4q zz_>e(2=D|aTI*Rw^QP$e8Kb^9r4z=Yhph40=Qe$tL$u-qaRV$=KtAqnYn#(7YN%|G zta>!_GW`#3@(S$l`LPtPE|Uh@#%9H__9H$jG%7wUG4C~g{$!hWhw*r$da_4Ep5iAn zm+&G%+{6TRr1A7@y1q{KqmUPou=_l|SP{*v!T^yQE^$zCQ0#MlTJk$GIFyc?0IR{b zF*DsgWs@RAonO{}ch`icnQuD|g|r}meY}p8x#FPOTg|NPB7aCKq2+M3Z{%gCsR4=0 z1rU;DFpuvSTX%F&)&2Jp3rnVMs0cqMscno@m9E^@XZS-@Y0D<-{XktJk_F^%wMTt$ zbWNNw*Y6)Or4S-+F0#fKl^I9%`5Ee~iUb9O0|>(a{H#1uC4cmz{hcCk{b^=BT8Lzi(*6 z2EpA4UQQ-#G}zW?5c(TBtzfBrqhn##dRHou!h>nPdx?RNV|cm%D9vZJduwY<;rivE zf=xhe;eqe67JSSwMIW5}R~6OD@Q_&!zVAzHy(tlwq@#Snuu8O!;^BB2Cb_5K+9<@6UPxPF;cT7>DM7 zH$4(Er1}Ex6D$nt8+mQ!7o;j>ZJP7~{lS3ld($5xqTxaa`yqO~qe1g77XHU&u-_Up z-?u!)^ye^tB)iFz8V89|FhG9s>SR86zjE`#0O78=la;BelxB{?cU+-Lozw9femCHT zRD5EdI+y2_E(k>(vum+*_wR)+Lo|Pn;g-PR?cB3Q<7ekTx|P&}&hRCJw(KCM0(l5r ze<0h&+Xo(+CUwGE|IEW#$Tk^Vk~Q=z=>*r+7sI9b4!{5J+^PFAOy`18tVq!x1p-zQ z*u4O9%RRdhQg8k{W^!6Mid=i+Y=3~cvhwyr)Ll;M963U@e;$kF@(D zG?nyk6>nE0zt{S@17y#&0o(25n$#G#lvy(hn5>!6$eD7*6?K(=N#?%JkBb)q znAAu4_)Nx;NOiaQn_XsD&lefDX)9mAH9ikHpNp=e{ZsxsLO+z_U92B$K1b9+_Q|#W zI?`N%Hb55$gexuPI`)y42q5*)*izp7@~_Ia%4k`BQO|a9^Jjg?rbgp|`}WAvvzZL7 zM|jZ>dQt%|1zh{z+=1jP>7%MGTi;hIb7lB~eO!|{Hov4Zm}GNx4_A9(tFiuGD)(FQ zSO5+Wvo>oJ!aLEZMZW-eZ|T6n4YaCN;9Zks>6tT!O!bw5)_ zxPUWs^U(4qam+GB-!tNMg;K8XX+;HQ$oP8hKq-$gzjMgqK;_Pb%iF>`wtlQ8{L6am zE^YRH5gB4<^p+kL)oW&|;G;>FoZ!~Bx`jZ+uZNKyd5#^%uv<+bd?VjJo6EB}v!4lt zt0sF))uvzdEy#le!6p%?B6v^zf55^Hko5~CT^7V*1kD927$4rHQA-cfdBEvGk zjptNUD7{#;=eghVZv5noQCDhBIL7W|)4B0}X4l6@P)9*Ub=d)qzHp8AX6WgOV}h?6 zZ)=znvGAPGh=8h+oVv=7REa*q>v#T(YAp(9u~$y1;rak2Z{ECXz4a?1jcJ@B2ApcP z+3a%#X)DXyQv(HJF-!~kfUqYhc~@h94FJaznX9MhC5%kwO>COUHBn=*NXls!ozC-O zoz_F6S2tfp@xB+D+6E_?BLz&EK4xTzI$zMYUts%ER3T%vPX*YaWg?~eI7dMlGXzNm z_G_2ZtU^RQFoiKd?_Fwxk;f=0{2lb1aujgbt-goveIf7*?($C}D>$}Vd z+tC7g(+Pe25`bl@kJCerSTYgGCWp05ZbMI3XeCGq72%e{%yTtwCIbA}%{rmQ;JfPH z@^LcBj3#=!?1e7oYO#P$Vb~wDH(zAFjGsQfU{HxIrgE~;9u|#`G*vAZCq7(LeJgOr zU>6X5MSiw@Dt*VwQfv*AzynO}!*^cxO>QM^^P5|I8PoaIqgV2Cc3->;c$|^uoQ?}d z%xL6~j=X)Sb;~UKJeF-hELfcYOzY)6nU1yv3fVeu zyr>J6tye5XyneelIJ2{7HT*%wCsi?IjptQ06zo7f`o7;V|5JS?!d!mNWV53A#p}P9 zi-H}BgDD8y#Oo@8p7A3!k%-H~mT5hw<_W-)S!8l5@QGiXfHU-JZ1iCEwB!FlaNscd z=&K`RADmb<{(y&DeKIz&klxHVi#G^Hjz`z`75!SiK7;Orz5z@Kkop) zbV2kc1M*n`H-q|U?`qGXz$1j-#W3-MiR>H6C20}IV1Ug!Pyl^^9D$h~iu6N>`rmq) zKy06!zpj2F4OKnL;2(DxaI&IMt$Y2igcDV{6*s|;FohV{3lU)66Vwrc#_fhBJrGGz zQjghXwWb0cCl5THNp^LWYeVEvTwlQh@|usyyj!0y$Gl+PA*%x>tLA%gvuH7)O$Z|` z(C@ZCpxOJ$0a$CPo-BWioN5%3G39Rq#DhvN52yGK9^LtFfLtX5wW@Qqsqq$PeAjVG zxEF_+1vcV7mP`aSke-V{dn=KQjZR_D5cP_DkU?}WG>$4v2GRMNGPh5L0T*oJrSUXhOVd&biRF0`nE}V&rGT!`KxFQ!Y^I zDgSmYVogizSBMy0pe&~Oy<*u#+wtQL_OjKUkjfC1<<0Fm zhH4gpMedzuFqJWuGkkx!!#I$SY|oGbvAOLuC#*N2$jCTTETJ`6E^qMS2CJ_Obk^`N zZwoM9!TU7yy#TWksb+<(q?h9-@0{WDZK&7Y+%D4r9K$D8TB!FR7?r8=%GND?=KD$m z;99=&Q}@IkHqaRW?4K{bW0+Ub*=p{?4oAeR=eJOa_^zMf@+4Ni7&-2fOZ&S4RwOP zVdOGboHLGnw8V?95C9^U%98hf#-Qa7Eb(FKj$9@h?bi|yjnXFlnjh8t5mUhFCqKxr zZ-ln==93++eTBgtsdThRq!&6Aybk9i1g%NU}`P4>$FCElZ|r^ zJT9Jey(VA`hb(5IP;=svv?=&_h7bFU^57svH6r%D68x7C! zS%YV673Fm185yaTksmx5^e?8~I6ZMSHI{U$s0h_kQW)g?#o=YPSNi1mg%9H1ZMQKg zA3^3a^8C}F+!yhW{#ReG5Gk{YBaQz-5-h|c#PyyzBz|wg683MmD4J%oR5t`>|LvuI!KeC zvQ%M>IWao&q5F%ybfp4%YqLyrIL+s3D%Kytc#{rd5z~M#Almxiu+~wQ*9p>~?nH;} z%bZfmNgXxD-r*g7eh!=XC_#wXK=>o!r-3W;kjgR+?2pS{WhQ4^yRq(B?c4#~PnAAxC)?r&Cp zZM(HL;{(PdteG&gxFTJ!RQb4&PwK{t{~*5~_f$MgKCNN* z3<2BRt{keDfW*KMe_N-e1vAc11lY%zMxDxO6mCg!qaX@?1CyvlhTo+LN?Ar0@3{hBXF1+k=32A`E zCC@pztEt#oJf+kYX8;8l_Mav<;|6+9V&4e41gnFw8GOwvaNVwclyHBB64}*s?EAYE zTS?&%At23UKWBmaBU&g)T1!!)pT+0<6$<9Gl<7UImdZQ@{o4)}qV;Wr^GFZ|U(y4d zZOCHrvD9RXWe1Z-g`%!m@159LSwkE(Go4lKOLtUDDED55`N*O97xe#aPc3&Z=8GRe zsm1~`&0yJmtEWxr!XzKos;SI0jP~Ltr)8izJplNCM60NXLBFVd%@8@8E)pezTI>xC z8i4^t8b);P5I{H!(Ev>OxP!=K2W6;oR`k&?|N5L94k;hY)Y!h_tqPhWh6p8qX)NX! zVyXv+5Sj-bJ_2o1E(93xRW4E(wQN20()Qrawo#l9mx=E(dLz26V?iIF?sIBb+thq1 zj74Y^jc3AQq8MJ=NYUHV4(;%h2(IN8?}b_F7^iCnGb8tabH9-xv@9t9hspp@cY2D* zFEhSs)zj_3rW}a9u`I$eVIa+=76ufR%3N61uzq1+TX|D8t@-9JOFXv$DKPm~;hhX= zJtlJ$t8ebS-6tD6eCDe>nX8YT(rjkPU^i4|Hmr8FlK)}|grSk8GozaP!oW#2x;HZJ z{>@BVZp9M?RDw5RDmO5;iytRCN%A$aRgzy%ER+bz=+lv zA794HC`|c`brCIUZ74bwP?BR%+*!a=zmhc-#fztdt+t!HeWl#T%p27~B<9%TF8QdVt# z`*pxdW1X2(14X4=Ls%Cvh6$D60SOk@U|v_7Z9d?P{QSEAtu(XS)&i<5N|x(e?;gh{ z>L^UV#wE2*p6m3jG1t z`9KX@Et0_S@F#YIp5>hRe%@hAqSS%x$iM`CR`t#g2W>rUwQ3uZbQ9LHg!Y^QWc-G!m!a6DL7cb z`lj_i&IMIJ`e`y6hI5u|10tn@GnqiSqYwd`;;+pCm2|&_$|=L@i$dH=nb3n+u&~%k z(M@2xHX7XqSuIh!PD49cU@B4tsM%Iib~8b8=;Nl0Us_??FOBT)XbU!7S75}F^6tyln8WGR`j({X2ra*S!bS<(xwhjv z_7XXtI7MARLgF)b?^HUACLoJvz#WuIaSdGHkz>Lk4IWcmF$N8^sYHB^-kvO(9ID-j z)urDQMk66<5-cLJ14gL_XfXeqjXM(NoV=|GR^ZdDWCMr$iJK<^a?oORyOzx&ABh`E z;u;Os*%L6g3ay7RT?$+Ry-ybc(Ysfh z5E`o7L_`wb>3;9ts1D&aWO4aC`P3uB@vdL1t?*5gvlV)bv03Llt+6HiDJD!>o6MfUwkzIrf9jPdnQm8t33d%|+bgMp&zvAR4hq>V`A|@-4Z& zVC-R&O*^i4>|c=G5q)4%wnE7pX(h_^T>)Ng_8#TIBzzB3OWm$=C5i~PvFIxqW^=H-6>zr_!=l40YU6yrTDaI`~q0I0ye1w z6nP(9`>w>2AZv5*s8yqh3Q4j}3;asC{kl}b8>c=9ys{c5j9vr?c>nN?phM=|H`dbB z^7yKri0CAHUhmS}L=8x?Ml+y^p+)Ds+_%0*eX&H3PVy;!#YqeI25f2GUSy6hD=%js*kX%m0s5 zUcF^8uBP**tW@OB2TObInEOPi5M>ZU7Yz@CZrN;1Cia$zkHBwVD79Un@=PWU-JY?P z9uPf!ZrSwbxGkA-|B~`&}acwVS0|croccWuVHRZ47Vv$WD}1q19?>Q(c$q z>?G;tLyw=fDtEs`POUi?obkC?EEHf<7nH2{q!{=BQ^_bLWsZYSV++D2KB_<)rG)ET zb-}2>!`~N~aHv|d7OdQ^;F^J+s_gd3B%XOmYaF@)IKAuOqP~mVhABBN4+?%@xN}tP z_JEb??6r*eC!JU@%sLh(_kQFkynU3ySKtvk-ARNoDNuB?ynd7K{^}~^gSm%H$NXmu z0;-;HwbNlPFa9prM~BDu1v`~mx1x#RzgDNvU+Q?)Cdx(vv> zmIDHVKfDY*bU&uH$@_NK-2G{Azxb#SoFrZO{Uu(+*f*=Q;)?y-GLLKzE0!2HaGs*1 zhJ7aoqYVq$hSan%Bx-;-h-N^ez0MuQbX)=H>O9TWXdP?8{mqCMirRPHu5>R@QsHOgZ47hQ3k06L4dNNU($zo65v?65CeQo%_BOuZr>1k14zQB z*aZs6>E`wb8YI!3;hB4pz)%d{*2^0Nq;XtB4#CBUQvglM3I zx!16@ix7|V0x6n&Ev%YUB@^VJYX z_(7|GyHhxMjitf5T*ZX92H+Tw`#taCTvX@~2Py80k_dIWC1z1fV5yF|X}*tJ;U~5{ zsCwyCq2aWTkFHY0uAp#l!u=23wXpBiEZvgZpU3ps4`-&W6rUdYoGFF+mWG&BysLe# zx-Br3;h<{%t#1(5YtNEtZh#KgF_|h;Hj~zCP>v;Y9ps;*?u350lUwFpf~Y<_K7zfr zTXQ4yoxgA=8MHR`R>d*xjoc>~_5cGaj6Nuztqw3R7H&LVSVl+}a-utozuJ+D)+Po? zK+o{nx%N^xPda-r^cV$2Bl+^bVyK)j7WGzzl9e8-T&EuACle2}rZteByEV!kNGT>o z16rhlF}NDRK_6N=^NYM`Q+{jUlNC+2_wi35zO+a&P4nd)jiU2wvp%iiq4B^1K6vSk z_$YKpt*ozerhs9$*AE=@q108iruTKuT;<(3+n=}nymS}OrruOfCRQY7wEOa2h<}_= z5YvKKMFUIkeb!opA!hs0yR=$O=M#2cDY^Ua_ZRBGgEo@qMr`HFXq}r9vQzwfP=SST zzoAFJ#_-&Tu;(a}xET`>$<1eEt+6wh>uq{fq^E3FC0#+%hO?9D0{RDA5qj3sqANcM zrYoxg`Hs#RL{ZWZ_|5=*9^+2y(Z#K;@>~A=it(qPrv5e70LHdjDl|OiB*&J6BJ)G9 z{q>M!S|x_Ev-ef^P?-Y0RIhitv#xp4V&oFDxJ!0XBT765>FPyS4#TIkLPzoP~R8i^{A z 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 diff --git a/client/images/vehicleTextures/dmr.jpg b/client/images/vehicleTextures/dmr.jpg deleted file mode 100644 index 733c8d58fcecfb90f92bcffb37177bb650ca40fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167800 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%0ASyI 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

    1. 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/drylands.paa b/client/images/vehicleTextures/drylands.paa new file mode 100644 index 0000000000000000000000000000000000000000..de7cde1b772a04c430a57f499b30ec82f6959e75 GIT binary patch literal 56346 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 diff --git a/client/images/vehicleTextures/leopard.jpg b/client/images/vehicleTextures/leopard.jpg deleted file mode 100644 index 05e4b878e3ccfc5dd7a0e88c6c74d42121a2121d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83408 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

        Sqj1c77zC#_NQdPZ-I(h`f14 zXWrAC)8=GT^;|xgwLyk_aIT?@@+}f^r%yQf*RN~26T_z7A>#O4LV_T3#UoWFiWH1| zLkmvdO?pvd3gz5Je*7w6 zL;Lw1LZhxEDi#??9Z)lJ!GEdQ_2PXURj$hGBb!{m=Xs6VPQ7%le7y5dfkc;v0J2#^ z>tx80DyBx_Id_DkwA*}>P;V-JzA)FMSIrNrRLyUql`CHUL@qpL#LVCQ+}I-jY@rol z_9Z>(uX!;W(Y91~268%OCZ08$VTApA#_QE3WHXP*UZ7&_T-{J;am{i|^SZJZqQa-IMj4+;Il6NL10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDs zA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@ z2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw} z0$vDs;eUoR0WSo+5b#343jr?#yb$n0zzb(<%0Z9=K@J2t5ad9R3)qn|#wq%ej*Ac+ zblUB#0D|0a6663cg!Fz>dVm)KUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjj zg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDs zA>f687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@ z2zVjjg`Swvr+Y&TD!2{IBzjwBcj7a>D3-D4X64!+jWX?k7Xn@gcp>10fENN@2zVjj zgf687Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f68 z7Xn@gcp>10fENN@2zVjjg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@2zVjj zg@6|VUI=(0;Dvw}0$vDsA>f687Xn@gcp>10fENN@*x-{h!__cOf^VH g$EzhN87@q$po;-71iTRNLcj|FFZ?g@!k_*B1er~;5dZ)H diff --git a/client/images/vehicleTextures/leopard.paa b/client/images/vehicleTextures/leopard.paa new file mode 100644 index 0000000000000000000000000000000000000000..db2fe0b024748b5d856837c7b71b845db0ac24e9 GIT binary patch literal 22136 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/mtndew.paa b/client/images/vehicleTextures/mtndew.paa new file mode 100644 index 0000000000000000000000000000000000000000..4b2bfadf5830490cbd3a773084d8b7384a94ad6f GIT binary patch literal 66156 zcma&OiCqBH<0|;}r!xq0 z;68$UHi;k|K?FI0qR4y$9@f?)H!Hx{{8Pnuq@!{Jg zw|o7;-XjB-FuJhn_xCuLXdyDI`}lGWkJI(Et1Bc$&OtDa;F;!$Ql4hjhB4g*y+L2_ z8GQ`X=&IC@v2tTXHvw!M0*^|%iq;9X-&<)K~O zCr;d&KBB4j&SRD5>K4$i{| zFcA2Wf$yops!0)!J9SrlfY6P`K z;!iHy0Dnc3qyCQI@m zEs@Jgc$YC=6oRNNK0xHTILE?+!iEMBDt>@U4;>o(JQU~pgU_EI?z8nG{Iny(x;~%J z7ua_DYQ0BoFpM`|F`nq|?mA5OqVlw~7-KKYPCchm#W#iczS;pAJpj&lj#>UTEWx{S#%Hi^jfh0|35fOADguH*L?|FgAk z%nR(j#Xf-Yo9e1{AjyZb<`TXm#gB)=bV&08)I70aTZSJ$O>FSvbM4@L=U<6DKi(2% zT)l86kIvy=+XA}f4Po@%2Sh-pAG2x0$G-AjLQ&;>&EIuJ9$cl zqf6tyT3@=o|Hy#pl7_+2dDUwE2N=S)?$2HAPv?f2?E-Xrj7&OTy^K|}ZUlRx6y~Ze z2qI>LDu<(^{f&y7nvxtXt1j78MU(}nQ7=+95iBYF;Qcq4E7XVO*Tw6i%CVr| z|0|L1MUADE2ojcG*<6ds)9gbVn(Hua5nX8C;@~2L$`?M*hhq=g|LM9smD9_Lvn<<7 z%~e%};pWDxMl(T0oJO0h^6LUis%er3q77r{DrWu%Jp?N|3pTY~1#27YxpI*ztet|T35G5CORtp1qM z;_-O4-Tujnsh3f9g;kx+-`dw*aDSjkqp;#e6&7N=&a#IP;o;lIBwFK!yu_5_%BN4e zx^HT(P#jbszFBZmV-ozN2?GXCi11np!3?Ec#uj4gY~+zpWY*0H)1)#_C!$ z?xkl79Q>yG>aM3xpKiPTqZfqe`g#HA-P*Trt{?x%4*JA1jd}p9+F1EY5WlIZZ2{M1 z#AZJ(ZUqPLi>z;aI3ZQdc)Dp0WDA`lm<}MJuvG#8kY( z(I$!%^bDLVpkaygttU0?GAz%|<W>PdW>{er=ShTiW;`axC6>A{`=WOiO{4A3y zD3yY8u3|kU9`z8cw0C^dR|8KDJ^x*xd9px^3bMX^#%M3DK<6?^Yt|iyE1;r)4bzs-{Y%(+~O>P?;RSuhxf+c`RYZPNU8k!g*4EtzHRX4kFQN ze#a3b(Ahx&=}Hoa&5zjWd_xW98$NVMrxVdI_=(c_tQtNuVK~FlO%w<4F^+f$%|@Om zVVS;R1X?29k9!zEwSWyRPJpdy?xbq7Bi1()8PcWhPjB1^H(o%+D8dVSf4q*x&?5s^ z_v@B%#5)G6-8b~cMQ25Rrc}dvsG*hH$=OT9Jh?1>mBV4;Rpv6+JS-?lObbIhWqJ>? zh5o13$bL6a&Sfx_*{_?bo@0u?* zfix?!hW3!b)oIpe^u1))(o@8o+4_ctE}J=Pejn46N|zI_!_t}O$3OD|Dt^iPr^74W zIeXOx(5sEO$;pAKr?Qy|EP(rlQ-e73!!k2CS#Yxz%o^F9;=_rz{Nd%^s@A`WLsA$J zL#znmLZOlkqvzSeOi79+QJg6}2jgLK5sGSaqt+6Oqzg>X@^6F?8|>oQaym@B!G3K& zWEQ_18Q8rkJSly8qODk;RbQm`!QeBs^`%iUyK}f0>02!ns75@f<@bZ>g8GvMg4geh z%p88>635dA47aXC2P0J%OU``76M}}Mge=r*$T)?PvJpNYI5My=SI!d)z8j{n5|4$V zmBedtxsMqlD9iYWGSBDjo&*1drB&8^W_~{%5T`OvmnoD-+n;HUVZ|D{kVrC09x-93 z^UXW)WH-fw2<)42f zhIp>%>gKaXr62EE?8h5FT%frpHPI z)vqUMH96B%MNDVcE1WA$2t~9a9fVMfBa}H=7y1>K#?JKr_6?u*i1}iaQ|#{2Out`T zd}Lr_0aGO)X ztg^I|x2Tgya4mi04h!;`-Xv0L;*D`~IS52^7@sE#rdmV%(3_MCAs7rY3=xdn0~_Eq z6r}fM*I?L^Abxb=b{PGh0XHai8-WHsVJs|omvkiy?yFchO8@}`a> z2@=zF37>OjXCVqwnn?L`p24rmX#sLof-{?#?flq?E7gb{B$>fg4xyJz#~_Q_vZeeI z-qcA6kZ<|F+>t3OpDLC8opprBR@HkX*!!4PiMoV_Y1WZ)Oxyo#jdM~>!|r}2R5f-1 zJrhc_d^|FW8ma~dH*_X#YIi^or_+&mn)YrzLT z#yFx$PI~(E>AM#tNcW?76EB4_zk5qlFDj$8=vd>A8d?*A{ZPLavg`GG65LC>PZM#{ zKN-Vv$T-tZ*8JZ5>WCU85cO*X{O0`rTz@ZV4py)g(6|%mI-7~U8OsKj7InBiu%t~HXBgy zH2L1x`<=0v@M5V4WhPelA~G^=xk=qb{`YR|h8mDX6=uuX>Nn zI1rB_EqK}bY6}NZE1J11@4&r#MH@DsETFa>7$ez*q`p8fMsnZbNNt0KdrygK>3f89 z813i~Z7s-0V`GmTF`CzBA>R#wJmyZC;8qCbf|Hn8K!gYJx9?N1mz}Ve|3wZ;E3qi9t0GYjVz!u(QNE{l%n4xi(W_P!t+f`_2b>JV7*V$-GM;x4;g(z zzw-RB6L9jZ+*#@xBFl#dkoP$A{rEl9@-ZZn+{R4>szZan5D9Q5;kLjukV%_4rM{ov zs%}?5Lbu&MZY&9mVDns#MqI7}R$DdfPd4L9krD;7A%*%c* z8**f#9TnHCHyUX;Hfj6iycYuqT2@u4vrib%>sjR=9;UMdyvDtPmLP)lr();ys=Jsv z14G8|ekY)pAffJw?*|1J%HO^;xb2Ri&^wUSd;zV}6=@S>7*>v`ITY50PDhL;(l(Pd zGZAJUYAMY|)ZdaUA<(9YIjV`0+iz*KTFRy)U)@_3V!WlHjhwD$bfxO4thekLjj2=Q zsuHqg@4nm;shW}|>*7P?b&znO0-oF`cMvM+Dn#@UjhO$pUy`j?IcZ`6C!}ew@kV}r z_mA|+f=S52SinZI2-*9Zy3#HxL#x(YtZDrKLpemWv{@G4L}BdG*5I1*vM}@8kYKhS zX#q4X&gq2bQ)dH1D{BHES5x{}tBrxJ?PY2JUwXe4pc#{P@HduKLDYqXyu}YN$fKMH z>xO+TV`AH!Af9`RW|y#*1XtOusd7$(WCGYMlxl5A#Gn6Gm2Bv$7sdPmG-zow$%tDfAxB5k`k zPeXqFo`ns=)?925elBV(l{`N@Y05|wbB98hF`ad<+C8Z*T|^hP(3!lvvMq1BCm#y< z;RyHWVK;%&_nOn$pn+d_Nbx&6f(+KGdHT%J>4M$2SOgJjJ~oyh;~x(p9(CKdPmsaE z=p?b`&I5FG>*^xYQYeME@Em%&{vZA2bP|FEgT=kcjTF`&BNrdJ-M60;DiFAr3LEHR zdTHYD%C0V+_M0T%o9w$Lu450SKm7CB1o|(e>MfGeUlu}wGOIv)d>N6^y7e-4LG&tu zj;hrgI-k4?2by+8<5+!Bkw(KBDLRKmO6JFep(zz?6gl)+EfabuIgWFN~7aG>Fav{utIO)e+wK~tfi__15BT2rB1TUOA z$-`~^6uU_DCwFG%-cy@$lRiKDWp^i5>KT+CqFMC%n!NFrS)a>vgU)ATTF7yG`)H|8Fx5FEb(KAOF(9N1RRkR zJ#u?&Kig?rnw`-zEVEgXeBnL>JwM!C;Cz=h+t394-gLKpt|r9%%~~q1pwc-^EO8#9 zyk)xiWc+_EuBQ1$=8i-ZWO<9Nj#$ivBAveenUW!Yack zI;GWva8M$02$jiv8+gf9N+>{40j$CANV}?9P<>GJId7wCUgDQucAr`V1MCNrZt!Yw z1dOLQ!|~-S*f5Qj)nTDUnZw}Fh$vhSw$>~R;H3w7<}3O*Ly-|MP}kxQfy1zJy($*? z%svGEmCX2{oAUp=UmvG~6IQVzh;Qhug(v8knk^qP0M0{e;A^u1-8A^m*x+Z9hd~ZT z#CX@hjIf)4K)}3Lw>mLxJLw!Ee}9V%o;g;%lpM7}gbqK>63Fa7ZkG$4zi%z39PI5GvMP<^%r1S&III1AyHUt>#2&2;TSsPBW@>9J#$Hfa~1iZE5QNJM%I`cOre5SmDRZA=KlrHhFtmp3+_2 z-O2DwkG6nNHxXkyL`m19?@#ph`T$7}2@7VAl$Q1kR2En)HG3(am3y%k#d>bxhX>ve3^AfwxUmSczk8P9u2*(#6_WVCu{Q35U|#=jeG zgHm(LBsr)(!?Cogs|r`Mh%OsJ#qW;oJf}vGwuARCP@J~y#d})xuj;ij?=~p!JYq|1 zs>RF)lq~LWGO2Npe|#h-IegXI)E3RUa+Q{5aUl&X=inks14M(r*fBU3c|~ zl+d|K{Y}kHY7PnOdnW{YTgxWOd~PBlek)86=~gaJ zet2L*E}#L)G^!XNpuA^byg0(1+q+y~a!UNMk6pSpCxCDG)&;bF@C3r@WEKNLVf-gu zV71r`x$)r<7g#?Rz3>iFCoj40B+}r&i57w>41%&WB zB4UQo-d<5!!fXq_@lYeDQzTbaYUvehY-ScC>_@a{t@ndVL`1Yq8NGY5OlURVi2n1eiw)gFy z-AZMC9qne9CiZ%^_3e|<^AZC|`*L}8$}IObI)n1&*m`Z~(DJohKAPe3KNs)Z#EwwT zRMsPNrV>hezdUYhP<%K?ma%^yt;QV&UGe4E3n=ZU=yK9_k}i|kmj%Q-YR!nbU&ywi zaySCR3H$8?)f0|VS!sWWvX6~SAp?5IjCx*}x%wMFxEcV8Wn#010a-(!#}4eUhn|JR zXha-^!Io+fn}tpn3kZ?_*i*5&63&~w4i^}40y1m)cS){mC#TSKCpkk0-zTsST;P@n z=PgP}>2~m~H(CMAB?68>!Qck+-2cK{>LnkdmT+^?Wyuuu%6&QHP&u4qF&|K<5{RgH zOIKF_Q%A+p#?kg`iPn&T?;HzSNSVi)9&KKV{Ex_O6B77(p^KJC{y`f`*oM2C(x2 zxN!^~N%k-}d*1~@V8Um40p}R@G!P6DQfWImRaP?i9{B-HwjXD8+x6S`Y6764OYXcz zIz4lxYV^qP$$~jfwX0s|t@ney^lPghYL6wunvqEfqpnNvN`oKdFb__kA0u8M^DZRm ziX`8{#q=CvCd61fNM<1VvlXWO$Z7nC%fdumEoFM!f11zbogG<&S0BW= z@&p;@RcN)ysA-aK#*18&SrS3V@A`M>D=_}0{S~Flw-*0as@aJq=L#wJ`oK%kOCrfP zNA6Q%?kDd&L?vngWlNMG0v>LE%0fxGl9HyEERB(wcL#&MMCUm+FegskEi-CAb8!PM zbwi4D3B$3vzi~Li)+JjL*po7Ug^*at9C|vu1F^Vh3$fJq0a}Nx+eEo+-FgpQ>;$N# z4e5mmK2Jb3djV-&ISy%vx)m(E>S+PFxlrw@y6+G8!6R>M#7cFt5yZe_sLU6?-$iht zP_{6LcPV?IB6CwiN$2y&ZTv>FIT)zL1jHiP!!mpAna60MGZRI+ur64Gvk5@}Ph86a zDpRf(Cg|n;NP_JyCa@65MT-8CZ;k1cPCz+UaOom@9xK+SLVP)|zu-DcI(L)HlC%o0 zXq(8JmXrildZBz??}(VW9Km^zdIIvA{Ytry=1FZ{U7mg2N0c)Oerk8KkQ%q7g=}o8T!62CS#l9qIA?d1T6md)PB0B^gb=WJ(D$z{TAxNnfO(*Tz zO4hRyZRk8kNPU|lcBm7Bh*05Z$<)`lffnlpVx%o8h^r<%u)}|424CIBMnF4yk9_dw zxiCNB+&b);S|KEQ=TJU+2yBALA~KWPe!O7rG`1#%k|n*;i?n3q=7#N{e?$2) zavi19YHfgu`^OVarBY&uq)dOPQSN@yr{u^@6Qih3 zeBmh>SDC8EEA3g|pAwUtK`{v-pH*0Se+<*S-ufGk0 z&xYOL$Zgn1nK}s3^C6Y}Aq{G+#L*zGY-mUbylksqz`l+vpWev-;W&mhZc7--^peN| z6V}+~!X5JX#GW29^Pi#%G(gkSSI81n|C~m=LHhqCBzN>9>t;nPH$)`_^D*oK{eP&T zTmk9(h@9~oCKx}UXf$zts1unf)jp*?DUA#+_C480N|#`7Z=1{9q_%I{C#KIw>Jo(8 z5A{7jF)X{Z=k^0MVfLaN3`@1Q-r|MTo zue#r~476g7qmG5_t7@r}3ss(4EV;Q9F(iLQww|rtK~warr~r;`3+PG=@p#nNhrlBf zIEBet6{#JL7GYZlf*8Shne>|>Fbj4sjDXX6f-lJrlI=hMW6wH4q74uNKMr}b%9Qc) zCHo!xa4F2(5s_J<&X}4D5u(VKIK0$SV(o2%^(&hu2Vkp*eWb{kf(Bnc@9q}4b#1@k?E$V1> zWP)@nrIJx`2Q?&7f!@^cWX8B>ve^~m#ZhE@enUX?31xq6T(3GN2{Uf(XP1)nj#q5$ zbKHlKr!uhJDo4#v{&*1}vTdWXz?>UbTEZO}2`&F?SRD30hbKyrqNiVkRWPghIvKk> z8FG%LY&?1tJ9x(o%?}pQ2MBtGgM2m7CfNsv|J>Y*=)K?k!Nu%m7=@#-`pC4*2fbGz z;hqiw@h6yO5gBc-DW(5lfPwwrsnKe20GBi|;00uR>~91f#4+_17Z8|c9CZ+CV`A5E z#f{7Ma0PsYL#^POFS6mv!LANKnfokE)#YBW*tb5>^dkSOuw|WTlAZiIrSXwtu5_^g z!`=(c&d#nGY{M4~;|-(iJo4**aM;;s&7O{q2#o>Z1ba_! zsIR4Z_ojU^g4oFbi_oO+I|M8B&aF8z*#>n|UGaH1(pmOhzpftn>KMX}%wI=Eh%9?Qlazil%~0wGsZ%41AUVzwKoUZFH#QyG`^rZ}JTJL6RcSpg>9w~UH>7z3K z14Yqt8BipK)%95S zO21)u6!j`oMv!rwTs9n4e`77TXC5SNzapWb7e6d?PmUtO6ZW)kZxg8Q-ht`uP`2Uo z1n7Bs8K-Q^hdS+j(Ff{WWEz$HRnVfd3SK_R8ng^rV`wNqBOXIx*5KkhRXWZ6#HNdA z6YxJE$FZ8cgLA!vE&ZunO4ex|22*{UI4bUbig5T84Wz;1*(*Qz}{Wmwlb^7znN_{CD`? zDBuu6X5Je{&`CtX31TA}{IU0a23$1)C-CD2nCpCGu;>0W1`bveqz$0Rc+?OJUw#PK z;l!UsLZUk@sn(RwAH6bbN1qj5Ch3|TheYr%O?KfliQ~7L#0YPkMP_2Fxk^9f_hY(~= z=GXm*FT>dLl8E*l=p8<(K_j#NdOs3bN4Ynyxs>VL=$3bMMH!;Wnnrp=v?Y|YMyFxM zIKn%5AH2P6gjOLja$cix%zz$DlULg()NoGuE~R7i@NKUqjf0HZ@82K!^AackJ`s1S zDW@;w!$V*0LdLruqPcTP=NZB1h7xPqqC0J9?dW=XAxDiS2sj84!)|5(#}5=DbL8jh z*aTUvs=*Op%zW?Sp@yPa?9H-a1nAVZzpGI zuq>iqeDN1#^axaPEQQGU493VI&93MnDQR&bSk`FI&+0Y;LGBtSW<)3Qkn!5PC8=s^ zc7Gu~K+0RFBwIS#=5VwTv;Ea@~aO>vU5-r%2)L+@XQO6q+bv) z!%c9*?=J2NE`Wxpcz#U>A@}3cTp$+mhzoyhlA@#9%lNRpe`Lr4Wwk+ep zMc&>AMI5mh+PPkjHptNREqxRfICWE_kj^Jv#{<)9zIc6e1cMwP=J-A^f>0+wl?A*g z%H$9;lG>d$oF7u1gOqJMyO6RakuScrtB6c%gSvjTT$eenbY--JAQx2-Wgv z^F{94uqusXvN+dRg49JjNpB;Wu#_~q#A*(UlK*}#rr0;dI{IE1GI;Ke2Tpy?F%;wP zU`%Ue(pzvU`medZa2F_Y0S@E})YM>gatMe?uD&EtGzAvBRaP4)Xz`o#VHPXcIdHNN z8i5Ovyy-453Wp7f@1HEY}xn^pt9z zq`Y%g^A(Aw0q@`2QeTj-RCMi?WzH|6*&zAqKjlgO=?n}?QqwLB3&t z0(G|h$Tk_}o#d@*&c!}lRqiJ<}g9H-eS`C@PKitT%x^r4ej! z1IGy%9=Mwxhcb(Po^~aa2=J!F6oVQXt|~U?k~6;pFk*y7)tJcI0_KnuJ+Q*iJsSe$ zHjrQ|fM_uWXIDzqk0NvAJos=J^1Xx$P`=@rI7473kpP7}=?7e!&FkG2ip%IX(J{_@ z(Al(jWlBY4jTMgH)fKUli>L4=N_8L-jT6aK|BSYbWM{9hh~9Z;Rit4d@Alj$fZ>CBiGs`>UUuaTsH((GRr;|n~TKeJ{W4bd=ET_ zIvBpT2#aTUDa$p2tiCGK@3Nrd1FU8Jd zz?dD3Lci8mL0*0%jr#y^`Q{FEtM<2`2_$0)tx0WN9TE8#JXfOH{*1{(72M}AyZieS z=+cr*9{%e3W`jDL{X`IRu-U$+8p8$#?%f-?Qsk(HFPYSG)fmV@o;3EwSjsv11?@*W z91_FANPC`mTH9{%cw>QTtMkxc9oBFP!36RlOB=BRZb>55->?8354?B@8}Ro?RN9*r zl;qQi(o%ev0TnzfI#W?_0oC>UO|}UHlc$RJBIB!{OB9>v9`3&dJJ;xYCrv&5X(Ar~ z@cnQ>wYFn$(N|TJ`N|ziNcEojNrQxip9v)w)hgmldx&h70})f_mC>aPko$n?lbGpK zd%Czi+&mcuO_WJZG>EL-BGxJy&;=XNv^F#Edi{GcgW}xZrk*%^WlfEO*cQYeqKCWy z{r&fz9tm<$LdCqfS+v;*_+Eh3Yc8U+9T23m!w!Ci-Ei3m#1A=pYe4{Sa}YUp&I6h8 zO!-`tEO_K_|d15^> zpY5f*A4gsIszdaLWHd#BdEnl9c4TV~wrgR8)$*%+Xk(#7{X&9)5Lq-cEQ=8xCe!yBA4D`#vyn@JE3I= zI3SH`V0XGfo>iQ#CTjfnm0qBGB;;Dq$>;Zeg)7gbRv>1|$d=r@e-oSEhC3Fl=zdwO zAm?R$^#y3R8{_bqy*Ei;T}es|@g^j3pHcL>x%$%gW+j-+pNDdnQl?K=H7B$j+|wcs z)ny^?!5J98_qp|R4m4m0#w2Aq)m$OFEHb00Dlu4m&3H13NR(Kh@~F_~e4~j%JW)gu zCYR^gYaJIQN zEn^lml+Hk{cSuaQMf;c>&ODGRQHN8R-`fVEs7|TAV>dwq^$$7q)a;-+NU6?DQE@`W zKF)+z-KYdJgvifj@JDE}0WxFN1IVwqyzGuFYWFa}cZnw1Ak?=?Ym1AEV1!Rej=m<} zV2?&uJdV&Cnx{n5qde{j*i3?@!3mhQnmeN1yq3jD;?LmL#03nk;LIHgc6V>46UZ{Y z_r~n>{W=8t;px!CN*^BGp2m;yKov?BH(#5;?q)D~c=9f4RKGZ{N%RW(;fGtwC1r0x zoq7=CTlW;8EYA#Hy!?Z8>2lyfqoK_H0tqn}9jo84nOy~KPkW3o6IV6T*_?yT1IgC% zsPAJsIk{1zCBzorY*t3zOD~#^qA}$EcEJ+=7QwAo*HXfuxpcO;*MkabNA;_qIb>9? zJw@q1J{vmKBPy_c4uz^c(UrPf=}gPM5t2f#eLXjyinEIK!i~AyW;C|4@YcD_U1$$ z+>was8B~V*MI<)1s?q*ZbTJt5--6>9qFRCp5Rju4U^a#Og>igeI9M0?|&g z_mD?{p-28q2(;U$bgyYr^pL|ANK>Nj^;d7ad1*kI^{AorQ ziCvbvQfps<=?GP>PHO!!%DG8m_)*^}_=#A|4y777YNJ^U*^x4O^akXHOFlsZKdgN) z1RhLr^B0gJy37tJC88lsSL-R&1(=E&h>z%8=zfV<*ET@lESJFluOHYgN{=V7xwK3X zz;P~70i!5m&#*yB+x!H5v9{PJ!H;ta8H-x2mX5)c79}N6@tDxKFi9kE{K|6T19W7LMPs`qQNfz;NK-;= zfbJR@3nWCc56m(w;Cn{fwz{uSdT7E<$owhBD)ZKo-`D=6sa+^dPgEsKEMF+&8WZL8 zZ@ec9R>~Y*9qp6~`iGhlGS38kG3p=VA0X|-93#iW01=e!`-Xw<36w#St?jV&0)aVT z2O5|%N*C}Y&Q^@opK=1Zw9shQ!SEa;g>pHqrKP3t3u$QKC-^>G zQga&>KsxR)f}dK!TxQ?Qj+{VXN}x$r&5vp`aNeIdeKnMdYEM&0AFL<}N+K%yWb8^z zI(96URxgen^==gqo7d2drHyJ^{EKXgdu1SJLLJJKwb-4W}aNM`PGjG=Eit5Z=6qOQ!m*~ zCMqE_mzei>1?U?Udt_m^y2KGHMt`@>!fw>m9Ou|U3`DAM28wo1VWjGy_psgwLSWjd zQs5`X8sQTtUy_7aNpqqe{zYMjWX71>5RGOQ6CVZf{F;s-kmfh9G=tXG**<`-Usf)G z#Nno9{X*tB8UTZRr8D(Aa@+#P33xgWx0<2;ueJ710hVK7=ag;T0hbGPa5{m+e$T82 zEAGR@)RzV%ZyR0U{LIlJvURa#KiG#6Wwt*jwj7g(Qh}H02aV?E zkwiY~nDsrT1K4celaD$}7bwr15?x6M{NoB$_I*SY@lY6?tq=aZDX&}E^>Vm2j=*G@ zFV$n->kFJ|x&qAlcmbZmx+!TRBj6dwE9I(F67`Snz1=4Wm|M%G4~p)~Ok+hwux{U~ zhCgZ&4P9r+$#e7Q;7rrvbVc;ei2!#e?_}Fyw^H2wIK64uz0mI0(Si`Q)7`K}G$La;BlKk$?}rL_)@yIszJp zgTZ6;fAJ1@X`0X7#i48)1Cd`gIsxwcdE4#gX#+*lF^c^ZEuycn62lvj4-VP6f6~QA zky=^}t#RZ|*2*Fh#GD{iC&VpjAbmNoy@Xa!&U8w(lbZeL2jj)ai?xmc(O)@2RcNSC z&UzwqKSp&M>~+Li=?tHYJ&R6@mfBcYcfQ|${~_fPCdnG>i6m+`BYHjEGhq5&R|P@B za9`5?7b`isPqH)LM}FTV9Xm=d#tpweiIQPvv+=nM`ZwqIrj9SVs)sJt5aZQNRLk{e znmKf`Or;>R=BFma_2>x5PrP&mNxuy}lh1$kNB(0NNGIH&=>@3&5>nA#gud26;`Q@zgcQu+LG*!Y_C}*M?iG1+GzUfF89CA4P z!?*KQgA@d2=ernfxL7l$f0mXu-;3gT@?pcF{^BZ)6oWW1<^G#x!zkXOy>hC%ZlLK4K= zy1R)rnS~Ef2K;UZT`>ILLDM^Y9+VOt3sKZ*hTR>Pw5>LR{9))`w*k2;tr*tT@gcBx z80=Xljsaw8)lJR1DQ0mDd#0gWxhrR6s^3yD`Pm6ferST}tMo5s;Fx)D&bw0Nn|DMx zypd8pyP-3Lro0X|Xv9;aN7K+NKWWxVIKl1vHj!$Mh%3BcYAClr z-yW2sQXoQg6H?n2nQ7tys?_Hn?sEbuY7RtV)et6ZZwOAGRimb@Rfc5iQL2PQ!~bzi z(iUm?kEHf52D-RqhZl=3`|I8a(P)}4Guko{ogHtLLysiEVK2$!G_euyk}H(SM(%Ri zupZqTtIm&9eH(&)HW1@>bak~$+78DWc1V!z4B90jK4hOmpU^+75I=f`pP!=aOB6H9 zHp3WYIQUoIhD^M$XLjV^Z|-J1`QJ+W`+6SXVVCLcn-NXOge3_fd2`Y0PR307rF1Y8x*CZC{=f@JFLmr(R_Y#=e3V+q$Ho%(0Mhs{Y%=HnwUAXz9m6*YG(UMO42d9uVCir67u4! zVn%EZsQ*r}sU;Ee1eG>&r>P09aQuJs%$R2>o#t^V;w)E9k;IW9u-y*^qKL;R$ZvU& z9>gangYeG_Xsrn~T=oK!59wlkgaC3m?O%jAsKtzM6iD<9L+p591pkUF;{>2b+yWO2 zey{@SwcEU48uDKOaAaT>vJqMr&JXX0XWs`eyQX4(kQCb%LDHljZ1e&)K+WETH=Tmh znNzC+49I~V2%J^S9MV5cjJG7sVgD;c8*}>1l_+ttEFRfS#>*CbAtBD8-&13al>L(v zj9MGHavFv0)Tdz27TdKbNR79orsP3F}olb|F}j!`Wi%&mw;md}1DRH9KA9%v;+ z>K_`TYTuD7swLm&6sNf)hH^o_xb5Q+HFoNvp{j#k7MZzLyPR}wU#v#>Z&o~th1Y7e zu3(KV1HT`n$o|xtLHDFYy$^f1webtm_AhhbkDmh(3)DTNbZbt+2K$2uuKI>V{lDyE z_Pp_}BQaAc4Vw!O=_2VRNxn-o)B_ZD$EJLx(gD3tam45H%%QP*t|gzrRx&BoWVZ1q zTC@{Q3K8+)nk5STQ7k1IDdyHqS*CGSr+H52nLN^-S4;@$E2ddD8sLt}2}t^VJ9r(= z0sb$XP<3O#JXkvG{h-MW&JX(myu;fwtQ1{}Bj4xQ0Uv7htQO;|#~Y8red>kW)h2k2 zhG$umg}e`stR*CM5FX}2BRB=m(;bLdl6A2X=0F$hK|RZ+R@^GIy8vE;hc}HoKZl0A z+PoofZ3y6`eZMaYSp^UO7;JM5&?pJ)(u*JE+3g*L5u|4*p|zYF1zX2DEM8z;zsPWI z28w?A+AM7MX9Lm5mDtgI@FZRD>e3wCfU}u$O7E6#; zuA=Q|dmWZMi<6k#e5|#{IAIWNLqgLyRkq3Z=)7Mj^^pkz4fW{L4)>LzbpOF=hbBc| z&3r8I*v_NYz30cI7vC~XM#|QPB6Fsx=@9!w+1(i4-kN;+Uy=6y`;_q&G-4^TJ1B$B z$OtU^M!+Y^;v8p_(py_&J#R51sL`)W_MMN$y88R$I5(NaXG5^qE?o1ay<0ZCLGky#mq$?#^|n85}(`biJfFMuz*vlZSn_7ITqj@Ko4^>89T z*m~Zz!w2VF5cue~&IlgblRgCQ4S{bUs~$H7dhup+?^u0^3p6=_PZ$8aT_T2Upj7p- zgneoOgsVDdaFDCy)_;ZQHgvAo)YW~o-DG>(H3LOHRm7)UF;dPgKC=y>@z^pmFP_+~ zMq+k8(MqZJH4w~S(~zHC%6p_l&XH-C4LmewW-ZP!m?FvCd%}%rES)L5{rZ|J`-BDM zHD1rM(O6`V-&lQB^b&#pn?(}#@1Tr46Y4RzCy;R{eMuh786@KpF2s5wXCiqa;^O-R z2JJL@DsV->nN~9g?wn-OLengqmcrcw+@ftUp8GR7yfJwZw}x4w3qdP$bwi19>Ju{6 z5_S2^cJXG)yTjxGy;604g8%%fDCAo*?iRdoO=dg}4OhCh``+{&H(Swz1ysq&;-J-S) z5LCq4!){xv)dYU83A)>UKKp(A{@4{Qpv>_;UdQu&bSms6oDLcKgO+n}W;rsba3@7u zYI9Q+&Leb720JKmpNrF<-U~lz%K*o6hg`aF?N?Xq#E0wWDG%JY%X6Tu)L4*;8CJ4L zKppz>XEO_H?~|y!WAme)P_MD27Pl`BFJAQza>|fSEDE~*W9{AYYd`KG((e>r!`t6j z=WibMwXxoar>`!aFEoX3=yf9%_3rgadIS1vWspESUOKld=O(3mK`7mO?ZHgjmWZ@} z?1(UUVR-ub7LhjM08Vzub=9zyc@08uq}(uHVfdEfa=Gh>|1O*Uep6Gad~fG<)c#{u z_G}}D1!GCsT++fXlB#6RUFgAsy+0bw4=JYKe`krjea5VVQ=xrUDySPbi_-0o>t?E2 zcC)X>SwB-)V%5fb$#j0#N?kOWsQa8mts#(YZh{xY^zgh9mj3%Z3}uBHlZ6^jMWFVh z%jwvMKh9IaK;;L~EZuSklLm97EDdw>Db^Iev$UtUx(;7zN9TTa{5TBC?5JEX{6e=p zZ(?3Eh7Qr(U4Eqm`M-Ug`1&y{gU&Jbq41RKfpA+rtZV6^mt%X)l>Yl!D)xI1KOJbI zGH#UEDyF2=z#DrtFV7%%Pl7&z!M5C1%Bqs}`+aQPD5rbFkL1omgh*m-rx6OaP7PF6 zW zt1v8+r->t}^qGk}!V5yWYS2kFbgL(4fl42*Ra=jtkTuBCdcqU(yMy==#lNYbnIok( ze`Qyx486io_3KM*QMwzjldZQ*vaRYH;dH=F6Lyv?9>W~$RawXBE)T)FxS^Zb1SLx6 zjJcUG(7bp`oiZK<-H$FCAXkGbdOLz(L?`Uad@1rCGqdj&(#`CL*Ae1$(_tRH1%pKk z0~JwcA`P#??~f9?ui{|GZ&(?ZANTdGR%Tx(d~ye@>g>_(7bVVi7NJt1p}Qs7!6X2F zk`I@(%8vlC!nL|f;hu|Ieo(YAXlrD*$Kj;6HSAe;_02hn+x^7CA}R<$fs zzavPaoD?>+=W>4~WG7vAG;s66h4bgj3!iqPWJTz!i0IYT&CMfcrwlmJYvThxopM!& zUb{KB&<0!4d$#1tR<;cZys|s_TXnnfZdG>nTVMZ*xL0OncR{b*wd_xc>zP^IRLUA` zC3*XwE~0Ohk}}0BCWaabGMR2!hJ+#Ry;q^C%q2dJV9@Y-HRbM2tiPc_^F7-D5=!zO zNk)@4;kJL7WVe1^5SbV)ZHEULPk%o>IQK?=@!!~74c-@XSZ=7s4KwJ2B@eTIl6Cmi zL;KFMOcDAZT~{3JKVxOvsP2m1grSPwSvB&s70LNYMRG1ZE~TH=k2y&>ei@KBKb8jB zXLFbWDTy!WzEJrpRsKq&QSEBbOBUyy4e~INX8oU4UA9|XT4k0532>slB>_ddMqgoA0XWh6TxsePiUDMnW@ zDt1$wc^1nTeg*Q|*Zy2S1!q1Lu=5i1vcOkVLJT3=&^-qnV>kwJo zgj2sBt$k_D&|vE`$4}YO^v@&WKfdooia%Gzow;Q}UjID7ja=K`$({~LXCuBREVBa< zx3uRiX^MJM4;gcPhC7#Hrw1DE)?e$NX;_Ke-Y>Cd32b-${->-1%e_VjIm9nN``-Ku z6y{u-pFK?g4b?#cLF!$h!1Vs39@=z<%@yrw4sF9<-gxFpy25@wqWrudh*YKAUYP1E ziPZfAU;k`QRE_32s%Km70%f@<(IS@C{ZC^nVuy<9O|tflMMT-pb+w<~-kvbEd)`Wo zF{hbJp{*3UBlBCG&UTS5eBMc>C^z3;I^K&rUVSa9g zI~ljrWn?PhH_24&vqcM|CJqKbWy2eE!CQ!1kAL_!nlftAt?0ga0}!b{a|=f9f1QH+ zq=9{sez;xh*qo?SoWGZ$Rr%|Igo4{;?`59XqwwN~h-GzOI$II?I6Pt!%UP=Y_1n8R zM#Ih3SfPPQ>kZc?==*D;D&}6;;UBNm!H6Y_j|o2)taklL8g3{Q3!Ntw?nx&9#>P1A z9dGy~D!3x8cf^7GM?202PjU>PHW77xZ7sKv z^2{gNSDi$^D*r%&N*vpp`4Rr%=}|O$f(e`z}u(IWN6?{}rK@<{VJl|J0grm1R~<=tMMU zVG(c`DG3RjP=;`_O64qevCV2~G2)Ft&YTT2>X5Kd_gx44x>t1P(=sPup> zck%I+?gaRvP4GqjFnw@SDVeSbMii}v+nP@rg5o)^n(LR_r{KlZP}6a#$WRznLhG-cg8Dm2 zvuw=Cj*l)x^Q9O`#CbR0jAw7jEM0+q0bABxxqhXuLZ#Jmuo%{g_5>KujBR9>k9niTXt_tJ^cO0RkBQbbsrB7U@}{7glzf<} z0xXtG?6J%#kG{PN%iC%fBMx!)%5Qx2$tGISH>n!(_qIg_7>!ljfdXX8z&40^Y(D~@ z`GS}E+{B#f77D4~TpB<0A29ivnCvS?rX2FNbj-mZM2u3a`=je_XsDETWfjF+)?bDf z`~$d|=toTrvtZFiDq?iO)h%n$9yin|djdR2E7qljX*~vItDo*ZITJG7m$E`2dk$$j zTqjoP?{#708!M%L_7~O48Aj$?f=WVNW*CzHmL=Nu40}EfhHMjc;vf{ba~3QZz%Qpb zK=)T;L|Z;{Btv;UwbX__@Ic4%bWpSCp`%`}jWW)~DAV8FIdFY$he9V`4Ti<9$v(+B z!xtPcw`@C7FE80p6A9&&y%RNb&xG0m|3`L2W_Sh>y5}v(PKI{L&o!b7`@Op;6>hm> z{vKLJ$iN|=Vma9u zu)n8j4wT=(PEe(vVTiOW0ZikU=I$4otbZ;jX>A*7H4YAu{;7#NND+x5EZ*A!GX8jr^!{VfdM?*A|}0E%HD%GlQS zG2|P}RCjNVkuf|y7$C~V_b$Wl>d4AKRw=yh>_4o-8!z5Ti2fz~`9dYRE zQd==890Iwg1Qusjrqw#=C1GOKDg&hwU1oyI5o2G~!i;W79%2G_cJeE9RjR3xe|%ze z+$iFDVem<+wy>OFQv*-VY-n5!fgC|;!+0erDSFG5t8gdNT!~-P@pu-Pw^_7lHnc(f zXh+rTg*dBTD>_1M0)QSnTfJvS7lHOGW2gqa4pAhZ)a+Fpw{^ER872x(pG^ zX1e!uAzDM-EH)mkPp6(+f>#J$FK!o)u%917f_4;3uFE4^zW&2{ z6GGP$eQ)LP*uI03sf#nEaN(T2;+7nB@2lM3C)#MUSfa1^_7w_B|&DI@cfGpHn zUxor-*w8dV{S-lN9%P_xmNAXLe^pLL)S-0kkw#AG9_QD5ydpSPpPem*6h}tfOxs!7 z)SFh#O5(bU1W((hT+q1Q3oi_wA&gG0ocqRrVce$z%)R?+zMuUeUbo32*R7{Ka|H(U zelr$GbEBqRK$P}GwNgzz`oaL!xb(uLRKl)8b3o*qIwXu+UVJdDwBhCON4J;Wj^h?8 z%3jTp*PY#dklt`POkp_*9e>+X;8(U2UT<;{3=g_{quG5)`jSQor8n!B?+hR3tf*2c zop}f9dYIDNl;<7l<0+8|J1MWj;$J#_g*d?e9SV9-FU&lDgU~C9R@c|twbn(@un&J! z2OIy*wM-lIhx;NTmqI!^|1ZIOvfl%fl=lrN<2wjXKkYHg3P1SO%M3tOmDtbjp;OXP z(r(d7g&m4OtvFN{NG(jae5%iU(G`e38oJsw!J0u>M&&Uzp|LXOBSFB5>?3Om+0>AG zcRQyPqLCx-G{ubz+!;ZY6%)>NJ)>c7?SE*DL7N#WlNIjt%FFW%PW1I<;wbbRj2#G_ zcD^Awq2}Upov!1o=Z9k||Ez?TBe>4~x3yoIatX3L&5?Wq=N_l?~W}YU13)KKD#_W0s zp)hyuJln(Et~4_9tc*+_7%~ZFcQOnvFFS~KRCsPd;>utHWAGKIi>!D$Agdi_`$jMG zipZ=Inag3xxJe+=|Ju#;=r)b&32=_3_32%*#eXtg9vqy^jb)pAep+vdyzb3;AjT~B zOvn(TE_ksiyWd=u-E)ohxC!??qDZjuDslGQg%C_p{&OcyeRvv84%oR^V)+PmtG6q) z+!$D5;uaAeJC+scBk0x8@M8aLLdsKI7N=IF?4)YPewW2^6ggA)QzeR(-^o$XlaPY^ z)C|-LRq^>Xl}1qxOVUGB9ppP%&j>ntQomjrL%EOhqYAr^c3q|SsCBvD7f2uEWQ&D` zenHPzOUCzvI}?l(YSn~Xku`0dbSJ>3>fcEX5oK6x+zgStkVg;ZQItcEH{5&v#) zCo&F;vJaDfK5^?(8?*8!D2Je@Qe+N{6Ws?tgo#+Zp$wl!xz6LMNrMS&9o&uYV5Me< zPLKdDI@c>6Pkmag=}E`x#UeEE8g5vH`OH%>hNKZ`8KSfeFXNQdYlg$rOD&MOci~qY3OMqV z3(peNJkElKvtlSKxmp01#8GoxQExjLuGZ&y$d^33P}ij_wUQ*9{Y3hjpz&fq-5TSh6V@-VI`mgJ z(*4h-R-`NVAd-Y3v7}?PGK73ti9nvNneXx|%(J$jLKHzJD96A~C4)OK^7kU3SEbO#4 zL=+;K_rRRytkx7inbuD>^7={fihY zT=iNcR#JOE^flVkOGOvc`VGnIf{N?~0g;Ap%sGal!Ud z6{y7U0lsN(l>44I$MAu8xqY7$vy4;6l-*;yr}S!+f70~Wn}U^YCpWbvm1a~&2OpC2 zQWOcwWl+er!oiq&p*!e2^hQ`0;(c$$!yo#=qs)h%D#%mb02MR`O{NT0Fj5b;BEc|P zYg>)k8d&N)Y9n(vNu=G1lM*^+l}H423}v2MxH~u9I(>y&nE(~Lw0B_%<@p3Jd(kYj zEAaYF3t#s$UbhB_1@@DK{S&#pgl5RmOSa*~AG8jRmioE(L1la+sZP~ZtMyCQ$F!fa zx1uoCw9dmewADu15%3q4oy6?z6jy zKdjtld=I-DrMpi0k>%aVEW}GpNHzjLT0f+Tb;loq7Oj${YlA_MLlT4$_FaR_Uu&YU zs^%AI&l176ixv|`FW9h}anzz2=(>V zc|Bcrb>cwtTBfya)M)Jg-Dl`eRPm;O+1-O$V9p78M_a`nkAn26k}p zXuS=|NsYjaJ7b{tl2(3=#*I5d6NcBI72Ls`Q}i8eBoTO};$n&~gvjiTc!M>NFl?ic zwNXeJ-j{oq>Z!yY;p9F7$qWj3%!>1>Hf`NX*FFfoL)#v7P+UCbL&fuhn~!ih^wn2; zAF(=W%WG)RrD*q2g3LtQhCGj?)7|^X_!#7yaT2>6jSL!pjy%T&t6X*}{oMfpY%Z_` z3w~|jV}BkO0|km1xQ)XIQpPe811{8FuTJ>r^4VJEEDWhs^tPW4GUgMfISV8|;E@^< z7ubIx!=sT#!rg}5i-hk^p67@*=0w|OMfwYS_C%+rEy#g%^aj6umv8!vaGL#@K(jaE z)YCzcmQ32!LD+@3S2hn%7h)`Bm?W`(M!9*>D!gTz;I@+nWdeLCBAr1JYd%=I8x(VbpihUazN|g|L3TY(JXU^nC zQpVO=+H;4nJdJzhZM5fJomM8wy^v^6An~&@z__V6uK<-ebE&o*;J6)tyE7WWH!$1ZaWFK; z#HD-(YY#7J0JYq~j8+&vfEg^2gq7&5bey`dOICmD(<6H3Q|J_TIjAok9nn+=N=|VJ z2zRe~>d!$UD9?Cpqy#O25MDfitmdZTg{1^9| z>||5IJnD_D3q3rPt<1x7Y*0Ii1paM-p5Ji4`Q&YG^sWJPbwDDrvh>bCcwu11rx zonvU_s)IGj$u;D}mh_17U?_1>?#v$}>ZH8KlM0Ff_J(a2Imsn}4OJwz;m!g0RhZlP z>IsG!=YcOyNHZM}`@2_87z!xFT(!)j9(c>|SedvOQqkK6zdZ!cd}AXy2l#cWOdIG} zDN@*A` z>dR4A^;N+&TpRJ&?WezXRDL z5QW^51zieJt(@!+IySda;r<`!kRkfI%_tH}xJS@jq1+uTKPyZbsDR6Fda)d&TjiYA zr-p`1ZJKyN>r109$m}^#!mTXZeyOKs_D;5+!XEggkeZgsQTA%N4)Q~$O2YDGVfecc z-X7TDKXMFD|3ka(P{7?sZC>U)TpfOI;y1&#JyU7T&mV$N_hHz89Jmjw(P0le!o7Ep znb0b<5QpCWy61CWQXB43cXkgsJ#~AatZqzvI`XpG%N(&W-@`ku;X4X&JHievdT!$F z5T!*XbI170dHOm5=xbUz_TTjNm0|iivao9mR2^Vips#ny?Kd!>uRp#Yk@oI>nfsp@ zxYxVavZwur-RrpJb^6(fFjpeMuJ!94tJi&W${*D00|TrBzqvaQROlz_HIcEz@bGe& z>_eAd)HaH}Bz&x16Ll*TRJH6=IZ8YPx<8wJmty}U z@QK$|ym;-ZCDT$8xVA+rM{FJ+Q{Mv8HMc0}*qll^(3==g*KB^4;2YfCiTbGPn75Cf z5I;@cRj0JdEicF|F+mB!C4$n@(xvR(!%#~c0M)8+FS^JuzyXMAKvtUq`CMXJEt4`} zV`^b^jX%gF)Ep=MA?N_qHGIZbm+6B{vkil(_5kehE@gc>g)_o{EAJq37I291hcn$w zHSE9ZrFq!<10gL;bm52*VFmuT6IJpz0vfZwO9O7^h{ycYq>U=;pY%uwH^n>0H9i< zwL`@9e(Xay14WlA*BvIDaA3^;TeOa_%jlkOM_|$r11Tx|MrS;mjmJTzSG48@%J2)` z-Y|zJtOm)p7rK6! zzlMSfxDk>v+p_qfsoY*)A5;9Vi<&ID=eL4nc(v-FHA;RJ(KGY(jLybP?qPgpHP8F> zLFii=T9{yfk!?dav%Q6pyG5$rg3`=ViTinY+tkLqZ7`oeE34<4jd=@p0I(Q74CTM4 z@U#=n@Kt_M1_sV88o|y>@P=V%!H@Fv*p~#ss}8k?&Qy7p2!pa(Z&hYx5r*+>o1$#& zXOeb%DQe0v7|@ZcS^_UVu_->gc_N>7JtXO|H^DDl!1Rnw}8G* z2gJ%@FTZOb;~--}O?+$-Gczm*)Ua_zuCZ6I5boz$lY;?@Lbl|^Zdng9j8VfB1%Yir z4^v&_U`}{oV?=L)rG(0wqkm~0JO+_Y2OkLMHb{!*Awd%7c372lf~jq_z<8QP^xZrT zzb3$UA){l~>U8qDBVDkDdu&ig7_L((FNN>|^~vo%fx795K>hI(fjWp6sM&#GftoOM z;;Jnz`+g9-4E}WJ8$ytmd4QTAx5y2FBII^n&+qwZqVHAEr>EY>Ki!h;zjE)@&~Oa+ z>GkDe|3XCu<=RT^TRK&p|FZ@o(r09E^#3&>GL*oh$2t6$-2~U`s)W8M@{6~wl-s94 zwsEm~aA`B_%gO7Mx7}woi&4Yjh&1l7v1cWmwDvEFMb557gKCNhNpWbUkDZo~FH__U zslc!t+Z|Ec-3Vv4OgOd6McDrZ)r{{7q@#4Pd0`fPU@&D%MfRV288$vreO%=?R1irNz-XX(2`u^z^lqo2xG z*}?wbSH;c=)%tzw;oV#ef7^gFEvL_(gz+t;0c6~V`|DO{l7#S5A1HH9S zh;?~jQ*K;7b>1j3?4`UXwW6=@5ab1pM54aBGK@&`;@IyI=~}2o{XHVhok4j++Vn7| zi_rBTVWd05he(g;`2!+-7x|n=q!<0b3T5_JL0j4FL!_VGiD5oO+L{tow>?>MJtPUb zaz>wtbU&ktuCw7zFU4IW==~nAT3N<6pgbQPtBcmlbhLL&6I3TJpVSKPloEY54|eO_ zuMI%~6I-P~qS&5AqmU&d;jB4wv5NhU(2b!}Hz(#h)VqZ6{N$iK9!*$Y4d(Ia_}w#? z09hQAKsaBL>6WvE$~ODkh`OD*q{KtXJAjQ=>R>biHJT{e8@yXoc2HrN4EN~_EIxEB zgRaW8^};Rt+{m=qm>QPB5vXKy-|vRxlN*U5Pdk`jVPQCZH@rX*w8W4N%ZrClnmn@x zgKscsn|RC0#J7B+VaJFA(pKkoGhcH|Bz0ZuDu)r+&&y0Bp)uV8jlkQp0*3KxGskd| zp{3e{1aPlcG=qDcxU=2M5GF9C#UlG|X-vCZ3tw>NGVsW~1qF0LrNvT?r$2k%DEsbx zH29;-n|+|P%>57%{2r9%1`Z8_(tgV|p-b@kTAwE^Q~V5?wEtSUrh=rbbdA}ZQ6 zp_8aL*VKfq^7+d8oE6+MqWxa8Oegm+s2DtHx%*R;_oS7UXJgU0IlLwvlTdYB=G>rT zmJM`mQ zf31Q0%)h0{63ZboU>1u>I6mjZi4!oi5{5VBhc@k469@Z;S-bg8aZ(PYHU%IMEg3g{Q8ZP!Q2@fJ^U@SDiG?}x;uAD#F$|_IyCrbNS-z} zR(BP;-y&L}g+Im;1XZF7U_?B|rBM%Ta^yJ`mkmzq7{|25p<8f!30`#Q+vTR-#2RoV zrLj&W8P2S&KAthmLZdtjO?2F4y@bvLDzt`MM0GEU=)OLZ>&3Z+5q;^^(lOVIv|7>g z*Wnr{?HF7;F$``-N-$X3;H*7Hj9OZV^R!R0N;ymZob$JqaftZHB)yERk;}BzbvxFH1q}3$G~4i z!ws{O^5~_rI7W8l$g&-x4R$;;k4RhYro3>vjQd%%E4ja#MZkLIz+!Fu*9{CwDY zCY(p|QVrZ0DEpoV2hW`m3}erk&QQ>vb=R^l3|r3>MigE4+l<#O%`ts!K;xA0Q5_$H z!W9+0uUwE8v;&KECQ;9rJz>vxZc@7EqP+7Qubd&#UF4l-vqvWp*x|fNslN_d^jfAV zu_%!!8aYGhwTV)!U1=9H6$SO1r-ZKp*%?n?XhCtqb5V64VjAzr1;*6mL{=@H=zK1! zV*Bmw#gZaZX$>sX%3iq*#|8EAT@rPAX1$)Nt7VXDMkZO$7)dyQ<|=9%)}4KYKdw-j z{^DI2+Xg-Aly-V*K~)x9*=9O5bshx2zJre&qciBpu3T6V5QcN|!kA6b@GK<7*qiv$ z@W{GPnzSt$EphC$?w7VhK6S(G?G;wWn7~G&s{>^olb-Cw?#qz}q_TM4S9OGT^&?V!3Amd~II`Cp2G{bbTOyDpsT{>(3l_sd9 zgW^G$InKbk`AmGY?vhbZBeC3M1u;&g%K8O7u#KdK?S%hoPizU}>v_-$EPgQu$zlzQ zDC>+vRz$D~6Cqke#eRVJ0q5-bVVHB~)hP^FpHqJ=>+~?_{3bOi9@lLNDMNYCdGuq@ znXuGSAC4E#BNs@~8;s~acTS+VY`o*6pp@X|#voBmh~!XrU`>@mb-k)#7;&yhdm)%Y>0&(>BtiNq zN3B+EN*D0J zyy^+jC)(te#d1{{P|h;va`blo(`^#+3f|YBCKmR6AI~y$>|Z;z16fH#aV;Ru#L|2~ zoF$G|v?C0g4WpHkC^uhqSqNictuZrGq-P;p*UcorvhkKSKuD+bkQq=Bs6$|$npMCwFaE5X zIR9!hQr!!m zNX_S;NX=r#@cF^#5ulORHQOh(gh~nnbd*zjrJW<9b%SRx2M zjRd2ZvfbJ^c;*onZ9fDRF}trCV-Lvf+rvR%{_u|i^F-wfu$8yXp`;-?F$_KdW@h&n zSvCeTlb2wZzJ#AZxu2klkmgRqR#sIr)3B-Iy+=>GY;yC4048xucNzXulUZ!692Ezyg zO1m-%!%m==70ziG$jfk+X=F>aRH2)kpj;nv=iw8r7}(_{wDl9(V@HoSH8qK2?JZDD zWLX)hyD8DR(4Ty2v2_G&rAnZa_&eDR*T_BpSYS6HxE_m`5in*tN_=phuP1jJ-~ z3@G$L9#`&W+^KLg-kvwa?7hqDAz(WfF#VM@y#Jso8}(4fvx9Oi3+j5pD#!U)W$w=+ zrF8G!z|a9fR(?UjfB+=q+RV)ondKh}%N<4E3LmSS@|4dX7EiHEkqUL`Y0o9H2(B8) z{e}~dD!gQfvbQ)8=dTG727_~EAl<99BRTi{falG;rgWjujR z(>6vIzqPU=*w~g8>--58HOk{aa0$j16#(aveO<&ws> zD`AwfeGuV!WIB58Be53w!fQUp-M|s8yl5<&8#)nmS+vo~S`jjDqKMm}BEd%1S#_E-)J*Cm5L|MLQ-I(3vVMfJ(_Z;J% zYoaZUp*E7@tD}T4XCqpEvy%!LV_1$G2g1NVhGF*_Y<6;MnKM7+GjEMIGW;G^@^_1# zF~BF2Be+V~Xve8wm7ts$coB%3vZ2WYg09uHYc0alOy39SAQa}3yMn(Zft`wE! zz*hX0Hm_Y1m%re9Ry@sl#np81+vcG`RZQi>yRE+=c5?(;8!+YhwB7iHEl)) zO1h+Dbm3m}vw$JzPrP!4))x%WAAW#|cnz62+aI{OSOXX`(|NWX4Xsib<^$FU81l&f zV936jwNo;39A1A#n?jTwSrJioB-impGr8Hb8qSaM3xPGu6k$1{`)*%!fx)t8^H3Iq1$LI{MzfJ><}E1bTWvL>~P_ zM85Pc8oW}+m`mz-vzUYIivUg_-C4m0lLLf(Xb@E5_CjZ6z^u&CdJq+x=B^-<*jzv+ ze}*Icuvy?YM@lUFV6ZrOcRU19u8n}C&V5)p_#xL)?)n9l<>`H>I@OxHKHtF{C1Z>N z8bMfvpbw3TsjZE&lSal*(!R7);_UZ-f+8PPO-+Df-VAAvRpe|KvEq07kCYo8@pS!} zZ@>A5(}BD>6St296B5RnRF-UfpSsT0oF0+LEic;=_4t=>n3y-F{V7j(ymCW*x z`Y=8$iR~qQI&v)>Z&>cs8H_0*FcrvdtjY!(*&`UXk>!T7D)X58!#Hx8K>Y+qhVzI2 zgCna==ld(cMlSQ&$VQt6Z@iFqz4Sl?Q^*~U~sp80|RGctNF6W7aB%A4Sn zYE8^jL9-y1UyRLX8D&vH)4Wg!OM#B37um@Q6U`EeKY`u+x8d{L{Oo$1d9%Z)bN)PmaA0J z#Fv*i7@vx~)~6zO(mcTQL`Am#Ol{bwk+;W=D0l~ScR-OH=4z;$?2+Qda6qdv4OxPd zU!iN)ez9N}Mn*EJ!=oO<$OsBD^8SCz$iv96@uSye>aR^7CTrLSP>24QMuwctYcCRp z(A>m=c5sm?>pEznT<3$4@iw=j?ofuPW{o;_cO9A-$2rKc?CYFD)_&jRXMTsMOQ?fE zPpfT)YZ$n*TwxCb6B$y+wM@Gyzpt zRTVH!6QU}s+9A^4;@7tuMCOqPnX84t{8$T#V|NGVeJmqS)H8hiK8JrZd?Ipm{h>rm z`oh`C7{*)3G42Vb$z3&SHivhRKN@zBC;ndtIijpL5Ym>#iO_xn3^Kezz#uEACK1)1 zZ~=F#;7pL--h0Cqvi08Ars^s^ue8P{{;&ef)pXd^DF3J9z+g& z3?jdyGN9}4o%rs+??Gg{;Ey1(+~~_-juli47<$kEiS0e1Q)p&^E|el;pp#P=HE23ocd=Mtnha% zhf5~igN)#Az<9 z_Zh77q-CD{)<#)eO+u*2ub@C^bU+EB*{320r5G$0 zC)C`dN0&A>`dDN|`9GQ(t!V`Ip$|nq`wWjF@3H)%?p`*HTC%ks_n*kC$Y1?OMSf*T zyiY}jW41s={_+2+$U+lEEnM(KMK=8(6*<}#NM$%~X}?zuyU2@?k7<3*`U0pZsF2v3 zpc|Wv*B8Jjfr0VdzEQ*3pslM-hTYZk-I$rU<%EN2gvYK4E=zSoM0;8#x!D_V6B?)2 z=?=rGRXp1a4`li0d;Y!~4i$#Aut6TAdjyf9WVpBo#z2!NyT@M{`D`~s^Mn-+eB8_r>IhPkf~hvFp12) zX=5NKy|ay}s_lce0lYA;sesy2^9~eY>w5EsJVOjvu<)X1!OuR+#gOZi39tt{gylwC z8Pq(~+orITDi91j%fEwS%yY!BO~j ztWdP9W$DGw9Jy$P@0B1}^$7ix*lteLw*pBC{batR#Gn+*qr4dcRpg55HP z{N~T{EV4H|MDE^?KT(mlLit3aaaNO7OOPpO@`&AE$PEt(AB(KAzDB+Z%jrn!z6L_% zv4*iQULX&V&|JABIdt1w*IS z3V8=m5gvxH&qkB??71?;91&!|9S`uRxT^Xckzw=Nw^!`BQ47?ggQQk$4asL?txqmg>lDiAIi_kAh zPzwWbcLkk)YgP@_3MR6OU4u4mE#FF(zyewYaHyeFiWbdRX-ps^;}O%~S@@ld{2a*0 zRO`?Xz&K(N`B3FZT0d4WYZQ zi@%AfnC=s2 zU?_~f8un!`(aAfHEzIu-=Q`N_=u-pr<}Ce&nXG5gq-^bye8zhpc1n%#vYzA13SQ>c zdy1j-6;^M-Ph8}^t+%ub;JVhphNl7o1Ty=sd>A|7L2W!#M|(NHG+Lw&V)Q}ZIT#(B zl=vv3qv!4kIr4YH4!qBMgMcH)2wnylIei4w?thFI-?%d@BNr`zBQICy=EETsCZ;Rf zIAwvZ1?oGa>=jT|oi}>{i%Q&8k>Dba=!<+pBG2GSWCloN_y_$?LtgCDka=yG*N~Tv zQx8oz#$IA|0Ym1!orkamU=GKzzo?nSm4*PRznx2PEy)y67m^yMG|@de!wXNvn=+e3jzld4|~UO{U8M4;Hv0a;3{l_nZV%hV7ee6e$X6@*gZ^?ZYTfh zn57#H@3s{WJ(|X`WNnKwa#fgr)dzjv*Zm9b0=G6NPjqgqlqkdBh+-X&Y7 zKyS`q&~r+I2j18Fzzr#TDNW zuc*dVUk$~ck)_>9qpq!kjLJhrQG#wjSy$mVwk1_Rrv`+5^kC0d;8y{MtW7zd>%_}~ zi}EGFA*-$1(hxrYk$1!K1o`oUu`jHF2yrdLKOe&+GK^$Hg9+jP%A6z(HxE<>$TQvv z9Dvq5Z&ag=>5|yD;jXCsjCYI>ZCdOA6L}2`E|5fzeod+b-2?g zyp@(#2Joobw55?VP8%UHJR6~_AqpYcpgTlSQ)-}*_(Lb^+&qL0%`I3Jox1_e&#-F~E>l`!Hlj@@?FHP3~SP>$|j=a2iLmi8R+w zqDq$qmf0~gda-xKiS^M=k==2K37_WFoDC9nb{r*IE|LpGTN zB4m{LkwNDisnq2y*7E1mL0PVsNr7iSx0E-iBhvpI72#kW1eyg8J_X7-R);_c1UBq4 zU9j5w*G`CwTmgQaXOUgCLk!@}M&?%t%)&vo%x%~XjD~}LcoA7y*9+^TvBM;C`Y?%% znO#39(O1vl&VFirPM~36b{z^^)t*wDq;NrjPenFzUqOmQ1WM-|9!8$EVn-(LJVzN$ zg>I>B&f;a{#Q!2Ar&sx8oAZ^sAd6>%ooZV z=`1|`e1lxCw@?R1`y}EBi$l^e)4oquxab2L^-NELjp0uX7}!pw z#t-JVWkIpZLK_2xn8)T&u9w+dXm#J;^v;oESx1k<-Qe5YtKmY{kwvDrcsLnq{hDBq zC(<|Mvo?l?sjrbAx4RkNCZ zDm;H-k;c2JnT+KG@Z-0FjtuizRW0bq`OKnxJrfTjX=GpO`7rb1U?7rV%=n(KX(pFN zTOK6FS^#X0HhkR60N3nbmf84Yd7_XrFg$Ee(N9Vend?AEhB#vDv_jN$`Smy)r0|$V_UDh@Hs<)TQ#k?1$Z|`I;6E_3ttwfO zesgqo{x{gSaB7F#u7K@3?;;}zIK&g}ehx)nl5t=?4Z%al`c zu{P(x6=izl>{^*+M8^J-hQ19{3E{rRo$TIl)icFAm5#8?M9Fq^6Ng2&Ul%FczdjLR zDCah%Is$^DELDET<^U25_;F<2FDJw}8LQg&l}>W#4W#kUlH!<0kM2NVv4D0p(XMT> zLRFR=IRtNbO@#e7nFWOd5zTpijUXR4W#$QZ`PlUa%}$boe4Nm5arwoOBahDH<>O;4 z>`fla$8aDIwV`CCa1SpZJJXD6;$14R4H?*vS$M28QysYX9V>;CLZN<>lr6p zuL~TGTJ~Lrpk)Cp$^VFxp!}9lxalo_Z}TN0`?B66RPoP6_@mk9_mIX zyTVLNUl83oXXwJg%x36`i?VKq{r=2`XW^0GW@RGKKR1GH@^Q~GD}&S97F+0+7rU9; zwa#q42ih|9Ur+^9;Lam3IOue=F|`Yd=n{5j4AaMG>BWma`&ezo{eV91gP<#^V`ajUaMiE(;G_vldAW47 zp;&H!8mDEV2-W=3Z|~rA)hFAP*GpgDAx4qv1lJo9dwrzy4p&aJU(eO>_bms7Q_=xG z#tS1in^y>4UefYC$1G$Pz}op9rJqUXt<=z|*#HW!kQryAaVeE_YpTWKe{=f|dhnBl z9j!V9CB@!=&~9cF)HGSI2ra0#=^~`U_!HO)VV;ACVIMTw!4+%_4o-E9sOQVvt2eVs zO5ShYppD<;WuAw?S^3tj5J4Do0kJVq1OBlKRJVRIiv28FR{(SNG6{9&b}cguIFI@N znmZG)rp~PK-z5POh(Hi!&%HNq4irO(5tEAZS(8DK1p72?Qi{#db#H z)&xO75z#u+Vp|J{il|j-rxmma?Bq`_I>T=7|ZpIrqNH zdCxiTd4Gr7txU(@*rJ7Qf#_}*fR6*Uv3D$Vq|`PF#w)i&;g2k3=_MtV9GqZSla=x_ zq_~=Ne{~1=ium}205`1Zf=}6IJ>w*j>0QYKwF?J9$0vUP9lHdh+AlKo#Fl^?8v)7ulfJe9q=WbXyuAvy8+_yFYC=|_-baiQmI;VJcVq-D~Zr1CkZ z=O0jx>sg>2i!OgpIWCI83|Di-g&Q@VWqv4Nj#<#BI!3C~c*ee4+?dz1Ne7T)((5(v z^qC%W-)06t#{jUV`o~>hf^6?FSZesbB~ZZM07l1vx8ZK$z>^d_R+#n+0hy3k?hZJ6)jXj&{ww z&oqt;;Q9Jp6FI6XA*@qzpKwemK68&*f>1H}<71Jhy6FbC0;X9Z#Efj*W~oJ51MBl9 z*tqb!`qwtKnEW8g4MYBFr+0x-1f3pIwI59Vav~J!aKVp$27W1rBR|)`m8Gbw0|U4Q z_5&OxxqvkGC|dx0mxUbB*b#Xd>Nk+z1s~htO|4CaR3W5b_xnP*+{=-8*?sOIeZKLg zPHJ1_Cw;zbPdWeFP+u%azU|m|`Cp_D$&19@4T}-pbIc;381Lx0PceSGRXIR07905F zq`N98?R%eM+%&_Rn1BP<7YS!Pl`4maImTTVGs#n|d^aV}M(V;H z24Kc{t?zUJ%~;m}g(d9cJU!5ww&7S!)Db@B#eQ5EF3&Q6EuX~Zk#+k#hAZAkPE>kZsD4~{}A63QnQ!&O{j1cUTq2xI} zm{R1XWJN=30y$LvUxf^ksafRB}BbQ_8+j`<*s~S&Fh2pXolP+;=W5oH#aN_~8FYL4e z+7}yO8*AUGLtjdFzY^F>nokX)jdjQavT+$|T?k}j+XWO#%_45G#OlDVSPpD_4Zy}y z-DEA0jq4LUh!gICM@h?qDJh*zkWEGDHcJ&s-?%te4s8sjT`N8UFt7}0*7woI5V9L! z8^^mMdU=STt&FPQiVo6^Em6t+@18b>C`|5twOIcEEjZ35q@Yy2@{>lQy4uaV$=O0{ zLA zDoqF>l&I~b{cN;*oZgxXy+MTeCBht)b*`{k=tL+k(n-TgX`ZYdu>p*oc7}w)LGX9? zHJ+w*DoV#4Aub72+<~-wPtUtKV%UjW3m=^UbKEwXBdpC93AnS0H5&r`u(jU*IOUAHw`e3 zcYRU*SjO@3mwdgOy!EzHccl0M<2d$5jANe@WUSTw_zGYgkGLjAWqKdf=NW!}E>rBh zW>5MLh+~D&1aBN_`c$48!U2vqVcWNNf4NV#`;7;9<5IvI4^RJuvL#amDLqEu z244^H3!+jR($hn9cf%A_04^EcbPDVz{hN8vhI{tdpyp&rb506=zzZk#>FHNNb#_g? z^+^}~Di^j=f?W@AW7zo&|AgB)0@EDkt*u{LF5np)Ij}Jxn^#uX_=@hqen8sB7 z2{ayaDxm_1MO6e}VUjicE8XYnXcPsyZLY{c)3R;=&ihX3B%2Ka0_3L@KXe;MIX*Uy zzgy)r%J~81csI+w+O9g1FNI1J$^}EdryRfi1Lc_f_?2#jJGF$P9Q(Q}7yp!U`~}eq zlw)z30&#d88*O))u)MKQWs$fg4 z-p@M83onZgNxd!*K$EI`nnHnTtj%tdDJ)zGh%!BN(QY=kWg%EMtG%tGQ(X{eZ|NAj zy-`aWchjehBVG7RI)q$+WE?Xt-9o<#lS>Ku`h>tt^Dckac&&Q`CPpCA)25~26v%y^ zF(kiP=o65YNx(L_y`Y&HUqEj-XoT6#pu?zlZJ$&1w4SboPA_7?5#=gZUPYT21OUyE z-j(%WR&(s#rumfp4K-L+RLlrLh_>xqFmnnrVG53v_V;UrnV{c%VqdJFA}(8lH~_Wx>`$4-K=2)48YhhF{DEm~T|se3W09V4CnCju zk?!RyyUDkr5HT=~t!TC;6`01&_nF43`%GhzRyYpI9rspZ|MEe<6?nxflQlrad1{bp zOzC>vtp})vEy|(Nqu;5;-f^RTLNw-0N3)MXvY+FXe^4Z|#C^{O!%SwfPm|WY{2T{1 zraJ)*3+EO%uCb*2+5K|AL`s*^K|9tsY(8TI6v46T4kPm{rN1M9p7EW#44t5J21n$0 zLpi{$8)$G!#AS9W_13HHfep{@w9pq}CQ^zJrU=FJzlMFM9iY$~85ZZb&-gz;JI8g> zYAvlyrN8=APb*SsNt7-h6tQbJ6#DuUY$*Zf_ZJq+31Fc40O(}ql%d24I~}JDOLcR& z_78)BfCPLv*>$5Nu>LC>?d53jfH6{CTHv_Z(L-ri$00N4aT{s+HXsvVTGrwu1z^<-o4^%*X#dy~SWi~)Kv59r15=idM4 z5wa`l?lWZS^GypeICJZ*TtGX z!~{e5e1*A4t2I#_os{2xI5lLO8W=E|F9Y9op4ZTH-1B&YQvbfF6OMt?=Nsv+ja_u> zl4CSf?S)(*UL@2^0Cq9NrpE222e`!>F^*fz=2tuEvQFep_`TAl1DN7`pzd09*`TC@Q-P+RYQ`MgiDA0`fn+U_ zEGXcqN+EEH$FuJbaCkrVLah^|`md{l^!sYv&s;}5`d+I!@Jai|1W}|({c8L4Z5*)J zY3Rei;&(V;@va`kA`oFjNGa5W(7+K1F`#biM1n$HpY|;SBz&kk9UMg{hb`7J^y9F_ z87kg<_p+%TnW{bLdS%G4bcYAjVw9s6r_O8IMcPJaDBQ$Ri<@FUm|0LdJ0s35%J8vN zlKbwvHQt3E3SCdnSI=YsLhe6a_v)}UXDRGdYK%dXe?UEAXolBatp03@+{$5#6?gp% z^+Ana-R6kJIt~H6zn@;8BTwy2)#|3Aa##-GL`I|5N?M| zoAOS;P5a$}o?HMmVp`92(ql?#xp7ETvW6gGF_0>i1|P$RU}8ld8*VUMg$dXO+1+kv z;lDzlJK;|-A`HOOf~W+QdZ+(eGu=^?Z*;O~={g-9aPq~T;^#?h_J#p=G3*F%MpzCDxr*hT8{Y(j$nK? z9_f9$BaT#-GDn3cMf$5`>PtUH7$26}I$ac#->x}0lj9e^0no%^uV}&w6IMK>W++vY{EdGs zjo3JBu^gtOFOuMS<@lb?@EXs;McG01k&MQ->{)l~U!X+jm+vQPpwNa`>7;)#CvNN+ z<7lYOsO`M%+w>|lITRI8`s~?h(GQS=N&C{06hh$Ue4?BEBG9}7q64A29$2SqAV@T+ zXA^AachN(Rbow?` zH@ab_P7oEq3Jx)=afAdS59tQ5&en7yr(okn?{M48r7Uyk+^U(-x9=dxfSJ8WOYdRn zwljLb6wmQA$RJl;s8ve4chn|?l4UQ2`VmrHD3x!}WRI>d3z8W2#$N^SEdXFuNq{Bp zl8Ur0?%woEqB|-dLkn(A7O7Ee4x;Xz2Zw?=Fflk956Hx)s2`JwCztlP*ZWO(Kpb`r zaC?!58~^s%;ooN zk^!3-Y`5~)fKJ?cpH8f&j(V59?%pw*WET5g8JjNCZaP3n^}PrDiN$baIchg@n`H^d zjyjK`+amrb*z+^5rDE;`H#Dhyt?RsmOC=P!6N4x?N?o3RHqd_pgc5bLbjh&G zXwFhDhBpP|N8QN{bW;Ny;_7!CsnybOoa`zJeN^rPjf+4w(6}gUfVeC!OW)Sf{b6 zhPbvLV8vzoe3fTNuXaB~<6HjD26LQuY-N}?`9IDMG3%B=XN!ORg!-Iaj;r46!z# zPE-IxISYbF!we090S1jGumB*%8`6+lx8#tC-QzqA8G|pt-*pO^4s+sFi1HM6(#Ks2 z7#|z$CMk3lfcJ9fs6TahXKN{~TtvLUIxezY1!YIV5b1b6NHGdn#GGw%VoOg6^s&(W zO3qwhtzbG@YLD%v{AAwKkEPZO5Q*_~14QD{=IanW2h!F_YW6+=5I16bmbOlgpRposLFO6GkU zvjAeRGP8Q8e8h9{~$2ra2wsMEnxQX-=m2wv9SyN@J(jeI-WQx{J5ea1{*3Z)P~ zvwM_%#y|=55#>PG4&Cijj#f&UNrWS8W;M{Je%ky+0bSI)t&?`@rcYt%U?FfiM{LbZ z`D-HK$i=?bb2-MM;2A)6g9yS(1L@w%T`Uy^BE+H zS1wGCKi+YJqYwA_Wxh3l9zG1{VR!6Rr#e!hgHeI~ggxvSn6@7%zrhV7l7bo|)0Or0 zFgIlWdB@$G*1M-4LJg^R7|K8R8(S2WMM{6x`zY!<{teVNdO(xpHgirS#rtS1k~ghpdeV-c38c#1Rli1t{bR;8D8` zN4}+)ZsFAHRds^^3u5k zjJB@JL#{!FJ+oIl7hmn(v=7Sd>HbFf-F`qNo&r>2(tny!Zj;&Qz{$x1ftV;3E4TWV zEt|+()2Y1mZOS1}R?VU&zjTLV5>qq&$2jDPqFcxm{aGT7S_FEmTo#jBW%gzW-6-_i z{x4W!j(>=}!^<1}=CYL8=~uo20?;9MR0ZRen$ObW2Z6+HL(}=AJ6y?~g`@QW+dJv+ z2slRIZaoWz@AcpS1X9zTp*9M*Jh8`{Nb5dmrM;c>Jnl>4CTCQ{k2HaPa3wbBgVLd` zKC{y$E-!*T)Y<(%07nML1kT^2*n*{v+M4@pVp+czTK?iKW+#|m6jRth4*-hu{Ub&G z6;5S<*OGQ(NNC48si4Vxc!XJ@|Pf@uO#j)1;q-_VB=!3GRep#b!uHtz8XQ~#D*sY&=#_0h|>=>I< z#h)NQ*2F=HKNx@#TiQm*{O2M>hS_ye$0?`ubgOlv1r@HDn^J1yp?(=QyWPvHJi^-e zrFw)uq|FN>R(bI%%H`D|UQb=gx*~&}GGvTz+3ha+{FFv|!>nVp<7T6t=CHlfE%d1| zP?BUa*vofdSPA>-UV}_e)zl+)DBtJDBl4hC3KjsDSX6++Jooa!pRH2ES&X(37DNV1 zjN2STAka3IQ2rtP#bL-IH2>=xa`9D7$Tk;NI}s`+6{U!6B6N*=;g+V|IS;_ZR97b7 z*##wct}b8<9>@v65|bT!yc}Y^%ZXJAN5Y-u#bN2@t#G_BC)Fwo$OAs{i?8`x4|VAE z`KR<)x=l|7gzbmnt8=!~PLN!+Y$>RL&GmGk?waziP;G%*{KmaJ6n!_su?WD&F#I!P zVn$a*D-iC9D2UEZBIgzsLr*p!PIh_&$0-Iw^gGDmaP+v3DfV9>8rARW*8`AZrFn$k zXuLeDv`SCA9?1VX*1ZDg#Im7tbs}-ud`*Ez85oP70HIiSoIg^#G2wX{DpI29^-}*; zWyC%|H&FbV)xvr?FpAYK1*Hmg4YE2PIoMAuQutbEB}_LDWf<8oX&IEHfJ+S90p=s<12FLx(vN-sCWa(={{fh=#@YSK;udND z=sPOE6Q5Uqk0l;jVSfIL5YQT@@p)}Fnyl|@pcyEN+xdV@yp`L3zasO5QFWd`U}M=G zL6AZOl~BmAQ&!%v|9#wku z0O8n$Gz)jTdQO!Ro_?5J;vQ_r=UF6qT8YUb(L~zu$_9yo7-z?8h$s5-W=up|5e2H; zVrfa0M9N%ZTyK>anv}}qmL8+0sZE{N`uV&$Bvi3*p@$@9#GP;mli>nTtmjoXT$5LtKkZY3lEBB;QD5U_AkR*8f=H1(EL3X|q6dy;Us;~-Ee@5fIY zHG)xgT-YU%;XEa(NlZ*9;Qe_pr*ZzL*gP!j)~#Fpl6^+)^kkR)gfj#%m3~NolZo#E zI3<%2;#jz=6Eh&rAr0qr)3(=H0#b)x`-d*RZ>9j-RZT$ONZNE+}81 zfR;w?F!@gWgh9iSu49>mi*1+<5%uD67)?tgwF%QahVN#dB3x5N znL=J7y7i(;HNuXU!|@Qj#-+e6>9t6b;e)(R$veb&7Vp91N851?ochN3a(R!l6kAiM z6uWE#T5yoU>r(4UEIDcR^6}kBh`zF57Jpl-4nZO#*R;1@K^xwwt<7uQkl-3TJo&Az zP^LaN=xcP?fR2agJn{P+kV@8Owa&+kgI@#5c=W+oPtS>2X z0l)S5Pb`760>d}#RQ%+;gzQbN~4wOVYVuz0N+ z!+4Y6AS+@>-_=?nKfA_Ya9z4_3e6Ub#`A(%Xrn|=go zC3&YyPCJW4XzFX{RcQx2drdAmXzs!@)eU(yQ86B;Q-fU{Q6z`9;}yFlm)lQ-v-k~E zXp!`WLnl(gk$Y!vMG)xKHAI39*V!g%-FrGD4llOvH7;MCId}DtF~`?Ch~*|15((2h zlVRA=N(n{fK3jLT@_Z_%O}!n>&YPI|_XD#DYhL?D{u9EzZk)8vT{bfd>HWI%@{+`k zDA?@e_*WD&a`q?bGSVE5IH=XZ<9D>9m?$(%p4VENpj4(S&nMKXbgp_7*SwsDs4ge+ zTLjEVnA+(|!Wr)COW0@GJY6?x)QFff`dSs76j1e)oSV1f{r9tVp(&x72`my~GKi$< zt}%O!*&;d?o=9qu0O|;jweHkPMiWjfp4(1BVO%^Ob8#lW9b@3Sc@RGcjpZkm-Vsu zm0_oOFKg@G`aBL>p-IvPG>c-gcnbYT`_r7AO4jH+96Y01dN+YWZVO5a-=ItLc^9hxa>m$I&Y(d zO{4jFlX}uAr;vT8kX}X4iuZT;k-cAEA06&8Z|_H%_o7a8j7aI3E8dWstiHa)#g}w z4^P4|z~$y9-U&hBT&=nayMlhrvZHp7Zo?7EG9Fhh1EsQ7S6S+j+z37B_l3(lXpr&3 zjMNvePYCPB*I)#0$E&*}p%xcNKQ1Wf&ue`e$eMVwR&ojSKVIA@d2UwzMV8g^5it<< zn&w*T4h4*dDiPL;hr+Wj9lY1_so21@wN+vVR2Zy4gd>AF6l1)2r2#=^FcQ?3pRd=O zfp_Pr*D_?BLet`c&&g0j{sAUp+5Y}r?dO?xm5OmP?VUyG#(|A`rdTHKIOEvyLR0{iGR4nio^@>&=WkIb5oj8A6;&#~(t1Dp#M9`x zC8Bps$~6A2_5%sonNQ9)mx<&xRXbZL3^6QEH65g|i*e33H^q*r8v@v2heRgPT$&DSH}jZ8xvn97KLytibCZ%!S*a&0M=tkMOm&PmO&2qqAT z_@Ak!NoAhflkcc1u_OkTah^V?DgV1TF=>&aXyp0XRWboDmhor8FbZ22A<#0EHW1Y! zSiv^6+O&InqzESjX1METb6Rx6ur|?~?Q0lB5R_3Q%xxip_zr)wnEeobyXIJQ@K?@MaL2688EL?LKs$39Zi`}6HzuC zSVOt3au%Q1v!+uLXOR?*=*M|s%yCTJ))umj>JQ62*C{;UN>i9)EYd^zJxh8&t8^XZ z5Ee(4QlF_5W=ijPD^}Obq~PfB6g4kCkRB(+NDG)${+^}&CPA9A88gIU*Hi!0&!R}J z*%@;Bf_%rN&Z=42nEPfc6g4SuP@J*v^&r*g{2pDTS*-$1J8TJyTv zFT^RmSUhy}rgt;X8Y|6iBNZqd6+nGH_VF3b;uz){2D)Er&1I~mek@Yzhtv#_G-LcY!NdY;VMK-bL!Ark zsI7>%V{tND1|m&vj2H7~JgbXpOh?6jBYBh9J;b^FH{Y6TJ=(hJTv^1?&k^gX{rfMF zy%XNs)0F=HhmC76jWTso{g4Jp4`(|mY>VI_EJ%$GA;#PB-Ui9Xpz>dDtcbDUjubX} z^kJ(*SPxE_QxS2G@e~Cqz@m_)l~`L_+r_nt9vpTRJg0AS2m?;J=DbQcC21RalUbw- zBu43i^kWVy5#Ak!?{PsEnYyP|<>HG7P{CX66__dV6p8dk9l5?L^1|F+O{4wfiQ@!S zKNfMItW4jH4D0;7#Aw7Cb=vPv5QFcivp|s=iT1l8z5*y9p!!9+8Xbs_M$CYrhgps63RJwF7jv{jc z1ZGC&tf$tQ^3zO_uKIJTCbHvc^o+4Kfnws(9^-9>3iy){5<6#R#KD;x+~V%xp!96x z1tQM1s(7*EDEe4(cV_6m)^pHCf7)iyv>lAYp4wX#x4(#T4L)pYORI7SJ5C}ow)uoJ zvnpTosZcLTng||2sia!pC^@epJ617M2nCB@N=^n(!3wtQ4f)Ab32;nAx@EE$b(5}> zsvoJ7q?EO}L%l+t57`}8EuRl*u4=8(h$PJ*72 zO{zD{moHahP<3nOWCcd~X#>qUINy2x)Kfg=oy$6jb^$_(uol7dI- z4Ej~)LD={-QC3ZjU9zN0vbr7omzxn#%|b6pfI|#8PIod%#X3sohYDSzw&}{qw`Xc}b5r@U8W(>@V^x(&CMbC>S{a{l zrnr&_RQT!ANLvgB0Iz8t8nFW~K7+#AF13F}DW2rZ_##+YkG9VqE$Hb8)JbN)puWRM zw5u-Z3^0T?CJ=lD25oo)Yy#*nB|7_=j3RKlHgrouO-2!I000p#2dh75x8&{CU}7kX zZ%Sw;9Beq8f(XigbyvH~CxMFXfdLAq5?uh|piVvxfaQWv7+?8JJd)SSbE#7zRK1?EskD*=-5A&0mTNvss^2<%Rp7{D znAs^$jI(^@Nv0a)Nz&4h4q>|2wdq2rf(KA(9FXm}6SQWB1g*)LCj@s}rOE$sdz#)BnTBpQ`@B#x+ibV|{F4D>185j0}&8}%JC zOj6-O>9OapqC>QP00^F&;&4>gmg0})BQnA0)aaR0^5>>KJtAM36(1NA{p|S3fcMim zfYp)I`Y9%G77FzN8g!CImzMJ9NXoXJ%p0jBcdK!gMs#y+7gU@kyTd^NbyTHot4*kK zMg_ekiu&!kf_%wV3*03J6K#}MlF7i9!pz+SYQyvWv`>fU&#sv{*^V#llq3^w{V)v) z4;$`)Vb9?+XU^Op*GeMECMg0=dSoMFXu?jQr;U7*TAkBEGVW-Na6(Igzri3UI~aWF zi6V?2R_djCPL{77*9hysTJ-7{6=}$9W)t&1zG$kf?xW9jn838LNI0?EutO#&jvl9& z*^l&Y3Jl1}Yjv~F|e<`A{8MJbgZE&ua~%_;XN7_bQb-p~nabt#EE{SNrfr z7nTe#pHFb!9z5<@Quid{pVaQ-e7XIa`+BD%XJ2SJ>7M)?XN|$8HW^kHOb&!$QEL@n^3MB1`YerMHNRp`ob{*nU z9U|W!)pCHj`}MtxAtk5rtvlR^o{}D8`!CcLlBs1(s9W6eRZ z0O%z!K*I?bsC&8iOU-VWWi7$*q)FQ@wXN6JM)%`qio+Qqq$_LwEL{MpE#5??kbEs- zENG25a#~jU`rkLr*{yu5mDhp<)^B=!$J?!i=;6wiC+fdG;T4;C^fuBvp;2%09sTw7 zSnKpFS7su;xm~Y(voP_gy%hF-{gH-RmH8D~H%T`}x08a+ETuB;gg#B+G=eOR9(E`{ zd1tHguoHG-_R)3p0`9m+~)bc7y&-?u2vMRU6`v7+^IG;HDM@xUp1D+ zol1(O9kn5isbJlGlx3iF2dMf8!Rq!6368XUCb9I%5;S7n4|E9fm&Qvf?P?dweP+w-2lhw%DH(TusEHq4v<5vcwJqUiC#hTKQCKdsm$H+4rIwJZ zq|ef(nPlU9F@GxRq)RK!sa0v9IKa{~MrJlxl)w6X{*n;o+tzK56}?{o=^%OK*1-Q9(eNz1RYFxz;?5^w04p>kkR@ zT4f%wg@q^cTF)n}*Z!qac%TGR{$;Y?GN|7hhb`0U{PRCo3j-TvCTD5q5)DN!!mzmA zFI32}0$a&~dBR~s9CQJi7o4)4wIvDkF_!Hy26s(XT~w|n{Z7JiT%(mxpr+ly`rq|A zPr(}+#J_;_E{Bk4Bg_EbPKk5OIadP*F;ZSY)8?qgZ8aB=`IZxBgF32oWa?@`D9I$J`7rVl<~dN@a@eoMdxswb zd#@ZiytqNq3O@H#_&s|I5~Y2whH!%==_QD`8yv}XILYFq^?lf zxaG`B-G0i?>^ywf){D7ZR&&{5rgxKTJd>D0_%*&Pmz!VEykL2OAuZ$16!d$xft|2k zI`PO&Qdfy%Gt<<85rK+){l3+VqiQtNf5y)kD+?s*6O@B8N#>jpvP}xQ2`jIz*)tNN zVP{?GsO{=h(9c?lhFfH92$(Uo39}`dUaihZmW4ovM%PPruayaqk>-W^53*zdv(?oh z9jht*lt>^Cl2mvPkXN2g-Ql>INsbGUIrCNHm59@M)peiv^?X@vLUTt=V8fA{PRDVK zXj-0nVd_(5-LA=Mle9yDia0JE0VcI*1Yh?8Gk(qss&x_dQIx(UDbyd1R9Dw^O0ba% zcQ92?ga0C-%ukZvhI?|c&$GJJgG~_Rn#Z|3Fh^yRZMdv6ZWQ6s@egu!LR1N9nW&E2 z<+P1T{bcx7*Vtk#dq@;ARogK<9^reOm)a*bGk+pKs@SHxoKkbZ;*T_j$`F@mVpNxI zfle#Q88Y#Tz~X;brA?9}a%uN^#Gug+Y1@6h3d4aa-q|2IIGM$L&oeN$tD#Bt?&$=j zOB~fWUALxGf(b1z+B+pRHc3cBU=@77n$m0FWO7hGbF|BahI9$^Ii|OSl4S2{&(xP@ zQ=MN#N_8vAj@zW|3mrjDe1T6yDP9{JBX=mXvY^+T(rl0LS z0HY$xEeU>Sct7j3tzHsj?<=+xB@<5Obp(7hj|j4}Qz6jK%CsltBkgP@#7bhqzv9Ae zaON7%gA8dr2yS6x%nhI2-R$#RFr6|-pe%dr82p>Hp9>k)-?v8|IPefV1MRE^M68C} zYQ_i;d*5l`1MEHqLPBJAb|w&kS?GoeFnB+@VV6LvChqnG!h;5Z3!U785FRwb)yXzC z%HB6B5^fbxl6~`|84>sKC}@!(2oH4G^M~9~UODXf@;>R5RCY=rkYO(p@kT42C;D)GNF^8@{d z-8I7A7XsJ!F|ga$cM`h_@8b|(P{{1u2s_(C46(E8pg*4m8XhhWv$3IyD{d4th@CYM zkubm}+WLs${zxDgsw|9$;qVdPj-TVE?Hke{sK=HLC9=)HzL>cluAatN!Eu#Z|8xXG7RP2 z<8E94jcRA_z_-|7TVDZU!jNG9)wQ6w`^MYZondx%Km40@6TvtJ?+3;`f07+<3%9d1 zT!6ATqMy}#KCYiVYlNPHnGq6f?~@WLd*5{6-Lj+M)&mvi(Y51F<6wJ1-ChW3LWF5S zL?tYQV#3wVPIMzt-YbMFG$6E*e%Z%LCE77&X5z8WKC@7oW< zNDZyo%uRT1p|62reKZ$XVinB}k*Ly*bW#_G74 z*h|c^v$w`_nhUQl=2~pBy$|$s-+q`iMcfn#GQ$aNc7nYRgGXv6JXyB=l$;BCgU-TV zBIM9xz~6V6@veYVIi9Z7^OY1meY=#KpC-a zp3vU?tfN#bNp)L<@E`yM64}81zAYA;1j}n3mV9Xp3$Sh(=n#y+;6eFp--0C-GJD^( z2zy`3SbLvo47B_`P*3bptz@_xY-YW?(lxp%Q6=sC(@25L)IiWmFmqbvamtdf&fw|-fy3&@NA~EUE z2o^7y#wb9`O|Y|fp^3=u_bnSSlte@=i@HXwR#w35w^aO<{ZKu zqR3_FTkF7#v>uaq-9Wgd;JJUEm}8Sb{}~9ppEXs&Scdw=eU6~2HbujLVEeqf_Yg4o zVI)+70=X&c?>neD@QJ z?R`m|$U#D`MNh-*f7@*X%G)oq5o2|SAxp#n|3e65AV~yB;19okzN8tei;Rq1-MUu4 zbqBzmTc$`gx#?e?S2;*aWRaeW6CfWXS*3aSy21Al=Z6__ zZB-|+*{g3kH)B;8G~a=Tuipo0E}pP|%eB+&6|>%b`0q|jo3Y5cwzmJa{BcJdq%Y3g zgxr|J^^;oFjIF2wyM6wax|3L4(NW}D?_UqX=NJD4TYu{e%hjHZDE96KnSk4W=ZpCK zyYRiF)Y-WYKc5UrYJeYHaJHn!_w6xb{=UfAEL1~XqQUR=K>I|(Cd$L|D}_Im-+sd> z^V(~B7Clb>yoM{*EqnFhlYHEtsahip+CUgGdjIu?`clpkvbVkS?sr?#{^!#; zEaMp_*Pn{QCl3GiHJT^2_omAt&E)-XAM}?F0EP#!L)RsMYJQe$_Db#>URS ze|k+U1ivk^y&21ejvu_=moh6cE;nm+tDpoD9ZbU;xonE9kV|xK-un=%uY~Ok6gK1s zzd!ielbMMnCacxWun{YRyqm$#_dV2$lv>O`QSfnz4#;fCI4Q&^pW!U zFydjFdai7AC&HYQxhF2uyx&%@_x7_fu)3t3QDR@SYWP*ar{Dn4dxf%Kc|J^AVs z*c#7HRjb$OGO@THwb$Tv%Pa%)$}y`9MZX%T2(V-3B+%Fpx|>4!-`;^0|J!m6esX*0|Qg80p!z);JAsyL7Q*QCLsOp7QcVPTQIxIgR<5 zejB`>!PkM`xpgaRBV;5zyZGf}m+n<0KB4t ziVm8aCDO6!*0QpeXSs2!{@FS{ct4zc?sqn-_|BenZR!u(GO>sgsW1McPUg(Og_~5B z!e=tixek7R@OALI$I0i?I2VHay}wfartjsi`Bn0{aSdv^W@h*rEG#rMbVBQO`I|@H zFrS9a+r;e5S*MNXn5*%zv2fIH)1μByTA4&OPi)u2==ceXYQ3+(jBl~r6mZL;co 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 Vdu0Z#0s>q#3j+&KAzT^6J^&)mBMJZj literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/nazi.paa b/client/images/vehicleTextures/nazi.paa new file mode 100644 index 0000000000000000000000000000000000000000..d329d9e10c1a06f7ebe16e9ad063512abba939e6 GIT binary patch literal 13839 zcmeHNZA@F&8Gg?_*MI{yCYck`UdXkvTgN3SUnYcF$)%8_MA>E%j!J-C4*=|G1vuaVco#qaz)um^7zkQ9Y@9fE_|-`TfrzCx$DIv&zPFdaW+!6iG!W8`o4dl)XMpMmNu#xE`Ym5SpvM z;ggNga8Mn}0+>8GRhOII26bBLrlIT`<~`B)X_rd&YOJm&7ih<5O~ORY&Z^5TY1%$V zVH<#}PCV8siLQF$noQdU%>gaLtRK_q*;GUew5J5QJWt<;6W6Q2peCHgQ1;Szr)1DU z7|PbpJehis9!>_s(E@9~PVL?nlJgjhaxhPu&XViXnbdjP**3oxVbyjn&=aGTYQkgM z+$c+_23EJz+h&XP1i(AHBi82feu-2}DsktaLk)x(rDcJ>V@o#>pXLw9`{wCTwoxLx zQavt7q+>}f8Yy^o>$IW&U~crx^=bN0%syfbN89J=yQzVCYr^*S!B?K8t*L`;dD@Zc zX`k|MXt?IzG&8s{81OR}c5HU4n?!s*O(t7fdiN{y8`NNjBt9W(5qtfSSDuY+Vl9V{FUo1*E@C8vx(3L%njM2Jm&U;(ZICM^aaW!`=ddlD>XNJL#G&v;5{)RzGRrn) zzg)Ik5SsF1R0g9np~^N%+`E7r!KThqFfVeZH%=wc@17k zJlmM_n1;=SJjyF}>kUK@D3Pn{#oqn4k1na|M!7oNEpI{}^YqyM*qe4ViDxpr3wFJm zP(qCE)Uz^`L|omkjXPukXS6!)M~8a78!Z$ia%-gYBSiE0B29DTak)$qy|Grg=C?d4k%IrGhX)qsCT+F|!zAV#Oh z)G<&0k`9TAT|Y(qfuPFzj}^G}H%P#*`8x6h+k#VZ`gLVgbQ*=uzlsmUT05~g6Nzea ztNvqT%%R7{cRY#pM`+_^cqsPgYjVfTp!ElhAotGGipjF_xUwFsBpgr+4qBLl4~Ws= z$;s8J_vIb9hWqc!*i(B+MDwe1xBk&mt?vGwfK7Q=9?aAAM9kpqTAqT6r7{Z@9Moi= zKlSk?Z`k3@AC-;s)HNA%tykKJq6Jj;0HNvcb?Qnzk1O4oQ`OjnsH$2#ludZj{>DPj zRO58Ij!q;Y9u3+Dk7zgsU*p84-Qq-Yn+?WC>`-afj}8I|x%F^#VDnUmGu3mmekl8^ z;UA8iHNd&xX?PDhM}Bf#l~1Ob-#_WpaxZy)u;zEChT(5vuzU8Bbs^< z!2fX7)hkuR=*i_gSFeP!sz0FW;z)TkV=fy@id6)k8>0*_E|6#LPaDa}q>*;aliC?G zQB_l2C{Ssl!(aLS-Wt?&;;{9DVWCW$xBTI~_DV05@c1dvW5^^5#Ld+0*c?2VixNgC+$(gdt5L+O-`zvY(s(s3H)u$iv z$9|oDByHKAHg4awE|h&j1fpAF)!6-6??|Bu?TqpL$W~(~#^2uaR@768uH=8xzf$e$njRWDJJ5SQzaqG=7(XKa# zHekF)bN6DGGcjyAG*B*>T#~S_FQb6{t)2a5|E@f->nP#aP$6d z8OlC>ez4|BZPszxUh53o?0O$IB|eZ6g-AfPyd|5`xGu2goePIXZE4#uEXV=Nhph(?*PL{T)_Dc zWsO2S!Z42e^1`~nap3*`U*M18yDGq@8TQsui}P-D=7KBx&BpK3&f~b&`7C}}@dt_!jspnWa%`PD3*&HO z8sGVs^5e&YEdKe?j`y46TIchAaOAqdk>?kSoX4?P9=GE>jy%6ur2i%Tzx5u>b%P_1 zGsPn3aV(a{?KqDk&o34^k7KbsZpV2Xd493Tc^r%7aXZfA$n%Ru&f~Zm@3ZRXTIYXS z{p91iR{6{8qon^O{V(Z%N&idw&rY@A#dVV-kMqSM=W#5S$L%tLi~4scf{2E<%y7qu*FORNpMI49 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/pride.paa b/client/images/vehicleTextures/pride.paa new file mode 100644 index 0000000000000000000000000000000000000000..8b9be0b2ef34da07813b4239ad924a90c553b7f8 GIT binary patch literal 12154 zcmeHNy>8S%5dL=0C#A?qfg&`{v4@~Tz!M-_NVy7eQ80pT8+uc5RqldB%M(NjqQey( z5>JvGQFH}Dd4v=e%gh=mF2aFWvWuOytj{a2_hmdd4|}nNWT4!^K6i*yd*V2bq59Fcp7HIr z*)qvsrX#Jgq7uRh^<<{2=ayu!9Ac8wG*pd#jiFynALL!p@*0hLA8MemIXW}-+QBTg z>r9PaB{4im@hy3(%VJ%8cW)j?`l)RZnV?s8@qlYYO!MIY$m1+1au6PbrU#Shq2~R6sK}>f?C%#8IS3C#4??p82@+r}_%Hw; zxajDDJP>?BR&RneP&e;Q58!4yYGOX)=_hI literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/psych.jpg b/client/images/vehicleTextures/psych.jpg deleted file mode 100644 index 34f2d11d52a96f0204e45ac42f7adbff276290b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106517 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 Sr&3iL=jP?#MfZ94KmXYlMav@q diff --git a/client/images/vehicleTextures/rainbow.jpg b/client/images/vehicleTextures/rainbow.jpg deleted file mode 100644 index 9d581858abe91a50a0bf22f90da13e1ae87e9d31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34945 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

        J0s~; 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

        %((wH$Q5;3&{wZVR&@Mki9P_UnE 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 G7ysGWu|tFa diff --git a/client/images/vehicleTextures/rusty.jpg b/client/images/vehicleTextures/rusty.jpg deleted file mode 100644 index 7fe46225809e20a568d873b3782fa91b0dc91371..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100831 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%0AT^0vg;AvLgPUKA#5gcDiO#d~7+uC*tK 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

        &Fcf`jI)`SKP15^-PmR1`_}y6XI*Ii- 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/sand.paa b/client/images/vehicleTextures/sand.paa new file mode 100644 index 0000000000000000000000000000000000000000..88cee6f41d653479a8bc30dd4a7323138b720d52 GIT binary patch literal 159456 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%0DA{ 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

        MAK2KL14~?r=g*XXP{CXtZ0lFAY=PsAssh8&KYr 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/skulls.jpg b/client/images/vehicleTextures/skulls.jpg deleted file mode 100644 index daffc6e1ce23667808af3d27f180afd05f0aaa2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123961 zcmb4qWl$VU(B@*n-Gj@%I3ZYY4YG?b?jb;Mf(Hrit_vZ-eOVS~kpKy9!55d{uEBy| zzN@RN`+GArzj~^tYi4?+pQoSapVt5+U}cap01XWdp!%-@o|gcM06c7L9PAf(I5;@? zczF0kG$cfXghULKRHQU)Oh9&4CRUdJc;3AFk4u<~g;hZQwXnFPjEoGB|1C&SO7)Gj zjO70)LBqqxCn6-GCn2Gih<@K#(zG+~MC!;|CM7)l2DvJ}mNW0T~9B9TOrS zJCyc1y}M>G8UJu>Sx(%hv7qljnKXpk-{NdO_qlerGVm*p%2y zkUH04?66}k8x*pfA{9BP>M4``4EPM8T9gFQZ5{p6P3YCqN4pBp@%)OdX0CSTqRa4M zV+x!?RaN@S|3h^XZ{~3tIre&w`|zjcNf?Nazsd9wxa3zWXGy*g&1+h8Mk^I4xbl+PE|gJESG|d6wUMoB-rdRrn#oj8!B{hLXkJBygZZ^2~As z6j9Cv!mbfVuQ_Vtz6wyueJR=-d?4k<`82y4+0yXf@ZF?H>=W7aAViyjxE$P>l*P~Y zpWGK?2kTo|oLV`?jWQ%S?jY)|pB48${a9XrObDnG>)7JXdV?yTRGaw$NU$v-&P4Qxe$47$T zvWgPRgL_(gf2hsJJzk{l!ebh?%}=bO??~_Z6Qcud4Qd^p{}FsfBQ`FwwaIkAGh`qX zk=Jn`DU$IpES0}nucAAy>Bd7VwL4c)6v$G-gc^h6^C{UsoTQ?zF=n#~1TG147A~jQ z+eWNB(#-jZ;S3EB%efSnXyH*W&uHmRZ(6^; zs&*3wmi0u!@LJWhm(!GW=c>7RzYr>?+ckrlO}G2(@RB|3kI~rbf9`2e(Fv1tWviDC zj*DEvpgE*_Dy1gP3{rzLY>Sl8au57ka16F&%ibo!ZWp;Bu1Nlq|eqHuB@+Ar0?`pf8E@tn#u zCBY`e5AXhEE@Gvz2CSa^dT?7_+<~iq3tq>V!LzOie$RVre2d}8{S5eyfga-OVV>pg z*WH8wyM+!J(q1CoACQeR!>1`D$y+|RTX#@6XaKn{K3Q)R^R>iE<}K&E^BF);`bL*5 zB$qGbqowIn+DM`M7hL`qp1yBT+&nSsemYo1qPi({@fUXO%hY=^S(u-p>dmQrg*jby z@`fws?74tvvpTuoMr9n?E&a&_ z`-kR)YXpMI$zhj=+S?Vesc96^5TOgSaMjk@oaSK

        {+=n3A4t8Fq|+-lSL9&qghi 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 h6YOQ;8FQ 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
        u+vbp6Vfil|YDN+-sr&uF+#*T3 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
        G2e7VTX5fZ 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 literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/stripes.paa b/client/images/vehicleTextures/stripes.paa new file mode 100644 index 0000000000000000000000000000000000000000..a6578187f7b1d41fc52b35036481fc0a1f8221a0 GIT binary patch literal 53947 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

        ;F0o^QOim<8Z5fD zlrW?yg#+q1tq-8aeSIqTT0LxcP`tZYNnoKQl=Le-NU8vFRsr9Jwq#4XJ9l{-nuo(_ zJrv;-!MLa5A-dX1LeJBa#%N2!IgF~sE(%T^Y4G74)RSGWx{5`VI^vjZ_QRm;>69y> z2il`1E27!86zi~JWTnQ2$=|)DaG~u*7dKmlCLEaxAf1 zqR1^pWOo@^uDai5K*!om*l`pwZ=ZaLzTW(Bw#*?)L#VIL1nW_t> zKZd*HSng3JHM$F{8%ghx^8rEnlTN*2mf{M7j45Yo>gL0*nzL!7TSdIB=9Z$B=YmhI zR%)$UtwxqoV!8NljKdeOk*c+Lk?>t0f`&Uvg8gZA{TzOD#3to51Jpp1`N+X_C1 z?^=Kl`_{=xD!|A4)R^s@;Qi}vLI!H$PM5n!h|G}@YeT%JYI*$COUPSGEx6i{q17rF zAketf5suiba(mV=NX9W)#@>gar0>R0Ozi}B6>n$LH*3~D5;@pUE-Ya+zLK*G?xc+o zz&x>+9PN~jqMLUqh_l-^#SORRq?X$}1f&XwOX+?aPLCXUQ<-*0Un3aL*wsXB7k--Y zX{Zh)r2NHa2^7WCa-7t_)DwD8&7}lQ8eznmtnLn*wj|tZ_F+wWZDd3I(`ePU6jSax)rUEvY1a7HSPns$kXm&-6Z%hLDG_|OIcB=afaoBytYnVesr1S`mK$j* z3QAG}N$xvR-^F-|P1+o^q-IMWIrSo_3;gh-`&JTn0(ksZ4@_gB^{;1)=NO~Kf{hic z6Q(7;hnX(Kl#rK_IVs0O@9#!`2?k=J%YdQ$KHv&kTDrDJRF6SQPKhKQ$E7>%G1*0) z$m0#A$c84x1o9B)uil+b^4XVavwS76W#xRnYX1PWRBC%I&ixwEC2BZfDNLr*`W8P` zalVaJF5sx`I3mVqZ$qi)fkifF9g%Ela!O0<8(rJcUWST%`sAdWhKi8W=qdjImQdQS z`+6EfIGi|g2*ss4inb|S1tj*Y@D#jmIXL6BcpUT4 z5AR+BB;!AtE73YRyYk$badAxBnLLrfbov9>d(-I(0fCYEta45|3TMBgG`;c*iL!;m zl!2Di>%S|2cfsxNLrr*bsoi-=O}qr8vzpIwyPC7SY5Sdt;LXA! znkwk7p#6m zUtYUFOOjneoRYy>7Ll|h^iqBC+Lf2xId{{uQz}R$3vj8o+WE82c|DCbAX?x+M#vG{ zX$Vq)N)?cd^~a@4lH7Tbjk;P8w7%IDq0NFK-B?eV6~>i>sHdDCQS52PmiC5c&vBM6a2xn2DgOYFn2-Y1x299u zikE)A#nX`^JnC?V-q=chq$j%Z-xV#3gL0fxCu>qrKy`!0(~iQTUNp_F{jyEbPBtST zfUxGof$udgBfUR!;%IE1I_P|ovGyQ;R`TN0m;%ZK4ta6kYK4&)8T z{{Xu+BKHJbELRw32h3$fBiwUSR1gNhgoNiIAYc#t)N7011!kQwL~Ut>9IMwIKfO(K zh$;jmk;wz4Y6m2Pk9x|oa7Y8aV5qCyM^4(W@fNg7VIX;d*2>-g z01W5m{81g!%V@kT{A6ve05IxK#T@hp)`F#L`;)h&I{~Da>FCDHl_%bg?N=pS;^s^P z6~KhM^ghOgjuw49&6&2^Y2~`pFDcg2q56+{ogOM;MN24ADME?K_c^JlP$#ZHJ`)5ZY=l4 z$o~N01&^&hnW`;8sHR-5Pbo517%Dpum2rxi{b!@=J+8q5?A&X5knE(TO3&0sJ#$r> zw^z@#T;I0CLL1lz^N-YWE02b-i*HSwv4W<9ZK(6cd8oc2+FokvtGQ5Ac`6A`KS=|n zOJwjXF6}zvL6dze4f^5(laqwk1LJ^@^HW4M&{$XGm5`Mt<_1terF6y)?drrq`{TEk9nwMZ%o z!-xszc0Wn?p^p!=sJYyvN}AbA5Y$o-p~9E{0E(dV!vf=bgJy>sO!syr)F%NWJFq)a zhgMyqUUeLcgl5Z4JB%kDo$AxXOVGLM0~xhth-1o6xgAXj06^!TdJfMlZITX8diP(` zn%5aT=kr+v`cgVF@V(}dtBWou1<8!Io6k+&l+BZDW=q@Tv>eNRR>RVe(B!)gV^Y~s zL#!+*3iqewrs~e1v^8*sQWWBTWas=R0OT5~@kMcuXt)U0N9Q6iONB^blYzUj`_#MD zwQ9FSeNsrB0U-^Qe!u%q-l^y4HmC1-Z>}`K$`*sup0#}JX(rm#DJt^{LJN}@#xOzs z_@OBv8+EO0JucuPC6`p{p%e2ZXOf@w{L(r6n!T zNhwpL|jUYI6<{0VkYi)`3@X)H3xmE!-nH9g^D8(viwS$J6`Owz3H6 zlh^yw#qBM6vENx`EU8Lb_NC;Er)rK4e|mDf^Ks+2`-doKZY3wLwL*_}izeRGmsVTc z2`%l(NCvHEsb!?L0|8*Eq=e*k=s(t#o+?dCx0WEJkNH-DRnK!wc#ol$zN;Jl*Ydq^-Q2XRUQpsVOdvNkcjTMa+cPy?1DveQ+UWJ zDaQm5MQ7;!ngS9|J!q3nYZMyBU_=z*==uopQPiA(yd33ah%qrN2-Z9tA}F3=Xa5InyE4sxobS1N`|EZ z1`Y?Wt#bz;A6m`_ALZ#vzm~QHX1o?b>x^`*KpFKpt*`(+t3C}{Xv<3%%}p8vyp{>v zw2#yWIHnEyV=>ckYvICST0%mbZ-qDyZ1xrE^=kZ462)#+$zE*5B~MIoDtM$|A))l4 z9-MWenb2Ze?elIjS@4(H9RM^vfa7++4-cn>0z>e>4DV#Yt`!9YgJR{K+`@U zTs|fln#)S_Qj&0YsArSh3af>7gFe)&G;4pu$+%BS%&@PSw3D0u|9epJ%r6YHi-&_!T*Q?a8jLd#Lh%Vzg zOv{6aK|&Iwr6CFK2Q;J9x`IZcx+-hw2}*ue+XsXvwm;UrUZ`Id7EKE_`qCausO+|{ zUBv$Ym2|!63D#t#Msp9OjPz1*`&X;fGj9UQP6-}|6{%8kM%wjygZQwVAGLTZJeu`- zm00heTJ~$z>Y0xo6bE|9Jc0YytJO5}f&5VhhnQgM`(x-C{&;MI?km;mp@z$0sQ2k{ zTxd96cuH-~=s3X?zt_65e7lSGbcC}NqA-+xqwij?RGVq7KO#GEu8X)h!!DI&5l$3v zG6qj<(d;=ZTzIHi-16BDEoY(4dc9Lgn+EQuiWc!U;<$Q#JO;8pHO#oL`%}&<)#?Q) zN{Jag>jMWT+Pz+=R(9Z5y9C#()dqSTo@-OjZY$O5(lWd~youJ=H2j8l`AIG`zQH8) z$F6(PUCP@M=@AfTH|Dk#@(^%RabB-b-~LsWjVBV+|;9udj|Y1Lg+~=ilk+gC4uUD&I577;$SkALr+=Uql8^FSkV^QwrH(%rea!QH1ml|(w$E7;U7=hyh(<0l2ZzeA=Zfp%T^9LRAn4uy8Y0p?4=5Et>7n*nM195y;tPf9_rM!m8j)sl6`YpXM%le)#^Ttc`76jdsf{r zYt`yQVn9zhs|!u);b?VETje;(SowfFAAh}iy;U>O3w|eE+d@+FO+27JvN=BWRd&|b zo4Qonk_$}{g&`dcdc9Mn4{uVlyOWynS10jauTa6Cq8br=Ih%1|DH5A~N>bJOw)7ur zEFw2ipO0~K30P^QVOV_DmZ z6w9pyDS7#dyBhU+rSVPT#g;lE$Go-z9dXjrsRM=j8d(#Zr1Y;>sexf(f{Ts%-3i0; zNPP)c+dV(EI(4dAYe~BaEr1?%3^R_65O_7}^;LZ@AG%)RTA>v#GSO(5e4Y;Cpn9Gv zU83^E>d&Z=E-u-#oCLhs18+F%*1cY$we&-8TkY!8U{lI+-vTgr1)QyF+n#-@qU*2K z8e7dqw=|QCWmW3+QNPEbd(N`C-WyX-tR;{R5RL^FX>A*AY7ANP(qz2&3P}Aa7_V2V zu3w$(7^Wmh%^i#&AtM_?MMjmTZ8zI`*)fAFR!SU5h&fuj(~JMt3?7h(h1T+4@G(p zJv8YFNC<|6FYoVu^WB;I*S&Y2oS8Fo_Q~vLpS|{a*0a{Rn!j2D+|bw7(*}@{kpUb@ z2jFTQAfy%I;R*m48Un-t0Kj$9Jr)23>57bW{7<_g0@O53wH}%oo2m%9y^!*J<>Dq7 zbWi%O;O#(v4<9!{J$)TP{ij+wftr9uK2VSe0mzxjD45BvdI3NZ(rcvo_-{)7cOxUGpu9#! z8WJrXsYBxp((oxL$Vr2}MoCHP9YMMepk%(ra`WCpDpr%{)IzV>WFynQT^D{-+r@4= zffkW-@_R=^%fZRT%_DkC?DidTc?CtK`^qYskF~UQboKO~nVDNyT3OpTzi@GNbNBG{ z4+snj4hek|^*%Z#HZDFPJ>z3$R`#dQIo}J5ihq=pmX+7lH#9cEnt!!)_w@GlBL)VC zCa0!nX6NP?kn5<8&8_X7Kf8OFlheOv*mK;)zyENN0Vw`2SpNsv{{t5@2^Tr(9Z*vL zhl`9nm~>JwQ(n7ykBa4?3H9^WtU|Jp*V!JWeXH%F5tcJWvpe}s&~k{#uZv>-gZ4kj z{@($6_x}so{{i-Y<3a-HDac4KkAfKh0>G{S)IyLIiK37UEgao?yXI*6Zyl5|n*&V_ zGha1dyjRI(sR0>VvL9|t#s|P_16S4{3kOYue0*aaZlQg# znJPKEp!Cw)uk<;X)%kr?!lfvo4#I`&wk}K=>wyT?%{1OAu@seB&lCB0;}^u)5??4* z@&;4Zcl*zqF+(Z@8ft-iwx(5^YM8UrtD(@ELI)Po-Clh8p7W{SP;pU6*BHQuq5oRM z^D6+Q1)-qL8of`XEnCYI8%|jMaczcv>j_xlmTyn>F>ai{kmN+bcL#tlQ9(^rTlk2-ZAm(98#VdTK zy6)SP%0L{s0x&=uq#IWGPFtVE%8{+=MXKqHnvtofol%FCflIQ8 zcX{2=!BKVQ$pg@fOO^@883==W?dq;q$zZ5c>sJfGQZYZdo94)o55HRX7N8m<+N)IJIz!b9fS;`pr?j1 z;Y$FJIpjO0sN+P;Ykzp8?0x(^H~(9@w~6V!ZWLl_8F{?;pyKw1zr;$e#0UpzUa-UY z6(ClF=?d_!=1;z84CsJ&F_{V&dl-skn>d_a94osE^AP>j*7`x0iZkF|f7nsj)PF)Ag6db!vxfhA#tSb1Th#$tGgxv2;y_*t-0PwK>-M_AVFb4vsd>s z#r`u+hBq`2Y>gxAk2zKkY8(C;RxP>L#;46pYPN__-d!8|#m#;;ci<0o_Q$K?oYXb0 z0C-c?G@(U1J*G@-jP?bV{`RX%?qIS}Ms@N+2^8NOTjRESbcB2<--zG?$U|tC8E7r9 z1$+QnuTB)WjczZl(?J>h@eWx05l`6?z?mqL{Yda`sUqU;OKDxm*IP^*zouPattope z)`vf<+*tZVD;i8Y*J3P^D#$C_A5!0p@lVSkgpj6Z`U=pc*8ogjsJwkGyWEbj9V zepB7~>egb(j9|QFEn@X8Iq#s~_C;MG;gn=3^)o&Sq`hHP&p(uw@O{GPX0(oMg}(o7 zksbFBDp~zpCwIxHF<`78pKa)L=HfAM(848cDMCXvFurP)12m6F<@YP9A%Wn8}czycto3 zi*7yQwY=vK+jsHX-yXkk(_Uz!KqNuCfJ6~@h!Ejhm9xFR*RYj0kA#N+=7S#ngSeZ| z1sA_qhc_viipS96!zUQ+ zfH~av5a51z^cA4i62Y`kjXjuYqxi9BxE4XxwGjqoTX~dCk6~@Lx0MyIk)#5=3TnAK zF#nn>Zm`en?a;A@MpXphFprXCq{;IRVUat_*?&ks&(i2GyBd?lpM>}mN-JZ zwnDiRz?X2TMVhu|;_|=#61=&CVpXWftYTB&%K*KbmMMtnlfK^2=i3J&1HS^VZPE1{ zfsCPD0id;t9V{zOZatL&C+1LKflJ$v(o?wLG-;G<(az>?PV_^(A2Rm48wrcrT6UBE z1x#9PIzME6jn@y^1I77z)$yY`^1hx(6GI`zJvZg;W+-9dPkk)O@*)56vk{-dG ztgL-!c`qfKNQ09i-XV_5h09@Xr67w-`fq1HtPgOUa?febR^)lF`q})miyQ3K?{eYR zwD=)uND(0)^jsO_W}KL#j)NRCa?1zF?&6g)vAco|H-iE$aot6Myjuf4qa%v()Fle?VH8Pwpat~ zYs^?Ibgi&yg&pH>$K}&NcrIU2VdeA0*o$IV*tYiLaj)t3HvP>ATtQ2^*Iobj-t6O* zVj^2X5$$;SONr?K;s|WAL@(WrX!b%|F}1sSfg}aB>O<2a9|2o|2i56UfVFyX z!%m6@*CiQj%BO*}AMJK9HOy7M6iYQ~ZJsWHyZ0C*ejo2Ih2OlzRrsNzoQRGVhn&n3 zZ~oDs$2p6|A8AaK;DQYs@K0W~e~Vcc(jpVGTHFo=l9}iYbC|3uknFGzzQANiXuATq zR+-Koab@?(K-qCQV`dp%%YCQ0-iuA*(ZPvtZgV*W zVuzONU?g}gr4bktsNL)>jd9I1%s{5skyDi4rJ#R`1_%Q_DBb>PNu&j%pqEi-f>n zpTCt9gVV12cnjPxt6W;Up{L#jR1(DauAldVX^FGg6$Nxamh6iAKLk>+rj?o6#N#@% zs=5zK2a5^xHqb&}0eTqJJRn?;CD_I@c%d;%2CqL^r>wYv*iC=rb?m79WPed&AO)MeytY1LFRlItb!>_cti0*`8eb90 z&uv-Ad6YiCXs0Flj=U#z zS!LL_bA7{9&vC{dTS>yxwNEk)qtAsnUfZ_3aJlbD523vy=fHdJKhn2%JD%Kms8*h! z_|~~D+UR;`e?enwp+=s5nNhZE6(fA}jpacG$werSLsW6F-W;P^#au~{b3W?aBum*Q z?3YOT1Nc3siESN9HdSo@!r*d2E!>p}cPlm;x|Ur)A2=etXfYKiCD!*QCLeQ=HL1|| z9>X0q@%yoj@ zC#Aj;&zyySJ?(3GYrN}rc&BvUIs{~pwWno|OnPor`kW;y{qTc+Kh4wM&HZL>9~gn% zpoLs*96x5?c3OVe_V!`mpOUtw$I<46S=LcT21IJH`@KnTcraH0D##QPbVz}B8wvdG zX_=iP!ZETAXRu%FEpQ4i_$ zQa=TNksu2+Lw*@bH;}GM_`qcFwdinF3n7v-dG7>3L0sJ)hoke!1tmqTjX2+dKRJ&ihjKs+2)3q z2{-bkbH{w@;0xD3Rmhe2G-!8_`J^R`^#i@>h3^NyiGjD9KGf@=sMQ9eb~N?c=CFSe2G~{3RT%`L_IvaJU?@N@)pG_XyR^y!YKP8xx2t;EO z!kM&<-kI}0gnAWl+uHOuas1;b6wPbnsF7su7rt+pQ0OUid!GH(J)SRQA3_V}S9^J2 zvGA8nvB6CibF5y>xC*^2B+{TCX6=f9a?P3K6kN3b=xU48@fW>i0LI%i6=J%#HxN9L zVeQW>WFJ;%KB&TO>fE`*=Y8sQdn38Huz-SseP@Ml*0M`!%2SECg^=T0FFt^XrI22_ zTv+T>r#gB=yNC778c21|Xa&85dw`I}edloWQ+1#&2J)-;M>`?UTk7q2R>_1hiP&4W=Z51TjUk%7Pxn_?Cw$g(RQJPjb?rs&#`XR&30+uJe?4$6 z1pf@0zcp%%Y&y1TZk`Od0vpq4%U*B>uyW({H%a1D*io;Zp*w zCI)Iu$b>q>Y4>urCinkk=0$g8me}+@W~c&RxDCUSnjjAHcgcYN*x2@#1YB99W)`fx@buihhpD#FwS6ms&Xw1Z!J7~uJdaAeVkm~{2LyYK)A=s%COOknwsQJttRVDz>`-Ahxk$~heX3$t{vX)2Jd>KKC|>p z>WC>lVoC2601XDsC+$Ib0*zC6jIzIXF-EQ7e9w3neC>Tk&e~3j#IuIJ%H8*RuB%3hHl*C6a}W;PUTdq}Tr2Mn83PU%94_OzLr$@*gs%#z)Wzy&Gazx#I-LcAsa;=f@dcZNi~4_U?6d#{fM-R>NC{rCJp9slYNl!7QF zxgy(KKLc-=^~!VWJ%1(zTX0G1Sz1xK)@kvv#^vG>P0@?{qsM(?3u4$BP#vO|_x?gO zA~rC{O3j2byLGJYQ>ahb<@1f?h5nT*fQ-L2h!Y|b0$y7@k;l+VFjOe%)f)Q zQjiF^_sN=Hk3N~3zC=_%Q&^2>v)8fQ$U}R1wB>%eK2yQZBw{gypNJG-#T~Dyj`*&d z??ksjOKo)c;=RlErv6lTQ_itGNFVB+^$=e2-n_}po&f0m>Ns;^d7y(je6~RfU?j|9 zdxKkyG54;^!E3h(F(}R!d(0#t0>XBrnO-4i}a)JcM$NG>LHLLd@Un~DVlf(*V7GR?-)eg zgl>%R;=x)|FF)zI|9&V}+`F-TvfdnDs2X?CU61|>lw&ulWQ+JQH&?r;HR)-@+1}wc zR{#s{p@Swt>&N06RL|=hn?=RyTUzQlCA?%$xXnJObt$f;tc@Lt625tDt~h}A z$|M{j(p86J{oaNqD1I0ndSUMPwH!92YiEYw*)>1cOJUbfG(7`}L)Vf?Hlqhk2GfGP zpyZckhMvY`KVx5)HUy`8Fud-#?aVRvpz@Pp66}$}hsw0i+?GFIAHy4~`?GNTc&~Z) z4nd4!MY-K#@z0X-J)1t1LD*0E0|A2?p+w$cCuTO2-U_}~Mfxl^xd?i=T8t^ep&q^S zKJbsi!(S-)T=ee>fj?yFw*@6>#3%K+Py4Us{+0ZCc@6JG?D>};j}Ny6dm1Vb)A-AW zz20E@^IxSh+lJOJa%?w%Pg+++rifG+uzP*u*xgp#Vi5{I^SvnBO)?`)HG zOj~5s|DKlQiqyTT7?^)6ROFu4A6FiC4XO#{Y4Zv!Tnh2+R>WmRxT03n%|4sE)YmMr zrxF5lw3w6VuUUWc`wHv@;Z!8BDsvsca0fIZdEKMYo7!?JtD9eI&S$~#R1qNvl*VvV zyaL_T?DylWOR6@p|MTiuLK06CUO*F*NTk_C8FNEACvYwQ{-KT$Kq{A5-I=N#`V+mc z23(5Y_(Oc_e~Tq+`qj$*d=*!?5y81GmJsNbo5-)K*U>zE%UF8%=G%H5W)}+3GJT(R z$iSF0cq%9xFBD?De*8|sm?3vKLf@&0fN5PvsukYjnX{OQ8*!S z-Fe2T^)bYlU7$*qpfdYx6Kmi3~MqHIhYLCWk-$Oc8w@l-Oz{FQCv@OPlCT$VoHFnu_ z0??VaPy>*+@!}Pr8=?p!_M@B1d|$7(-?}g=D_eeyUhq8aA0#GHC{j-J+Vg0GGYg!^ zg9fP15i;}mb#NE_9ZyqLg~Pr8|J2_QsiPm$k_s~Q4pF|Zq)o3EEe?-}U%0ui>_-2w z1to)E$CqqDpm+_HbbeW{LttNyVwpdbxusd}@1dsufqUjF9(6p67A3pI1G!UHliRbU zn+1Ce#Y_Hjipt#Q*K*-lx<+7!NorAf|E!CCvl$n z@xM~9vr&rQP(bQMT#!kngH&SMV5tt7rB}#?nB++`?F~%E;NKpcIjJ-MBy_C=$iJC# z1<=gs?zkQO^SCczH5>LzFNXyqydl-l`!R87d6Oh8Dl!;9*%MYX4)qOlAIJiYvXOo z=zXjJ8v6FHx&VVMN+;oSnG|kw-WSRL^LV%{BAxT5c7}O?{kK_UALJdFbE3-o9ufL zZGfLwn^t?&HGA?krt_q@gY5>{EYfuFpV;jOo~n>VB?XN=bm+mWKt|?(4ZyBNIE!JS zZC`1K`cDDu<#3(#&4hs#u5XK{Pw<7$q#tMpejs0B8rOrr7~w<#5mHVDhn&XQ#*OVv zsx_zH8($8C_=j)GlEYUlji1?-M0E&-P_OB9GI1GIOZBR}ypX$Tma>QR-&{7nOZ=O= z@|YH)`@Qk09Jdr5yM~eZ)TxSSY^p{(loFx=naJmy^;UC%@}K8MNO()*8LdZcQ`C*O zz!hNhqbmSTJhjhI49kqs>9ObRX@QiWWT=O|f9yhp+FD$^g^il6Nzs;~1?!;CL~}A7 zz@OIHlV__#6w;I9)|XKcQa)>-%1=JX^N;xFcNu?E*EY1$H#4LY{B$j-Iv3##Y%jI&q(Z#6a`*0Lpx*?g@~~QbG*5%(s|ITm%-J7QlB10b` zD17|eVCn>ImhO~CU@|mVD<*F`~;4loIz|EGEZ?NW^O{uEo zn4Ozn^lNQL8SlF@YG8T)Zmgvq6o0$qApH8N;1*@rHg1%teyId|rx>%OYZvR-LdP;ob#Zy7!BoFHC}u;(yC8LF@A$V+FtQYW0GZI(>$!y zI^|Kr+s;2lC-hZOgVY;&Zm5DdkbA`Ql3AIe4h(gAjbz<(!zIUcvkh*S0R&!{KRS?u zsDY6=n4^jkNR%4=jJkdF0-k`q-`4uJnDY9Kg7tYmOxG!snq~Q)6}9^1!g%u;l`uQP z2~G)b=Lu|xiN#PLRs^R7XR2NbHN(dbij$4<3X3Z;Xf^3v!q>OrpB#5QKy2NHOBs^% zi9JFM@dmDXE$Ova0b2l=X~m;uqM1W(kHsc;F{B^eqxvLiHKgJWlFh9O@`g0QGEjH> z2SfyrqrWVS-XHAA(IT%DEGNk^F1nWQQIz@b>wIz&qxFY?-6}K;tAWw}ykWo#WD8fC zaGp_MFgVE3_~t7yR=i5>cIxuZvCHD&+n^5Ful|t^>bgU@t(J{rrnx2ePpTA2iv&^) z?Rp4xmspL3(mc=Y*0?n(AEAU&%<~WQ4;1(`XPFbHcmQbnI8a8RUta!mXelEyoguuC z1PM#{-e{1gIE&ZpPy+dk7LvUWjTiC3T^}j<%pEIC_^C`eYup1}Jbp3*@+i0wF4_@m z0A>8s0j!z$>rOn&6_PyXWXZT?v|IAACI6cu**RHt7LgZsr-Lrs8s3aPj&J;i{-J76 zz#8Jy^w0Z*TV~-KLN|W3V}AR9PuvR!(}YD*aVd(kbrR8XPCK-MGQv&zUpR zW+0l1jjD;?bg>xh0jk(w0#zs=&*g)*4!Mw2vpJs0ek5JVN=DVU z$C1+l33rW$-?8;7&+Gj|5NS#_j$^L?^^6&1A!Gf-JClE*^tYcX?4v-_qRz_5YIBcg?lm0*0_(oF%&g)T~R z;h@c0v5Sp*LQXgs149+($F5f~J)NzVDN%eSdEj!yS$`7=|(+P!-8SD~SGV4UWjFXG*swov-0P{nYvQMPd5S zD;mHH_RYCTFxns$S#5#|PHm{*&VCAu?Nu7&dN)eeBo#lT-&vDgj^bkD(ATfi0XAFlveNyq$?0jkoB#*`LT<^F!=&#OKMxH0Nz z>yH#vlN727341SWaQe)#jBx#oG-S-L>7_r^>5pMA{e!{ew}xH1OLv)ubU^@U7ssXh z1aU<`W#Y_WZCBx_SRp^BX?@}6X2`%t#n*iI7ArEzbT2->Q{g483=-=L(pgvq%@JU3W`XDWlE3m#^yRRA`ggzFO~9Jwvx#teHkAI=BL8`@zxA3IHLj zDBqrf>mgzNJQk@HdoW~|ih27?O@Y&Ua+Epv=&h3}4brNg_Z5jw$y@;%h|Px>I+GSJ zkDJY2WjWho@g^qcY0>7pJa5@#yxS}O$)gJn70N^K*r8^O`F5(8=wGA_4$`Bi*D=SD z=P4?u#|#Y86A3arVN|*`@!@R&0*aG9KDZZ(=EW|~c!z^pcDjkO?{TquzhYT5+3S_9 zr|aIyu_dg-fmOcx4W4G_4vEINTaZz+-IGDjvn#;c5aUZ$|9(yZ8A6#nm~kZHxv$rT zaG(cd4qN6=TWR5M%>2TK##-npFR=e1J#336vr7R^7*dPQ#y)Mst)p(awBY4Dnp8w4ywg#_ms0`2LppV){v7*3Fyo%=cLaMwMrl#Q7~kVR043M5K~L+iRt<}C9ket zLL8ft>>YTRZgG7~zV1<--ks};l7KsaY+Ngrg%BNXjlWG?c(n(<@t0eEF_m&vk8-wt zNU41~Z2H1#z{O%QYeT#flR(HM{OsV;+kh?v0h5emWE2e9RDS0_Uk-H<$t9x?WlV2K zked;q_+I7w$-<~GTFSoT3Lu0w%Sp&H%&k3yqV2mnMEh$ zi$J7tc4`}$6XU^&v7IG}qIHqTq{oOa)(z)|8jArkT>{H>I|QeW#HKFw-25~U-xA~U ztsOtT7V%5Vd@H@yHz!$S>4q18%y1ByaKh_w%Do)M;t14mHfW(mI^8P(}HS>D;IOB&$ydJ)ZSD&b6Ilp!PstRj2X=X!DnX1Ut*zUArK=>9p}>D6lG ziZ=)Klkp~`*z(OyAgOzdqe1l+jVPG}8(N&}ehJd+_SOG85 z**=u~QYmhm6-+jNoA0*RBwP>Vb3E_0jyPDT>OtxLJ!ag?>CZ)%5BHq3_vN+s2rX1j z5E`XQlBY(SQx=3Rkt3htRCRts3Ssr6T+}5iT_5O%!ieYIHk87%Mkk_p-uA|vO&@+> z(A&-D{pQj&CSG6*D`PKN+V*NK3+yn%86!T2n3~7sKn3((2Um^>2uSgZJoLWSnD+c* z3fuMC!>;G;xuT1AoW$MtV88!T8!^CL+h?lJ{y=4~0L;=p1-2P}Rh8nD9sspRQR1ak zVPv>3IscjL zQz(XC@R{8ibds6+tFB6t71@pZ;LIQoUUgTmWSdzpeup(XLRxgWNX2_vljV2)=FS&J zL2GWW2SK%BsL^yd)mds>2mkornH!$6b~vZ0r|l_oc%y3(1rq%~ImG-`C8V+aR5YE{ zJ98T>$nY1qtx!}o?ZU2&QFW>3tKyYZdabpkkve36sh`EuM7Fp2qJS&FunG7%P8Ite z;~QDfsX>QPNOBMX$0|2?bwgHUn2W*^r0K|wkBBlcIj9?Qo(=e zqw?3UFr!uB<#1z6YcG(kEqFt(&2eI3FELDXwDeziWmElfU9?Fl+yjvW4Fh+gS zip|1}_~P$`Tg~wH4d0w>v-YKqZ@|AR2|R2|yE150VE|{hfsIa=!-n<-rdNp0`*9gdSbKxB`>EpWHp(*h{zEdrT)yLGw4boCH#f_ zuEuYYl_nDh{#hQv@IttZE}KYL!ilCpRiS;l;-a0lf8Oe{J5oz*f>415VWkKa&#+T7 z3cU8ARRLohAyDI0r7Yu&QlxNtJ%X2mMlda12~co0umQLWp08e*>swI()`Mcg>3(|r zD~VahC@eRYV6$pVD`C8R70X4CG@p|V&2;D+LMMg6bPtM8TB~iWD_?=^bGGNXye7_cUt+3#2t`+b zm(W;YqmIUCoj8SR>M@41nk2U91=ql#nu~nlnlfSF{*4rgtt$W*acByqI@z&$$aXwTB4WSvjR_5FTDgX8T|cT znrqgQN>!0jk%&c)|SEY}x4n`Mdz`38Q&C$Ck>8ZSDp%~owx zbLf<;=)88qBJGpJZH*>>JgN_^E#&*`$97SbwLw7^N^}CbSKN^#`B*Tg$3g3l+8G%$ zxqQWoQ9Uuj)CDa;7)M5;2$rc>FG89^HK+B;&#GI$iXCua`s4X{qIw`*Y3_?umYTpA z_2Q(j^oO)}4Iv>ogiZ&c=<;>ohP{MwL*ulxi?HdW_vLU0Z=X2t zMO1VU;^59B{%gm{ZJ>>6b_YA0p8+pEr1EAXx$W}Pwo-lz4W@eo7s5v$WOdljvJVQ- ztKG7Y0Sz9sPg&vO;$BNp{ocunnuOSV^^1@4w3Q1>Xa%qd*ndoo1NN;@ zqYd*5%0h$wwfTqq*hV3Sb4F+B8?r3YGk)beb>2-aMJn+{+4=VkS(dQ=>}iSi82Z-JMO^rysxLPm4F@YQA0@)128|vb=iaX&j%Ej7Z3~ zzyMmpY{58PmkH@ZsR<|8%n=JmmTEko<8NnE6P+b%VJD3j8@}seG2!aeDGdaFvo>_< z`-9^~gAr#Fp-r71yR7%GkC(YFS%U()m_}DT1u1Vx9rwrDb)f6KqxtFJwS_2)h6e+v)ZVU_#5s6&18p za^GxO5zZE&QagF3t`|t2!73@9wyf>knL2#$fGm~v>-jTl2+xE!L?ry-w3>vx3D|1S z!Qqqlr|1-}iO&W%w5=!1$Rgir%k?>3IuQ!PWzbMkVTtRcbfCSdZa~F|lRXwC5vKYp zivwo*qI;lLM^4x|+OaLml-hdDH?9TL8R6V}qT?Hg@@27}ua0jB71FTtUmR0=`RClz z_~^q$>}@(`p~#aDT`GQc_J+!nt+m@E?y}rCwg5LoUotO?7GRgKIR}=KDAimqPOGY^ zA!;AHp|2U~1GaoM!X(puHy)x7j02&c_{JiOc0=-o&?7@D1Me1ZG?tCjdiNx6{Ekn+ z8kQ6Xf@w5F-Qf+egUOrI8?lCMXz8yqCDFo$$mq7pYrWoYUs0xRlMR|DQB1bsNd*l7 zGD!tI0R?n8lI)oS>q#XQ1Lg7OS6!bva?m^U&cgh@S1*(OXtsN_8ye2=)7e57)q|?M0Q7(BK?;J170eerHN1sk=f0sX=`tu z@)h7sO!OKj3z{WN3TETakD5@Sfjf zXrgHEj^~l=$5cPZL#ye{(^QV6gD=PM77|~_InR_)Z4G7Bo);`%0T`ib|11w8%R`iG zV(oI2D;ImtXHP~?WzyJg@^AYE2MXP{u3e%?%4dM%?pP*Do~0uF_@5bj1x`u-P2{Lk zoGL}fC4@dUHCIpURifv;p^G#vU|C_6LmqKV+kLwxtnAH|i_%P=7 zYR?!fHtBH0e7Pdu-lMD4)J7EuCL&g-r+lE#LA-xz>}+9ijj1d>ez~8+huyEW7d=gv zTORpCw@))>gCARe@ef;oXIHF!E%GKBn^$VvaKnM3F7)yGXTVv=xz1j&W8lu#D(+TE zRKOVRo`cv_;MBF1><#zomp(a9s#=-kduYtKU2Y4nMHQ?l4_4a|ND7BLob{3e=d})v zRYXcE64|`YW^c~;*l5k2efD0rY+{XGWRZO2IU!JdU;hi6 zcg6GtY(pcrBE*QY;P)(cYQ3WQ6g7e$zJpDmYn~hFqdn^Ni$dgvmx@ zla44V(O=rd2`<}T=znjI-I%*C0#+Vk>Jz`e%0>#y6+8rw`-9s+o{>l1bw|yvY?o z#yOD#j#(S3k5h`Dtzp|a-$8EShPxHd^F>l0O;c9+)YNd^rSbNj*r5*%a-S6obU_FM zq7quNTekUJTH_~(qYeTSjjJ@5AY6t^SeeJaAKxmpp7a0A1Ljs5@GRd=xepF{Cg~jD9s(d`Q;YJ02S?dq;_ z&vLV{b0uYH_$8kvddje#wClz1G4Gz}N=Y^>+Hz*j(I|}6UHCJ74QHwfDS6)^wzpb8 zckmDcne9J0S@C6c*j15g?GNIbHP1WxB2Yg0D4x4(lu5nf5WeW&lg~;hg3yO6d7ExL z&Fy3L%2?R#S7i;<_^H@x$NTPX5J!Sykkj>u-(>UM#e{dH_&BSBf;50c$N)qb-M2Z% zvlWwBqLWj5Ag#4eey z02>O3ZV*?~Y#1${v-Z;QL)G&oOxuLhVMn8Ajh*?~>jK2cB0LQ^V41vWN zk7woaK|EWJX?2hHXwjpcWH7 z^L|$J(O{rLd)u?h^x^Y@m%;ALMr@7+ZDdtm&u8>kkTN=j_e$bk7aruyc&0XLa1v*$ zFyM`%Y#W6hd%cKIe?I@Jxg#f7{_8DAdOyf`R4|u#Pc5PqGNl2EMXkn%gU~&OIo&4_ z9BWp3ohetU1lez(F+`>5P)5rtDS& z`F;9Yxra5tFD#3(_b+5aMnjD0ATu3OHMlcS@0~^(1%^lXXFSnMmcTs)ZW>7o!{(*y zK^9MS1~%y}L0J1@8P|Uvrz-FUpTg0WJ*YmA1LU^K9)63E!P>3Tw-wXwh1!DE$II^~ zoi05wFHSeR0{nQb9SxKAW8&UWgI}_8VqGQz?A`ht1TkKs?J0?_=hYpzqP_JMMKb64 zF3ZzdO7ckwXenG2k`JHSBj1{`FqS6aBY0 zgd=s8gQ_dxFWuW-2csp-XS0o4aA8z!Sv${Qc^g-NgcvNBSaUL#ypNgZw)M=5-mgvm zP0e=BJc&B)Bpr7(bYeuwAhR)4owPFF2!QcMmkM(bVcem{O-~2@(*_`yr)6-~_n9GM z*LoLJQ!~ZUQkl6lO%F8}NGiF80TJ|xkI2!$sRJp(^Rk6b|r&Z(@SNzJ?pXHhu;fNd-H1}Ba>*m z5lFr1eVOjXjJOH$2tgtdF$b@M9rh{aVG8sx7P-)R;|4v^6t0IiI)C$stpF}E%{t8d zdQ%P^tVxW+g#e#hKR(PZr<`dxe1;b|#?$q&xDN{28tT*2d?IlqstsA^Sq1eA+!X*D zjypzyVhSiA3Yx`U)!!2N6=|w2<0dxULMN`rxLy7Dy6O6fYOV-zf?jcn{I(0Ocz)sXa=%`R<-CFKNbBgsYx*;Qyjib%BBzJ zFr`4(ibojpzRwS?gDLkE)2#n|plY_gcooe?@A_n5VGNU&fA$xA$k+Eq_b}HWU*ZcV-}^X+9pVRlK6}-0RxTXExKNcO^l6yq4EK3JPw; zQl2;Bjl-W_0b;apGlhFODedLBil-QkyyvA}mcfTRTBUZ^y9WS|=hGe^@@SJMmvg2% zOrfX`%YG2&NLhxRxIog_e%7uR@P>E@Cv1sW<#0(ZA5?u<9I|}n{d@mia5TMHQqEQx zw~jvtg1_&od)`yY~R)AacGu37sq+Gi{AkrR=0H@Gk z3b5aDHF3Ej`M`$pfTpI2o0C4X$hk*NPp3wBbR#W-JPh=1rfE2(MYTF5j6U-|Rr(J8 z{5>Yiz~TzPbgE%Q$UZB^Ipb|`L8qqgRP)3RC+0mBEz=qXWe03D9&iu1E;X;IndF>R zb1v;sV0Yo;FPR$*?5S<*gHpCF)3;~$xNcmWsw&#JWEROPJAq%Tz(-XR4r)k-|WX{j?E3Hx-15)(M)sa!PkB#SNO3p%8_WE5Ly@USki8 z{sFn~c|J!&RTZ(eANTSv-qbn4#p`_<4%l6626#n965(&KpXv1aCgvzy0XkQitoLjz zGOFeW%S++YPmV>mn!cbkueAw)SBBnyNG{@(g;`RSUJ77RW1w!{;Jz#y{*=#EAz>C% zvy&%dChvS399BL%yEIzc-JzYdtt>7arN6uOcJw>s*X=2@!n);u0W95pgVSN{*?W-3 zI69jdHT7!EG7qH;kMr5kJ8FI}7t*2%%!LJ`x+u5dU=0mYn&7cQm6#@)pIBCE?`iW9 z>79IHyC>ke^_@0mmCrlo?r$@)^ji$+q1Dku2}l=A0DwzGL7Cn4BErzCdZXX?7p~h( zXgJMga|>2hG)_D6?{C%MFGC#)@sGU<*xPP;t&g#;jFf75-OcDZ&(O8;=6SR#|8UIK zZ8=LbuSkO4G3p5Ap~-t~;4f@Dr1?#H*U+iW5-|_%T)@2?P7 zjiYmu_J;nlwl)vxZqR?X-b#=MIDS?>PTlb(()y!=d%@&zA0~kiXkQM)Tbh9kcRJ;#JHK^daqrXWUy8hwBRRa5f_h*N=>runY|x~dxx!W(L<8s967k#Su>E7d z-eGlA%+zvQV_bz=+LC0bto8#k<`+&&^EPQk)4&DY@(F*t!EmFUb^HErKNg7tJPv7_ zyHIqRM-Bq%ixe~@eUiL+;o?|G%l%D|NAeo%3sJo);Db)2VSj2V*em-DHnU_;g5Eu)31xVI=CGhtsVkM7SBvbVOum=C85LpB ztu>?qLV`L-k+vcC+x7Vf5(s{3!mtaC628~ zO*o>*;?Lh4+??rCu*SmYZxGhtJHXy-j-&&qIZfi;sp<%+e9u3*1h1dW@EtQa!{`p5l&N{*Ar4iE6A-zU1*? zwaCeYSTZ}`KwnE}Vhxpg{Yk<`_-hQc0~&VtsD&REcgAmBzF>`jXXAg7 z#b}A@lXpF(_V)h#=k*_CJvsuqt-QDH zlUY%V-__r|O?|7?cVTrsI9@{z*J@VVHYZPz>CMV#;uvJV>|bHUrsk_!?m2(nAWLC8 zoG;{}Op%^KohK+5FSzwuWY6uFDy-Cd=2(cNSpWF+D{WAa@$G%lls9Kxh%X^gD8uu& zR{+n}id3dO6&O-lun``!_r$?4qC+7K>6#W9BpX^hcoD_9p;}?vRK181vt0l_BM!jn zWdw1?7)@IY``D!rw&~uIhfTd*sG*3QktvebL^wQQ(k|w)RS(B2fM~F#3#wqD$y)}| zLRD3UYt^?`vZF-qojhscs555Ma+Ohw4*w;TA{N9538ddhibeyGfcg17n?}5(B1ClR z40pyWl6i@f^!`bqc}w`FxxK5b^jhnCUrv*TJSGO*PA`~~$bi$-!Sp9mef$1L;|^{8 zLoVN&eIJkIeZo5zIF9(%t)5#C0vw$WQ2&df>u`kn@8c?xmFyL=H)SSrMOKnh=HZfg z&d5GF&Is8nWG8!Pp1ntz*_?6ijI!^@Ih^}F_xuNU-}QOF=KFvn2yPvJUd;0gh*42Dh5|y)fIwjZT^~Z-rhRf_{nr}jTxb4U`faR3*;@()wi91Srr+sz=} zIqE+qNa2^T@twJY-FUxZ=Z5dkyS!g=bI}N}0U?>Uu}gjHIaobHBI&jW?l7J_s1qba zi!pNah8}>Zqr$wkA<{~v7F^oQcu?{0UYal1|KMHlU*3~^kZkpVfFu~~*L`DXO#D){ zTxAL{H2k-e$Q+Iz#-8o>UP_YF?r@@5FjvQv5`)Z!n2DaW2a6SbB|X?9Rp@ha`14;a zoc(I{R6@J|QG~+lvI$}vfPPQ{pD@m^vy>1#Y?ya(u}0dKf&@y?>Th)pq_}xBu)go9 zTTLkl72d#ZkZ5=?%aaUHxxp;$!LEE?-nC+IV2RH3u=G?wtW0CXyUDM(=W9eRrg@Go?DqtHYRbz8Li!(em!Ce+$=N&rmCpe;7=PF>{Q3RZ(zEOZHy2L|Cs;rdqvO8cz>soq1=?pAEVY~twp zDjikIxU93prIHO3?8|8E>(f1+c(IoYihIkvfH$)TC*bm5_)~}DOl(9NFAG=|DX%ln zc~~u(R3HI}0fkORl|J{~xP?k{o@~)zg0am298d{#<*>K&imPY&Rx}eN+bH0sqWcdBO}7{@7pC2aP0Y)<}g-l?LaN_9^(G4XEf5P2JNFW$QF|L{SRSK z>D#XR9{4leg7zO3x9V*@W1;h?^^AV_-CtxqZrKzuuQV=D6+GxcRm6UHV&JbdEi75e z1r|-JVd~OKUJd2biOKq6T93jmo(5#68pCgsZSSWwtwm6SAr0v%7}s|Qx5wuq?Cl7d zwDui^s^m478EO`wV(FQePMt0%TqILL8m=<3tKoMQp%h!Y6opQVQGBdVR8j86j0ey3 z`BA@30mg3T`A5hKAHSY6o^va9S{q=O*ZY=k`a1B1~1t&9x<~~ zhiFQM*Vjhx+w;azwZSaznI^i%bW%qA00$eST`WN zmL+q~rGDQ?Te)20!R1GP!{$f9w0*x1mnX6q22!SefmB`|NL?zixagHfM9u>}6_gFS zX8mr}9l3vAHdG;7XWk!mPE-!@Q6dPXWJQe-Z;R2Fts=gzwW?`u`((h1!ODIi4$Z%*ryn^rt;~z=7yT`|aQ*O9QD|K#8T6Fony6j^4>4ltQ z+(ea~d2;ZCd{N5ci*Obh*xseU4!QOM)x&EFiQU^XWa&rxHn*kfiz6E9(mZ8SjRfdF z#Jx|tHncjNd=^BFuE{JX_~VEFqlmUi%46;z&Bp2_YUjSp_Ah<@TZf?|R^s-Msv~^> zSiLJWl4er7f-LO-SM%C0)rqgLMty)Vgk=PV5ROqv@U67SnjaaObJq<&V7FRzk#m0| zr7kC2_F3Of(8E=-oskUe!u*4O=QI3AVF$Xg%cp@$Bc+y(m+m+#uF4cS`v$r16liES zHDxRBbj&&Tcz*8Ju;_UMq79z!QjFEdb;a7juZsQIPUlNq7r5PWlH&C-o#utkc8*Bw zHxyS~`fFj?uMd^>L2MfIkTog-q+pHEZ!@2DX*rcTkQJN;w@=y4dUs;qjF8zHZ4F1P zQtGJmUHj03Uey_wivkhgUvnIUH{fIsm)-UeLF#PZ6K608YNXHSSvL5O;#2+;-0TA@ zmxYVFHbGsnUNen?%G!MId#dc>MIEmFyoXMhnSe1}#lSo+?MQ=bf>T85?>pRi<=+VD zhE7K2N3^Su7c!sZD+UD*RBu)CNJ-YcxZ~XlH|~Bf$F=kqg*7nx%$_ITF@tWvRRE!& z{%!qfgZSs$JFCX4DtA;;5-zWuGt=-3(=SZGu`gr*=2OH~e*L;x9|jA>1)X%dsL=gG z3Rl+{AuDFFFkM%Ys_Jhz*NiQ%q0 z{|oXv88AINpRvn=ZZ#s3?VGOlB;%`IV#jQmKRQb5NS$TT^>_F#vNHbxA&0Hr*arV$6O@HcunH*gqae8c2PEvtloC0)yZzf z7;xpG)9hMj3#~&URLu)x-rgGJv3-)n(i_}w!-55cb=y9KIX#{`J&SJKoAS6Fc6O|5 z=T<2)5bt86eQojh}XX={+GFb;FMw0l=!l9YTq__t7*=S zowZq9RA*UT?*1Z9g0b2B>|NW!gia%x%^2jefPj!n5&N^7JHz{^^s9r~a`N%otJ$Tx z3h%w&?Kl}5d;@_!7+X`uY1cc?Uvy`(euQ!R_EP!s_>4Y3*3Woy>nVM-DBb=qVi1lx zrs)W&v)BJ)H!IbeP;77gK(@9Rx$yetPyKvq+2TYo;eUUG_|4$GFaM)}7#iT)3FRA% zQS%=g*FzSzm!YcCdV?FvN>4`?O z+ZHuE1N=_Y|0-4ecD*|^tWu0xlQA(Ot4#(+PRX?Awoj9T;$$?Q2k*O)TNxIkC0-t< zq24eKg6_zvv*C0HNL&a+kcyTS_@XNdVI-^~DzdmW>ice=aF3y#^y;Qm^;LQoJtC3_ zULW^Dcg++)7CdB{4w{yw@jrUTIG9;#enqO~kIFa}hNBTsXBzGfRLHa=rMj^1*zA`lhMawG&rMv0r zQ|>L;t-;Oc$89etMx*;EDNESltHi+!mAHX6pM24S;7_*qr^;V@KW4cydeTBLC?fTN zIOH@`A$+{JD54aA<#W@h>OY82*6!pRM1)<-OlV6o+jqB0d8_N|pOW?7hbRIXb$iDF z_@9YdguiRza{?K9*3s(D2j>sUt7aBG^U4iPws9N4L87h&AL>E zFO7pox&8a#4A$Tova^m3{koixAoJMntJUsz@jGC@F4I#LWqd9?gF`Q7T`zw>~lNA?S$DM9Zfe-7=U zt)yfIQpilI#+zXthTq$5`Af{py%IQ=H=A7 zHkbbEu?pq;6cvZ8-uhZEBRlH6wpzytLOo>0t$r&n8e_0iI1kf@W28R6Ylb5Jw#h$r z_d{J3k}M6jrN`>T-`Pd`e;JkX0rC6fvXBqUCTgOH4OdG?H}(Y{=~)LsOCN)652j*Q z1cmfAywpLG4P4CH_Z;+VafN*udCFIr>Wnqe*TpSZ*N<1LA?=W4uKFy!rBI~4M}xlL zqn`Z&d-@I4dol1E)k@V0L#7(Mz}R?>0Y14I2hjfBdL@3@EYbH1339L`G%3=Z#vLLo z{lPo=jkrr1Vx>t1QuNol25nYLt| z{japZrinCNt2N56(*W;-9n+v7G@yg%Y;YoppN={l)>}@Y-1AFv5plBW%W86p0Me^xv;ywY93;yEnUB5_P4^+vQgr4cw;F?UAs6mo7I;dVVz|y{x280 z2Q1jL!Tj6gr_i^Jk9Ss`qfDCHv6iYTAznCzRqjtCT$WC+;coqwxhuNswKb4rovAV< zyIow{AMbL~b7r=1hmgfjyW>_mD6ETj!ms!OU{=fr`he|kx zwQ^51p?HpOT}s%DgY#13SppZx`SRJP8=tW{7R?LW@K5U0fe@U^CEeS`l!*=9R__Y! zdt6O=`U>uke=tRUWH#gaIr*183daW`ll1JaMCA*^P1BO~tER1%OD*ZR7+wb_hCe^y zOYb>uAYK;Ycd%!XZe(69pXG6Fq;I?yMr6$2(7%>}+|gzzzj`n|^&&=vH~mC!D_3*- zZ~46n8Q-mzNhdj5xB0}$^5INd)dj@iavoF{9rwOwtN5Ip?PsM}Rie+kw_`+*_9wCfhCuu^-of1!`Ji;tI{WAB z#Er{GUqCs^Z~h1vY2i!BUn+1ww}aeu7u1cWc#RWn96Wxki)U`XutmJhCi_uA$^~6n z;e9LisL7b?A|s7uTbeYi=g^9rIT`%NyhuI?;~C6fC`VsDQiDGR#7Xq@z|dJ!8$fF5 zw9s@A-Q1>|Gw))^u`5I2*8?RM#nQt}q0NfS*SMUpdq$tr^REG%)b_}YdV4jNg!ywH z8La{NU5*C<_#a~na;5#u-}MYSUKb&>8xXc}QVoj11=TQFZ0UaTVCv`qap@+sW5o+~sLs5Sg+E`<2@!SJ}a8f8mWJ1dgSzOB%bCmt9C` zGpnB}(C2ua-Jd=J8VOS!c=AwlE6+r4^TYKr`xx=c7OX14?eZxBrG>4H@RiY=Kk3PO zR%ZcGVK;QpsIHceHWe>SstQ}u)S<7Z5-CD{J9Gr)lOc=IO@c{r5&>b{Uf1;d@Zh_f zhBC9uqkpNn*r&Ff^!DKEm0WKnhq;`*!x)UDkjTVL_gFYb2axQzSu&pK`%U053^&99 zq6J&CZQR}-DdVK4c-}UJ^4NZn9y}4aW=$I>Uyno4Ye=m@EAdIcw--#w-|)`UQ9&CQ z_Oai)p7MtYbg_Y+JR4)QIt$iC`)W^}Ku@rf{hieKvN@P77WK9%yBEY%tt4^ONVDaT z@UV6OX5qrVwZt)&mP=XJ{C^@q4gL#OsnZcQn_q7c zzN%29Vyj_(^?-}w*48V9#*AKXWt46~cT4qF>kc2qRb`hD_#FV}x@@n?~#|jNI z@lJC_CEHqg@yfIE%tPLrcbf*D+AMp%rI4&U?&!yJ^vNxY;z8kbSbsw->T_c!2Zq(} zBIC2{soK^h%hK0`RpohMHKf${_W?CLqcSdQ=Ae8pH|~VEFU!*sh`mzcgK^8m=8_Gz zO32|A`ZwU!f(8hGp>+Qn^;vY&Ccr@cPR9P#r0x9gR?6m~VUfnjJGUv;3tyJHLUFYs*mxjtmybs#GgQGsa&qia+rKSr<|yx?1w( z(9gj05T+b(LVY-0u|5FT&6bXtZ(jnscxMYk9uKy$1Js#qOQO%5T-sE`tH}LJ1Ou}+ z!Z}&5B|dI5e8kUO{TEKRt8KdUc2tOZ=8(2*tp@nEPHgs)sQODL0VIGQ@%0vxd7mr<>Lhf*)p&Bm{`HJg9qr6FAECA<9{}ZX*J|nn)1y z=<%QkoH#=g@C4}|j^oq6<@vfgbGw<-QG)=5n>Dzcx}g3K_Zrw7$mloZp=#|+{^AU|I|T#c zB#m*)g}~I%Ej|x}1@utZ3_{p0&Ty!ho~qzdr174lH1mBv2unwFar|p7>B?Xy$# zY)_&{8njPYpT`J~45l`b&71Ky;$2w7weV6XfULL2q9Hkr@itTG_s!E@7uBEYm zmLm3AINbF|qmG$hm;~*0<+j9X0OV+~vNylZKZGcBsf8pMs++C18zT^1^o?Eb6szBf zeHCE&X@RNB{GP7!=58%dyEuJScCaa&v!6_aa?W;W*MJoO19FVJ@MR+>TBh3w4}}1) zrNNf^W&P_N1~*tvTzN)S->c6TE$5PCx(@SY7+=bVKYsx9I3qotd|F4i#K?u1*2DC$ zu=zGn{3#=ym2Oa=x4o<>Pd4QzZLcJ2x%89ayHh&Z8}I0zkJVqlg@co)Ar@b`Xi$S# zl&fz$!J|VPdotbGvWh+gWxPtiz?cSBZZ??uI^##__3svc9ljg)Jf$kW6Gt5ix9wi4 zHOEdAmo1a~>w*hvE&f&)Sq@48mo1Si(Xt*+EkZ8QlxhN$nYYsP4GVh8tVN8DE5bm{2=EX<6G+)1Noe`!kfr~}+hj;ke29(PTN7mYrzcl~8)uBKZTB=~}tGw$0W$hLWtyU4Tt19Au zy;3_bYKMkA<4me&y2tYI;kcSwtXVHvaU}9qLbAj{P7_&o+UAZT`P3|)&5)g`?6`n( z=Ee`&l1zAy`~6+FiltiO@MkD4m{R1KX2Fo@~dE5)Kb&yw0kQZLln8}E7 z#@Op^J>9;(;eLxgr+Oh8rf_NP!Y99=s1~h=V(v>ZKwsV7ow_MlCt}H#f%=!@bG_#mn=Bc_WtcoxN6+=XMW#sHXiGgP=KG27x(vS#lP)c0JW zcyx-Qc9>8&cSW*Ic@XY-|N6~%Oyc$3tQ#m74N;u51RMjkQTox@Sf^oM2OLiK2YzP) zj?oImJuhmIF(DkF4H?%b2i?Rl9#NJTm%4L}OQ+T<`>$Wv|313WA*h`7W?M7apx$20 zZ;L`;Wn9FlD?`db*5pVg!3p0_h{9}nL_C7WD(R;AtV$iEBk$@Z$IDtwEFpTBEPv)#OfYkNJt5OL;b;qNh?-10|RxOI^}2j+m_Z;(@K9`dEPgh*?O}LuA%b= zYOiAn2Vv=DPuk?(x^O+o9erlQIeH z>Rc~s>Uj#9UX(a3R(=kdP6JDvXrIF_f`&}Whf~w_cWOs#tH~uUb8v9tQYE_d07X8F za;ALRG@Sy26(K8}~v6pDZLJVpUP zEAj#L4TO+Q!~qAo8+;HSw}vBSNX$^3<%t=Q1@O_eBlMyF`pQ;1w$r$B3{&Hd-wV#z+r;ilhN*!ex7Klq}Ps?piq2b#5HQ7O0 z1|R?l-Oh=ND0FjTIm8kO&J%A5Ja9pd4D_on_yMcu9MYmi?-e`VsS!F6mVGM4H@54L zQB%x53v%)RwEvt|jXJCr&MB;ELphw~tHO-Hi~}H6>Ev;za^1?6##o8_oek2}jY+`{ zk`I;>I^0xGQOJCKN32RO!9H)&xTA3@KA}{kbHI3*YDer$p3-A=?0TK^s;MT))-%0^ zaot!h!PkQoVss?}M7o-OHn6Z-Vb~-MRe~$sijZr$0 zYi`foG@lAD+h3iH&{vCM9^Sht@~iLDul08qDW-l0Bwb4D(;&D`(CbUl;K^X&Zmd}J zDfpkE)~hLxMj_whXFcY?!U*8`P2EGU)Mr&R@pTVe&vp5W^Rds5;<=;3H7JQrQ$+YW zstHEUu79$`oV>v?46b-C7te+Om%w4mUJZ}?8)HfyjzyYAd!NXvFOY5x$@m;C^Y?4; zSwB5>Eyqqv=8L}VBEceKQhPiiChufy-` zj-vq#DA7tMbW^Gd`QM|_zj`Fc+WC8w-9P)f$MBcfmp($d?IEP@n2AC=YBY$;KQZ+oRSU9=3(QF z?t9f_+iRiCRhE)R^mRR=66WCcSZFC1qnH4ngX+xq-2kvHeInX5|eK=^Y-04$Yo}w;tzh=-PRK&X8 zFH)DNIOUUg7aF$OK@M^?$MQv}(=e+NF{Yj%SsT)&3PlW) zGX$TIbDMe6u|q7KgF9C%Ue=1n!+3Cp`svd@$hIBLeFL^HPh}`m)CbfBo@apR!%T#?lnZ#gTfSs1?JF5JL14OHphg(cZw*># z9$qoyj;5|AL;_IHi7Bc%&eyJet4~4vL$LK`VooFj;iUGL!=;^ULBVdu!Z>e2t~cAt zRM)wKkG|IZb8~$jO6$$TtKY(@;nq$AiM+Wt)*~ClA}3Ny`!PIaiq^IaIhj9Dj|b{4 z7n|S4f(3($^W=NAbXso3TQ020{|=TU~Uq$@4x+oH`dI7l{);m?;}{JC44 zhv|B;4-+2O{y=|^YIR$wNy8zu761-MJW#O#&&8G6&weg=?r(_rTIr*W`?nl43*ldq zg|r(2_>3cj9xmJUlX-*EPb5(&NO!(N0Rp}qTPSSV7$5A;VU_pyXWzCalPSwxW2$%x z-+t-1-Z05Mo`-|o4c({PPNK6})_(FDw~6MF!|Q<9e+OP01KbVJf)uoX6C^gG!yhHG z=;hTQI-A6-rSiq(M+D-d9r-kM3QMguu&Ys@vB^6pmQOzMeElUShvXCg5ko^e z!P&~GbLtUi+1;N`_=4O@53d9VbIiChZ(ED$I(DQW?Pwz0Zmc{ney<>q0ZV!JY%(r~ zcBt@U?e=2X@oK=`?NS`$8=P3A;<)bH`RXJ4wmL&iC1zA7_4M=v{TYcLY5$DxuGvl`n z(xI8zo=X4x!-=ZvM+xa`9CICzG9&b*n&KtZ=JYPVQ@uWK$6n+c&Xez&|pGuV+s@wRszfzHA$@CUM#I>3Dm zt$=Br;167F^%t{fYi|pgS~t{b>*QBW_gK&Ny}!xls0||~ZL%1l)^mT+#q?uZO&Btw zX+_UUzx0>%VCwjr9%hOyTI|~mRZ1E;!-WvIqX{DHa1E^_cjs{SoxVxQkL!%9!-7s; z(p4(gpD=7DDTL?1m-?Tz;QWVxoCj{fa}b7(TJ>w{gBkYHBeZv;Z12(EWPE`y?{<`9 zgz%H+9Ool?!bgUnG5Q+({HgTR2$NviFs*_5ZfJ{NA_X(U|F?5c z0kH{*I1uJfREGf;Pqm<~f-PCNykR}R|Nca%r8Ner*xn^`=QwMP3S!{(lu{{YI4R=S zCG{?O6UoB9HSSH1KZym~`6u)rh~CJdY;o6Acz0$u)sU?z;tLak=3bXC{Hy0Z;X5NV zgpKu^on=Gna5OpP3GIK4m5U&9IKbce80f7@oJx!ad_Y#wnxy4V=tvIRnlG#Vr2bPZ z=e+e=W;M}ED!B|$pXkwYl_PRhcqmNp{|4>uhhsA=2>Pc~k*fWcKm%V-MbE!uujH$T z1{1dOUcMny4FN)53EVz#7MR!!jK{MY+$I-CZhmu5_Yy1@yXz(p)UqAi}b~5Up>0INd#D3){?RI$f$c&RyvU@MT_=8VlAy|6)+`aEt-Rg{D zaWKOQ!@wex4K%i2uE-DrY!L<@{F9(m#u4k8pA*N~@jq#w|DkFv-T+1LiO>B<;cz88 zq%-Hyq%?Kv`&$~*o+Smqf*w(S{Vz$ ztPteU0TY^$ZOKZjlmN%r!yyd|ZXUx+?jqq{6T&Sk&)fx{Wu|K-6$9NFRl1#xqAcOD ziZtr4(T}|iadMGFxf&Oy-CFivd;``i6@wMLMFCl`!w>cAY>w8wT4iM3XDP97)E9g5 z9J?1WCxA081qYRo&qblSOcVPsFu%~&GJTY^p2=eV07VsGX%C&=xsIZOem{BJ(lLep zy=XqcIaI$peLht-gI5_FR|v@tTvy?FS}HNPT5CiQ(aA~G2Po|DUnh-xjEX*``u(q) z)%nqI+-WscRn0$DCC=iew)OyrEC%7{Hw3ND=~Lvpo`CJBx?pC>1T}MPR6iin&T65_ zKn=j-f{asE=HtCJ8dL<^70dE_M=5wO;)$2~ux8;s7RxRM0^Ade+K7*gWgsP@mz3PJ zm9ia~&)KV;1cvic?lP3^o;&m!e_Fp^%F5;AH;OEuJL51-Vg}quOiVBCFj(E*x?trrp&JP8QAsTi!SWU zn(qAlZ8la&^_mLGWS#bOFPh`b*t;d>P(Y6yJqTt-(5i+#!Unf=3E{S@3p3w08YEr7 zRHQ>?4s2nPbPMzeCctZ2QrD;Negy3UaU1CFeWptm*b_n;j$=^QoRG`AI0F+XV9<1I zyL4?nwzTej94+8Cyv_bqFXF8zgeu5`29#ksvJ= z1_1MOg5gv!x^m!N9?S3jl6Kt9?oy3C@A8*1v8+?VeJ1JPKkP z$nQuWa>Zbff8|!Q#(Te2TQXn!h$Y@)9+UT6(*>@|SGs>Z~bt5UtywGBkQJ?Wp6_nYZ#Q znFb*2{X9D?ayYZ@t&^nGSt|bJRaF;XK0$=N6TO#xpzvyeXo2q(dpYHP$gDkU-_b-X ze0=WE9DU=LgzfQXQ2f}n;}bD4@hLb%UbhURF4f`SeBz)__3mT_>GAG`)4}6)YpwO} zJ`WBcA=Pr8sn$1u$5g+u{mS@Rn&7mI)9{4dE8*nm4`M0eX+P?(oyhfd(=8G}=w--7 zO?Pp2A`57+aK}#t(Z~B@RcFoTOnyK?EY0<|wATj(>Ez+w?S_9wOB_S#fV=9RXr9r) zBL--=W=l(3w0)~G#DQsWOn%UdOEW4uZQf+P?4I|aCyJ+w4-usy3k@V!FCYm(1Ki8- zt5SCn=w{ZYc!HRWV1g*)%|A8;nU^^WS(v66q#9qXSQ~X{>63eLM6Twz^+}iCfT<1B?DT*{%OE4la2mZ3b zApHZ}3Og5N4r}PHm(!Qr6_OiKpQUCHl`6k#Cb2_MjOvUE(0ZP~9*U^j)j7taTueK) z-qPc|U%q)2%)r(Rd>$0sW0r~|@Vd-v(Bo)YIy#!M2YD&gWzXo?IwMuI@Ltzwmy%zF z1c=;M$l?0(Jp%yWJCV>vIMk~dvB3Cd#p)B$GI19{-SHjP=x4LCianu4ZCzR5u0hv* zFXL?k6NKb#`D#vdG37}&#eWoN9s&gG_t@a=T-APuLk$Fvv`H(qdVUm8S|p(WvL0o$ zyCulf;xv}@jUOQ#@k)Rk}NmXd~7^9=WZU89$druO$T}Pm~6-W~$fs z9MV@FSfUzr`yuf_>)%9cwwCUh?Rh0$z769Ogkgn^V)$r)W&*dzT9sRm@27vNVihCA z+$J0N{5I|3Wcy`8JDR`mvBLVofCu*~blG^uCzhXn$*2-MH7XAruk8<{jJFlZR_1;! z^^;AHYn6+?PjA1`BT}vydfERdy}T9*e~vwh;d00}!@yaCn zfXItoV`L-pCH7$roqWrnF_73xAWt@$p+hgZ3gk=`?fkW)EPBQdm_z#~)wt>6XzL1c zmaVg+oHwj;`Na8=$`C)}3QQBb54j4pt2FZTq~{cI3=9Mk|l z>~9SuOKqXF*Q1(;hfHCEAEIFZQmGDAU|VfT|m@>|nHvc(Wjh}4U>6tz(G%QjaAA05v`RhSmL~`&H zn~FDC$i~c9m%&}2VSPhzx*bcZ&VNuu_Xjq|ROdAT^EKT7f5`|3A@BV+*t3Job@FW0 z-}8un$dInT9!ONLPa~@N`m*vEri~g1&mVb(rv-fXIiGlHznt`hZI(0$uLmW;u++aPt3~$NmtdP;3M0Mi9)ZHvOwz#`a&W#y2qwuYWR| z&&gYh#g(a9$!+-)*|JHrY}7FTyMkpmq2&%8eX}qoo2N5Ln|JSW z?~dBuGETGbC?;*h@=DBBa*Awr%G!cfkwh;XApBqM?fJmRmKRdiG^C~b$K*@}*ZU;> zvkcmi7S|lXWBr~#zNpVP$-c4pZ{u#RZEm?lgsDQ6-GS-!ecFCF59WQVWKWuU`Q6Af zxg{37F3z|1;8zjUY#>V;Pp;b#do2g&`rMfGi#Du8utUM!IaBYUNYX#00^A=GP4NbQ z1fY?Ot-@ucNmHdOptdC!=n|#u@qzLg|H%kO%&nH|FI&v!9iu{N6LEvIe`XI0qAJBt zMA{LX0W$d3N*Hb4jCK=Z=6#l%x|K^&?;kpxSHZjlSHmZ!h#QV;`l_m&c=Dk+8R2sU z!r;SUbpd%CE!`<b`oq;=a_xZ*z1K_=)O0@*DHuzv- zRNGK0M&{;(njwe9bkUp;X&&MH?Ve3_msircv&EOK8mn?9nH`OXv`4XCfjOUOO_->J4)aMzLKtZXTXN>k_>W2}GAz67=@s(sCG{+WC)a;B=r7!242J|}EF1)(qW85& z17to1T}^W1j)r)FHiR=_KIy4t5>ucQD;7rL`{4!n-Rt{xxP9x=Sm7th_QqM%Wm9V@ zv}*(JiaV(7kLZ{tg2?+YjSUTz_IwT7R={G`oT)K9+ufhD6 zzkaq&<$$J2X*gD$!!tliBt0+R^??f#Hr8Od;(qyKWsqAhIkBj5=6BlNaS>ZDDvp~{Vao@HL)*_N`ZD>GUd^%--K^Pjre<-jODmD@0jyD(?vHp6)!g1Hq?e+wDlY7zjB|Xnv64v77YTlGJL=Cw z19UeZ`L$6|Svr*hhAM#1{4N}7_9`!(;vTjz^aOtL%MYeKk}Y+XO1T2{AsG*hu%o8f z$w=Z;{>bfVxAe!i7mVo`n#(<1RjeNG2p^nm8cE6r#Az|voiwkhpvh@g27+g!8l?I? z2K6@KT*>;i-Hh<1W4s%^%QMf0_W-4md#qa>EjdoxY%woQ;RKG+i_6h3DQzIZ#Kd3; zC~!k10;c^4>~ASkrJ~^!Y3g-Hrig?7H~54~0QSeMHECp+&!<<#Rj`3*O)k|ZvEZ7c zsNz1(&6w{PuR)Tm7n|C%qt$;--^yL~Kg38+lJ!02_?}ML*!3&w^^!EqIAG{eWR%Q8 z1kdPn<5t(7ffomN)7@ye#6G0{@i=!Zmwh5--pwD(wg!a^aq~5JV%+$S^l{2xnwcO4 zw8-H=XU$Ri(YQ)V`=k#~V;L46?!;NI&UXUVId^u}*uaoUHKp2g%tRG%t$bfqrK znp69-*~u!y;lcO)U88%}U@``hpJ2y+AC}Z7s z(NVtT^ScW2oU~TcjqdKxRV8vFSyj>vH{|XNf0Xg%$&N@gG*ED!s(R7V_e*&4>q^eH zM(E4kHOq4lyrlI)c4sy*~0Pwc3H1h-uoNE0_H6UP|Bt`|n3FD9>7 z=Zi|r)nF%(s|K28J1pcD9l_OAZi+wo?S8?d)Er_t?`Y4zPW)1TTOqj>JB&ts?x4n< z4YbigEajryd~AJTzGAt-<9ykI>U|i|hYZ{mDYWFuyCH>SEBQp5N~68wM;l^I`+408 zKM4NSJKZ<;J5(_S0gXGpaMq!detR2c*J@r{1?v@o^8&giR{1EnrvB*CV?T+%90afdKiKjEW-e(OvNqwQNYxW^(H*eV1W{DBr@DCWp z2Xo+_nOf?k77(^)f^ugDj)O`ha*?m)wc{qfKi$5^6NwJdVfdJF;D9yLf+JJ(VJzj~ zk5Q2@MhuS|j}=a&sb-neF{am~Wyr9~oqe(0KHx{v%jc;YzhqMD7yexNQNPKw=#D)m zwP$u?pXG;t)CkArqx0G^CQ*i|LrLFt-1o;kS3KJCBo1CBj*;PJIu&6p#2-#QRYAFDu0z~8c$yOX`8hrhz$*-eM|L87T_^Z?Kuy*VkHD# ziW77({6v;obc>rP$`p4yCVx4PyR}YGs?yqs@t!#_zL)tPx2#sIFC}kljoikcp8P0z zay}#p zf{w>uqt&Q9x|V8hk%yAFv`%b(2+@r_mR>_Xd!&2es1ZwRRMf97;S>aY6sdA^$7DGj z2+N~T+U3XU{znl9$L8$#bAw{D0IcSOaO2L@!Gj9Xt!F1jNO!UKPvW1cy5>+)zB?Ft zh$4tg!~=#Wmo3Rxt}X4bxQx6)MZ3PcZNWW#?buLdAKqppGg~v|u3UCc?##>Rp|_Hl zjL$S`;nch4!Ia!3xiUUJfn$TQA4S$QgITAmrO67~fQ<;^ckTBuDGT-N=zWZg=u*H< z=TU{4{@iiFIL~22bhHwHi8Nt|9vuyg9oN{t;Am(vT2<|&xgY)Bu}9}Utv$Sw`GGpU zDZD?Q*#;QA^eEye(nI}i9#hUktkr_POivIWUFIzV3I6B;&5=OF(Vb=$`eQ&-aPo!+ zE$R1zVfF&wDrgYQ(9>37aW!N5`}`+?qUAV7b*XW7^l`(WV2z$&-PTq{1KbG&5-NDu zG=@*li&DTwcj&LH!9Qowj|V|qD$5oL2}pvzkj`c1i_{eT)a?ff_BmURHcgeg(Tu!g zj&UmSb<}`qZOIN^|ND~7#EjMQ&O||)pw-4G^ZBRs+?x3Iv~gFW`>b!g(?H(6l=0Ig zC$Ot*hkm`8`55K$=dQ(voF~kx9Cs-t$9pJ!^O;V^$*TkU0u7ZhJO^e2kKFU2J~M8j z%Ml}oEe>42A~Np$_&bJMXXmQihM_P-K!@ zE?LxLpZ;o8=ppsH57lw+%n9#B^IvDtN$GD-5y?YuI=;^k*9bw3GTpyx$nxWz?&{SJ zKwPk~>-O4S9yJ1IQYH3ky5M(Fdpce%N)S;0sP)8=Ix_ODEa{yzmsQeBi9k?uIueK_ zbqw#5h9|Z+$wa=o_D1!i;r_Fa*69Tp;NO~vgnWOm!u?ljRoDNL>0Gnyh{ZCf*Wqx8 zAsNOrn1wc?Zo>pSI=Z6vNpG~@;p+`ISDTB>%j%&Ylb)+O2wi)HDE3+7BLK^xaC|}v z)YX?k8E^+V_&7E;Us)=?L^lOBp)UQo)k8Qg;#V)Nq2b2Swebzc*!gZI#nUDnN7TQ| zCO62yqi0?#%Y$kHphuvLKan)T3DjR13YM<9!sf^lK*q-<$jQFVWPVrNJi!6mKY(g* zIcU3UqwChS>Jv5J=;s)NduI)F7bCU0F6EMS8PniR0>A11C{D3EBcE?>ZS z2qKphFe$>TwkyPd9KQ>9qlUmSyF<4JEjUc#TMAW<+O4h`0g*RiYMWja>UAIoa>b&5 z5BwIqms>pulgPCuTa7)l!k*7KOv^G}h$4Iyz3B9$Hz@NP^?JEt)+?WZCdA{L{@_32`07emmU;_N;PL`<=VLp^N`J59t9-*0!TaUy zqmK93&*4#{F2{)ks^I^p56-hpF@_{D&1o`c#qrf*YMd ztGI^#$*SPrHf*?se(`^Mlh+Br0S%oNq&GVv@s%+%q*j2!%tZGASL(z5YdtdN?~8WF z7t*Kv5U0!D&y@=qZ8@saj;?}+Pn^hN3&T}hmtgQuc(Vp#9nJ=R1MU)cYHpcM9~Gr* zF&B?M5at|_x_-^(ZOuc$t}ycL^L0_SktY0E-)x#~gd8#Hf;~&tlxk6Jo$=O-fG6zQ zI%*37#P6$mY!^?-i=*EYwFtftY-~?3OGnBye_V6JDukO2Q+r{WS^8BJk*<3e z5aI9HwZio4W;ZR|f&bbb>W+pwRCKaW`J%C{cNQ(-@qU~>zAiLbC9$oST`RSRYm%$h ziA~?MzeUAO<($u*y}j7NB*tt%xEbE-NfbdZgFc~X6s3Sicc6tf*q8Yp;0;5s00pHu z72_xKZN5YIpFHKM7Y_M4ZQFkHoz%8RB0Dl66AS7;wl40)-A?44uPnK5Jv8<7#(~&9 z(%uK;!I^&QV)7CE$59xO5qtRxr%U#~I}a^XsRP{X$_F9QhG&O+eY{BFAgfC+i9@nExY&Kjx>pu5#LYM=J9I2Z{_-x7+u-fm699CrUsy`R!a zeadTmr8bAh8&s(wYU#06+Mydvdzz@rxZi-G@fB;ImH7u9U)^xX3YM0ZLx_K zrC)qB-&a>brx7Bs!!O%rl?*i}>|5JnpQLbc8kUa=-~YCkP{!K!Ajv5g%mwGMC3}_sR(jI>W$c)sv^cKs;8ki@na+8!0$H9u?IXIrWq3{G zUBn{AhNy?Wqq1_`>Kcv@MY3D(ygu)+K(#j|7_p}f`-)sNOiyRaiM(jcC|zNmxc2lP z_KzgRcI6MS*8P!}5S&_X(E`SAs9=rB2GM;lZ+k6S`4Q) z7j3t-mz=~qM1rq>7~C+}Av2MdCX{_T-sD%ESyBqyn86Dub5d$gD1_EM4aF7qv?FxP zWw5tqLNLR9F|=4t&ih#~;Iq@?2snSRHdI}|U7mtTJXX#?DV=R$E|f-Hia$;|#0I zCZ6IcKWt?Vojt`3-9?!k>2F65_pl^O7H(Ob1pK99h6W)Km_*3K8S2GdEHi?i+RI-7 z&m838kEzD9aj~iy5}(w38S9H@@dF17unr4yR35&3Bc8zy9=Cv@k==Y9V3ED*H5k7K zhNHvx3;E`5uTSx5b;Pt|ajFbQD|6V~M7Uv8y~J z5dsHbS3yrvp9Gu})xO;;gb2bvjVpRLjJhO!s9Yvaq00)A#?^Qqb>C$m&lPLs7tSr7 zHv8w8KR>A^x&MBTK|jHeCGAnTgM~ZCsieS(0k50bZ)(EC?ju6c}TFwlNTlBE7 zlW%nn_v+&Yw;;+e>K%fcItkPiNKXh^W-u|#wPeSfUoj@kFig=n`F)|aZAnM4QasI7 z_GG#1R#w?D@-}?WA+|tE^c~xT>QO#V`-6&6H>t&)+YAbeMW`6d!X=OL3~OYERMjuC zkG&tsxb?O2frbGUiQpnfcQCH6$n`PIbJuM1q`!w-$Y=N;I%0-9)?4TcpiL>4UVN6r zBtDO{+<*Kd!^ZtoWYPpf6xTnmM!GQ{#6f5kDq$2poKZ`M=now`n3S;JsN~UOtX##2 zwS4(^_lu-R)^IKo5G^)~L#1La5vU>*tvR$qBN>L)F8B9`tF1s68`6f*f^}=kuT;|S z`=@7%7j96F0I*d0ys?XuA_(Nnx_frq&$O`z=Ew&>MBfU;1*$#w+GH4oxyo@G48G;) zZz<3XHztAy5d!BQI!y6w@qnkILjK?z%@B3XF7b{WM}EP$q%kf$?VInrZ|)16l+*aI z(K%iTHMAPlUr{heMJzmfZn&_bZ?*;Wq4EC!3zkdo&nqd4XIvBpz$0Ao%C@>~fqYx; zg34Wms73n_cMr$*++&w#V-g8t7e8q{@@sdBv86twTq5grDUsjAEE#(}H;LJigSzcw zW(WP{xDxJt1Kl$Jw@+dQr(*6RIVavtRSUv0$?FE;a$QRJpaJ8@idUgnmcNNc+?`!U zy!$E`Myy`61Ea{w;a2jseravn_6KxIxoct1iHUe=3KyzZSn0e}nf3C#ac0jcC73Eq zj7E=ymr*%}UO_DyV?=3`Ld@O&3ZLGl}i44X+0TJ&j#;l4qlcQNH+va2c zl+{d%Czoc3i1c4u^(srl9`>F~x#b2(-$*yO)g2|mG)^+Kf7VEap0@7FEZ#JxsBQjf z!%%3uv5$#^1c0=T!$e?N0&>D=KfAqtG~XpX_t!5MMD6k23%muX#?8}Z2|(7y z=@@;YspvG?=u&8qxq@0go54n`_gHeI^X*bUWB(%+m$_=B;^BUvUs>P}uX6-_7GP<^ z4~gp%w)e1BZ^+!{|M1R`tNzZeY2lE!x1)EY7NJpm;Fsk?B$t;v^>TAN>1Jlh3RG3? z*0Pmmq+|yVcM!=tU3;=eb1%L4Ilm~MGs}h-?HxP!xl{TcFIBr|M7N5<<>=YK&;VDP zyPpLLb0yadoR)R2FoG1H>bmUMb7glUxfQXGW5!oH3|+Y^yccaPQy3#dl3i|7>+Tm{ za!88yYZ9Z%m+d3fD?iC+YN zM4Q}Mvr%vtjkduJ#^3A+uCQtkX^ZY|2x_QxcEjEhtI?zGyfa1NXb`FrQ-I-?vhgdM zWXZ}uLMB40HW9uJLym@4?_?=;|D3Z=`pyrsdHKrVMZNrGNr9o!fhk)%>xQ`+p&|QS zBPW;T{IKp<`X7JFc=TZ0$z3&t=eia|`UpY$`lk1y;+^L&fGWzp4fM8gH_p+G@*HjN zUS^gO;Np6|kX*aqbhu^a-}^5S%NIO|VY%7)39_yBxcRiRv*Bjbw~$QtEYo4`b(wC4 zYSH{z|8M4D4t4&XjX-wfHTT=Ynts1kgNEg?o{m?@VhkmZQ(HFIlV7mhN>5|)w}b7C z;=r7Mf$X(LELqR9QG!ILK2_5B=}}98Mb?6D8LB-t!MINDuNnBx-9=xeY{df+V}*01 zg+Kzb9f6tuTf6uZeskg*qy`hOX@x(3XgE#blBzA!Ew*0H6xxMmK6xhNb$?5lTQ0aG zDpjFXBw)T3+0D_#Yl6D0X5|L>X)4wQ}=k_ZtkS(BW6C_)cbZDjf zn(OcvixTQiTkwB0;$tN#$Bml;Zc~sgLg5jY#4VcShKlgwNIJJLc zTh;t<_(n_C(yO&$P9y%Vd+`>oqzr@zFuh6y;vxv*$L~ooiG^g~&BQ!#I@esaYVXlTtq)aM`AhgdVCcQ!XWQPoS=aIF z?tn(X{S&RP~yaCEYo%K)!wDiWT*Zf5TtC zedlx{X8+vY2$6kJO}D?2Ik@3U;X1*2*8*XVwViQ_iHZpR@oe_6d$Wz@#jU9?eq3+O z5rwiENF#HSc|M0&A)_$FuBAhMP|-m638OiN`W z`{{~Xz5A#ydJ*gmBUC})51|qQ5de9)wy(?wrUb_(7ti+*iYX5hkCEh1JmJ|yzZ!(~ zkJsY^-TIlTM|Eyl*@tQ$=C-9z8`9UG84Q>VXcE4i()OSPIzTWI7&j1mvu5$hot@*{ zrfLVrFyhka2h0zr)<;;z)&%qLqz8d1md)uu?)masFx)_U1tU#j?fL886`yUpZb8GC zi3iCF2nBdvFICaY=nVR_D|kN7HhV0?$dP`3qrl}}#vSjc2jeRhsU8(L5qk3aeR3?+ zui~qXzG~{V0^x>&jTPNv(A`X!cg|`;_01>x?vUGl_r}8iZ=kG8lq#v9u>ZhKH`r)E zgy40->fG;fp-th2lpA%cy*`b@7}G&s9RNZ|9Me>f`B3Z(#qij<8E2##U`#w$hzf?2{0 zrkv|TLlxM1Uw>><87OfM-g5tCnyb|NS*Ark=JLBM5{Xd385D0A-#S~0MFu=rfAa52 zsO7XWd2=QJtt2DauI}_a1ST-Z&MF2li~E!;iwJzX(}|U7 zex3U-wN-%rcsfkJl>{cp;8T_>@)~mDrP` z=Q_Z1@bZSMaEWGDc3q_3?nxK+^TzDpi$GT(E3j#XgiS=;OdUXSG@d^jG)^_DnS&L# zHP$7o4mxtcvUpD^wQtxR>k^JJi@nFn=wNRL7c~f)=>3`=`P;sKsFlktI>g4^3(omc(kx{!4~hUR^b41 zU)^}umRo!2g!Le=NTtdN*?veF5LN6GOvoep1C|QZpAMetLkL zNJamZ3)eZ*cSCzCSVIjrVjSA|*jaz%Q*P6(*Jw9jqmfttvc=jfHqLkkYFQYzy~yJ8 zuH16)l~d2+O*ioT7h&>%zMMW&*S2${C^u+U<;3b72j+dR!gwfpO25 zUI%&^2)>{Kr{$n&j0 zsRV-=+IshI;Tv8|SeXe47W`JG)F(|>W;X@@^G2!SI(IKmrjeVPlMc6uR|re@d3hz6 zexu(eeHqF4q3o*9abq@VwTapQ@&&E^g3w0Fy#yt2z|%B3F(53*q)Vi!RfR ztS%FB3Pa0rU4ii-f-Lo~Ac{;%-?3FFqAuXv+K;Rs$Rx>*u5)$vfjB#0Ay=wpcljfC zGHl%;PBC|v2+?sLWUOeb3{pqM-&{hlAiEtfF6Yp-lR;gQb|MbK;fA^p=HMGD-78ly z0CH%XrktdYRocWi#;-n?_qnCVVaT^Mld8ykDefao4w!st@lZe|DGPI_9fGf_L&H*A zi^vLi7&GGA;z^=Be$H#pfw=^3;wASil6jQX5dTK}QN{H%M#tyEGqmjea!uT~z~d0s z4jEtnwK3M@#708J!jt(RUqhCxiW?lUDJJP%8=jd_C!-g&9i%CoSW|L&MVP?kz9zu8 zVN}3G1j-o^G#<=&gZxXD?Yu0DIfi>0N0vgO{fw0KRqw=Bd!Dya`N&1Um(V}KY`M6t zK9_f%$iG6aySuMyvwhOMGf`#~>QdL<>+?gSV(d*s_4W9sp?=87do>g96iTz#$sx6E z`PjkKM7I9ST5{9P)mbY_+{PZ-s`m%j%q9#|bWud<4Y z)6K>9LL$0EqXz6H0Nba1@pckN2ga#0sI4_&>gh;*yv6mIe$LCDb(d4_`vhNVUx%sn+P9!b>jn)3ppshfXO`N=|mLW(-P zUgLYLD*yaxKfBk`n6TMbC&j=blrudl%duedalpLjJ;onnzm)gbP}_TjS>y`k5+1`w zK9+mveZ47MecE*TWn2Sh@n!gdmfYodA${^RwNE6DKRBs_uWY;N_;A(3dS(}Z z=%$LlyUbK=SpG*7%<$AX;ck&@{)PtKD<#Y>Q~6&AS$ZzV@l23R+h+|K2qi$isl$4H zx}XLZ?aMs{)mxKug^H=Ca((X~8C*EpXo>Ja!hgJwls>SrQbzC2pHAj}Ece42>>`yz z4hZjwF4*;n9uNZ@j604J>0=Xgn_MDe`&3Vzm|y{8_h!7O6E}u^rW1qOo0}l{FLk;v z>`sCW_n#%F*JJ)xvM{_|8(LsO(p@*|@z{pP1%R~>qq zbNmHERX@(B0`>jHEDSNHDA4a|l0$dV_+Mi2)1F7^*#>HfqDKsbrYu&-|zF>{ff8+eC znM4K$DpvH4(79=u^BC(3kiZggr6AB_9Gqc&4|-%VNhu@WIRot$Tsp4{NWBQJc+fTd zm%wbFXgu3-&!0K3b;0TBamkCT=B96i9zgO1onE4Tt5F%!iO!f;;L8+Kz{J&nK+#%P zxJc;G#b?jJ=zsD&%yDfoHd(dM4Y@9=?3c}4`#JEglWYif@j34O0f8PUx9$^BgT`#V zxrkaE@=b0Bf}K=VUs|3KqL?|BKF5BsvA;8-;I8w#TDMJT^x{>e=UWqG^`qknBJBbh zhVxDiJB{r_?e&J2uewivHr6m|b8}7@!5b`HO-$=TzU%L)elJQpMt1^4m$+Ac_Ts|W zeB?lkq@0EtN=PyF5= zML{d9$J}msS-;@Fh)-5C^$$gL%;Na;oqY@5USWMk?4Rv=j}Mo%*;*-EwCh&cfQoz+ zzAnb|^6i)K-n-9U+No8s!9pR9B0D?qEmNV06b3HWeyT$3K#;Ydd5|1TDzD^W>21B`c|A4%U+F1~S1!<(&fXLK=r=c7K7-~z zv@R+vQ1>bPT~;#ma^4A;91NodtfS{s!)(wV!Y{hK zHv5{Jg{|*|NXEI2|9I1}AxwYYBOFlAFCh5b3)s%oE7i>_w9DnEZkuOpy)anuO>Mb) z;|+aUcV5v;qcs?hU6=rgX-CN&s#+#-dxFklvL^nOywJk|ACvR155}4Pj8js^%^OqB zuegm6WHf?7p2(M}3(S2G;$s+Fm<*8P7buLvvt8P0y9$R`8z^uT6Cc~!(l>Nu*tT^D zJ6Prhnz^mK_pQ?zJpuxlegO;k1rUQBOY+wx8xr>qC;AFF$*_QvY+><;Ufr)A&juoj znqO)|;ZHqR{k!!27|nDLWMV9ZORX2wWU(i`hKc=;hB=T`>IhHYPmm{@8?zGlL&8Lv zug$1ve3;ewAf~^>Vx_T>Ax1k;*G5%EcH1G>G79bj^)3|g!?1YO*cV@YiQKxn+gorw za(dY4=;NrDEL)bwhxko(rE9)#`V?ccThyz}0`jY-53r|uukVfrbMbn8wMWfwg^|`! zadW`dB$|`;&EB|TJLBg_-4_ONKMS8_w(ksUDgOims#hk+l1KuMC~_aTrq4q>bY@yH zEWFHqut+i5wR0i->kg;2u4m!uW&aNg!4jFWNe_Nq6cADS1|pim$f9h0u%GM4+C=bx z5$mg^fyEcEHARRYtgIizYbtIbzvc+u2``-a_cd7x@N_JWM7JVr&Z7Vk6bps%{8I;K z;JSjkmQ8ol>G-*~413L)@(*6uo)q84SaJHz6J9KrUV&J4Q%OY%*2iJ@uJMoZ!XSOD zuo!Tk$W=r?&-_!0YXhJZQp9gj=j-OtTVARwVlB-gZuN1mbTYr~Sq%I1ugB-8t-U`) za*a9T*;16?c$v>$^e-Bkrk5wgZhjVAh{w0(1haNQ^<`XMnT!1>x|3gmc>;ne$Qc1w zS@>;4tiY|d;s_7zrvrwNQ+l(K6tjl3(C_T}n_ec{k&(NF7v zq2PYk9Mve4TGseDY-D0@uYDIrrsrHo#=O?=uV(W&EsF&o&t^yeHQ0PdC$Dnnmy}m! zk8seC)AgSm5+5(pEW1GwbWjvO+1$WkYD&oEr_trSa5xwDwSO5_j*x=8Mt3UVd@e4g zY1PSE^f(r5{Y1|SNT1{y*KjVa-|?Z?;yd-_49-1=bj`rptVK^l@@?|AxTrvSk?Z>3 zR2pMI{;ZKcuVxgl%9o0mfoF0*cpZ`=f`MZ z*&=qRKeg9?2gBs4D0O@L)=&1_sABQq>4z+;T=2Ae1G9od5>LYSEIw1T$+y3V2sK6f zmiBx3qb-+4y^rhqU0n)E(!opqY2FSaM0dyN-R*q+q)Nur7<5VDo zg$x?Bj>+8ot&WN<$rbYN54uwht!N(_RN;_sSMHO8SPiA{936n=--hrM zrw%?PCkQ>VG{ts0@ zJGJleH8g!!^Iynp5^|v)_mkXBTIwm_vJ-hRpVIk7^4)7h-hVVA7T*6}82qEvh}*fp zJ0zI;`-sW_I|C?mM$YkR0{;oKLg`31CoAZAo@->Rid_S+Dp^S_m0BH)0t->6<6823xmK4 z7P7Q)zvNoNMh`@Y0c?bRC{YoT`VGPw<}93wpNO{?Tp(Rs(mTvMGcr-+tv71rGFd3N zF4e;eO1uBc6i;8lC7swOduvgHa^N46d)g`N+JRvfNkF_>f~%{z7eN6t(tp_o?Qd%b zI5{fzaZOpngF5TMS~A<0`2xHij=>lISxYtDxAE8G>-c`@I=G5W)K$>+URxxEz+d+% zsUi8gL^<6@RgGV%w!cd3Nlufac#XMfM^l%1R^ zgs3ytzxKA*lMQUh^|q5?a(JhN-ad2n!0%~Q)h^@QZpDjb43iD%Spqhm(GNsxKtI%g zjujXD2I*N%mJ*4jh?lx|36taTC@uyEGQ`k+bb4IlZo0wAk`3!c6q7A%Ysa;`Cl5Q62N)!$r$i@H%#wcBR{*p7Vd&}ORXG?!5 z^7_{XXQIgv*Z5ZZPEjzC@`qwe7FuUp0Iy39MpJxoD@NUIMGu9RgL2qz^C#;r06!85aiE&07+7 zl=+1-)s+TW{O>Kg&ah=UHtJpIW0hlFHTAYtfVrxf80lj&J%3m8-1u6d50vnfqVqQ( z_q_BoorN9#`M8c3*d^|{T-~a2Rdg_?k)UZ!R*%ezT};^VOB#V^dP|WH+4RoKyEG}c z$v|6qNhI$~!=`ywqOqpEv13Mg;iltsqj6wP0i>>e>-yG)P5398Iz!>}?*MrT^x7&4z4Wn5DEE6iIPh9>>#u|-y!Olc-L#0Ur4y?+y<}D*1~4Rw zUWcun>tIc%0~1H%DxVvlvE}=QC`Ugsm2eX3Ke_mJjU#56X3Xpfi$J+X0|A!pZw()o zG|@mGQ`nZ+$nv0WEZJ>Ex>t!JLJqAoz+U;YBxHkER%h)W)h+!!#?{$h$#%h+hvwyq zzMEH3OZ>~wB8IboCt?55P?^<87C1W;g;S)bEouh{yhL5KmP4_^EsSS>&3taixR$}F z(jwHS#~c*xl+>5*m9|m=%k-5wfDjE}(IUiyL?k!a0$)(}B}|+o9qHOJPcbYt4rTxG zH(b^7d-+%N#CPeKYo>g;YAe@j7#`Q>7ZI^kCSy`+H>3efz>uT|MXt#2S5lZOcdy#I zryII8d8Tu3J--I6Q@nR#+-Tg;x@m$sPl4swJt5ju%F4Z`(v& ziyq?8>nr>4X`DOqy{@7Ck6?-jMXmhq*OXg+p`(A6PXA~F7I9I|NFWUU6xgXqa$w7_ zJ8S_d=2FX3Oag}Z0=p>CjcL@UT%*Nj z1J!7oXD%#~VqB@*_Jox_v%?Vz-u#c|LhCz2zo&1^$^yk@q2K-(641&k4_qt@j7DKn zqC)~BVg}eC|MU}s^^do;XQkrBtUZ2>-;q`JyZ%BqeaTOFkTxl5Ui)K&{hSCr|FcY! z6Yo_!z|-zKIxg_)ALYhyuu0cs1Fxs&oIs~`Kl(s|gP@j?7w>e{Rr14IxAndINnyo; z)4;ERVX?Ui`T3Q;J59|zY{3CvxTP1J&Z_LT73R&6ZWF|@cMIhzHGL2-7LN*OB^W10`kjfgaH}e1z=g7kz>!8DbFI=_}qLK+_aUfU;%dKBllu* zg4x4{uX+ED4U_P4lD)E$azS4Y#z_kB#qLl8KitxY@c3p@%u*ClEzSr#*pA7*|U z&d>1V_1g)}C-e&?DQ3-1uSy;KF83sKYq3$8q)GHR6hR2M%lOF-MVCdzesnP2JV!X2 zNFA}6g%DWnHJ$*R$I2;rLw?JFt>F9~@vt-}t#1}ohYm-)OouLas(>xTt|_s!^kWQu zyYwdzwiefWn~`VyzV0Hu!W+xXQ@{*>j_y1q%$Ha=4eYstV1An+4D&wgcmiW*#*UZv z;*M^*u#J>OiiTY5H$NKIjyn!Hyzrlunm#i{W*V5Wlf!0+_>bP1z|!qeuY=RDiO(R{ zi8ymi9hP!+X~3R?TwA!^q%A}a^#%$cbmP5zn5Imn#M4A5yw5iV8rxzJmU=xWSI6~g z98VyejdC^h_(Nh3sveY}>HgK;a<_oDdD?p#uNbGYZBP7t8ql1z9Y8gk8s;L*{&d3` zNSKERKfSmv--QO4U0T3!QSH15cAx@@(H6<<2Rgd?{#KaKvgIoVe_zK{gaMa|GMxY?Y7iJ_F$-%j=YyY?>JBnG?YQPCk=g3o7Ci;NEg zi+{dmlhWt!d2PXG1=zXLgIkFCEW^-YL@vq;{v1qliSWlW1nz=3eygLGkDxyNA)&`( zhF)|Jyoy_LEi&xV>>}Ri;D_H$35eGeO?3{gqO)k5JB-wnM{xS+ti8!354m8f)@y3V(F6T{K1&Y zs}c#pS=77Y?`%3UODgV<6GsSweYY(f=)Ym2x_C*_JxKO2Q4)80h5mXfzdMo`>waod z#G7Sw?oZG$AV@W~M321-lHx7S2n|}Qm3X;SoGdVA4$b-f3zKcLe-`*V)oiRkVpCicS%>a(eYG7|I~l8MT;u!H5(77dfi3b(MEL+@wck2OMb9N@|&nVxz(Bqt@F z+p)_N7sdG`+#JuMjyXuEUMyLnde15h#jmM_!!nQ)aqlZij;o=YE5p@G4n?|Cn{rJX zU{SZZTO)TgOZXetrSte$ihM59DHUk^6Fk=H~%4fMXDeTu8{ze1Ou2@ z%ls?zJx$z7CQ`E!Rt|cRK`o9hyV5zzRflO?cWqGv z;3#AbsE+_W-l!*wSHcm%jz|SH&O|r<&8mF1bauB2^m=cPb9nKg{1+=HbFgAa-~@p4 zQaGfKV;aegXF*}sWVBQiAUx<@e>=Gdx3QSH9%1(IRyBlSUihTJbrjQ1m8 zUnFX$sj|QY9(iFrye^K2aD}N5F|k`jiFwr;8Ku6u&dGW4{Dgty9|rhknU%8=9@!wy zhF*MEwaJS@jNR*V?B@b;HiAd_=sczCKbj*|fF6F(%;-~w%fSs(CFzDK@ zg?ii1zHfss>ql%xha|Y3{hUA}fG~mXB~&vgiYg0V?-rpAQ(v_2tbkv3Aqh94Z487w zrP|)=3q>|DDsIGWy(^~)Nn^`NkEGspd!3{XpkSFcgYf#r3GcY?G?xu>=%TK7Ik~W4 z2#QZbsvQ-3zCQi6^B+xd2)y!PxoFpHQQLIDF5Kbeu@68Bf4+4)tyY|OJ?);v8ZFAG z8t*1We4_5sGp!%woxgbFC^Gpi3m|wfVz;aU(+FlxAx1!Sjo?L*;|OANOuz@iY$NmU zjRL$A*30?gEhV5-!k2G?S8@JFwD!Paxdc4ANX;;y(v0+_*iQv?`pqr%S<@%oq*Iq_ zE{)g#2jHysN}iykaB9EYHLMU$F1Cc-)BYP13(e^2^Y8)f0dLLi5Mi4$NyK-1vGY$2 z)%?ruJpA6M((N`4{opT<1IuU6#nd0LC-J!3IKbYUaENTmkCeXc;wGK!$&fMzj{4LE zez#4#qqP!j3+=3S=7O^hd!%CEqrIA!_@8Kcj#xeZ%ffSvp)!V^sasO}AxsXW@z%m^ z`@3YAO7%|_g3b;Uw0Fjw&f1`)Tr-;gJCeOS=T3w;clQH(1>pa)I8O|$CIf3NrHbN9 z7wQC3?`BW7O!=97c}u$Xm7a+4YuhvjtQ$lBCWGO<^qQZ#Nr1InSiuhkIKC8Rm zL;uyPr!q1FkLJQOkcOBV$~AEyV~`|AW!ye{_A~6>9I$$D5a*XIM=_(1hQ-gv{=ba_FLE0W8-Nfk58_re$;p>6Zz&q2tQ!r+vLPmV zQ7~^)`A;7sd3+5fhoz0Tj4MXIoE{x7o@WIrlI5CHAo#Lgw8zx$Lo)N%WVPM|PLGsS#M93dz5|Ke4iW*c&LIK13@^Nc-CS z4SB6g%L7GxF0zE`hj3H0*3L#jF+s1dQAKKV%)w2I+vXEj#vX4B{d5hnZ5RFU@AeQ! zP6oFt0lC%=A)2EANed6iMT>q-v4>T|9Ga}NXN3vkVzjOPYo8xoAD%JAL zq2vq8)Z}O5y2vcMWypUA(^Wd`} zqatO0%U%AaN#o>p9f6UURd(FIsf*I653QU+(UTB6i*Ltmzxs^*zs*~xpy`uTcHh?I zbpu{wbztVD$V82mN6lX)TIduyf{N+0+h2t4U;=#qhi}E`cP!qo2?{)KJH)y zEpZ}Mh4E9QvC?1k#?&hZ<)9zRwVIc7dc}&AG+(}3`xI6!?>3rYCRWYsg{YUd-;JOIqrGpkr{qjITz1H_OQ} z^YP33KrpY?yDMxfUuL1NK*=@|MA{#}&q$b(S(<45Gf&|HA6JkSNg7mUaaXiEazSm8 zE%t97kf(sP^lqD0bd8pX*oE0F-|4D2pX3IT6|JZGx0Wc2=0IOP>8-MkZOvlhrZy*M! z_W;Epco|5EKTxC7>9pa76Sg7p;uUuAQ)PFX5tBmR9 z$8w_=l^thV|IwgXZe`>fjOKeDP@%Bh=X2V3sgqbXP0shcNwNK)fO3h+^?ghS2eRKOg&U1D7s z_;9d!M@ZHFu*AR2F*)ub(<5%jH=RCrAfCwXL6Jra05x!%SUP!84{VtC0uNZp9=rrt zl|ognvDC>6j<2@1HZ)uJcx4A^$G>V$)K}m9Y)O$Tw0lqlfcKpG(o2muuF9#JiL?W~ ze1|mV`=>8|FST2gyjwd@7IqJNw!Aig*D5hmNOb_B-6i1v(X5N?;VQ^Q4)PLQRmyHhy<*9tC2oLh$t?)<9VO{-Tqkv2=f zaFFL#HD8XC%;DifQQMbWO@LMbC5T2k43ZG3xN5d-RrQkuv3AT4Z{gJo=kNVxQk)X( z_R~Lcq{`}`liTh5zCOTF7f}+GZB+U%hp-U2KNQFYLiRVn8R+4`8$X`6o!*KuaLgTt zLh~S4YZGlqKCd&M;L8+-?fHbU$*Qb*tJ;?A@6OFR5@Onx1kp7=^>e*@$JOn~H8c_^ zFZ&czPLDg!UTha|wZZ7gZCjJjL+kBi?>Y4->jBBujN2_C7FYY_BkCR>JSD%nLwp;& zv&x^cbb@kA*(^0*7hqcZqUFb?{qOYGa_^j(d--5FZmvxBxld@(sU~nfF(QFXJtoTk z8F(+Dx%=gKUWx*Y*a*;g`YU{I97S>PhZo+MxtwA6bAU^4E5q>O;R4qdlIVE?5G+uD zN9q7tSOCq2`@7Xx1;#6=>33wvxuFB5nEyegnH(cknDl(&5&=>Xha3O0YQeQxbONER zBZE&|@7lf1yd-lc0%Co1+44Vj5s7-Qx+uib+@}^x#He}|U>AW6s0oVxzk!z*) z*Ul>%71=y)QOC4zVG@l}`&9LK_pjntSFXqG10?S`jWU`+g`O-oN?mU#LF*SG_{=oy zG6_lH0&WA5kGmUy611d~o^V%HjX(WB=pU8+IM9vg zCJhc?Ehd$A5_<4Z}tHx_@r zE~mUa&!O@HSYNjk03wbB8=iks2t+dPW*sYPHPn8)iLO#`dD0(xdHM`5@ld!sJu5?P zY5eY0|I$s^>tSoEYk(Kum-D=4WQI0?8AhRz-ip!M>SQ?_^6jbjXLmd-o;Ac7e@~+R zu&j~zx2XT_^(xg^PFokjK8DM8*V89C_(1P4M6lw5V!uceYQU|7c5Ovf0PrvMhB zs(D?=`gmYmOLgS%I5aU-*Ara~6Ibd3E!!$0q82d*z$^a^S_;Nt2{u5S^J`FVr;b*T zNbI7cyZT&(2d*+upzeFOSm1v&mJ08a5RR@}AzTQv>alQ*=P45pX3)7RA&QS2u6%oZ zElt%ggpW@Uq4Fae_ns+uXFSXd3DtU}O`3BTt%MSzj-p`r3l+nQg^d&yZetFeL3uy-djDDyy zx#;W?xg8J`CTVJg6v5kVrja=Alpb>bmYtsI_xgz|%r^a=+**A}4KZ9ge1{$6%6?Nc zuR_*;G@F~Br(?dgHMGtVwy6l$t^fD^8|mmF)9XQZaqltkz6UXw#8 zYrgb>Bj>He9<9dfG{(UdRC6#vtCYGd!rR5`K^6X?d}afSG5)HsPL z%zG%|qu=6s?$mwRUa1j(no6LR${`}V?b$m2?=*JM3spr0UfRrP{A1m`kfos~_|7Ne zQRPGN>NJ-jx~*2WI1vWT2SiTXYOHSs95L8?YSJjTQtah@J;bz1z|-fx-X`*vQncn( z9+8{IVI^V4)*Xkt3L<5HKmVEW3HY>zT37;rMb*#)ilFqFE>JHtSMPD+P_f#KK!_Pk zz!o0aYu(ipbR{4@bE3h>?dPFX&ZdUt8UqmMGDA-iSc3rPlK6VrAR8xKN$B#f!8}Ea zwa0@9eYl5O$Z#slzL$2fx+Q~0Al^2jTl|m9U|%*MEwAS970xR>nE5exxU+RzyMSmb zM(>`K*rmrRkVetC%5YEfbbimDqy{G6J9`Ar?6;R~YpKudn^(0iIj#>bNq&r1iQ$SH zU}*&_6FhHP>Lr;O9PZY$6}%`jo^EQhI-mcK=1xkL(dC)xgTQ~tbaDkre=Rj0vvw^z33eIlf`Y)e;l8oY~@S|qIuMAJg3*%+q@vP^R~G8Q0r+ugzE z&(-4oX^W5*d$9}F6ET`^ZFUK^pB737`Mg@QKOEPg-tB9c8Y6;$O|2VL_p48F>BP3{ z{EN0A`PKL@oZ_25A1G@4mVG}~t59?&z>(~3$oG^_*eG6*Za9U$N&Z?E?V;*8UITNb zG0)CWeeI{qg9VvnSBt6Q!Z6YzlX?Y!b_zIEpSyZe)LvtR*i1 zO)r2)M>>VspGSvekOXcnWc(bXfFEnRy;+tKpSwcvlW5 zr*aGdfFSV9qIuu*XS?AD0}8O;M|vQ>3(EsPUER9q$-N}N#2rE#_INTTH}E1lAeU}R zV*47;?+M#o#QnMGZ7eu4^g~gC9D}!n=dfI1MHgQC zWdu<7rfbvu|A8U9xw~!v3sYBHEbKAyqf#&N_~={Ef%{ib96>7j<&3%Ri`oDtJIUoL z8&OZD<*PcVDMhk0cCY$BnkzQvC4q4W8T+N(0s&Irtx+77XWLzDJ2yKcDY-;GRBbqH z)fVx>@$!As=Bt(>Xetvqa{ib#6Cc}u5LekI-HS=gu7zhEAD&!=z`ddyf=K$oH#AC* z9O4-qvfT5t`9!nNKg$|U#RgeNO3tJE7#9xdCZIn@}4-qVNV0w!0X6yx;i+BCF4~BpsT=!7ke)boA!hg@`2@8V13D zGLN>kS=VXoUej5n*XO3&9ET?26RS&6nb@@O?NfUo5G$b5(I`~)Ob^WxG|i`kW|EJ; zMdMiRWc#b88W71vI#Y-I5i_U;^L*DZm_mS?-Ss1f>k_SPEsmEuZnt0jl=DA|t~ws> z|Bu_oOpobqrrX4rW;ZiTcgNwT>$pvKx2fr#I84qo!*q8|-!UA{eSe?dKm6t4bN6_E z-tX7@nbZyJ^n9ALn@nzSNA0o${^b3sVjeiTO^4k7RWFpVUP)O47@}@xJ0qt(e4^6M zO`I-X8jCeBRxO8yY+dHdW$D-uZVqWcoqW_63&-FUSj#~uY_qtV1}Ith*9JgIFPf&& zs@?3El{rEYmGUt{NhW(@?NL?s2q#7Z9CS$r2hYGNyFmdX8n{Jae@5CJ^a7`nlk|0F zg_D7ZBiZ3Kh+;O=y|;1MsKED5%5YwabCo(g%w^b)Yd3OMoCFIk5(!A@o*N$CO*HxX zMDu_9y^uVrZnZab5zXjC%{=kwS)f7RcJ*7=*?W(`U|N3@r4ykx!)g^Y>72aT`Q>ae z^71-<9_qRUAx7yM&v|8c%5ToL&GFH&P~O}Lwb2<%*|2A%*t4tcv!=y!Sj|3xYzdx< z1MS%uNt9>ZVN3U8q&FtFvNxzupt4LXr6|%W#cEPcvMC%>>P0$No%oG5D5F_p%Z*|Rjan)&-XCe`3!00JfLJ5L$Q3@E=boE$wCBHb}wYVaxHi{e_cEy{_^{p{rE>4-H@4OKYl9vw zIs++evY-&kxU-wy&QSf{9YFP=sr)2E(q!f@cF7GE>~`7$U?k*?ud3z#k5zw^P< zFWVvd*MLfZzL`e3fdtoXMNCU)o~!d5(}wqFn)Au0uS|l9O6E?9zE<>| zsqM2Dgu2B)1IBaG^{&{V4d5m~>*u-C61w%8a@|!|1z9`r3*~E+ETII0V3$edYnHZ% znP_pvIP%hJsp+@DX4*ytxX&VrvmMOAJ$=G;2YU#2;E1nsG|k?wT4w2swI%vd14?3@ zc}t{&m2AR#@r$rm!R+(7X476B-aIcfS|qdy(bJ*4!|z`&tI8|lx&?J$@Eq=qfC;Yw zcAC3+PVbj6P%mae@F(+v>+aa`t4O9P;pdW&l}`gok4$ePs8+N+;LBZ^u;YKc1bT|l z`1|_$s|V+xFTkk|%+et$Xw`@OU>4KhX{uDCV?ev~r3x5q{91@4mc9XPMoJ%lI3yP? z{uEvQ59{&!(UR}WM>S&|CnP8iV2FOvF;MW-8UYZc+arB{9~Mw%dEeJ9j7akVnj8(H*dpIGA<{f5 zd!#FVl8%!Vq^t>dt4is_e6($hKqB3W`+n)_Pt|8+{5Z6-b9yTr1c6-03-)a8)}wd} z`VyBtf6>BvVG$6A?GpHGExi6YDjvJQwk7}Bp1R9PpN;1u*$5-WFY!?X&sT!~uk5vh zK0-y`8>4mGP~Mv|yhi8er^ZJ%vLV=D?=fNDqeW)-nH1uHj~fVpdO~qpBmjaNre@Q2 zi)eu!APVy)`sRpMFq-A_5OEoGs+fxuo~+xV?Z{^JW4$l+)jgZ*77Rx~ybzzc-;REJ z3!?suT?>3#Ks@`KQE@|*1xU!~$)l(}em+&@{nv#BX*p;8Z}a$Y#Th#Su5NGXQHHaX z(aoLbhZwc~9=PBM1yb$$F>1UNWiXUa+XYYU7gqBu0l6Hq2lTV5&{-!-3VyART9dnw z+Vz?|JwTIbUDGYdZ{}D~$%@zb#6YX0Wzhu+J*Z!$DeEZP_{P9^0mB`O_xn2vG{(=P5A zT@aQo$dFCAx!#`dq`Pyv?p`fbY1pT~nN-h+L$?r#73YWLlX-3Ei^U>5F3wNpUEj$@6IL7rm>f)EM! ziY7$5eHMg$eomc+)>=)@1`ydAXbYe0*sHaW!GlLRMy8KDjJmUcyL}GKx#uyO?IBU@ zoNyg%z=UXknt3voZc+1*90hmZZT9uJEqhX z;$M77l{7$n`1rO}&iU0cv1r!R&nure-+DDtb1|p(roWzBh>Kcn-9)tTm3jGghZZUL z($v`)s`NoaN5)euw=l)duY~lB9*>snKP*XQe&8o5tHpD$J8IHsUbdQqOAGu0BI^OP zbqhC&^zwByeZQ@GMleCC`{%hOGNaOShveDnkjTo4Q?j{0d4-D8BP-J65T2?Xc3Z3W zZ>$;&BaW*jV!IjW++s=VBSIj1o8Lg;>l$6p2}maS+RU4yRmkk2GRmHGphc35lkB6N zRu@OG5@zoIeTIqhHYCvvD3hUOhU;jUuMKgn72lsU0ItmgDY-KSgoZpjs;Mi-(G30! zB|-KN*Mff#HBvc zARM;EisUH&ve~w9^`v&KCbpc#!BO8+9n=&@@1}!Yi zt>1I_8+_rXhQWs;*tQ+e^ePe^j76oBTT-$D&==tC+}Kb25N~Sxd&O1dKo-l4NDmML># zV?BNN)k6ZaFZe9S{ZQO3{+E#$@s(8*qTi;C-4Qe7Mjm3zhx^FyhVLV>I>iG3Pxij< z)G7ylam(9{d;XNCBD-4{l%vWIyjN|GC+dma^4I2{d6((q#+d_7Z13|Bt1%7J92y=N zq;_sdm#lYN4sLmkFFRK$=Y4ok{}*ZjfHYi@FlQKwqa}W`C(Hx(%Y7%Rp6@EiK|N)h zk%^>6QeTqsW2#7;`YC;K)sqe?Iup_%3ny5wPS0ksJU-?z@F)VZ+T#D}+9Uh{UxR37!wYEsjN7E0dz zqWi1<^o2ww5g}ptb=)}(gIrrJzxlKl16sLFlS(T+SHH)`$pIfdwy$w9i1lxkJeY!E zqTYckl>cP1?4UQ$}}HMJRt=t!ToHxIYh^m)UL1DcG$7@!zJ zj2-7CnaKF~wIaMLnS7(RTKsGp_;E@&zKReg*+8;2Ht3g3ljeRwp%0Z;Oi>$*vU*5K zvneY&p&-%;i&DTumV=SV?@JfAM*Rkr33%TWR@=OsE$IcUNRN&S))30ux z1jL4;bW7^Dt}(juwCZ)5Z&6H54)WZ#L0R`>1g-kUeW++;0E7w^->JSlSh^jgxS}0% z4L)@($#sCM**I}z3PIx&BboHVkDCjWFPF|8oW=eoehOSN4v#1GmY zGxan7YdpO0!r!OewW}~<`Ni&NnNh>d+MeCVE1uJzPh?ULZxDWl#|Gb*O6NnXOkVfL zDDk+3a3_b^?58lTk?&+!7w-7gY|#1H&mS8{-g91qq`W%bbZcHzttG|t{iI=|Gu9Io z*-}*;j1f@)7Ge2{rN+bkEmJVpX={;V&v&LMIr>$;Wx)ivvUV9qT%{PFeY|x(xSQ_g z6St4oPk|6}Tu+0|g;V%FE?OB_QT|ZZ+@C#U&HiF5KWg>wwK}3(myfPp26X(GiXVTh z#7(zUcnstd*vC6F;elx-O7Rch&$qIDkjQkNT3Z{vSQ*)C_yD58=Dn|hRt0_y1qOA5 zjy!=mtT(uuW*ya`rh#Fs?_GO*U@8ojtmY^ZAsk^=pvh*ng1|r15NZ!&Xs<4ygJKRq zV2aA+EJDbB`C`_EsF$od|BIr_wVO@|>$0iHbp z`hUgZc@$ud)~Yi?$s5g=XoB9&iW_C{zO)Wm#iP}KWri$K{*rIN9AL03QCn;Zm7jz2 z;~KYg!slK01Bn!$Zq?+xq}u(*|3fJ7(M(QkpL8Oc*_^qdr>&v2JA)FGW!Z)c;A70+ zj}%_*%!pqZewD5zfKFXz1x%!!U&sU7?9*6_c&661p;Hd4>nJo+Im&HFJ?Br~wWh(_ z#>CSXE9R?sLeT1DPq{t%A^K-@b+~|lqE#ME3EmQg_3CvKEc=-m=(eKX<&@^v*A~WX zPt4yv6khUwOWGZw*HIk3s9b4xcp3loFRC6xOo-yz+*l+rK+1<_>U1LOW5lF7h4P7K zvrEzi*%LlYi#~z_;l~|RBTjhnSRdZYQ^9O|zQ}Q+Zjh5IfEpll(@gQ`?}>f-(-p^G zdrQ4Ld#9n7^fowci0_M1(t14GL2LXd!>ej*-P&i`3wOYvCtuc+n9&Y7P2B+qO|`Ap zXL&(IXelIP_Rhba)@CEGVL?~@ZDqKqZKCk_>iaGKs0u8PO(<~L!WD$|8lkzifY!8J z9n_;j;}Q3rdIm8VB5i4vs0R^iq$2V@W~lQLM9-Hse372D6ROLod!H0$~?FG>52K}C6;JOdN;cWiq*y2EHYue^eMfnK(!hJfIh%IQ#Cy5 zo{&vm17PWeqTO!F1$IP2wQEHUm@8dmoJ@LO($*y|VUw{Kajw}i(|IZYT8P+cMsXOL z7RuNrMOfzEJ!xj@<1F^iI8iA7nVZgO*Xm+bBJk1n;Zx81^t<}|N3dR;tHkBW>nGjq zNa9NWEqHgnrpenm7OiIELj$l&O7*&;(D{oMvXU|*TJ`TF;{}ixG3AOAZVP`dEB@qx zF8(dtUC9fwCw@frAX$1EPf7~(=gugs;Vn4XYb}M(NM7;B5&yh5IEp;!MFf6$ND!;V z?Ynz-m!23UAO`Q6tv`J`&e1uQO;hsO^3+aOCNzG(yzVph6Q(C!()a)2kI}f&!|;>7VVnl0hWYG~ZSa8JiMUh<58lSO~t)$qH!*YM3xDRXx6fo@N#X|TTXu!fF_do1t6Ys@U1y6GGt z?5#5bZeA;3NYewLrpo-F*+7~&TJ>j;VRC&-?TI+d6f@G0aS3XjvYLg*MtzHT#1_0y zmaz@;m_FE#>t}QL@F>a7kBgPare7ielgSrw5)j{?BGtA*pZI!i{W=ml&RUReZioMd z7oPoQb0NCQ_r8n7V?=Orc66rrPbXCwgEPTvV>6Gb&i&+K;XVlAw5yR(BtNf9iV*n@ zw}+~*R%059XRrB?-}PKp#fr4ij1nrD-b%!@yre2oBV5xTB1u#j1O&l#J?Up;oAQ=y zXieVzjyN$cor|x#pK`KZPRv*#NbdKgjm+x9{+>QOl<{a6!r#2+InbUN#Xig4@W+jz zC(x7Bi3?6S5$)|yD{&=&AKF~-lIE3b4N*lk*GzdXTdscl)rG2lB2of8rYXU1t?nxJ z@kgdk#&)0xXB*-8=ct1I-*GXxijNV(CO2<7^{;7TmelGxT^+!d3y(Hu!aPhhX>oD) zy+u}eCD-h2pA=T%SydRy7#h`hIy=$3zdx&|Z<*fW1aTN){TjM2OP-Jv(qr--lRyB% zd48rrW6c@~-|N-_M^aNZSbr@=_q*aa^_5nvA0waoAAS+*7%!dOh{b1?Yt6z-(8{S> znK5F5q=xVlVU)emw^(gM>@tl51v(IILAuSSif*9=YF?g!IKwzDtfo-de>k|j2BDNZebxzuqbacSq{f;exUyap0C;_MWCYVyu5 zXWE~|=!0T3pP`rbC$?K)ta?vEl%%Q?mbTON@1Jp&elcEIC;ZA`A99LwFY1?i{p6uY zR$=ozit>ZXb^*>2eoMx2Hov#!lJFXP9xYZ?Z9++7C068=+yh6{+Jor1MFn8n zu3rRiPol|jdyO|v8H)TU83 zEdokGDx}HvFO>5Ft#|x>W+7P89Rvwj2CuTIH;g7V*YzBIvrlu7;=qGisRkbCve0dilnYd^*i5T@ z&FP{Z?Vq)@4gG$!@?|A14!SmATOPVBPo!0=A>Omd)@EX8;Cn7m%G(xhaaMIP)bi#? z#mAr+|KBR(Nm6au)y&YB!j2_ zl09b57Q624D6PG@jahXDdlkks_$MP73SJKNLQ5l#r-JQ)EW9YwFBvi>N--Dq`KwCEG!N z?NhW{-zj!n-3@b6bz=1Obl=M@aIK(s@QrcZVJ+;*VUfniy?V`mP5&0u4uXg`t_2Y1 zz>&F`wb8(_ABh}=5c$17?iE^HGIu^_Nns*$N-j~bYu1kRWL~6Q3%25YF*i~_X@TMZ zBJ7TT!VpNU7)CK9V*yjR4XU@1p?Hi(Gf6!;^I0_rC-9YQ`SORfqw2R72j1m%<(URT?zLw}EimuIcKOX6 z`4u1ytHt;9m=(piPh_Ehc$&%-`4sMkn_4qTKQqRcOmFv1Ew5NrYV~}+HrwjgVgJn0jF+wT`B-UAD}dLTysU*rNyc);zX4D1ZC4XN=|qw zr>5awOu*c}^1QzT+zyHvVj>=gIq9NWEUMXX!!vlQzqULCFeTnOoUH8d!j|!Z833i$ zZ1V=WkwtASCNqepHD@*g2mSkDZe?Pt7n?NM!XE|O94sh0lrEYvMEUmJfmWq|#x#z} z5{X{abXuxvO}K}=ehOZKx^6RouR~COg4vFYU0a$e1-@`5Kfw8Z9!Y8sNahmF^#+yB zjM+yssJ?R!`;spuPh~t*iqfGw^^hSFas5!-TRcS5nmQ7_FxHkKcB^A#Z$A1V9b>M7`<$FbY5ZJj7~rSGRcR@5Kkpw%?Xg#x?~bEMaNPAYgA zK9IM4O!@QZKr4cpbH=skmo;_njXRH<;m(tgi|{eg-HVM|`O}#nhb0&rFP|1fPwXj# zImf@AHESFk#5zRpQ~xN@>!NCSDMMaFq#?9n-EiV<#M^&bAqBMd4_`ZRc9$I6Gs+>` zc)4$X#J&5|yZy{Yr7dG!qkHp!DUtUacv2uA*vFnJ0j$E{I@tsC0mD!Zvv; zE zq#05igFEqsEq>-|M`}MIxP8crW5v!6`zb)wp=BaDFHs%9uHkJtRg)9f$Vg2n_cqSdf6H#kZIa`wis$~jl%8|W z56|B=3_evVZ&j12W;Ax2*Z{O1g2RXg8coS@Z8M9HJ(G8f=v?5FX6AfCU^GGfjO-mAZgm1&O*tdeYd&S0(cF29Rg~EjA9>350e?C0?*KxkSG*Iz zXRuoyN-}$wuTJZJlsbQhIiny(;fey4wj7RqBa|Q&)<%(b`nb4ikt7$)P3p_1-=)SMD^&Xp_d>7-@TIq7DeF!>1+Qd}9=P9`8D88=85CEb995WOf zQt+B!ru#Wss^QN8QZn|;#aqK+YX8N`-+A{sbB#Ux@>5+6TEVm@lBt(6k9&EM7D_#s z{(1hhe2H||l>lb>z*gLq+Zb`W>O^u2*>S3Kw$`{;(Zo~q+B|OZAt6DNT?+nz{3jAg zEo&_eS>Lb@LQYWs_P%1gr^5Sqo`2lAyp%eg_h#RnIKFmz$cLXVTkJfI+;V*?m0n-E z_WB^{Ld6DO+;QPUbGCclDbIeCO zXRI@W{-qc#B#qPi;>UVWT*7zgMn2S3BPG$#L$B$O8-4Xme=)BR%~NZB#~-F6sv%{X zZuRy#&{UwkZd%saj9&4=GKHK%&mK#1j)@NDLS%Eji@1)pt3Qt2%wyYHY@b)o*(+Es zMZRxx5jbV!3iKi!tle){!hc)@5(`7e^zi1|q&u%B1)soPYn6q(NNu$8cNrFDI|m2ly=9R2HK^gz%#G7bx-B3%@?DjQ<>@o_Bx;;ZwrR2Z z`Y2=KOn3KPQ_~ShIZN`uz}ydkvwGg5M_)U0^Y8{Y(had?fGF!}ID`Qlklv@@U1+q_ zW*_=N2~uG$_D4ZF_^$^W<;4)ori_%1YX5EKuM|_LHj*o^?6Ap6y5C2UNOfBZoA0}D z%5(ln@T&$7Ojz9axl{DB@wg9PD0l2qp>l>USyx zS8FaT&o#s=bhW#DVbg#cvgS4PM-?fo5@R)Xh7K%eG`N>G&v*N+D&CR}2wDHG`ij}- zQY=-S=Sxs}{G6bG!e&-hW_yL`@iz5N8{&S$7yR`#AZr@mHI3g|!mpV)XEYnbks-_-0CNS`17<=? z(}wtVe)N(FsI3S7W7eBraos_Kl<&;S@SU8pjCDG+wl9Lm+9#;(XPmbK%bz2k_-z7` z=X5Y05XvsaHiyu3F~Uf9T=kGWLM8j@Qv)YixoM8nflS(e%Xdea3kC~0{SLZ6Lj3y7 zv_zw(jmGw@qpYl6+2a@Rl(_VB=rm7xgJ6_^#G02n@DNVmBY`xTFf<$@Th+|Uc`ut5 zUuMmal(+IV#V~shKzZHLgI=F!&y!I9hvfo&+c4j}RM^lqvlnmEe$O2tmV?~_C~!dC z`>M$lAGZt}TUW6eFMstkM<&QS0M~g`XrCO#ET8e@Kt}PK`Ldu`_iGyFd@quw-LBZ^-}t=vcXHO} z>SjJ)3zx|Eo!$A{GSLEO0ysauN5ctB(lls=qt%AbU+O(bFGN9R@@2oq9%(DMT z&p*Fdy-Y;$M50M2hvXl3<2u2bp_2O2<)Kg~KFOTnh?6mQtJgCH0@g+bpORy$c|u4R zZFqt$zIba|Lntgvs`|)96tF@#;-E#O?`5urV3YGb-oSKNVDS_#xY9IaQ1Ar91(3tX z8^lE!7Gy_vN*hf8fIhovl1|W5dzi`cEECD7a>h!2g;s`0@9zP^3M! z47!6F6TB#v&HNjGojeePej4@j=_KKoWTY;dWn%W zcJU>NIzJ>38>2Hk&u)-mkFpbpx8G=wx!?EQYol6$%r%gi{LeeB5bx^h`o~~{7k}?8 z!UeIPlJfZw(rVaT+;p{D3deA&5L*-aB$bcKZ{`&|k$a2+{B-AbC5OR0hb#20TWzM zRJ@Z&vxuq(&5GTxoWEFiUe2g;bKA~G8!NGUhV{Fl>_ljEl!mY^!$-NxOjb=$>^e^T$Y*mMoOB7F^*?%~tEe`Kr$$fgu{>7DT4RXCdvjeIiuP$njP{k*xgoudi z#pPoMJ0=nJva!W3E*W*{V;rh~cTbviCcZ_;#r2TEnedm6jJpmZ9cEqigD4fsb0d13 zOoW%9ZDd*^GQ4t+R-fDHkrPV}Mi@{sU!g zkpAR7ukyV2%Q^wCwYPL*YSX8XW^b^64SHm!z1`AJuhnnsBDB%o2-%!mENtd` zDF^r;dczaa7c7Ca3(uRcwegn##EW>U(WH61_8L^0IVVwDCf=s1c0ZamY#k={LRbs= zvMc|sjMciyNG6PF&I+7BY#S+u@XA*-v0VmvruH-uLXDJKjFo>)c2;ABs*i-1P0okbg|P`XR7K zy5&f`Z5K!{=`AxhgUoqT>o1S9I>8CP-6lvT2q}s-zWu079ryc<>rbJ@1+jbih)i?t zsU4rr+2)QPUia0D^~zHdfBSAozq#or^3>U}XFe=`_(B)#@I^duk^<$%L{aS&@V?Ti zDwl!mOyZt<23u$!+~Jtk7++)f{7r(?et7YOgaG$U4Ny%_?$~O~cW0N7UM@bEEs@kX zLRk#UQl|7E@tfa653H~pcuG(>cjdMeyjYn*5APdq*!9%k($U)8#G|e1oC3^hF-6|R zXZQMFzneB0m!!}ziw-=N92eO2?xoXLw!i)P?!omQkgWA;l{};Xo?LU{?^7#7w0gBQ z&qwTVnw&firBjE5Vg`*g?CgYq!puKRYo8S}Mi++emS#J-kfNX*(4k<)HFeFIH#HlR zU1JNQaYGD;U9@Y;tE7`xui{reB{fIn!x0Mu^%a0+k7#8mh@-T3=3l%hs6oU+!;>#X zRcSCg!)e#{kztCmEw`RNR;B9E1J!}G1BJYgNzd3q&ylwULJvspPwcM+ZBBIEgPds} z0OU)Y)N@;&*0E{ukDApJmfXqskK;Rgqi~omBke`Sr!U+tvJH;17J<@1~t~SYmGZ zzoxzUo-7>V!2S1APm+8q?5F%QG%1oZ-Fs_9p!vQwn5!cQ|8FQ~0clc}gLcXkdyG$% z9p90aFX7Y(X?^)HvI%xF2M0smPyV@enR!-xk8-(ror%GVy{A|-Uw7(xE^AlmoTC!| zyWg?i#_2lx)U7b{#&d)TsVZRok(fi z{6@b5nl6FwIU%_a<+co})%}>~n(>s{a0RE8>g0>wV(N{e@Bzg&)oDC1`RE`IPOcE^ z=jP2nQcW}ax@i;p1Nu3|ELeNrxzh+UZat|x-F}%RGf4Ag^c0dDOba!g?|zKdoPla= znZR3n{+kBxr)d1z0)_AYiVRrZCjF!>?wqtC@B3K^0n__9a^AmZ#*DP((DZCm?vP zr$w@_U^#V*XdIJ@fb?M~kSdoz0R>d4^jUFsv3i`AGwJLTuIz@8o-EdQ-IOzBK&7_{ zpyiLm6F+zJ&ID5&BG>&wx30R@hNAhJ*IYYSn|@{>wPaSpe8MtPUKRW5inZucVe^G( z=UdJ|Mk4(5jgtaNDzTp=^yZ<%yk!)2H1p{%;q@`!bWuEW8) zm>CCA96Q(CA^*ZD+RC#=<6AIhp8&AT;HKcQt=4srQl(VsS?f(~evvclJo0-5X5>PR z75Su&{2q>?a8z)s@0-t7OLl7g7P_5NX3w@ zIJ(tsyovVepo=$R`wvSqhs(ekx!ksdXZD?pD}{qDR?r<8Ign3-EGyuQ-2}3IWEEMayk5k~t<`+%(xXep941prAt89M`hE zs*0v2c*;~QZ6Lhaa$821S3UfS@P3}D%51!kwH6cYlVilu#f znLJaw&E#qBfV5q0c*|G*Wg1Zj2caljFT=O1tIDx^K)Bj|DxZorEUjCKOneTogcn}nuJV}FH>({J6H0amT1F)seCwWqJO-XLCgCzjVPM7i$9 zjIQIkkrub*y3Fus^4QfT-Rg|<$Z>dIVymhq)3(z=o*SYCb9>tvYYT^JoGAk)9`x#V zlIaFBwa2e>!(XTmY$XkNRSREY5lD}UG~&mWgQ1z3mrpBA02Au&`{HfUW*C0W^acns zk_qZ=ojFCsmHrv`y6YN}L$x1k3!z5!rpxq#uv1eYcRzSxU>K%=3tj;W)_g|9n z+wkd^9Bq~{^VKeh*7L{3C2@-!C6juTMNUX#x)oO*`RDxE^Tt7JiYb@S`4(O3=|5u5 zq;&#Ro{HvgIPBvaD^7kMa5!GV1TaCdr~$^s;`XJc|Rs-uq)a1jO$Qb54U2~9sYW|G2ykK)7hvRvzUD& ztMK0F%d6q5U5xiN6`I`hItCT*kLc4x!H64JP}<_FRF}pkqPc;2I&1dPAc(#9n?$y% zN>Wi790BGyl?y^zv%U3Xj#Zx zDvpGQN3QBWTu#mcr*sdRoM3QWAm@1V>$-Fk%D?o;7|gK{&3|egqyUr%hdOh|_2kk+ zIJu(dRo?twy2vo>u6yW`w?8LFQ%|GmicpdR>m+lsqIDWLm@F}=lAOJNew*z?6&uw} zM(P|LhT92-=&W6bWN0>}lx+RaE+8(eelbt-6jYg=TuW5RYQ=4-UA!`EsYbo)GY~w6 z8I_YkM8*X_HP=9%>vzszILwTfj&ihOWL3T$1?+$2Y;FU2x)ag@xul<_R-*V*$E=gG z`c32msZ;knT^OYGq;{^`{ckYs1sdtw4muKnQd(&YF2FmxdVqmCz$9=Dhz-SYRcDID zSR_2wmZuQ%Y-m)0b^u#oj5=Zo-x4*p9VSmEtBa&EL{h{jMheuO>6>Vr^6T`ypQ-H! zxAbPw*fdP0vk!9k((QX)a(HhT$`b>MjIiMC3kZ#~@zAyP@(5$11I$gTTNAdom>=s2*T<3b%g2_yr zrPoH@99zcksqjiJ(RrAd4B9^XPHE4hpflYjg&}}Ce&WyNXO4*4OFG8(wR&(V$8R2-I*11C>Gc!Ue;juy##48{OIzQ z^r_6Xx|JQyuzrzBPl5Tml7|K+4?R(@HqVX%R3Ij^_U*0knSVc~c`N>1Fap_iiI0!d zRoXnJwXjX_KIj{1Mf9tsOy8$>Vbx5cdmRrE1jm9(6E(|TQ)Y|bQTkEc^2#2{2m%jo4x zs}%_cGyOANqN`pR8>=Lmzr@Nx);W0WW_s?w?U%_&YJx6`^Ne^30C>a?m5ubfyBrvy zw>-)yn16aJ1vSDH4aXB37UZuTGaGQ*VCR`(F-y|&YV1wDd}os{E@KwjFIZQ9#<$hh z8FIaa|Bn6X1!|zq{QyWRgE;! z*UqumhU}MFu5^Tj%6laiLJdLpS@A}9!E#o=Hzw=t7Uz|MicIAr-(_5=&M+f(g%90F zWY4)$?EP$mN>u0{%ML0Hb?>h}YvQCkPb9_6Z8Y_q{NH`Dh|G+}jUw9_pjB=v?VrK3 zMdB>P>{1CjR=>R6O#{*Qbdxiugab(GU% zM<=USA)`AMPFNX%xq%T$#v;nlw&HO5&RF`?m$n%~0pFXQ-j`VE9X3JguUgk9MVWNI zg{F(w?>)E$OQR09aih9<{nmH-&AApJ;zYXoKKVO3?aBLsEA+PE^xSW-w7-0Y-?0E6 zvFD+xljIxpY1@?R)c_(h3e71X{xtPtYp8bEO6izsY&8Eqchdl&6fe2v54%Xe=+5!O zTX;1MPzmNkFOB8=Q?#gOM=yw`ItZ?w^Fth;Bv)TNIwMeIfO10Sm!N|=` zP~i7Q+kckTTBxW*LHD`oLbl;5QY}FzkGwubeL7Q{-B075Byyh2cv-7`x#a3RRexXV zFLUN!59kYxz&$OAgAXRaY1ZDn{LxpEsMx8sjM;0=xDUX)%JVg` zBF$E@b<@a#Y{ix{yuL>pD!L!HE1?p9wyG!gAIffKAKn1m6A@+r=neMX7GKJUr-)=mw^^fx;CKPztsv^t*-}`aRetzealDs> zQRD6BVQPPE)!tmbqvCpSV6>d*(F-#_2hG+6I0=cf5Av{SsdO;f!O4^G&UOLf->Jk= zrNO>M_M&Sq>ZQ8P!-eJI+VMIza-zYz{AfAs!%;xc+z$Q>ZRXG1@hKFx22RG$ zrr6$jB)4W!#S3El8R#HkgG7%nv?v{e8Ik(6Z1DB+%HrCtX7#%1l_ac}*nI5z`h7HJ zxhzXYQkA14;;mX1qTO$AdM0Ov3;GRcBPzEA2~fWGPeHZ%OjC^A@CjZQh_Mq%R{2SwO6))z*+vfrr`T~Jvcg^SNhj?&do;UxGB}f z^muEPu|Y|3TQk&{0qTpxx1*$^_VCE)e+^>Gs_|tC>^)0V?CI*)4O-GpA-!Ge;+i4s zhHnJ-y}Kpm<+qqo(REH3v3W9esHE5RGWpbsw29eId%LzCTfe1?IAc!phVY&2Sn9o; zcG&ezJ&59WUe0ZR|JS^!#J+BT5)CuPP`g0Ha(&unx>ss=SDX;!+U`$QCwke^L}=`J zD5!<78h>&l;Nx|nTZ?GEg=y2nyScOlpJ`3Ed7lNU(w$6aMdW~o<-PPGuf;Zg!*m1se0yL1))uLEy}yP3I2rv0)0VX}2Y&FXGD$G5kU65dkLcTIW5UHp)oK zuEI(GN>lTo0?nuEH+s$OaJ}{fi8KjRSqejl28+O-Gh3xgb-mA=&2Y+juCAG@0=$j) z?6aJKetI-{XZHTF)T6&c6eRX7mt7T!z@sB$iBaCJS_!+mN!lmW$?fR44l?oR~jh^7gBNqoG-US-o?BMHX?8GKY z`IS7IH9<{3+5qe@=2dh00EYdk1AAJSz}{|DD(NhE)yJM!I0v}Suf3nw71N(bh!67T z7!@}I!&Tz2?FyPx)kDtL%H*#0>R-EQFz&o~Y{%HKNmx^3hTk?=zg>Zys-chOk+GHB ziiMos26yz7$rw*9Y#`N9+9I|N9#2Vq#&@!{R%UM0dFNJHHhk9b#-&8%>H1%xIP?a4 za?Kd0>WSrspXVE-U`X>ZoteB=L&J<~_efPD2Ug3XoteF8PKO%xh`<8 z-S&aRR$G3txI%jvg6eu07-=IEV-TZafe5*Ky>*J<0d zn!QFtR#CMBpkLt|@PxyWYOVq*UFrJZ%Hot|%YizM7v>XBvRO3JZGCUE`q^>8FD(Er zD?}NsJ_8Uwi7|IW{hE;8Zsz$;wyg}1tL{Ls@-KO!lKDLy->6~{?2lO`$~@mz<#x#9 zzP;U>e`vnC6s_b{d*2R3%)H*YE_>*ZBMhDdAS~4tBKf`>M!JNv?O#EU`5BKjIuq^) z{&12hJ&K^#mnlh}Fn5UhNoIY_-q1{h{&%$8-GJmBxU?`|ccwjv60fekm=x_A7(Y1+ zNb#6B8KU0(`dQS%8Mv19S-`n|F)c4#|A*DS(EWTcC%i1TRHgKIojKfR8C9SiWAwzd zFS%XWFismU3-eDAKmH3%x8p;SoS+lzF-FGEx8Jxd{h{a~*U#>@PFaR@Glz`)`*Iy& zHEV~^hbeCB!c2?0u}?7l!u`z7IW#)?g1S?!wRUu^7&hq>`~}n7^R!m(Ir{aFsk6?P zL7P2M1`E>~^rG#WmFD00be`$EwM;&JH%UpUJ~-d!w%!8>H+t1O!J9p_n3){-LWn@E zH^@8Wm3O@UG)}~V(JXetj27iOqwo(_vd`V_k>kwS1dt6ZGj*BxqgzGsyX01If$@LTStbioqgDuEm@P8FA)zm zu@5=M8^Z*BH6JYCH`=F!xXxdWsH|Eog?DwjPzfAh*+pS_-)8M#rTB^8lOSv`c$M2g z4w>&yL4wuR{!^}BKv-X=8qRf1HkV z_@6w&&daTuC$(E$XP6NSk^@qR&(u|GaY@e0YmS}Hn=@$BPRy-py2O(3$K_)bHhx9nr)7&cwgp)Nue-roSDPJP>bMQ(=s4}wA@b;#GCQP0 zFH{oO-;PR(`QzHJ8+zQb@Y z_e8q}kL=l|L2`;HU)9V0NdDsAmKet{Le?RYIlw|UiM746fk_KL_Z|%=VGzQUboqaW%}O`x!G@ASxA?qT-@AtVer=ac)1%CSTyx-^0&U^H?U1~Y=pR5m{gQGD$4Ckxt6A0l<28F=!3bl5H-i^edJn*NGnyFaCTqwxB? zx{cADzrlcZ{$Iq!Ws2=UYPFa0&di3)2^jc`5c`d&Xg*KH9Q_;9Jy=vt(U{l;Vp=`*lN?9wy$OU*T00K z?76m_js+v`Wg6%4#H5EB7J2+r zR|6zc9MAfidq>-0%k8 z>UJF8$y}Q6wXCB+KRgENh#R72EOD5@yhJ`)>3Ix)w7S}US?uYI`gFNGilZ;&X0QEu zDE7{Hc(CXBN71un5s!w$Jk;k>n{2zJv9Xc++NmPx8ZSJ<8PsE^Y|%H7iz6lGMf;|7nYYLn%dC$7)MWgU6E`JD7a<#@P1f~>gS-EszW~R)g#>d6kqIP^~gM3@4i$*rf?+J z>KaB=UmI2|!0=CBDNpY@kDctV0ARavc^hEGXKtE{`zdR21gs`A$CH<`b}Zo zAhIs%j_jJdEo)WOUAeNh@94PN_yGx~Hi*%fRhhXjq}p7!5(U*>)8j#* zw%HEqx8P%cVLNN<kq(ZfM6GZyKTZsbLjz_XdxHO8olVNE)x^F^8X{FK}> z0$z*vDB<3}Cs_gA5r|u|uoruLm;Pp$tFK^IJoC&t*5TLwKTzxzPVQ%orYtn0;x{(w zeTL=O>&4fv8*1gaSYMbo);8q)c<#X%{mQ^tTFymYgQY`rd~eLB|EMIWb^9Z(uqCA26$hSek|BFQ*63l-y_kGpFJ;n8dAQhmhx47tm&>5g)b;&TC_61$UbD^?n*Vx%J*^Q{H7CB zLmDM4lTWLYKwp$RZv5!*TNI_pjv|RI_bC^~Bie@!%o{M|Q!#>iytb^9z12f;z_%-7 z2zdsBrFx_%55&;tFm~O_@pkV8i(@2nJ|VtpS=kiqpE|XCu1~c&MKJ0|nw9B9?xmWD zy@-Fp5%_qWEFs&gzHT3zHgXEzSj;n?EUd51g6>`L$#QQ@yHGKFy1#lW%!EsFz{y&< zk7Dp`-m5QMI*lvyhy{IgZlMQDDxxTtcdA!pxli0nLB>OJsG4!)&Ug%i=odFKZUmz} zBh%_t!ZGxPI4R9caog;(TG(VIN+b2EHij!z=G@ovic(nlFW*<5=lRu(T3m@W>#d&y ztGA{+I1_vZ^Xm#bV3;iyUZJt(p)vdp>gVUPM6EGhJLMw@RH1nl_PN^12(58 zmvTx*NdP)Jvj%GaCU_N};h!noS(hZ70;AyQKY6^p7GGLT0TWu2uSZ77u>+e}etCyg zA+0%Aw+jtcruVr_Q&oaBo2^kjL8XZssA?X^Rjbrt7e}sdfzPXto<(%mn%LqoGe={a zdoN1%X)}|F5if&fUA&S)WJj7~H7i5Et-R7MHwr@W(M^nwogwj5Q9y4p#%xO^))h>@ z768-B>4FnqltJo6z^7WJ<_dg8{@yDU?iufNbtTE(-d6wdW5JO8KE{CgrIQ;djR4n+ z6Yj-5?AJYnWltW+ujkAEL4G~gy6pm@l#v#1^l$MQ@hp3{>st-yoOv#$T%y7#Fna-*OlU@^NPKi@(YRdFIif#g;BFOgHh}aO1^|l9A zmv=!_a`J$1|6{(+#e#Pp>bQQoo%pI+xbc+z8z}u#Yq~#?=g-O@+gRKQ;UN#2wX3lM z*mZtA+_aDJcF0F+xIN0P^~%+(`Ib7qpvJf*lBplz|JcOPR+pH&{a~TTlA%w||HdR3 zCZq0UfN?ekc|t&QNzrge5W-=AwE><;gB&pO3ko)D`8Ff@)8V(`Z_|D6;XhsCx$hm} zuLs=j+U0qthtkTBoM|iz}MIF7R#69c$1id z#n3s<86DJ9oAubViao7*BLmWHolnIe5O%87Popz^rh~4$oHZT_kdKI~eQ4E%x zZd34dSl4uR5)|~gIMl;`%`O-Q*FOxsq4puIhphoUAV}Fh*RpuYC#Tkfc4! z87VulUC2Db`Bickk}f*_Hz}*_LfRRISTmn6OP75*1Hs;7=Fmy%3i^o}6*C(bj3;MU zR<3(L-)(r-?BhgZq!^754)ReJuld6&)*_*)VJ=o(n8^0ZGd-6l_ zk(#&}>h0Rv2##hLYewID$}7-X@GZvSlj`;C`k(H~(S!RW^(kp)KFg!k`d5eWO#G|n z>iwW4c#?LMMu51yjM+iX!zPpTB7Sy7K1k8v7+ESGrAd*_GuH^KbfK`5GzAy^wrP04 zID^xhX0x0?jl9=}{i|`bk0l=)^pC%id9nF9gb&AMXCh=}W;V#>WU?F}sw8YhFW(yF z%$j+tBari@;bvwi)J&c@AdNstYA&ZyMKhu+iZIu3>qX6L*#p_^a9$UW1FvxKMowIi$Y|j$eI! zL5N|O>tq)xul&9$y7HdtT8+-#Uw!82JjCTgxM>SCp{QBR%tBzltuaw0AtgFRLs&Oy zdw8l^@!=_5r$O_gj3#ZOuO_*1t=h#i56Y#$q|^HEzqDnpbTz1Ty($1n(eul$Tb!)= zM4uxZBh+E+GxU8l8Na~Sp=P%2_e{q&JuFN0T4qxCQ*#g!eN9=}E_MC0xTLGhSBO+K z`$5zW&@^2|1*7PN{3WmR@f{4Q;2J6aO|?zIz4CGR;3-P$D}e(O718l@E%^RigREZX zKUm~B4mUw@klj(koR}y+rv3`GoBNOcsV`!Ha*)l}PLIqg<; z2EVDB^o2ac`g_D96&u^4f%fjjN^Z4{$W_?AQ=3>R)sJ5We^FLSk$(+V1Zqw@Sm>6} z@|G#Kw@xt4p~kGI&}=Wm!b~vh_d7cpG-v9I#|QRVt3Rw&vK1p3-+F|1&-RwRW>j(l z*T63RdTxpMl&K3>T*6Le1_>aQF5>bv)7H5Q+e)-kE^Bjfprx9!(0MQ@?Ir;I0*? z@o@pJvWl!$#=HBy*9*b}vbeLviqe&U9>b2=-#Z7o?t)p$E47xS_Gj(UO3 z&8+iZuN1A6q{#T?j0#(Wh?p{F=xO7gKHob|!xS5mN@4^)4^O3diP2h)+U)x|pSg}A z?F8RPS0zse3*|fgxrSIZQpzOokEPl+WfciOL(Y>yC2|jSqd~`C4BBP zlrn|kIsOF=Eiv^Pg`utXxe3S_2@_TMunu8i9W%yV2>!yE*s% zKIMcwU*RNxWu9$)Z;)kqRmIsp9jsO~IAiQ=Sbub;7kSEQQ9?#nVS9rrq6p*1zrZeR zYDK}RAsc`R``&hSewq4V`P#};FAwYVGpSrgZu6DeaW!}4hxbe9)5f7DhP!)}tr9n2 zt_| z`P$Z!Q^U2U38=quQQd{S-=ijs{EV`l=ERpDF&!8-?s!OI$Go4-seCgP5D$N5w8~C@ zCth7@D8uJD$G@kS>}c|C__EMtV3O$^SV$4QwJDs<=m>S0q#Wm?a~l;i?x9P!aS65z z)M(%pde&R1^%WbgQjb|-h-f*~b*9Cra>X<(*LvH%zP`nk&fbkWV-XTA)83Fte`P>@ z=KMjROeo5C<)7+Oh0;mApkl#38gGgoMKqR)pi!uclsSn-{yCJZ&ys!EBq;QL-`C3b z<+ab3Qy8e+?|J{bz^CkMa!9mU_k{eQ@iyaAETR{#c@hy9W~V^4qm?xh_`Xu63E!%F z*pm6xC#}fkb;Q6=H(!aOOM=(6OOW5t{c}*xgb}TD=kT+P)!6HVCeKEN1~*duMmUbT z>Tf0qq&EH1Tt+o!FpNDC9Ss7pfS$4 zPuS5M)sLT~Ed6=pLNS@j=-u8LW@lDP0u5d|t!IrEy`o~;7P+}&21ik)c@0UADi2y| ziI*C1c-p!DV3oiY*C=j%x11F?U-dhAA7My3QenwKp&7j<8{3&-Fp+J1b7{-!`@v=v zmI*rihrg56Zg?Y0R`t|04b-$yBk}yiBMu=jhw59Ffn}uh&}*Ki6Nu>jVM?wnU`*bI zz*<$cvjuDY4DjMXg`hD=O&~H{+lnx2&A)Q9#5f%DMdqH;(2%R6NkDin!al`EysYvn zp#D8!IGz8BKhqEFY9y9UCU=r^dwD2VK`kxWpK_!JVDWlBh`cxqKq^8p8F?Yxk(+y3 z+&N@k7EUwlp=UArioyvKZw_|3c@dJ}_7Jj_?B(sl8*ov}Zr^h}$f|JpJt96xFcsxX z-D&mcZ%h6y22}WeL?d*5{A#2&&$z8sehz4q2RmUCN`l2PMm@+zl@cdOf645;Xz?Kq z!&J4gwm9at+&^wPf>CMgJjx06y99b|=eZ#bb& z{7Ht-xT@!3_9A*WT&NoFv`OqMV5&NIBnXvWj+;M&Km{M1ydCYiuPB51!;=5^uH_v~ zr~pj@UhYkG^;!igD5F}&>2nB6Qt_G^GZ2J#8DrB1BV~d;No5CclPxz@`q!H(;OeZ=&2aaDvzIIsZxHK~* zkHZ^h&mFp@je^uwg38`5o*L4fcUOKx69`(?BJ|7(i2tONW$iY)Y%z1XiVGw|f6rQ} zrDfazf{uyY1d_=KevkPXnO4%{S?Zi!c?gu*Gg1xr%H?l`F4|021r+wS zM79?={bANH?3k&{S30eBaN=mpp|dPkBO&*&iN)m*h*@#Zu_Fo{wb+_Uy!7m`48x@! zV)+2GJeb;>B>o=uWsAjlN!-HmmG<8hs9KHv4-2#KO!4O2M)===Iv0RKUp`WEo%bZz z04uwx6-p4#Q^44#K=Kcsh>;8KaDyc7P_IR?il#msJbrjlGnUG0yJMW*D=Obi>{C!bx=GzcGB_y}@S|9Npo1g|EIf0O6JV3QrIjrm zo$>Z}I+317tq;Gc#){ygd72dYZNA`Z?(!ymzYwC^mt(|8rg%PzpWH|9 zd7GLyjIpvaq*bb+OCDKvc--Kxw#pKz*<%_`p-FF*gLZ>yw$Wu zETI{bUYuLC@wrM$W4>|&7cvNUq+@g`u{%u_e-@fH!Z}Fap*@NN+YN!9nmN9X%qn#@ zrOG&UPDZM5Cb!wS%~f4$MlXJ{SRY<`l)~^fB67#P3CuTDC7~(0ppvBBFe@Rzy>*0g zv*Muh_%Ow$z%BX0!2Yp!gz?X)wcAxLZw0ja845l+>%_Gtyg8tpxGR5XVVxkVM46Cl zqtP4K$^C|yN&lb`X}8n*6F|`A)-1p-{$&OEWw~s<;)D?ZDS~p*D^qXuMXp>XM;AV&Z?mjpUj}3CKDAn9-7kVGP9QU;$ zmBKYM*K7Hi-#4?qCd-yVle&OFPR~xOsK(mspbM&+%MS2QvRO13DjON+D^WS-P_4p0 zkBH|N)kP?WSy#=uQ!0^YDZTRiQCf}bM3P*1kYkg2K0$Xc4X&aE-35HAbfxpSx0HQj z{$`~-91@^kdWxQ^9~s}<;z@(hV^hx^TOyj&s?JsKRj0c~eGOASyUYK}TG`LviOIHJ znxeb3<`=}aX6dswFt8%=Hd76(Pq3TvkA^mY*QfDw0Dg<1xc5{w1%^?dQJo&*NGAF6 zK#9tm8#QymZKQrmNWlyYAn9B{^#fg>58>oU=N6WBmbz?L(bOq5*Tht{U9*>LMT1WY zZGNRQJy}^8=%AQ#^&O+N(8!u!`!_x2?z27?>iImKdgI^sY!w!a4YmSsZmj=eWeC>X z0wO|;SQs%h#V!Cbi?5=Jo%K%y4O?Z7sj=#IZw@uAma}?lk^}>xk<0zpo9Yy8Ri94z zF1m4xR5WZT7iY#H_r(Zd7ht6F_*(~0g`A>jFV1wVDx**KN;5z+BE8Wr1!D59x!q@bd@+-ur@TFLY33!Qu(BfR+B`f;xkBoy|X#f zcr12(3v-7+Jc2RnLe@eeHl-A1z>DVAXu23Ulq#E~R>*?~#D^FbLI zLK1Ec+WIkeI(#Bx*Q3*UFM8-%4tc_Q3Dm*wo2Q`g=%DSZ$fIQq^v%r?%#h~8j`ECU zAgRh7DU7)DTXzD#Lwkq`?g4<-2J?Y|qFlXvOq<3=>oQ>It8EKtAmtky&gGoV|0?rG zc@a^yoqh{RVoZ_JFkgbF>>)hd*doV1heUwcR|QKuD4^4>Yu&?Ui(s`2P9NV$ZLs64 zXoUS8j$Ok3{ZF;s>&1p8@&*tgp~G{&r@Yu)rIDEvIcF@-RzO37ci)1p)8*MRGT_72 zd!H1J^mWnh%C{8 z56I}%>;7z{htl8w(`R6$5Qm1E*G9!Bk6u6=UZB6m5om3hk`3&jxzuq85GofCcC}?RzdxxQ1J!xX0 zF1Vk3%&Zx<=|Qu+2Pdf>2RtKU2emHUd)BHBIQb!u+b7rENur({i3$NY4nwV&6L-9C z=>Y{a_g8&S$%-OJk%DcV(W4I0s?)ZChr(+5+K;`o6ZuekQ8HGKGix*h<_!@_m377Q=f?KN zWNLK2BjRpkj!S{*3!~i6B1c`PXZCGrA2Log0y8!gjCBoFBGpK|IIS7Id`K2SO-ng?7}!_$iCCGR zrUx2h)B;dGVpmuAl!RKQTibla?__<$`Msc_=ELT@eQiCYo@+i<5aTuUjFfXhkp)C!7&@lOTVG8sZ9ob zQB$Sekc?M68QTTcA8a$n(iaCy9*m{j{&MSuWCCrxuXF`~O(Ax(MHpVw9-Vn`_-8yE zqC=(ziAby5F0P;UtzkW2_z+jLFFaIv2w*(tzKWO+@mGK8r~lK|yC2y<@l#7?w#=#e zMtvLCLb?1dnAOUva>;D0cwd|N#BHO2RHC=`dtpMh&Xn;s@tx!HAMR{M?SvlrTDL1y zl~i;?jwYae+9S4%>*rWz##3sh<{7=E&xNB_4A}xe!aqmBpr7*V1ua@hKq@1c4*U5x zwqAASHzu;(Nw$00;$BMwG=@CGCSCb%DmO>UCsh{f$Ze&-UHnsd0;$?o(jvfD6^m#% z!M^|1))**Y-OIPi$GiL1hblK6x zGKK(G1iHJ!%7GbFtK*sChIGwRrMbzfqXk8l+s*>Z^6QA%`>XGC6vgiOgyyG*-`75> zF8%a$2Y;xFkoL_2f2?PFwfE-1zohvVWGv*Vj2iAe-U>q=FQZeYSrL%b3)4HuPB?0} zOAgyj>?wG@cYo?5pa`0OEaK?^LZWvst}mq}~E2!wq0U3bO;xNFiag(K38B!Rk}C1~VM6 z$zYKJgmj-vQQ>0M)a)7${r7PSRPdU0X^OGR;?x4X_L3xvXosc==2^ zy?{TVo!kaPesqQ2z4W?CIB(S;WoGTkrABw;N!At~Hu{snUf*UUw$DAd^x+`oETbYS zlg?JnJV|yL1FHAYujNs)IEIM|Y(;m=gCq%1QcADHa|v_vNAZVbZcOn9$Tldn_S?hD zLR)?p_Mf;#ya2FkB@TAP7hb6#MmOXmDRb}iM&_kWN@z9>=*Y^K zwtNHSmvjS!s=RSyXTk7^vON{1T#m(;`z{a*Lm9oxi<_SU5PJ`VSuexmxckNb5j}K0 zYu}AHsXm23#do~evzWe^6C2)&He|c~HZAtlB>4BthQR}rPV4nREvq1M@R&6nqMU~| zJXr$DDvb_D;jH23d3V+z-P67Pa`zf&FbJ(j>)!-c|M+o;RI2aj3_tz*WXW#gEWN_X z-&C^3(;?8q(<#tJOwsdRul*~lln?VNdc%L%!pPae_zt{+M-F{n<@Gi|cF$zUdhYKT zZ0`XLfEhtq-(afw>KY6`c_0^x}VH8 z2k2XFY}uY@$Qgm;#U>;IavR9bSmjwK#FZ-sRvJ48ll_+I~#CE6vh1xRnuMuC}D5kM>wrUQzR)(+)NLn$-MYe3^ZiFJ0qa`2{e4CUmz zj^cRey{;@4tL{`RpmW^cz}@`ocs?o~(j_9l{tL{Bo-g^04Vqt-5Kw1yI**)ow>0r- z2hS@7QVY)hKqYJ`KT|fhAx>Y>^p$&2hf(R8c%tYb>O6lr)9LQ6pe@MgW-xSEbE9tpTE|cWskjIa;)?F@gE{V|^kS;@a zwkdZ;%_$!@miZIy_Kqf2$Jv^&zNh@6-+15aFy=Lk6 zf~o`f`usY`CxuWKrHEl!kSd1EUv+_DJN|ExoF0E-p1p&hp|U{=`nS>pwo|zW=#Hv_ zwd%|=HSdDTOt_5@llqwCc3zOe>n)MCKd$`o)LF$OUZdnG^cK7m<^=O3^F9wZd5g-P z1(}yEe^D-hf$nZc?xu?f#aE7_9UtB8Nh3w2iK*QGQr&vh;IrS&~B83j8dJ7VvbKlW!a z?mn+9vA%5`NcGsBHzX3-gYf8Uu*=uTQN5TFEaf`p8#y|u-W~owpc)hdrbBCW36WqKyZ!$qRJWGD z6>L+iyL=_zfTBA#c1X~9f15AolT8G{Pc!kl*S>>e$`ab-($MT1o#XFFKSW|nXDNNN zO;*^bI&>#H4JbhbCDwX-hKRJZH~D3|ge~Kz)woVyvJuSN%RML+Juaaxl99&ti8MDW zcIs-|35Q{~?#dnCSJC+fY{9PgEs@$^)}#j>SzXnEoJ_9MiWOEhM9|G2$Xm zjD>8V+S_O$E^r)wd?Z3xX32H==p-)UJ_plRNlwNGJ8(Q>9M1Otbtrk~-sxcTz@okB zfXz-P$TGt>7cv?tQvQAkvCLa{DwJjVuT^+EA63h%b_hDN@ZJ>2yCgj%Od&~plrTI! zC*hteShow+d?!H}%hV55fu2Rbx|$mr15#-3O7!FMUVP9Sy>@5wt}t7gP*uJJ``u`{ z@WpeeW9EhzaQ_i0V&n-V|95S5W7B}Y005HALQo^bMgha(?gNBsEOzSlpIWzW!#MJI z_1!w3;fC`w_hh>Z5;sr5YmmD~z!|v( zQrFhOgcaGeYeAoUbzd-pVWeX2R^1dGzdSMa?Gn0wY@#s5_}{wSV2z)WBy!t!$zEjIIp$Rom5hqft|Udygx`3xdZy?=5XU5 z10PLOF%NGMEn(A+zmD5{cvbq_e+Y-QUH!Zzs7%~5>;QrI8u!6D_ZH@xWSVm}XNo=m5U6${H|3&iLMPYD$VyTy6uFv-ckYdH9^L)7^^#z)Kbyd>DQHw_n`mmlt6l!P z!P5an-VFjG6isg`ZNju7vo+@yBHP4%|FkihuPIQ4Lj`A0I)$VGou0%nAQK^xYs8MU zS%&1)oN?n~H^H|`SAf}GOCqZ#cd@H@W(abWsaWG}79Wv9r$G0aKu4zc#8B-+L*lUBq+h`yIC1>jn}jyf zz|9(3$Bbu! zZa(S7lN$G`-Pv@?&o9}O$)R>x_&=XwZv_*nZG;ZVNO_iGg?a(AM6jp88r;p(tx_(H zx+B4X3~pBot#3%6Z)>zvRH33d-L)herymkjZ+Ib54s8hnpyT;de9NG`{5U{$G#8y8 z6VLKlm9kr@A*=mhm)+aLAlm!OCn5FC5Zfz+`V*4Bm!L*e+07TY)n^Y{0D_UeK0$Nv zAJJ30%r1tO#kW&PESRSu)(9a=G9D%`u+0XkjF@z{w>bczwI&vkx;HJG3-Cq>4Q4JG z`6A^OrX54yy5{EQGpl;X;Ti;o9qs4ImwrM`teM+*=nb5}i_IGVH5kPN%Wq1L_{rU$ z6Y}A6`7BI1PR{P1XsAu)E;tq59C>tCulqU6Z_Oy*TH4PlMnK6!B_+q2`n62$D&hSp zGeh?yiynQaV-j-{1TiX7)2AK;*^nr~*d^z1Zuuz%pn zvDI|bkgc3|gw47vB@HKsf17m4ee<=Ac0-lsLHAa(r73-R%4qi&VwuQ zm=*P0`J(I8Xw>>`dF}Os%W+_ai3pGa(7nbG(g1&zg~BF}yL$_{6adhFw;qDBJfcyP&ExphjeKKlm8|FrM!p1Ptk{ZjTpCqZdrYomdmn@ z=GtOYbvM&l(|vfb2&nd{f=7A4%_)lJe=dm zV=2i3s859Am;%y1VDn3s7fqdl`Yy|WZdUFwMEKfD)>E~{mB41Hr*vC-$<`p@aO-O@yE%Y`Zxbm&U=J=q%*)j=uRks+LIOQGR`&hYlTXK(rulW)ZHJfZ%5}y9 zqfi2vr|*G#7{{{q<&hI8R~`MbA>qdY!5Sf(ODCF%d6JbB9U~WYsIZ;l&lY>JAeA1=ZD(e^J4{YZ%6c-n$rDJnh>6{L0 z@ZzM$cmp&XPy6&z-Xn^E8|qCH=UZZ?uqEKFl`Ll5Z(w?N={5NDRPEV_vRCbMWK;bB zC==Lzd;noN=JN_5U5ddr>k~=I`=tTv?zgz{6#~N%Kis zthlVf7=_|xE5kAFX?8vuF7LVho}9LkmW6z_%ESJ? z^xp7F*JE{*Mfs7!UEBE3*^6}>xiM28On^UiLq=4NauIrNwx#a?d)>VU8ri`AI{@9e$gpQUgib-)E^Gc;4y1*lVBn6P%a~y z_Dh>osd+$ncT!+!Ku)i&$=$RMnq8W85hEXB5sYlXK1$7vXyMOi8RaoM6SaL#0$89aT&4A zN7kno4M@uFmLFm(ru>ly$8HLoyvantr9FeAUu$m}zTbUl9Q?ixuk`$NqNLjL2{4aa zILzzzPnF5r=4t%9B(%lG3@v;TQCHzk^~B3Bj$%ay0p!{y5jj_EAV~tiA%6e( zR$m*|s#<^hz>$z;VMa9r`an82^A2jSJ!K7XL@s*`I}!x}fmh$xelOJy&vZ+Q1N46ou%Af; z_9mc)cWe9@_hN6^%9k_ee6;$B0+JK{g9R_U3kJ922K9-?d(ZE%a8&JI$uR)SU2|g$ z|IX*np^T|@Eh3N7R_-&g7IW-N83r+TRF)ggZyH6?Q|-F^B2y`~q@&2w8&~M9qP;9m zxH+$LZ;A;0Hn{uwgiUab*yd+noeG_-Hz;4Pgia+@T7dlPk7AxNfhEID$-2as8E<6P zt8KN7ymGTHS;E6Xz~1vA+y+H@*?Q9={!{*AOKs$`N@JQ%B4g=@l0dJWq?<)zr`&o} z!Z7h>hsdPQl8jDepn!}d&L)sS?eXF!39;;h_m?bfM(6uzpzd-87&$LhfLS+izXcRV zBP;X~4GqQ2vWRC*R?S!ck-N4~lAag-^EFkVl}3`tE|g<%LL@eURx?-^Umav(K|c(h z29e;e^|ve0o0*3QiXfxX~-_`R;ktMP3b zrz=S-B~l5}_2Jy_CR*NJ)@N)VRvI$JYEYE z$+>#HFi(|p1owlUHXyOQFyI|#3|7W)N0m8iRyz61vCagG-3h65oGi) z$_@TZoYir_uM>*B0VXow2oV;Be}D4}%r%6LvcQC4!+~nx$<9mzF2}%eAjS@G8=Jq~ zPkK6DZpyZGWmy?1d?yv`Pa0JfSH(chioQD6^2l9_zBrtXWXSnpScgXtvi>EMf`R=V zF+mF4cjb*&YnkJo#%pc}VbuYCvGWzFL|^4Tci#d-ND*fl9r1RQbOA+w?T=F=mTjP` zO3(w#-Jjh-F^Om0)PU0-$f?9s3ys)qPzHK<@UDk#-fpD|{^CxiL6+3dN(Dx+(w{&q z6UaB*=G!YE-6d`FcHf^xqzm!Dj4#c^k*Cwod-%g-P%8>--^?4~c3R6)TSi^-OWvDT zpZNOLpPI`7 zl2#5*mt{#!v19_iI(hR8cy^+}K4^ylND?b!1U#-7V_&tg>WKC4nqFPKKJ?hwiyLC{ zYwfVVugB-Ho%?b!)o-Cs9__hsROYe?iet#^XT62hOjAbR?4glK5^;`=N|JvDMos7y zq#OB)L?^yhNm1J$Ms6K$iX)JCvD|;XHJgaogF;ljIALx6Q&&U^vy8ddTIad zIS*$_BzxW^Kwl|qtuS3P6$r*L=w&VlkExk~21YLAvjjv?>-8Op0ZYGApEMo?oc>Ua zNZO+F{g<8BCCA;07K%Ocbz!Wi;9Hfm%YIR{EuvZ!L@{`dKb)3#CtsrN1JybVtSWX9 z1gC&|IOYx$u+fTfe>Cf6=OxwCXkD>G)zgb=AQye{z!_MIoRY9SQN657HJ3J65JnL+ zgW3S%cb{9lG-VYYvil^)>GX+Sc_D+TE`pPl3zrD4I211`EWf%uo4meIcK#PEol6~3 z19JX%l$}0yG1s3j4j@*B>>RR+$KOW)9ZY9Gb|wCq0I><-Js_BQLS)+CeGA&T4QS)k z#o@J$n3{J01xJ#8vY2h)DEZHDD3KrC4qR+LzQZ8 zT#nLae@jzgA_QHhl;3+i(R6(0*Pa^l1G@DeA;kYb%mX9p3wGg>30vpePV@OQ&M@{B zPeWSn2U(heA*#9(QMttyYr$kYmN zuacvgJ;(TEx1%C?ej}o2Td_Zur%Yu1l6k#Ig!cv$q#lBz-SW7zbf|OKNT8TM5w8d_ zUA^m4rb3m(FxqPJg{<%;nF^=v=5M-ex^Y)&BN(^>zD8MW^vJnl7r+4HAefU*mWLSs zqlhik=U(!v16F$RfMbb~M;;?MJqyHgXQWz*cA3ZhTtlTq=H?MxLO#@g&o4=49vqA7VrX(927B{g!GNLC57gCmzO+FY>t;A=G76! zZ-%u8M{!xJegqd_A%+md1B5n#e7V2^z$MNZ1P=?Ar@)z4=lSxtyms*tV_d5GmPS5? z`{w`UZXmmtl*8xXEVR}pELx6wZ1WjlqP=9>A`|5A{fK9{Gu={c`z|gY=F8+0}8?Y>} zU{^~6UsG7{xZo*Irw3JMZZpU}Hr0zbQL3-3tt zzZ>FsVHBSmBjYyg)87F>@?>LWzkdp}ADOD;$fN{B7v+$4I%I33 zBhJ{MG*?eud&^jNS@BHNz~kfv`tdF>g*|Ieu^tY^2Nuj&@LACsUt?qHVnFJ#d0Zox z$9F_`MV(aIj-Qi>A4ho}Pj0o9p>XzM+T&_)v` zBfb6~QJe)UHpQk)ag&@9n|Rju`f+%HQz#t+Qzx?V+rl2D zGCYFqz(g~>00=w!*olo0GehiWOu~W@W6S1e4uL^QTa)}rWzXn=; zT`$B-_!4wvM1fUMg20K-yz=T&pc#o|1FQ0!P%W_tU(j7K<22s2UC^63?e*f*l z@K^BpAonhWgO20n@;Uv4cPt?mVx@(B&Yc7NUST)6!Hj4*WcR0sjZ#k% z*0?rfoqz-)7tu0_*w9~KJ;bae(l8WM>q9>S$PsvKsk+$Fe; zX=s`k2dfJyU)olT#h zzJT69dYBq823C(%Wu@dT;P!x)2S9E~l-3QV&SgoYPaf?{)`46k=QFfdTudt=93jyk zia8zGZ@;ikxWB>o{9Y(s&4y4YlA_H8r-Hx>q$2zNDVK@BG6u9Uf>Dw=WfuFXh)@MN0m z9_mpo_8TI$wN?fnl7F||T?OVeTf&QAg`0L?t@yQP*?c1je)>?tphmMm<#{XJ@(s=O z+B-wXY4YR>l)b|ms=4?Zd~9}zuWU?DePn~sE`(({7mIaM$*Bew@v?JTJhhn?h6hhM zGeGm2HndHlAZO6^6^d>@^tD+#^I!h?C1Ycblve#|9@Pi?47;JmQ^w$xnw8VdnII?bGB2s zB4n?So$RcPBO_<;k#z+Phzm%UEXLFTzY)b=|;I$END1)Y!`R>~`KEB7yN2a^`P09uD3+VpJ#CJS$pmbN( z?{BF((reIbXf{s`uK95Dy4ZS#@yL0|&&NqCV{r8~mX7-&>^NY^L@wBdz4a|SENA13 zoOq+YNcWn*g?^>de`K2VA0IJGq4c0EKf2omrp)h#WU^u@2wZp!g<3PQh`n!BY>J>> zVh6T12WICEx?nl;*6MAR|Hw+zXz_u%2s7R-+gF}+cPPL<4j6y0BFxpu1>(1VExAVm zv8~)@s0KEz_oF5Gpc3vaz%~zI+hShR_xw71cthpQN{;lXL0Wv1BF~RAq~yDhoIhy4 z-$kT}s67DQt;LD%Wp>MaV(TFPHOp>}hpgtnJ$Al+Xm4syzD3D7vGUBSnVDPAdq9aV z1%HPC{T;>#OY3D{y)*r$ee$o^w%hUgvj)52#YI}r!O0pPX+4=0y1_@cCXNsAG`Px( zG#q!eNA{Dx?}u#j3_jluj6)j0r(EC1cr;qkAYiZYn$_^OkY0mYfpVpI z0q5!zj6H$Uxx?uwTieroQ5eM9zf`}q4f3MU#K(zD`H1L*7wdBcX zMulIchk^gxsv>iQA|2axHY{C|2kIgyQi6IJatU6<;&vkpcncb%s*GD*3|Mktcb{Vh zUrB$c5YFo_V6AQhyYJ}LQC-`*KXear&bex;Gpx-Et3|Kj1FT4s7ASa60WGf01Q!v& zlQDg$DmxlbEkW)7?WreE$%p`?IwMey6h zvfC?9E)w$~waX#@KWGGSB{d;%Vj%*=3o9`Gjet1yeSn@wH(Ie)+1ve8z-UpyzI}N1 zj2!uxG9qs&f}aZcvkm*CXC+vw!2l8SCRJWiAc6I@F~CFc4hPIH#x#`(O$xxa0d`!PJUL(2S`nRgnVtn7;>35=v3@ z7+wn2HefF|R}%tq-L&ESGeIq1#3EcWd^rh$QJLf{aKazuKFWbFXwomcVZL4EL#9g=_(zUq-ZJ=Q#j4-nqo zJd^?lLGGRxCA!?HtQ7A}sYm<20%(CMTts=PJZGya)syaWrgxJu2sWk8oZFvdDw| z&BftLT=!gkQ{OVDZ%C6^E}x<}k5`W`Kf++(sCJ2c>$Y-6`bLc0J8nAF$J}&M(m94d zb-vjS38gxcCyv{zBbZDT$hx-)P5gr8bqbZ$@=eHs!%#Lsg|ffU6#_J1={KH%L^TU6 zv^SW7V?18M1I3@{d5Qqr$Z@?XEYzz1)Nc32VLWO~#7rD~*W0KVB->wQ;v>2Wx`4HxP<(K+61@?tDAQo1J>AH0Wd#u0O1L@>%;qoP0!WCz9|V|45HEN zvocb%B=B~!-j0N<;>rAj2X_dg&)&CLRsInrQM2N`fQ}EN28s$=W9Z;IXtnFl+!|@C zcIq?;F0&c$VEfFQMP`k)o(P@%U0Hj)n?aq_S4F3EQL(yFa6 zza%7_Rg|hEIN~^TIl&sD5d}xl7y!A(b5NXm34%{@#{L}?;b9J_+l3>ZrVjRVy~;NY zqP?Ngpefa^sS|8V0+fVZ_d)BmBzfTG18_&1Y{&|?%K|0=tY#%x)@Bu4zu143Tm7*$ z_gmdh^WbZ#0v7Ph8Agc#z>p5Kw6$r`leF}`XUhZ(sezpu&X>$0XxcUqz#c|*9w!7d z`kC_4Y(e1;4dU5cz*(-QM?jEd+*=0M__sE3ky0*rjDuo`bLxMC&$ibKySfMU@6)d zMPdwUZ{gOof4gGzCn6f#IONRo=*G5>WHPu7phArz*Ss3+ByPRArNrT>mCQeMirOPl zvtU6N)421JkY`x)7XJVP`l|b|uxldwjh|kJ?lU&8`Tj?ylBy`ZorZW;j(5@mK+?OU z#f&THl7CyUDCW4b_#mHms=A~Ztnf2cF~cm;$}W3zS65I*WV4Ibi0((cBAeh%i|ZA0 z#b#j%Fn5xQg^nW|P$JH#o+4t)(i79?QQo9X)<=pTe z4swjudFbpfi_#qbMqe-u^673n-yQj80U)+rw5sfYb#`O`Pz{*RYvlAQXXFJDk$lB< zgI9jNr!3`(!5gt!;-q@PHvfAY5xpl2iOc$%94dxuv|jC2KI~B{((opKeeqS@MmKrd zf9%Fuhh^jUD-o@OwqHJ^D__6m(7(n5E}#V*bze@NR{w!h(}SI48+m{(_PhKBE9uMhS0=thZqWB-xem?gap&i`1^4?-GQ;4I4EncKi5 z@uf@@-%T8_;BGQt<#(Dse8t7}Sfp0vbH`pdK}tL_OxUAzGlG~oJV(oJjOsq%NeTW? zU)u4JSOIrmi~7HxXZQk6ulq`BCZiRSu<6ku_FKkkS|_@X&v}SGW*oGHG-t1bVar@!qhG}{ZGBm*{#_Y*0=lt=a=4(HB5@sD0hSZB zw?jN8rP8{soozhPvt3p;=F5tdp4AF+qX%tixAjK5J9L1DBZEskT9@Nzkx>bCEyKC? za?z$7h25Q#9}ClaydXDJEGxg&{>{zn+dChwJ24^iup(3c$HfLlz+XaTlEOGibJ6`s z7P&6ANW6w60(kYb=G5tDD7Wmg9rrZ^S##E$m1wHioLHRxV<&$viJtPZm(Rrka_7c5 zq^vB{PMI%SQkb_x%3%d!&{-P;qHfp51PxqGL=w!3*WAJcFvK1k4+RU|7%6A_wpPGE z*_^!cmN6AMOG@RJTAAH!NVqF+#qk!H6=Bsa31c;JE$wI&`oGMX6-R!g6ZKcO*dNM!|&Oh|og zc?|b8%o|F5M9-bdaMP5JO7K*c;O}F~YSu9p7z!W#$79ZB>hb7F5^4>wDk;aZcdhZ_ zDAtocp5C1#uwcPPPToh7DJuuw(ibUJLeQ+cEtKBdyCRDAhUyI?06Qq66y)p>rAklC z4Pn_l;^r0YQN52D{eiPlZ$cz%OBa<2w1s94qJjpz3X561`0PXKxySSik_)b@0C5=w zo6Q&Kxr%b_a_f`;R+L>mw-RF-lkwsPM-5AExT)_9P;Dq)q~P-KdIay80Ebvrf%$f| z%_l;@*w%(l^DA_V(`@k0ddh0utNhJ5s3gBojZuU& znGj=V{99+H|H$V0_hSA8)FYd19ufAf`>Aqla%x^w^Z1}z)S8&Nh1i53GLgLZP0zG$zC#k2 zM=ogRfk>%Z6kPAOq_w{EfI)^*tvsiI6kWaznL^k(Z!tMJ+mlZ6PZid3U-wKjV#}VJ z2^H~`P4i>4PI1CzeNcYF-GYnv7<9+ZxPF3=*ZiWf2Kq|B+9PO*$s7zpJc(xJ*N82#%XF4Sg3+lmlQjj?+@@{iE|^-pSBs zZH`GWr(L?ZandLpkq3Crv0u2(s!|gS75s2p8%KT64SlX|L0TZoAs;TiYNNkmwiy06 z1)s)Kf~~6@l#>DhjZ?S1d!92|8~_|J9PWCb|MqS zie);dRcyy;xr!AwmLGQy+PlUKQ}3Vic3Wk`sdM+0yU(*j%j_L+u^gXAvO*2dQ6U-IhU zw)4HNd%Zulzq1C8Fc(8I@IkRgA5$~V&aM6b5wCJ_r*F#3jO-Q79kxm5r?pW9WCRJ| z&h?3j1a`a{jKLtOFUGM5k(pQpLI}mQtKUA8^Rex85q8X9-LFsnUZ+bllsulY_y1lI zU>J2h@aM~O6m76p%Dl{ATM;um*i&BXG7J>e1=2h0$Z!GJrECSc= zXFX{1ngFJUIMGbB;1&Z;eBuM)0mfnAlC6Uu2gdB_s%^R#3?LA3BXhE zm<2@tr;Il4d`~)lK-q0@Ez(?@{oP`Pu7ETwMM#>aKk$YiyB1AyIh^B7hQ5@S)WQ(g zV4yx9Z~%Iq<02x^4&?Q-BrvOVNpkdnTG*9f}B=yH|?id9@tvoH7{f8-}u>ldl{i*7B!p~1WY zqrGwZF`$-lwTG`|i^go0TQ^Zfzhp_rW)K|i(`03&GReUsl#;6Uy2#|hhnOs1i(>C- zw$A(fwq)5n=rxm5sU>1%`?pp;WM_{3MAIvQZC7bz`3@PO*9X)53GP-9*AZAzk&_VA zJ702A`a^=HZ$7;L8U)D!Xd3I1XpmxPJ908~5S zx(mzh7ZpxUPVUe$oWjhY=ugu88R~J+C(xH$v&@gBr#r3*{Df@t@3HrCfnrrfL)2&G z4Vdg4Y;h5$zZ9(#W(TEwe0;qBt!i_+bIv42&?=GnTx1g1WNZLCGo**UdM`>pu^4%S zptxDNBGVIQY9sgVapNLSho#}|;0do$s&RDHSF~Z_8bcU`Ey17z7gPc0jelZY0pCVo zI!DFUp6yw&Yvulp&Fy$H>`!wXkA)&R&!!+5PaW&ly6a!-ut|^I94Mj{UXb(Td81kI z*~sxPmDBmF&Oqyf9LcYK= z4kJ6gTq(x`iXJ$*WNrKV39!f7pY&mtDJQdw;|W~sY{Y$_d6cJ zlDem0uje)6`h1SK(1}Itv0fS}jgw2oO0kq8-q);z@S5vn*EP(GfmR}WPer@u?c036~I-8*?PWcACx2+=`4{R~yE=3wkXFEbd$;0deJAQL;u*DVJ-W4%6Tuspw zH-h}T?cG5+^=IPNATYU?ik_EH=U>lS}v6@)Z#O)wSg9n zHj|=BWPO_kG~iZ-i@kXH#Z&%gR(p8O}Uw{2IL* z=^<`p!-3t6{la)5v?-Kqj9V=HXmsf|*GF1!=GhBPu8h4fn-eD6<^cwFoa$vCi5r)) zK~&vnm)QV6UIL{5;+^>yoL-&mb35Iiwnj8L3_0qfK0E8&^uOm-)+UVg0OY8(&aTGK zm20wPFb&-uca{Nr2ZQo<$VL(yOkto`^&YmbKfN0Eu2(r8%Iy9lhU?uH&#R9NLQ!IR zk&ohs89&^S-+*Jxu_>BTph;!+*CwE~^s=ck^%BSPC z!aDhQak{`e@&_=kiKBaq4skD8QHRtVT&8N@wwRlL1eqI3z;9;F>L{&oKP0qK&o@W* zI%Y@Y9_}yoy-iX~cI0aNzLZ0SYnvDJt#4_BVheAg>)LqTq=L zUg_PnUgh+@qc|H0o#fujz|qM^c*yW^jAGjDHv-3?z)F#UXyke+A29q2zeiBSB75|W zpMZPk*hbuI2`bG!eF2qA_L}6AsENBt!_7M36St?5UEosAX2R*(JEsI@zl+*>Vm8tp zt-95lxhgar!dYQ61g^G)1zJRy)FUXygB@Z0XTybE1CIi?eUheYapDXF7I-fRV>Yo^ z+vm{8mQ!+wl1VDGe1oZt(u=t{p5-MHEVWEnIw^kGVs5_J%KFLKv2wiEQEakb%-sAV zay^X3Y=8XArlZcf8e$zeKnGM+H>J_~+UiVaG$*i2Pj$=+)~I@lZdM-Z3zq^}=?C*a zmNF8#XU;_8KV+HS_vAl$Z_0NcwujKAo$t6k<5??692?fkG<>e(=^OZn_p!e!Y4$HR z_W6j@o;=i~oS5IiKY)d90_80nWq1&jFZtovf6>)BarGTGMyh(p@6ue?P&5C-s;qaB zpfX2@J|?a|J1P+sk{uKSkOkk2uv93T*QZ5&qD`k=^NG08b;n8Mm*|BwF}@ZFHsBke z8=HCS5Q$b_KD4m+t?F}fHjk3(e1AMuD@kd%sMOD}P=IlOFF^Hh3>7$uUVF}|WB-vn znH~j+O{%I=mqc_)D!gI&7BpKo&GqwH#+$Uu7f)aHVoXQH)fs=Btq@0=R|5ua8k^d= z)Gtl6V1m#OFxT-HFkD?N&I|8nbAT$@Nl56#H~aL6$N!*JmnI`S>Dmq)qUbD$Kn!lcpx5yTPIX z0J4N<0vGd8MR(KSQ&XTJ?mx1=x3}{}Cja&|rhB#vUl^!@!EQp%H(y;>D#{78H+qor zURB4SAC8mAB;4-lD`*BKhOiVmxckB!Uf@iMq@$#mi8WkTfHv(SXOW*Kbwkk1n0_{? zLeg&z)<&WZz!q)E9Gk3z7Iz1%Q~4PVxon%W(SIAyLfgz5EZnBL;uuz*=9{paz803e z;izV^J|JHCQts&7+5*zN1kcar`&^e&zNas7oQfx*4LFFgs#NX{Y=3`w4A?cMUU9l6 z={8x`sATAGn%sTX8FBY)Moh4R1ML9d9{*<)Er9?!NY}HIMxrskC&)sTq9aoCq6Ieh z7V`a;lw_h)vRo?V@9*D~mV@ZO2o4}!{v(Ti+uS|z$y#9P$f&d9&a7ZU?!7U&o6NrR z4>)fRw3;QPbI#W7vhlnJpYo$bH=z-#tOR<@WunTpGRp%%^x47D1ue8&JVbf$D%!a~Ifs7jB+DF4NzYaic}DLm!5x=VaqmH9n_Tq{^n78zXTy=pCwH!H`s$DBYhuHH zWG<&We7b75T&v;V1aBTmQ*{a0luPh z(t;W9zPuiNz4J!c$h08i(WUHn@qZS9x+5$-k}r0Pl%8MMc67k!O*-;zB0@^92xZqxM|2BHK`&VT24@G zm=Veb$5BEuwruk~m#vrOssxf1jhpv(yBRl2S7_$48k*lxRCA}XE9As-12NY2615qFF*G&~+BT$;E-`of_t{<8= zo4*Dbzcf`!BU8{dDxGg#MXmjjHdCE)V9PI<|HoT)yoWjOwchKsd#BwoBU2qfc`7y5 zJG~lObo|yaMqs6_IEKe#tHN~Qt?z6PX@1@sKERI}Q`epi0q7sDOr5&)@(XX#nR0XYh;u+F> zo=jXkzjZTla4X|@>3cn0?9+3O@{0+aI6$hO-uQb7xFBd?ZY2dkE5K`vY`yx9P~Xc{ z{gUPhpYPA7`a3k5*~RJxZqp@6i@aXXH2=RO$NLCQ6UIrP!d_Hh^-QC6=2aAa*r1l7 z;9t-FBQr`psNo;syjde^IX&`v!44nu$kBl;YzZ)ZVgJ;@L9lRO%%h(hd4`Mh@u@iQ zarba(oL<>Y3(V)Zmw5Jo@d6Ha*aE0E51TiX%g8)p4!Y@`~ zVN-O<`l9Nx;J_=$kZVKZOa>*&#;uEAF-5M5QSn-A{EmbSi9U*$8uA3P6$;t}NGlSG z7dzE0NduYLA!JJ^o0AyN?Vr>Sct)MYb6tvbhSr_e50vfe)(vg}$r%B~V?HIgk?tl) zCCtwvF)$yFkjRb5{Z~KU4LQ0idaYPRO#bRFo(k988HmKZNO;%3cKa`IXn~bQ5FVF& z4`=>HvmoZP*iZZBbm^UC>%Wz+L{a}D?Af zx=s?B04No}vh0>9ac}+AcTy&NrX5`Pm<`X;ra+c9VrrDCE7nV|Rtuc$PW+3hm%U-i zn1Ws;qgrWCF~H+{_YXoZ_(Rc`kY*b!8c+b8T zTb}amAfyA%>0c6V0RISAx#7^S+s<9#K2KrXk>xy{1$xINsijXiwJY#Rj5_E_J!yL58b-B*);V-XZpARnS<-0srQytp5E0?%nlP=d=!QhM(J=#~AJYiK5FW$&j z!=5ouJ+VG%3v=GU{3zWK1B=#&<|8o->A;&;iNsh-QCxf{wzNxC!ek6m4Q>*oI-Gz1 zHNaiA&czX$jh)YVyvP_ME`#6Tx9MbX63qm5=822XICm%}sJoT-??9y234QhEn6`0H zBHpMqIXDhV`8uRAX1I;{flx{~tEnHBJ^{}GYn|R2Al%7Dd|UJgyzHJ8-9hgenziE= zLigjfM;YR8t60peVN53go^%|@C6A>C#3Gk-ie96DjjxK!Q>48AIqAjA`+JaVSNv|$ z-K*2(GDJ{+#;rVSADd$I-u&rGF1=;NWI6y2OrJ3TvYcVSl90WGAe^L=0g$73A`yIo zaQRvQYT6z8t*{x z$42)eV>6nr`Vm_YW4#4?G~H}eE}s>fhQAUKb;s0<QR5&3@#RN|5 z&BO#(6|t+1hT4Ti4ycMnu~?MeW5bE_e=oa4eV3E3Z|v-zstqa^JPIb?7%7_`cMaS2wiNJjR_!Iev>kd(dqZUkDF-2a=vYUpvv7+VL}E zzI2+rJiX#$0Cr)1VgUf4IM*({+@0t=M(O|R{ViucoFJzxHId1kj_G zYinF$AIgEFQ6m;1U8M9n-xBloVi0r|dPuBrO}mTfjDH+n6P$z=Ku0dTn4$^Sxh1Ye zhWhFaBwC)nx92C8G`a(0))=}nz+4`oSHKXbx69a9HgGpZuQwvicj7K!HrDoPoI+WT zf8v>R*%Ep*k5atpr*yp6F|aH#NtGF&tSp6@-fR;Dp1H1dk&5Q15d)x%eo{oD z0&sBhW1PX(#NzlSzQ2Pvr=Q&d6+A10_Dt5TuwB~L-qrx^WXpVsA4kfj(#@5Afp8 zSnskn=phIb-4i&Of@1?HUYN9Kol&uo^LPnLh5MC#s1d$W)G&Q2WFm;7IM{7hwH?o+ z$Y0p{Fc3DtCxwf|D*?vpDn^*CzA%C5fFwp+UE#j`)LWj7jiVx1hcw>avzU$euk_4R z^ug*5KjF;|$7`6jJ~&3lfK?y+4sFlf&|0S|&@uD3trVg)V%LR#sCE2scj!J7aw`N^o-g+svST-ov8`H2H{Q~4!2%r7Op7vYT0r3+>f`l^_bG%er!9C zE;<}ZC9pHTWySs`q7H-sPpLfvJZ=%KFmHp zn7$0n!O3|M@qC|4hW~B;+AC=jR5*I>zz!HhMfZx=N)aBH;x_n=eohzC-Je=1@uQV( zF}4c7t>u`~R*<7qYe_61s27DeVG$PU$_h>sq86QYogRrwj`xI* zFRoLc7tkM)crjv=AqvfFnAAhAxqNw>3UpRo+0tVbSJ+|0Hd$=&Gd;fWDwt?r6CiR| z(GJ~^aCK)lZGSU~P-oPrM{v4}pq2+m?)1X`1<9UlSely&iYqE2_p2Z;jbaUL!pbx^ z&<^T=<0Ig{^S7_MKMzXdzUGvunfh)CXEmo|EbAN6>)WHkc(~YEBQpT;`5HDh7e+DL z_$7dW$x?{joaq4j#o8v|)!CB5@xx)xXE$xj7Zx6=nBX=7dy#BzeEfIa2>$CS-In zaxaiKnc+Sl+dYbvk57G07~hvJ&3S8Oxi2>j#_R8^%3^jB2$`#_ix3DAS@L=wZIT)O z>Qk{xQIgjs$H=(gjce9zNV=sSVE5<2-K~I8Y|3RjL^LkhwEYs*%AO)i9jlTM{_!*a zB`4bHr~j#2v^%yMH@oRaR` zF-lnFL+l>%4HCsf;)6B!U$8++5A#{4`5J^3k zt7Yn4nEATFBcGl1#xylC6eqQQ^UdV>>aYn=qd^qhbqz&5auJTT&A;;t2rI}E#9}{? zkGQ^*OpEYgZCyvybQ<{-h;PQ9i5M$CNEfv)O4o;Ct^)9*Vv~{gLVhelkEXFi24FA_ zU?7+mRG{@d2YyF8hR}(g0`@n1J!jAVWzRYGUii9ZJlL^S0L>0(4UL7AtUFKwSUJ0j zo_moy+H*eeckzQPRWmVX>W7EwgA@cB6tWNmP-diOK8uvFaXZ91CzNBEzJA;ps-3lq0hgrgg~=kABK#T#Ke{ z`|SJZ5$hjL^9S>V!)r+X15nn6llNh|>00-HWTo(DpgI`>a~tq81!z70%p*I5?Hrd) z(b8sT?mZa5G3n>izIR8*Y*wegi^uhQnmvA_;D!y*c$$RpZYim}+gMSZ-+)}?_-w4m zyl{?vcVxA#$!sTyd)4rb_1mJVQYIajE~28P?72e3V2z z(oL5(T>6mEwQI!lab3t2U+Dl69kFUnTD3-+zI!Qcnp)bJk#d{{%9laCTlXr#-wT`S zkjKFTDtbc8VGNc(rxJ)2V$F24RpDlP_bh2s(jo>th(^FhZXUM0DuippC~nAfIiRcc zdd@s9q4Fn%&I4$!U%%RPuUo1|wCIJ@ioam~(SPl_w%{Oq9l)gO!!m0_mInb z4#~YrNFNzZS(9@vTCID-d0rp}1b3l|5+xes`i*L%B0SFE1tys{A}XG@|3{V%?0g2;E@pXNwd56+wEah> zr{4MqCh}*_Jm^@ov-VRH7}K<+4oGQ)`v83yz~~vV4NU>OT@NKBgOWYsQX+1%Xqfij z@6b~Tr4pSW2xFt|ag*P1Ss{9^)IDEw}E*)7Vntr;GS#Os3_O? zeJi0zv*o_liK>gMIQMO#(~a|UKX^9)KnP$;)4mVAsXs!=1zk+q>Aty)Q_%vgbPv+o zHX;=$?x{lCQfxCjt6is6q)bD(dUMUSD?m+8+E~)83?0*UUM-n3Mfy@sKsqEQr!Kr1qW)+ZOmk z~0dr!Jyqni? z02Dp;dXtxL_yPaouEJ{}Dz5nVEIixZmJeByJ<9qZf`)8iH?wIf{^~0{wsLCBXQhE$ ze5>T?SMeJsGY5qT-v6f~KgnfVnSNMQNkUfB+UcRo6xSiAGjene{n#~IZTV65O#PY_ z1K+BO+wr5ts$@PppDrS||M0%w54(+H0O&*?PZnRjtBlLjb$VxG*0JI(C`un+_$e~t z0VINq>e~8A4TCLaS``RNip~nHv>frgN^kVK7CS6taZ9ZruX7~VxBL@4>BjT5p6sZ? zppt{3AYxLvy?fB(j!D0Z(79t}w~>IVivi<*MG^JqOMsHVR0(2c zd%CC&k{{AMbUWn>f8eujg{BK7!-x+V)_-N*+moejxb|^;1*)~A4F~d`z^lHQu>j%L z!wl!*T3Sa+_b-{2-CDlfybsj%g*Fk1YoBWJX7ZEF3FAu_Wx(E8>V~BIKc1DH*#$nb zs%;Og)D}tb`MPXX1>V??JZ86GXZJFF)MoQZB=%ACin+9&^R)|Y0!uB4nth{yAKs;` z%8#QlXq}Xo;e*YOW5TikhP(o{Ci|A`@@lPS;(hG(o|{?WiNT=M0*ont1Q39efW39T zb!IhC4g+uUHKNpqT)0Qr(#zG{Z&au0XrJ;Q_baRsG;QYNO}5QWQ9j|G@)e)4`NM-pu!@x&m9i3XhRY z_CuvO@QYcwNyX@ZU$Q72$-g!>X{}h!4{Sd>H}8Bu$o(wKQm{&WVX5+@WCSmWYtU%H z93I*8&JjM(3ulNv=sf?Ky6RRCLE&)Ypt3SJJp6o{+TobITs z-49X3lZQ>7lg0piM@qVQ*1367WTp!0QkS=|=rBY#oc>UISm*l<=9>FGN3ld@;2j3) z)-FR8!Hv_XsijqQpDHll{b@E7jouT;M}_%sn!zV8ywl^3Q;w;>t4S^lXxH|``Q0p5 zxv?+niVm|w`?J2gzm1319 zMk9fRr|28R|Hk*ce~%swzIw|u-}b4q8(}#My*hz?_VG#=eL3)l7wFKgh^-x51TNwS zf~Gt&uCRS3fHS3$_wkFLKqWNO%=|P3!t}%CWA{-@-UsUPv1o4fkO7R$g;NLdQ<#uD zNdXt(TDCv{VQ;Qod}a@-dyw`T8-Z?Ovn{&1@BC}xaE{z$rGX{W2DzEaBNZ}&196YqC5nV~2?}d_esevqpL`1_!m8#qs=mb` z00tcKyQ;Xy+U*WDT;Q4}2KnKXxqGeWp@gZVYFWHrH43B%l~> zWI)G2u|*s7c^G!xSs=71=LVwxp-cF~yLvMsBqD z!xwM$jLxD@GdD#Nr5leJC^Rev^#ksv@*IkXbB(VIIkjl#v^>jTNZI~@d&5h0faUeWqv5Vzb;w#qNFIjB=VGB}JWVX|i4+*Y#yi*qQa8KmU<^_%wmuamof55FB>!wQA@sQB7olOYLhL53G zUmL`AFpws(xl(?$?qbb*eZDqXH{11S)NX!!&q&u+sm<2a>~=P|b1#%1fCCBAwVzr? z!^EbKH>doGAQDp^Uq5PC@y%!D5vkr@KdHVUZs*U}pQCR?UT@#)RaN+j)5B!ryUazl zEM`^o%hkYa6^w3)6b zGR7ZgseC$dl6?I$-ft($GQ2*uI=Ray&0w*y>hj%N`iBW8O*U8Atpj~y>fJX;tnm_b z(b1>HOo!^s!n5da$m~|zsxYX;XlT{|2OBP_#@P5Yl1_MnBd5E>ywELTscvs(|yU7X9_T+)IwQy7O z$4pDKRm4A=eC>iT%S=xUtk5KUwz3a;w49}+w*shP1?N=c@s5WMl#Rf^<8)*BZCKJ4 zm^1Tb)TSOBq0;ZVA_iHM9aiL2Y)$TP?uwDUW)C!mH@S)VB;F&SJ<~>DGvj$13%K30 zd#|D+1FULOPtCDUMnBS&3&(M%UjLag+uIEL;$7?-%B1$JzA0u&4C z2i=0jZO;9Id=F8_3P(pr9H3OQyql_(GZIvXs6#uC7$Ki36DBhry{05k5Zg#J01)Lv ztXCC+(R95nMh!#}_-k#g4(6-y+bK++$bR1NN&0e0Po?$hCHOZmxOUxQ?_yYV(3}J$ z8Q@jU=)S1UVcji0&4mUDZh$30rc-Bo>)$7(R~$F$TCP03m^PK}nFJEh5QZBRF{Vz+ ze)DJN_z893Vut~1*4uyt2KCS!BNI=$vjQvX>bUVM&);oElkV5_bqlm{mC%4BUhUcX z4|0X+h_pP+z(!J1J1bri=XIs@cg&>o2<~2S^utn}lu*=|B&0AoGAOO6OYvo3hxw(G z=soZ*!^c&A17G3G?;*K$s52Fp?np3gB z<`~r_>CI(Yw$4l&XmwaLwIr?$-BQTS7u1Z2$N-5^>#VbwlAeSJ{X$~a!b8-&M#?P@ zmG>66k*NTkWUBaVJHbkT(}$6W(mFvtTAIFBG+x3=5Urn|%`e_QMYGJ3958g?M}I;e zZiVi}%5z8Y@wZObNF&7cD-xGi`&xsV<0!m8N<2y!;%=h-BT~79YYCHC!HEuVMQ$rg zqJR`!jyj!i)c&0Dw-NHHLz=cM&e2>Rc8+y3nfUDVrXoy3uRYCg^!AL3?l-sIqh_`x zu5lgphXY)mLL=VQzF&V{dseFaV+qq=wkIG%%t-{qHMCsg z+ZjNP7rfmRUkOPG{Bk*1#>wMKp$fsczChptFl?(=*rIp4Gmg{7s7I;bETP0#LS|&x z`~;-iz4aS2bEln2Q5X62xbs?@BUEWznS1Nogg2WP5+B{zW_q*So+U;0&gp%r26`O^k|KJ;-5AbqEA>THiF7`k_ zK7X$|Rg#;_N^XKpiacq*=CgSNx{(L6#JsEskokm$d_$&^CD*Ib?{<##@b+Rynxk(v zr7x!0F3+*^-NQjkacA9v!c7IfmypuOA(u>pqaFTLWG)%nult^QDfm*MgwK{XS-^_y z*~KWn9QtY@F566YKbpsHQiZi+zV-Jp(zyvZ(925>DlSI zGKh8A{XeqXAx!)Ur7fvzn`M!wz;utn##4{G`tb;HKM6jzS2lEqmLaR9Fq%2yxTRO*R28>Nnx&#CS1Vmc8o6(4rbV-bqk_{Aw zjD3Fh`}=q2?3~@Z8}E3Y*JHR7Gxp}Ma>291!E?{{>x*1O^Ix5V#D@Y;6tXYAq<{Zf z{vzgi6OxHb1@goeE7{pTD>udAj^8mjfTiaT-on41| zC{dz!q$TBZ%Z_KG;rv*qd+5@&LoqdB|gimQ?-lp_LdIn zfGI%g6OCqqhCNOz+<-(KQBz=F*I?EJx_U4@NcG@Hq- z)?27G>AK;A>Xsxh`_jeJt1Ar_uWh}mm%3UL4_#)AFDk|m?^qG1S?CE%lwWOliTB$1 zJ8^79S7ZJeW8m&V$}S+=SoV3l@_4r}M#<^e@{@^yo~GGdudq?3-+GD9RpuQ6#s`}R zloMF>dLIfP2Uqn#E&q#6N_Oa_A{qair}2UZRZJhYy9g#LbZT6+3+;$n_#B;L1o&@{)bLU}A6cwP3|8 z3#pug&n3-%ZvkfhPX}l}qVHOR0UIbp9A_V?*MmT-CDfF5$vpR?X#G3feUPg3P01)V zb*k0i*E0UWC=`1_+*j9|=y0MOn0Kc^!b!Z*p%I!SmBLhFg{%K8ArAO)8$x_zjCc1)vp;rFYC_B^BF zKPgrvTC%9&PO@JA@p<2v)W?={MQwtooi1pPAsekRM`q9Wn-yll7g1SG2va! z+sTJfhoYbH-azeCO5FHbR&SbDKe&bV&0|wih(@H3)yQT+t>2vbK%7eTu%ExD6yq5v zGo%Zq+28qc<$g;2Ye1Eh*Pf)tcI;sk%T~?BW|(_ACu{ZR#)WatRz+kM`biiGaT8S9 zTaqt8-x^_}&@vixEn5 z#e(zMBFz>;2%7>3D!$LXdp-qu=zupaDdg)i@q}>x(|mHK@vUtZ6NyM|7xOZLL+*@d zC(#SWB_9E*kH%K33Xr`BqqWnaceh^WYwnq94Gg*%O;kQC#0;RR>}LP4*~@Rv=_}|j zh9p(zcM~tW1_^O>zUw3WW%zNDN97fMG=z_@|K0~@AXEsM#&j{{?qy~QRgJ^3; zo)uo{8t)3RncoZMhOxjSQ9`_rajNuq?Oh*#FJb{CK6zQ9FKem)v7MV)Wr#ZsA7g+w zCikNT0cnfi|M#&Q5z^c0o4La@3}=AEA*YL@$h=Lw^^tb?SC%C#A=57U|>naBqbR?Ugo@BYNUO6guJz8yeN%WaWC zqtGNV{Hb1ipa(T)AZ&+w%e(OVl1ZauY3a(*YE!DM|LZ7sOv_K zw~YBawe;i@+Xak*=BTNRYM6=--RRHs?+T*ewaJ}DW7xF_#y+Z3iOvUB8w=Hco08y_kq;-1A?ao#!Dc&>y5t0DIbqqF@9O+KhA;f40J?xB)K+twxQ!Kj5JQU=D4 zftz%;N9h+*1P%_FceX5m&q}3VqLsgBg*xL?us{ZhOadoAy?Sf2gyUG~F-InyQ#z=Q z{0WVySa+OWo187xb+rxDG24;L(66~CBvq&%SVY;X>hlaWa##?&=9d)W#dH<-k#hWV z%IpTsv{|EMlMr5`$ZL}F=g1hJRFK2{yzsUh7e@vckd5|T7lMDsWIZ!eKnnw=>{REQZbgT288kgs$PfllkcU3FmIl*UmVgVLjFn{q7R~ zBnNZG4-Cw}7?sh-0;ZvI3;-3?6blUJ0cg8!<;-TpEFDg8g(Ur7(vkg!aYD=C-(7U9xE$z&{@rMQ+ZMR`HXQf&9#xsleVN_ zF`8nRcET6L`}z*70}$<00f<9_BgJ_Lg7}D4ybO(x{2Py0T*K|?S%p+nNzvQ*t|7cX zO>lqI?{!@V^JE2c7yqivckDiK<`#EM@U;ePTUF{FGep?Om~|uls& z22v^`l4HeM@S4_DGC)5vM!Q&H5_VH;c87tEoG)9ilzO)F}iwCs}fx2g$Xi`EJeodKC$aZ1D$rUe-IH>fOBaOOef{Ll!I^1Q| z?wHfJ!5i)pJ^kom_{)q*8VAL9zK5YMuUz<=sPV9ci!HW*;}oK9m9Z*%UVmQyrTarq zx$Sm0fhkDv_kLM2Jsuqy{w2Qse|V<}b^2etifF``EcGAHm^A7IcmVIF)!!1IbjzY+ z++;KxtK-Zm&6?zgMgYa=VgwxdSW>P`H#Ac3uNu%^N2fx>Pj=6fWdS$>K~LHUP^-yA z0w%W;lY9${MIPygt?h_K%8haM8N8?d$Ap*cpj_s|F+VY1HQ}R(nW5DlmvXP{$9^BX zVy-Gg4SXxQrF5mhu31qlY*10P@FUPd+JdY}?txGSp`|0R? zE!ouCS3vs0dbN>aAy9 z)ZcH6*CTxs^up~Hx9wvG1kdRvVm+-yPO~2w`*}TH%Gt@q>Z3Nj#A~4Tbx)#wbR2|E zKfg$Q?&HIh9jhb3UwE}AQ;skutxIV?iL~}BGS?*DJA0ls0Bn+j)`9rbMb#M2OX#RgnT!oY=&sm2YlN1(3V}huL~vZfNRw z`l+GT@n1jpg-ga+m?)60pz8-0+c1}rHC{NOb{`7w@sOY@!-f_qP5EhC|JB0>Ca+_k z@+H5~7JI{bv2p%m{>6>yd= zwi0MIB5*&B)P zHzsYQkO8p_RsJeAX>t;3IXGk2prFr^arLmjMA7p{{7>q8pbkFPQ=AlhzzD|+A5c)C z*#VYi|KX7%nu9l7M$sfxDJ6v>z0cNPiXUw1v3z!6osjD;zo9%#X$P%7B=1BJ1RGLe z$uZ+myBzT6oFcK`a)Wyr(Y5({3wco!RBNtn-y$`PE|f>fGl&=I?+In7+W>d&8(__# z;CfdJY;qO*l%eW#=k-0HVjnKF+5#BNxCk}%P=n0}4(w5n1yJk~`6t~E51P2{`HcVh zD9T;Dd7F=wq3|lv;M#42W+^} z5U%y0EBGRg<=E?ru#jj0T$2~oJh`PoshnFokF+=-kRO*c*6e@jJ zruGo}9HX(l!Q+!uz2Y>#-O=6f-Fi%JZc62u&JU{G{+Q6V!2kjONuN3O?M_FOb}!Sm z!dZSfqfsP>=+ov=6A9uMe zq~57XOnm!2fx0Z;(19wnB24$-YiZ_8Tg`rDHP79^WtiB}x%nZ1%a`v(ZR)c8tNg3^ zqD`7g^>B4=F;7!}i71gU`#D}gQOj69i!NANrDs=m1&HIPf09*6hG`J(*rQYe6Fu!g zqtyFvFJJWB7a?80`ia&Wtta#*+o|;#W?f3D_i|imhxz`8=VSkPYNISw(L{%7B9^3$ zAWDUm^=}5gzL7dI!0N@RKM`P4=tV=uK zsll`qL>#{8%B?L;Ro>7PN)9+v);edTe==OqUvAwrCVLu8R?qm$W;u3uwielwrq$8W z7Q`LSDj{yM!Q!E=WbooSK`H+rM`?lK+paCFz$Oc7E3S35u2nCE*HrsY9Km>ibF&^_ zn#ik^3HsmsuaNDGubxseW^RKMOHf5)TTFH*7V3U2T?=&&^9IGxr8oWwEvLR*qMyJ7 z>_N+NX)+i@j-jKBgW0n1N!1CwxoD7z5i*Z-$mh&=;+&!JmcPoD4`AS>dE!Ult*9Z& z`|doj`+4I-{JiZ0OjMocR-=8_Ov(BH5tgs6-Nc~KEYIPleu%{OYjhYP)de!*uskMi zSl?$D&IFYcC=#zK@5`y+KlVaxy`iYNW>zp{HCQ*XfY7uRlPj&Z8i|EDkYcWP9GRhh zeY0nN=E2G*ce;1Z){IKzIZO)o%{gtVeIGtDcS`O_O4eRE%;~-XhLYhmV2KGF$zc~f zx)s6oD=##yB%i}_IL~E*fbBeEGyK^GwRv*w{!MDG@Ot!HX8TUx|Vt8J_ubV?4^QaUeV*u&qHMZ)AztG&oI|{-)e~Wr~eOCG#ald1nfL04KX7 z=2s({Z`hM**xs1!>6EcSK&?DoF_|pBlwl$*skuYkPa7$CI=h`>`V6xiR0&Dcx70_| z9Ef@B)wQdxNW60 zjPKNwkKHwH7ibiB%+>J|D*2gHWiwiRj5F@#x8@DCFi9@077zaqkGdPGk4`O%a&ZZw zJy{;rd{-p5U1<1m)YkiL(WiQVr@5+b1|P8O6NWy2u0)|7u5zxLPC7_ znkk3(+KA&>II9%t=;h-f*1{(=}Ei5DaDg+(Z z&xH|68$QSA%idZc(e4!jy`@`L{pgiV>z}TJ56P|SrfQk8t+G5n26hOZ*JHR3N9^g4 z@FZDB#%C&0lvx4J{|xGD9rUHwkBC)zhxw$GOH{mB$YSD|9`RO-0e5Zm2$XYCef#Ss z2ijwVDmJv8btw+TC{&aG@|Hazpl+oj+b2c$hbz10aN48H;P?G=qjnsvd#_F|%s*71 z|N6N0DY7mHIhXDzhRtn434L$eCD_@H%$+)wT${8IdLzUs1@ zT7=pi&C|@Oe9nroxHQ$v@2-02-U;4NQ42cr&EoWX@m$d)Ae%q!6GqFT6(xX(lCN^P zLRWd^$j{nq;0Aw1KI6Q?0_{>gow50hKG{jJ`I zQC$Uwv+%ChK2TIt&E1>LuaJ}LQV(b;N`_NHb&!fMqN9IpM_9K&G$zexUSe_E)pOSQ zjez;ujuL5i-C3@N{VJu%b_>cN=~nSLmWod7@+7qD>#7&4e`_K{`z`ozy?7qXNRV^d&*BM(nY zHh-L2^!zyABr)$8qCQL^G1Q*7*@~tcx^8ci_I|ARe(mSeAgHL{Zt~Lu7SzCObVies zx{P+GC~eIN>sBllj&jj^TziA#!>#6kGAGx3QYfdlw&a3gFW0MoU5>wT@4W0*K{%A0`?k6X?&Gw=fNaoyNOV%o znXJMqyQk!)P1RkM{qGO)@nSSzskx*tp44*1_DN#u&3Za7kQrC{x~5*TG*hB! zJI_5@T}c+Rvn#6A>MP)`0-hWz(ziQ;33AHioXlu4z^=OFL#h!1y=alBG`Q5>^>y-N zzi-RweLs+zH{5V&hUS-o8X?*P80a++RAO59pD6tnuO193Gt@&>rvk z_EtAgPwP^qiU}OH2falaa&AIWFNc@uRC|8-SYDHgePAw*d*zuP$Lq~Qb3vCi@#!)h zv2)INYyz1WC|@a1(@UWxy5MoOjPKT-$+pjT^)kQ4qu+atchARkH#WuvDaJNZD2no~ z?JY=I2wS>+c*)(Au{S(M#+&VyjQtv8)tFP1EzcW-94U`M_niz$j+bau90?d#(CvS} z=4N2kut-;6as61gC0m`zs}}gCz`Zoz(mqtSg1)BP&lMWE9CFTpWk`F`)$v}eubr@# zp0fJ(v}_=})Og&p^nHxUin^yWk%Fl_N(ZcY z1b_#L-BH(JbQmx>QKPw0U}_6%x5fTC$am{^pJ1`1StE;Ny$XIcHZNq3qtO6U(AqV{2CV*m+Qb>7?n16o^%bvUsB`1K5J`^ zGo5#BTmVhyS9n`WbuN90W?tM2u^&|;rq!6!-UI)C5~qt{l~5_%SO@9y7M+CJ(3eN= zd4!&`H#^9d@V`pY-WVeEAiXF0`8F)Nj|Sthy*vssIT^DVEn-Y6Z+RTESt45v_6cx( zqcPGi8fc&FM!MH`^y6(tCt6tN!VB?yCFVn|V1?;!+FBBhB+}zn47RFQGV~Qdh`jrE zHt$`?ib$|8UHsFWKrdxfo#nEp%zNMPAw@qGpnH!7ZomN%z*QFC_zTXcq8wG>83Axu z3X68cMD#z{14V&IM`9qy(2JU{VLT-~4fb*5<22|r9BBoTYaPhK>Th)itU574r7K*g zMfg9x-<1C^qce2yn%h=HHV(r3;pskkqsi2Db|(5cGVM&RVhzfJ&WTrV`9nqe>pZF+ zldsVds~qKrqjzD}Oo4}c`89*=#04^VGvATlWmP*D8!IWx=9E`(uquYnUz`6$8>RUOHWIRJo39c7RMe|UBc0FrM5V;(y`8pg zaI!X50h9Gb3s{RoqDPr0MZRpP){s&n@si&w3G!uTMEw0{d7^-2$iG^j$C1G%aMT!| zZIGa4GbYZz`Ke%hsZUI6Sq4^O;Jc`?c|hw| zpVapd%7?L(8!fKlAE`?V%x<#`s|_HPdheUg>pty3wEd=&_Sx$*Zl5_I2TA>1*M81x z@L#qm)ey3idWyU9d9&8&HKk-JYSS}LT?!x>fgsgl$ghB*ARaIBd>|=}3j5?P5614< z7P^#uvOVDwH(QZN4Crf0#zcOu>j^v$S1{@w5adg6P?DEo*mq#OD}idDO|Rk+^R1D; zVp7Y%^6?;9OtQR`&6Bwyj#8407cSSy`0UM$&U!L*hu@n**q0K5Rrw8c^UAM(ho_y| zqb{w`;I}9$?>y)}D$BB%1u6XzUj!VMLsZlSeM52a}cUP5NtPQ_E1lzC8_&)zY%d)SNxWHWdlR-JK{e$;yI~D6P%0Fu%9(CV{WZ?#F)kII zqh^~;b|6mQpmb^O&9#y_Xz571)3)y2o<6Qx&{A$I!)EjKyFDjGkvt8f<{IG-7l%^P z3e?iP<18E`X2K!Qc2r;2O4O06myp~v`hB}*4nffQss>P3s&7^vL|zF?{hCw<>g?u? zgA`PzQP)SY+S$M?0?>&%B=yhzD)1$06K6SOznNg0t;>+nGfMxa0cvtGc7o4y#+S}-~G zL}s1=SqoyN%C7pah4o{H-s?r1$p;3FI}YsV&BUD5>VN(zYU#kdAgFJl?D0%6#fI74 z(m~TopDqxei0#d*WbKWa?0*d(GSZY+*$)%dy;ONE(KZ-5?bH)1HL`TU#lMk4ee)G| zH-T6auRy+6^q%x#S;HjIg)Bve^vP@>pT8o(=NZ`iMupS+_lBd6Fk}O^8}I z>|4YOrXYELDwc5vnD$+By^2gVZmv(L7uBH+6$!Mk=O>?#w6!mG*56hBUOC{m$62}@ zEE(+Wti(F^IN}pSBLi>T0oYpkA6L^BO6z>haR5Q4#w3{1qFf!$c=F8ZuWe-a&{cx# zCH0sWi1~rj`>y+khsNv%d%OGq_XeX3zvackXJK-ByAtH_(C|vbS{-=hz+H~ZD?d;| z-paU4G%wA4m(8zM;=1Ri-AEuo1{m-IiCSzplH1P!lt8~&A0W_G54)eg%ys94Mnp{t z%lB;+O5_TBc!bxUM=VHS`D+VHPc%?OttJT@0fe}e#mFLxO-NSD+?r;lTR6ffk65fs z|5vKDO|a=}{Or)5^sYNSoyKvk1r&*bsMEBkX9uWGKz%`WUXM zmF92%`JA{rj9Rt&3XR%@&2rMAepeyayE!biVh{A`?bl!Ociw7KB{a{;5BHy|89GwXDx;>u-JxPbBtr z+Ri183QI$~e%6=#hv$TSijhMuq7HKIis7ZlnHs!Pq2K*@@*cTHen@6W)&cMJg?@x?FpFM5dv z&f{QosJdFDJx9otydk3xo17IV$Ck(38G*qmKa9n#11v@>_aMtUH})|KMvdVO`wY3X zTaXZMjgrvmYRS`FthwUhyCxAeS}lkDi8c3sD)PFli*PhO)A-=zM=pP)SP~ufS?k?L zKjCH>%v6uX`<_7A6cR|mp6{ddhK}{|6C4j_ULV6R-?@`U zg^_t~Z#rVrylU+&d)$4g#Xhfr zbZac0$wi5Yg9O{!L)t?w55!o=N$$Rfm#{Ofb?nD_uX%5>V46{!W4et?-18xNwZ=V~ z*_M)N8`cj}2a5B|p?Agi^HUP>E(-FM@GOeFPkdl}wG8Vg7!K8$GZ}Ezh8O2UwC3CL zpBupC&E(}oXV(Ju&qf?kKlLYo_ukt`Js>|Nw2s5`cWgc%8AbcjJ+||@&ih?dq3o4o z8IbEI&Z&BBI>P-ximxv97v--Z>Cbq|hf88=%vj+fNAQCa2Zi=H)43Ls{m{nOvNBut zX_+JUfZsG26255>J8QJg2 zlg~$Ir+5rPv2|g7zKs-X{|i@sUV<6JkpP8I{GzNn*U(jp=uayLJ<<~k5J8h3`N{jt z;n#g;`1_5?1?83$`#7eiu7$q)zhHc}wo!V9&7Jz10brJlbAxstw`jYEg3}2Cp3^_V z!UK~F8XLI?af@8-W6A2CTXaWL;DGQFjLcAIZN<@Jp2^WoZL7DUId~jRdNO#^QTJcN zj0{%T*{jVDY_%MVTyi8wo@J>y)L$I?ZxLbb)HooCqj$lxwO-AS;wqsB<#%Ta_X}=4SEmXcr3Z1OH2BDV%TmhMsP51d31}( zOO4TXT%vWNocc&VT*>*?G$|xh&@bSf1L64x^42IGOy~L5zZ))fk&BDGP@yZZ{=p< zq#+eL=s!g(IH_#yY^MN%w?fsUycez->3V15mivJeQE_Nm2}am37lE2M(9#pP67--D zDM(sK(8!6BPc7p{sTC(TRW@E{+*A&wHk&n{eZLSVB~Pia#Z_a3NCgfq^RvRhzxb53 zJJhGW;@khjd|R-TKd^$g-k9@Yb&3PjRXgg?VfiplD}P8pNi6u}9jMlMc9_BC12u~g zUYVV*AQ30cuAWE%{%F9F0!oKsEVkvB?BVM=8$oj_;lkT@bBce79{S^PgaVfTVJ@N` z@6CrO*yp9ZoH+1{s~~Fwo1HnUPYj+bf!eQ#1&J<4%rRrg$Waty9NJ{(A4@A$d=3+# zl}bVE+>W4#%xe-Zse3uRukT3M;yMjl1PQ+USwSBgf8x8DJ>`1P^Rmk#1(|>JYHkmh z9G6J*($KdvS~S@f2|Uu;v=nX5GQnFLPA06MtADM&zIJ$8Pz?dKgk#M=AJgz1eX%)8 zpONi)Mt*>%W}~|-qdrW&VK&$4dk}fk{r2~r02?sxG4y< z+RM2AX8QnQN%FN}QOwZgUZQEm>1K{fK8~8gv_CKTZ&`g2%ni)YePS;0cqH(dkUD~wEvQKR zu1M~Y?G95kkO6M5-DrDkYOd38REx*k=q5z60aEL<4 z)Z`$w()#$IWa!1kwoIQYFEy@)`M)xeE=@Z=Jn@;@v#vRiciv4(&tqIZ;cgEP{&3-I zp-lTN!n&4fd9rWJwPd?MH2&`wnh00uiew0NK1WTlixIKv(Z7Ocz4( zLn5mc&%Ox#GSB_dkTVlwBuTmHK0p0*8Lf4SEW;YU?MI;Ek24{KW-TC9G105%yf51+ z6x-H9CkE|)|J>ygaTO__9Y5*gTmaA=Ov5f#_BK=J60%jId)+;tcHiR_50V%QVs1Q1 zK97g4=(1Y{OuK2O^*oMixfHbkK9u&sE z^;^2f@hb$zMFL40cns?e36EkMUTT;3PfFtOKKMbSbUTpsM4Gt3DuI+M$7gg%Z~Hv9 zM;SFg{LeAAwHBr?VwH+=w70Vz%$xxEP!8q@k=!fP$#>>{)TJ(mGs1)O0wfnI;Nm?E z?i8T;xmNvC*-px^=`nBeBT>R91R$aeyfMYPZXm^g|LZuqm-g>oT_fIz23P)uJT!h!YWoYm!XdVg=#DA0OxT?3g z%YX?(;KMLB1e(?n?(4;B7qG5V&cdsiZDCFP;sMLzp2>LDFOIH2O_LOj3HiFhw8=%? z{2scN?6Ej+1j@`D147A|qQLKh9b2~`gR4N|j#?S#Lh6GK9iWkC)SubwXKDH@u}aojwC|I^xYPPVC zu`waL^#0tET1j++OoV~RlV4I8j1f{#bV}>*Q$ryVTlM*&hIMNNmP2h)BBHYzjF*BY z0f%_+?%xB8rhg(`!N{Q%#vCNkYnWwIRy&vgZbrt|0f5GG&+)&(w$SJ@#LJwM{t8OV z@e2%a{Dc$3ysgEWp_giR&V0?F&b>2J{vQQtIp%NW8B`y+zSx<#d@KHsEZf~=g0wVo_&pJC^6nZU2(aO%4a z&l$`QNox`N=dvZf4^*sw&S4}lb&r( zxNg$3v;*EVmY-%B+Nv^t8SY+SQV)Ul29V=(a?h!-lpeQlvH?+|DH3`uORw&OOwKUL zPX8K%DGgCEVk^5hZ|*AlXnh>$K{bI!kb>Qh)^KF^>y(}xQPL}+Z{NRbJ5IoCGcRlf_sHEXOydQ8E1PA0~*dn_tW-`ZFWQLMg<0^hP4_OiuGu#0jmj?`wpHsyx zs~I&jNEIKXR|BO>GwV)0)|=w7mpF6q4-{v-c*^|#3e5e*AfTUU6QK$B0!MQ`#Owpy zr6w-Y)uU!e=FsIx5IcqVdhavh_jb&?Tp=I7m3;{4CTb+O`Iu+d8t&ZUQ5Kt#rREMe z3u2XKSiNzKm_?MOLcq8XPbm1a^GU*Xe2GSB|bU}E~DhOalCg)eh)Ku#^QT4cB0gu z&(~b@mwn-LzxboJ>XOR5`c^hWS@g+g#dJQ0;pCF2sg|{W!7B65(RX8~hG@iKlV@0V z#NU|N#GUUa`Zu6fMP6`I=}B*3cb;Hi>1!_kX(q9wE`^be$bljX6(_X!=H<}it>IoX z{nDOU!h{~7QxGyX9J%k7ReZC!p5^8oMwfV`Vtz~E)wPwN#)g574R@(7JXVO?sNK_{ zWrLJ!S(loN6`+dbL%B4!UGd?Ac{6We!co=zFqZZyKJn!OWo%9=VP0cKhh4pJrNwG>A5wVuAU3OO#(WL zQzb{3A_IpDdLowxW>VEXFwJ!kQ=N8TVRW3)EY>4Ga5n$_{f+-H^QVVy{7;XE8*frY zD({N=7@(>s%fXWqO6tpy}+d035dS#FARWbIs|;ODB`M(t0yXNwoRhi_st0jTq4$x!#>d`NHwnn5_d zycZCD0kX>VbtGrwEj6SJ#_NGN)I?=DLvyDRRTo>+&gD@B_f%^FnDsSf>rfRHthi`IG@yo9iSwzPbDtw6ml4di?sYYqv2I}jLH>rZ70ot^%l z>Iv>6K?gOsYk(T>h$vTc(R)Xf<#l_S-Xwh0@fLhnlWn5NxL$JeG)6nHyJI`=rW#p4 zA~F+S__!GZ47uD7b>>=y#C>-gKQJ!H>8zC4B*i>q7zE+HfSF9|jGNaNse{sJp(a3e z8i5IONYk13QvnQ#B%rzStQuX{IE#6g4lx-G&Ty@iFWGWg0T~ini`#fSGD^ER+Rh2q@Mt!r~=JIB9tS@JKyAZokix4VKa$$e}HfVsBD2 zWqY!Xb~J|%JcF?T{=K4mJqnSvtE=OH?t*Ilu5g;feloA%-8=cyLqbI>c9Be6PX-ly zf-4$Exv1_b5g!Vp$+yXv`v-1uwAtKH{^sPl<5kXbyCtnTwR|pwL(BbL#?obuo!tiD zmb#Y8(BA)|92Eahot~+22QM{P4^MtAX3!p0Qtng=G=S7UXN%i|E$1U0QCrLD18;|e zB0nMMRJX3&Fl8Y~fR5zAve+UPx_hhjIHvT(>A>rnP=Pa8`Ssn;XbHI-0;fKw=zDee zgN_uf2x83P2$S)Q&yISd^|6AZPXlx;%tM+ZN2(IXLjH>x&;NKRwe`5DJ#JW43u!qB zCd9Z5$@mmfF3Nf3wz75n=C#!aaZbx{{)7&wRFMb=WQx!KSWbhoq4&p5cfpZWwzkI^ zI$vi*x7=bEOY=C^X>G0TN!I;-^rUt-loikLkwb7Z8cfTk%ZELm(uc8zEuHA=GutXJ z{|&gyl>Fx|Q1VpBUa5C-8>$Jr-f&BQTg2nn4VkK{&59txS3H)q7~78R>@IcoUw_d zC@=q9Whz3HA+Ji{AEVM604yDVLhOqg^Ab=57BNB`trz~-dvio;ch3I)b5cqncm-_| z3g$>67au)Ne$)7#0z{gkIK6EDQdsk7@G9r|6b>JA{SrOXZ%D9m)b+Pu1lM)R>`Pt~ z`<*SIacwVz<~Q#>n7a$>oA!Wu;4H1NZ41W#FQYs;Vr=LvVpKZ>B<@D@y25QiS}2>O zWJWaO1-k2#YwY2t#M|mCwYw}{)Yynfm8{Uj4C>S*@S>9eSr@Rf3%w zjZ2iiMvTBbs=pBpZ&8jJJfmVsYfeXGc(Gy9?a4Fo9=}zQDDn6I|Y{XC%+akmbXEk zp)mTpO1W+_Re62krP&?oH5E0x^aFZP7D@TG1K(t-kA*9BlN??P26VO?*xZT45`#~@ zrJPHSGFPTJ;sH4F9AM;U7wwFB0SD6zI$ZSQql2OOQ(kjM?vlO9h-A3(zMhH2(W5-h z26hnfj~!#7>fuN((j%GAvvR~MNg(IL_`~oo`-~*=FK9(Yvfk-ZlGtEDz&ZAYhW4PY z->F0)J1k8sn&;}|^hnMmdWxj>+N}iI0@4peyFsX)*UnC9pO)9SP7|d@nM5AJv-&Q zL&bViv3HN=yRn86k_Ea=7VF>sO1$H0s!wc@NMwZ-?FfZ9Qf(YF9x0`e#Qqkt+Ka4i zo0EL{y<ZPzTE<9VqbdlpM>xyO(;yU*a+=ap$Zt6!oiI ztG#p?34RJ#3X}`@1E42GEvnh+J3%#8TnRP~ITe5tV78t{>~|05Y>~XNLz#@|d*;9- z=soj6uLzEG0@Zg5cy+kaM86Ys!pDwp!M>spQwM zx)m>K_d@0eOafBWYBz4URG|8INmvPV_mwCLo))aPUL~g<*F=DZl>|;E)vQg9z*Yi2 z=}~{EqL|6%VL#g)>{BsBZpEsppnk`EZcW*5k40wui#$nk&09C^>fp5Y%zFP8+z7Mu zB@|1a=lydm@wUt3l=l`G#18zUSSsf1-PKF7?KN(-ynSZP^$5Cn(HtE=GkC3h5kZR0 z2abIjq&~>5DN4ewVg=D4@Ul``Hz;cIXp|#RFXei zZ*A=0Er+Mom9{5_;nfnaYtKTGJX;eA&UTtpU)UxwebfxC=^qYf|M1fFQ2jA%4)%CK z-8pTwd$5lRZSl7F#6cM?P;`iyn=oqjVlqfbcZ<{e$;_p;;Xxra&FE8VJV{{cp*k+vxA<~MkM^lnzv}K|fP5Slu#n%&D z9*wtdfqAr_hSm^X!NXLfFQl>0>U=lZykOXdjH z4x>=<6KdTEr23_12z0l$Jmrrm5$mh+;_aO@jXq01Xc-BMWu_5^lL($jU<42Qw}>!) z>%(01eLOx5M=%{H^0wg;hBer2gV5KK>`OfMzZivG_}LxP7<|or$YHrh zp&TM(a%(oH@zv@kmN>YxXexHlCz!ym{U_5@+FktzQprEw7A8LXKvW(iap6b@CRhOt zpT~*-NZo}lio%?|@tu&lmMQ&I_bl-OZh ztqMQ=vAkT_-Mow;L~BE;cld}&<;G%GKGM>)>FSfWLRl*!D^+pV>_b)Uc`=$O4JQLh z+T|J%(;IaVMMQZxEbU){>#S*M0zMF%dgFcV#xtVFlT_U4>%GfUcXPu;dK91Ji7gd} zQ^kvl{SEaR`@o&35oq*k`7)Y(7M} z@+zqCqulL(c);EL0a#D6s8M2k`Vq81uWKyIU;e`Mh^+%b>t3bsEc7cS;?6DyP z`1aPV+83H1>^oDTbrc5Xu65~`aacyGE4H*TI6e#?6E{r3U!U57k!aB?)6-0}?G;vX z*x^#OC7MpuaW!6${w_6`cp2%qN`+%Bxe{IM5oGwCQ+~2ZfoNGg~{pewu z^QZBvT+k>bA@hYI!!6mZ4wk2Ahw2QB+A>|}dE~S+#idnfW-tCbfSlPUygBd&nQYkN ztMZEbJn<5N5gIK+fsq2aQON2j#>tgjBT;6ECAm zkv_WU)HtXaU%_rotGXn7yPm5(v;Z}4{Ia9M|9fyhP|xn2_AlFn>O$-<@>?u*VKykDRM>%$nxrQN^IfhU325s zjc25?+-h3(ir!Y9sJn|=5H}&mKO=<4avlEwyU*&U{1IFBWbpU=DXZTGYaSnp>ss*^ zp&b4qzPFFhytIl$`#eS|IwM2oJb;ddNe>_lc!&HFTlOZt__zCLBt99n^DKNJ;oFT% zR==HgTCDrFLl>GdgUmZfIp~rc0HlxDkJxYa4b%SsWlxJ*{;?}9y5yO#8i~hgmjNndNkt;)Sj|FaQON0cj88)@yEgc01x%c zT|U=K@Ql)EPyLZ>>mH`!72kOI`BGU_pZ7D41NIBao(I`C`c{{Z+d_rPsK<1Akdbe}9-X^_9z?cUrS%=;L(oQH)62y>7K z+y^4LsZGXCwe;BNoMTZcT~EQk*|)&3`0wKiO(p4Iwg{{RHo_~ooxc+XnV^=(S~S(;C^T3kzT;LrA$U4obN;dYXv7z#R9=hw#1 z4_|)B-x1o{HoCL%MU~4NXxM`;of@+Ql(6Alj^zM=a2Sv>GxT@-5o6*rd`11RFRnGM zQW$(et=LO&?=-PP4c*eR?v=dFs;<%JApPT$%Mp(3RX0|jwbe-?fac*FL#_;2IS7-)8}c)P-X3iS&M?+i_CV)qNF z+X-ZX>Nz9}x<|K;;x}aFyttQcK(8u3?V|TRDOugEk>_8tx5pViE9w3P@OAy2rki=D z+UgMBYJX}5SXM7D5`_Sb!HP4f>JVeCSolTz3S4V`GLyscY5JCztoS=shUP21KUa?4 zYfq9>9pq|$X<}2kBwT!%$;j*H{{Xer`akTy`#{`7;5|~=KFg=uOKEoYUp4HEH?_$U z1#jNSzGmh?a(?a@SE_!(fACQ`JX5P(cz5Dl`V$WuV%A-4G`OU^(#k}T#PPa?aVh=k zvau1e4B)Xja*Img&39zaJ@^y*MqT`C{{VuF>l$sZ+b5b$cIL}WwuJ7ISmWHPsF*nc zVNtYamSfK~=-=>gzr_7F<4=M-IW3L$lc{Qc6N=AG)#S07256?;a^71kPQiS&k`z0- zKJYqM%{M*-_@(<6{9^c(uV@x_HvS^y3c|28`~Ry6MRtcj-z94_whKMZAur8;?`K3mB5xP zoS&EsbtKnAjvkcbH21cLBKFl_;`B=TpECZ#zwk~kj2~e5d-3kaN7C)Q2QIN1+ebCf z{?OJejE`+~Bo?7dJU|JfE^q^Jo|XH7`!W0-_*Xs8_9uk&3%wV`RYcB`e*@<0kp3m*h zW`$Efa!DtdvE0d@O8wOT0D?^TcG7PL_}cpV+8OnesmFH})zn*Nniq~p!B@a76BTYb z9$;h1qcD8+siu~x?nVyqp*OCL9)0@|{=-m5`)_NPn*1}Xcs4h^u%0>2$)qnEAeqSH zV!JUpT$sHxkIujNF5m6%@cZ`s_@%6PKf)S@p?#=$CskWLBIC9<5B}Hj*MfC#4rv;Ov#MC=klDjNq(W*QU9vLfc^h*uQ6#Lm2WdFTz^;0k zgp}pXw6W1oFN~uOSLShl@KXN(fcn3R{0HEF8b_%^uiZC@OdcY-c>K6zyu6Q@Vo{xt zw22s1=!D>Kc<#Oz_!Gf@3cd|ab*%y&d*Uv!40n27pL-vd46M(#HM@L|E*4)kfH^E8 zWyjCBeP{4v_H(eG{t4|Rw~y>6wYc$Uv6o7Y1$(R6ZX*I)PbMWz&m%Isn1W zgcP8*?p6J-w0J*gHHHrj+TAX(;9EBn>AHh&k`>t`#z^1(S|D`T8?NaP9tbCE#NQEo z6aN4NyYQqscBQ2M0Bd|j@nm)}>SEIAOxk^{4D&zU%10r&AsAyUuqyB~pPqkXpN*4v zxAwvCUxy~V)aJAC2BY>N9BOu}%!L+4Rpg{@t07UrSiQ14Z}=%kz`qc9+xD*1_2~9% z>#SHoe)C2@(sdacA2NA@qUVCl5#8Olngl+UBQ3*r9&4*VDRW3GHq z)O0-?#oi0JvXfMn*6MYQwM#3RAd=3?B~lrtkjmEWxBXjN%Gt^gK6(AL{{Ut`7I^RA zSAqU7cupg$YL-zxm9E)X+4&;f8Mj3&P^Nan8-DNQ&e1G=fi?A}iT?lu_VItjKlmc8 z_0_BET9=5m1~YhfOx3JmvX9pStCXtiX2Dl&8CMZOkb;00GW`IG}R<0v&!3r6)7X(?U}>XGo5 z#IN`%9r=p7TZ`qgObiOhD zqqH3xPwgoYdg(2?}7(m#eD z548^*{>GmP{6RL7+GeeB73?>+(Oc|&P6%i6qipRSV;?Atobv;Ya7B7psY4G!&|9O= z!p2yN>z(X=rT81+_JiYHf5Lwed_CdR@OOr9riu%pYo~@;CQ^$9#8Hk4IRZB)3%OMP z0D7%{#y_-x{j)wKd{eR2Ayv23qiI$drW@mcOXWtWfb@(N2i-~jB2Th@&%fFFH|#Ir zA*fum@aeuDir#q|HP4(JjinIaknOjE2^{cFYt6r7pV@BX_G|d>tzJ!IYaWYzXDGG3 zfyqts$sC?jWCjicFu`1HAOcNzk*3m%@44%9r_7$~Z@lqu_$Z(J6gu=Y|`?(CRXxA1iw(9$ZHTLYXHaTRZ@NBY$aa68HB10Qk+Tc!N*ay5@nWBWstE zNUHY`#*Rhd1BMG4m3A26Bkplshx`^(bbQR4u;#r-N!5{nm-7#}1Pu*74hw7Vf00?jOhg@#8*(kzc7_v6sfH9|eBJ zy7$FP>l=vm{VLj9jUFf>F~uaO2qz~2e5JVpATmx@80R(lx#48C8lybXtd{XObbq?s z9*gzQPkQ>};dkv#rPzMLSAPZd@3%v&YV%!5qt2|2WDDFa$Eh4CNa?~DE;{9)AmX|8KphNt3fO8xaK%|d72HQmIFUD%%aIRJFq zv||yf(9}OFsSNpDuV_KP-RE8q;+z5BS>J+g7yI;*7j^F-D?DcjObbmDR9F z#EXte744oI{iA$0@sIY~pTfFsr61coA8jahc+0M(a(0`D;vna0FO&;ml(cg8T-TQ$ z;VMsN+WXGQ-B)!ylRg^%0D_8s+4jE@ziUWzy(M);vC}P~(e$8EjFBP-FXn|MRi0rf zB$9Rn=Zg9l{t8?F00i&wR;&9R{4>xlJVmDXMo$FJx`mFlHKKWQ>U(3GE}RU?%Gu8W zcs;AH@xSbA;msfR(6iS@mt_W<;@v{o-L?-d(Uj&u0R(*bU`I?Iqa+V3{{Vvbe$(1d z!yDfW_)k!^Th)@vU2b)d?mkJGgmHoY08J#fAf7mldm5}g;W^Z6U5c$~Mx7`>GxB%- z3uUY7bAHttgg4S%NPfWto@DMGLnOuLxGX^+yH6~IyX4^X74jc}^(izxQX8#4W{*>~ zxQ0tcL;J;?IAkm9hERT{y@OTNHSgNH#hxJ3mMfiF>dM0F#4*gw9#~?wUDM^s`IVDA zC?v8bG03X_0J9J5wB9wixA7(G$sMJ>rS>RcRoVn-i6za`vFH_LjU!Ba@-q;Ba?0M# z87R@T_dL4Ma;%&Wyg%Tgy61>I5Bml94?&My((b%3bE!pj9fggEfVvA|EGc;?0jArN zus;}u7z~1I^B=}n(mai-NXsKaJi@!MvLVOHPh*k?)O%O$kHPQR?@Rr?J_vZr!8)b# z*y@_5knQ0#x?mbB>m81TP-ku<&ivr)bAoqZelU2a_J8qQ-w^ElJ06#K+J>QX_C$<= zeq?g44|NLaz~p}jJq>YX^`S3%_P6{w)sCe#?r!wC_E*Ax*$+zi^Zx(@>hR~pEByj% zJ#)>t(`@xmEzjC*A-dQ=Jg&uxW{YUX3X{=uU3ct@`v`ceUyoSS?0h+^CBBLkuh&ku z^B&SE0a*APf!;m?QfKVxqNc(cdSE6L$lH?FU1463r~w-)GD)+m{W`q>LCN=9;6 z@qt`8s*|ZNcKokXs|=$~I@_68`E&NW{e zqj+{1qS!KEox-e+8vvGXXcct3IM@lv3m1W%PCZZ z)~o&jKG7;tr)x98Kj5JrCe{A{XRihLBxycB@fU~uVJC=nBd5Ig$rZ%VEFUtgyp~yv zkPb#cl4&(7zc%LW-Izb1NhC3M}k5AK9PoGJ(MUmo+q?a&1S5zs zOL?ud`xU+Ot>g0Mm4riK+NDYln+qoJqDeAAE0MkNTlP)yzwHg-Uxz;syhY&O5=pDv z++OLIT3(?d*xlbOf(hWi7XmlJm1$Ar@=LK%#^Mcrj{g9`KK}q_E05XJ!aA0y{&kA$ z(X0|!nKzyB5Wa8wDmD_A=P;s_M;fpy&0Ao&^oK&RscP^!9sW`=Gt*P+8{1MYy9s~H9q<9v^rG=%Lt~EJ+ z$|FrmUn|RG5#*JQDA&tD^KB81bCX|Ze0cF5t?(DcjjniR@51r_0K!EQX_CjQM=#o~ zE=S5QAY>p)1b$dBxWgC@4h!SvAAujTYy1HHqpzD8?J8|dR} zneG%{=#oYP%FE^{NwNS^tW`q*+s7uozxIp&0D_YE5B9$JZ{iC(>l+^o_;14UMR=Ym zI{Y?wdM2;D!wTE{$8l}fQI<~qO487%LG-wS+I@mImxUxYNMR?qF1(qCL%U6)v6l0*v; zd;@?ZQWt0~y5c|qEJbvEOOY$fLl3TV%Sh^VKk!jchp*sI+Y{myt4Dlo=F~pbZuhq> zJn}&3rZ;IEvpz$8=3}0u=C*&}k3R^tFO47YQXht18PefNKGUd6b$BNXAdcEAX=Ieh zRa2rB}RLch(tYemvYJ@hi22`aqS+fonOqy7mYbMbrj(~{0@Mr|#;ML*juK_z;Zv7Zq$9rSp-wA0}iKNG<#S~35TrbLH9s)F;G#PAsqqWPdOweKJresvxYo4wwz|`AW>=cRYj6Nk zKnG(&Vr49=k-r;)lU^b4C&L~f_`UIiP0@5>pJ|?WR%Mn=u|*k?V=O>9U<-g%a?D!* z9^b#;wom*Ky3^xV?AP%+&fYCPe-vtZeWtbH*ddbPrPK8bQ6rmg-oKV2ktd!IR47%D z9jZ5H^GD$C>{+S)#C|N&&c7w3n(v9Cj_&#-W|QoeuHUCJ$6` zQCN25wbbYOyro@oy${kq+FSN&(ta;^Qr7y`*4p0tOSp&3g4*zT*HJperr@Ndq-gi3 z1hK;$l1b_BmVXU?AN&;kovnOxHkTiV{6XRUD(_E>!sSF4S0F}2N=_M$^dpc1WZ(f^ zf54xD*3kR}(eABU+T&2x{5%jijbe14%Z>6zVUO(NkPM7ig2cJ6#ybz$1I3;({h>5} zg?6^`TKJP#*9MAw7`WJ(2Wp{1d0cS`UH$ z0A-sU7s6Uk_Fsl{o4bo^K+-W6K)0O4AyBBG%eUpqlBDoPE0g`Be`X6$8-COu4}46v zw^z~FPc7f}U?G0jFPRjq8M)iS3}BoRKpYDE&;5fx;I^7y?Ah@PP}e+BadWR|{wBNo zKBaHwzuN5W)k#^Rj|{BQvH&+WcDvvlfnTi`pA`H*`$Kpu!+s+0M!4P})Ab2n^G(#W z+slnMaT2(WZz+h5L~sm|v}a?2NNjK`9!EM#H8)@8UX-ghPgKtu_>cQ|X@3ESQze|+NX*uEZg@Bn<`yTN*AZY~9C`QbW2bB05dFP0c`sq`{{Z%~c#7sJEOpzt z?DY7ZH{e z2_Y+jB-mBHLL4dJimWYZdr3+`ilZ3DFp9O&{Qm%d!3rSoPk_EKYabGPTWcJeovr+O zUxmKVapbgU^4&_jADu%%w*zk~~R z&~K66TnPCrZZiIA9fKhT0*d{&{h#e_J|TQB(ELr~PYviAPmBCvqpVuu>G8(PEJx*x zDMxkMVi7O_h~WVWS8B#8Qms|STMm>}3UQL$_y_(D1^uQi{{Ut0_$POSejZrKC6>Rh zIwUC+o?MVdo5PS4k+qejP)W%7Iv$^of3ipI(Q)BV9_e~ljx;?7UGVOqr`&jY_f?Ne zkNy%13mcu`nQl}GC-RJ$2{!%FsEifFWj^x%0D{Q;4)J&GB%cknEo)q##Tu23t<|on zGlXeP!pcFyMYKeLV>@FiqXCE{?k4{L>|g%?1O?PSEKT9fYIx-EuZG^rE4J4pwPu#- z+_pT3UR7tnP~58Hj-j(%H1SmFQucPcv5c^_B~#irWVJsldmE1w)1derWQNZB zP}I{;xVVyK`#rk{+VU4-5GrBLS%AWVNF6_@tvmKf(0o7pC~1ES?L0dcmfs9*(@fH> zvS&{pd7 zZ`{Lv-NXT$>ta2c5^O7DizzmdiWh4%& zK*;3&V*dcaZ~ia0!jA!6$EDgmmA;GO*`v9RD2gJ>k|8k3m5{;G(H0jMf zSG%{&xymw%*WSI%5BMyP{1f}d8fWdb{^wb%diql9n@&Zgs=dzu#qw{ zPQr1)$Bll+f3c(#-Tj^kgmadO3n7an@5GxA2P{rH6OY%g+CSnS z{5SXP-QjslYP=ll`_P|&^$ z>d@bK<3m>Q1SDIXGB%PIXzm*YXI-)^PKa}WA8f=jtH;Wzh^UjJPg1Gj>FHLc{{ZBE zYJSl_@JR0wd?xtq;~RZO3G|&0!~Q0c(ESxGyLma|IU|8zUwk+Ct>FIvhu^Xmzwkd+ zy45sYd*V@&_=|~SYdcHAi4;&=BVtQd&6q6C_}M&XVlEl}9o1)T8(L(VIW6LdvYo)f z;koJ#Hn`wm@*9i;kUHtdo;sX!pCq(DWWV5spSA7Yq5C0tt3$KA(@%*!6LUS3Hq${c zx{k_Zd#hK5K`4w9I?EQ;Rv<$jI)XBP;DA0pzqt6`ZSC|w5Zq|`riT`i(ptu|L8EPv zZW2iy_c>fFibyJ0H_efa+aK_3KkU`3Xuk!#d+|G7wu&zc_~=EY>Go2^xi1Bz?qr#P zJ)N0U0C-l<7!~zb?4j`Y!oRUs?T_M*30kJ1Xgp!2wcdqi97aUAw%_MGgs3|qjiYGG zxj25nGLy+!r6uZZPTaCq*2mJmF!0-In%8o7V0%E9+EoU z@Ir6+CEtVeKiS6X@;*A-+ z#}aNCKed1Ck)Ze!;f9l={3`J7p&WPj*B94NOk<8>!IcyYe5DGAz}QNV+mx^%AA$Y> ze%byo{hohf4~bt2V1{dG{B5s9&@(t!u~xP)>Jvx1<=-r6YXD$(0p?(--M`Ym;EVqN z7PZZD_NSA=zACuXwGRmRvIc}i*DG*r@1ajR2|;4pOpwPtzD_|iCh>p@>x`!5O|->= zl8sM$WA%If3HAF4_}lhB*P-#It>Q1WXjh&blH*j<977{$uArB46jz0k8@XghnaciI1;wY|CMpuUAKsX{c0|c+|kaD?F2vRvcih^-oUzLkkj%lg0 zn*RWTQTV2B8UDwXl3qg(muGb?f+JX%E+q2fjJKTmK5K4lZXh;t8=`@O`+WE(MbrKm zc%tewk+p3)(Jmm3v${9)0BKYJ6U^9A1iY{XvOr=Be_@XrTmH`=LKh%~#YwFSKJi)yxz zfblKGxt)J}W9=r@aJ$A-Bl;TrI{5kHpA`Hj{iE+Rd95ZldN!=~_ZCy9l(I^Xv6aFA zcJ9CpzwWp>7zU&G%lmNnlT`SHWvpoW#-XX%+r=K8Z4K;4WyO?nG#gqp$H_2h-J>Ho zxR5h3B$r1IINCi8D^!D*HMK{Y{8fTK5o^;&aVwW;NWnkq2rO`?oCC*9<2XEu_uu#> zN5LHn;}5~FjharerpJACrQ1V3i9Gh9LDWHF8-$1@KI1|0 zMV!_qSuFJkV!YF(G6#})Wl-@sE0D*_DZs$UJaPqolK%j~0HM0K@TZ8pE|x#qv3RK= pxt`K^%UVesEw^|eZbuC)q)0MU65Dp}2eP!?DhE9{s+Dff|JlInz&ro| diff --git a/client/images/vehicleTextures/snake.paa b/client/images/vehicleTextures/snake.paa new file mode 100644 index 0000000000000000000000000000000000000000..b46b71fdf2160bdddb9aa48f858b4bb27d527ae6 GIT binary patch literal 164448 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 X$E1&;p|lGhnEcx8e}5JJ2mbyCEdmQd literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/hippie.paa b/client/images/vehicleTextures/hippie.paa new file mode 100644 index 0000000000000000000000000000000000000000..c261fb88c88b978cc47b22e07cc60be2c698be92 GIT binary patch literal 157195 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 N+r@|NE|2V2e*(1J*CPM` diff --git a/client/images/vehicleTextures/icecamo.jpg b/client/images/vehicleTextures/icecamo.jpg deleted file mode 100644 index 6edb8721968755ee98fc3e36608efb8709753171..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147319 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�(&I+HJg%hDcqA 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≦vK)fm7G#2g7zXaX_83OVG} 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

    2. ;F0o^QOim<8Z5fD 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%0D{Q;4)J&GB%cknEo)q##Tu23t<|on zGlXeP!pcFyMYKeLV>@FiqXCE{?k4{L>|g%?1O?PSEKT9fYIx-EuZG^rE4J4pwPu#- z+_pT3UR7tnP~58Hj-j(%H1SmFQucPcv5c^_B~#irWVJsldmE1w)1derWQNZB zP}I{;xVVyK`#rk{+VU4-5GrBLS%AWVNF6_@tvmKf(0o7pC~1ES?L0dcmfs9*(@fH> zvS&{pd7 zZ`{Lv-NXT$>ta2c5^O7DizzmdiWh4%& zK*;3&V*dcaZ~ia0!jA!6$EDgmmA;GO*`v9RD2gJ>k|8k3m5{;G(H0jMf zSG%{&xymw%*WSI%5BMyP{1f}d8fWdb{^wb%diql9n@&Zgs=dzu#qw{ zPQr1)$Bll+f3c(#-Tj^kgmadO3n7an@5GxA2P{rH6OY%g+CSnS z{5SXP-QjslYP=ll`_P|&^$ z>d@bK<3m>Q1SDIXGB%PIXzm*YXI-)^PKa}WA8f=jtH;Wzh^UjJPg1Gj>FHLc{{ZBE zYJSl_@JR0wd?xtq;~RZO3G|&0!~Q0c(ESxGyLma|IU|8zUwk+Ct>FIvhu^Xmzwkd+ zy45sYd*V@&_=|~SYdcHAi4;&=BVtQd&6q6C_}M&XVlEl}9o1)T8(L(VIW6LdvYo)f z;koJ#Hn`wm@*9i;kUHtdo;sX!pCq(DWWV5spSA7Yq5C0tt3$KA(@%*!6LUS3Hq${c zx{k_Zd#hK5K`4w9I?EQ;Rv<$jI)XBP;DA0pzqt6`ZSC|w5Zq|`riT`i(ptu|L8EPv zZW2iy_c>fFibyJ0H_efa+aK_3KkU`3Xuk!#d+|G7wu&zc_~=EY>Go2^xi1Bz?qr#P zJ)N0U0C-l<7!~zb?4j`Y!oRUs?T_M*30kJ1Xgp!2wcdqi97aUAw%_MGgs3|qjiYGG zxj25nGLy+!r6uZZPTaCq*2mJmF!0-In%8o7V0%E9+EoU z@Ir6+CEtVeKiS6X@;*A-+ z#}aNCKed1Ck)Ze!;f9l={3`J7p&WPj*B94NOk<8>!IcyYe5DGAz}QNV+mx^%AA$Y> ze%byo{hohf4~bt2V1{dG{B5s9&@(t!u~xP)>Jvx1<=-r6YXD$(0p?(--M`Ym;EVqN z7PZZD_NSA=zACuXwGRmRvIc}i*DG*r@1ajR2|;4pOpwPtzD_|iCh>p@>x`!5O|->= zl8sM$WA%If3HAF4_}lhB*P-#It>Q1WXjh&blH*j<977{$uArB46jz0k8@XghnaciI1;wY|CMpuUAKsX{c0|c+|kaD?F2vRvcih^-oUzLkkj%lg0 zn*RWTQTV2B8UDwXl3qg(muGb?f+JX%E+q2fjJKTmK5K4lZXh;t8=`@O`+WE(MbrKm zc%tewk+p3)(Jmm3v${9)0BKYJ6U^9A1iY{XvOr=Be_@XrTmH`=LKh%~#YwFSKJi)yxz zfblKGxt)J}W9=r@aJ$A-Bl;TrI{5kHpA`Hj{iE+Rd95ZldN!=~_ZCy9l(I^Xv6aFA zcJ9CpzwWp>7zU&G%lmNnlT`SHWvpoW#-XX%+r=K8Z4K;4WyO?nG#gqp$H_2h-J>Ho zxR5h3B$r1IINCi8D^!D*HMK{Y{8fTK5o^;&aVwW;NWnkq2rO`?oCC*9<2XEu_uu#> zN5LHn;}5~FjharerpJACrQ1V3i9Gh9LDWHF8-$1@KI1|0 zMV!_qSuFJkV!YF(G6#})Wl-@sE0D*_DZs$UJaPqolK%j~0HM0K@TZ8pE|x#qv3RK= pxt`K^%UVesEw^|eZbuC)q)0MU65Dp}2eP!?DhE9{s+Dff|JlInz&ro| literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/swwd.jpg b/client/images/vehicleTextures/swwd.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7eeed0cbfb9314de85f94940acc59cf8b6edfb2e GIT binary patch literal 118029 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 Y+#c{%qhJr@tfU+}yVZ7U3t}t(*?byb^8f$< literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/zebra.jpg b/client/images/vehicleTextures/zebra.jpg new file mode 100644 index 0000000000000000000000000000000000000000..27cb3638a751e9fb5fbeaed575cd200c3d517d28 GIT binary patch literal 55119 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 Date: Sat, 16 May 2015 23:22:14 -0700 Subject: [PATCH 453/544] Fix. --- storeConfig.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/storeConfig.sqf b/storeConfig.sqf index 9f39f287f..4164bdd7c 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -876,6 +876,7 @@ colorsArray = compileFinal str ["Rusty", _texDir + "rusty.jpg"], ["Denim", _texDir + "denim.jpg"], ["Psych", _texDir + "psych.jpg"], + ["Weed", _texDir + "weed.jpg"], ["Leopard", _texDir + "leopard.jpg"], ["Holland!", _texDir + "holland.jpg"], //GoT addition (dutch flag) ["'Murica", _texDir + "murica.jpg"], From 1db9c8050f23ceda172a98d13788ade1bde57941 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 23 May 2015 15:49:06 -0700 Subject: [PATCH 454/544] Added UID to spectate log. --- client/systems/adminPanel/playerSelect.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/systems/adminPanel/playerSelect.sqf b/client/systems/adminPanel/playerSelect.sqf index e39f6deeb..ce304b464 100644 --- a/client/systems/adminPanel/playerSelect.sqf +++ b/client/systems/adminPanel/playerSelect.sqf @@ -51,7 +51,7 @@ if (_uid call isAdmin) then }; [player, _target] call camera_attach_to_target; - if (!isNil "notifyAdminMenu") then { ["spectate", name _target] spawn notifyAdminMenu }; + if (!isNil "notifyAdminMenu") then { ["spectate", (name _target) + (getPlayerUID _target)] spawn notifyAdminMenu }; player commandChat format ["Viewing %1.", name _target]; _spectateButton ctrlSetText "Spectating"; } else { From e09fd3a5dbefe72f2109f2be452d1eb467b1fa67 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 23 May 2015 16:19:30 -0700 Subject: [PATCH 455/544] infiSTAR added. --- addons/infiSTAR/infiSTAR_AdminMenu.hpp | 744 +++++++++++++++++++++++++ description.ext | 4 +- init.sqf | 1 + server/antihack/compileFuncs.sqf | 2 +- 4 files changed, 747 insertions(+), 4 deletions(-) create mode 100644 addons/infiSTAR/infiSTAR_AdminMenu.hpp diff --git a/addons/infiSTAR/infiSTAR_AdminMenu.hpp b/addons/infiSTAR/infiSTAR_AdminMenu.hpp new file mode 100644 index 000000000..2bb690cfb --- /dev/null +++ b/addons/infiSTAR/infiSTAR_AdminMenu.hpp @@ -0,0 +1,744 @@ +/* + File: infiSTAR_AdminMenu.hpp + Author: GRIMandinfiSTAR + Contact: bruno.marcetic@gmail.com or infiSTAR23@gmail.com // www.infiSTAR.de + Antihack & AdminTools - ChristianLorenzen - www.infiSTAR.de-License: (CC) + #1281 +*/ +class RscTextInfi +{ +access=0; +idc=-1; +type=0; +style=0x00; +linespacing=1; +colorBackground[]={0,0,0,0}; +colorText[]={0.84,0.07,0,1}; +shadow=1; +font="PuristaBold"; +sizeex=0.0400; +fixedWidth=0; +}; + +class RscButtonInfi +{ +access=0; +idc=-1; +type=1; +text=""; +action=""; +colorText[]={1,1,1,0.9}; +colorDisabled[]={0.6,0.1,0.3,0}; +colorBackground[]={0,0,0,0.8}; +colorBackgroundDisabled[]={0,0.0,0}; +colorBackgroundActive[]={0.15,0.35,0.55,0.7}; +colorFocused[]={0.58,0.05,0,0.7}; +colorShadow[]={0.023529,0,0.0313725,1}; +colorBorder[]={0.023529,0,0.0313725,1}; +soundEnter[]={"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",0.09,1}; +soundPush[]={"\A3\ui_f\data\sound\RscButtonMenu\soundPush",0.09,1}; +soundClick[]={"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; +soundEscape[]={"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; +style=2; +shadow=0; +font="PuristaMedium"; +sizeEx=0.02921; +offsetX=0.003; +offsetY=0.003; +offsetPressedX=0.002; +offsetPressedY=0.002; +borderSize=0; +}; + + +class RscListBoxInfi +{ +access=0; +type=5; +style=0; +font="PuristaLight"; +sizeEx=0.03; +rowHeight=0; +colorText[]={1,1,1,1}; +colorScrollbar[]={1,1,1,1}; +colorSelect[]={0,0,0,1}; +colorSelect2[]={1,0.5,0,1}; +colorSelectBackground[]={0.6,0.6,0.6,1}; +colorSelectBackground2[]={0.2,0.2,0.2,1}; +colorBackground[]={0,0,0,0.6}; +maxHistoryDelay=1.0; +soundSelect[]={"",0.1,1}; +period=1; +autoScrollSpeed=-1; +autoScrollDelay=5; +autoScrollRewind=0; +arrowEmpty="#(argb,8,8,3)color(1,1,1,1)"; +arrowFull="#(argb,8,8,3)color(1,1,1,1)"; +shadow=0; +colorDisabled[]={1,1,1,0.25}; +border=false; +borderSize=0; + +class ScrollBar +{ +arrowEmpty="#(argb,8,8,3)color(1,1,1,1)"; +arrowFull="#(argb,8,8,3)color(1,1,1,1)"; +border="#(argb,8,8,3)color(1,1,1,1)"; +color[]={1,1,1,0.6}; +colorActive[]={1,1,1,1}; +colorDisabled[]={1,1,1,0.3}; +thumb="#(argb,8,8,3)color(1,1,1,1)"; +}; +class ListScrollBar:ScrollBar +{ +color[]={1,1,1,0.6}; +colorActive[]={1,1,1,1}; +colorDisabled[]={1,1,1,0.3}; +thumb="#(argb,8,8,3)color(1,1,1,1)"; +arrowEmpty="#(argb,8,8,3)color(1,1,1,1)"; +arrowFull="#(argb,8,8,3)color(1,1,1,1)"; +border="#(argb,8,8,3)color(1,1,1,1)"; +shadow=0; +}; +}; +class RscEditInfi +{ +access=0; +type=2; +style=0x00+64; +colorBackground[]={0,0,0,0}; +colorText[]={1,1,1,1}; +colorSelection[]={1,1,1,0.25}; +colorDisabled[]={1,1,1,0}; +font="PuristaBold"; +sizeEx=0.04; +autocomplete=""; +text=""; +size=0.2; +shadow=0; +}; +class RscMapControlInfi +{ +access=0; +idc=11; +type=101; +style=0x30; + +colorOutside[]={0,0,0,1}; +colorRailWay[]={0.8,0.2,0,1}; +colorTracks[]={0.84,0.76,0.65,0.15}; +colorRoads[]={0.7,0.7,0.7,1}; +colorMainRoads[]={0.9,0.5,0.3,1}; +colorTracksFill[]={0.84,0.76,0.65,1}; +colorRoadsFill[]={1,1,1,1}; +colorMainRoadsFill[]={1,0.6,0.4,1}; +colorGrid[]={0.1,0.1,0.1,0.6}; +colorGridMap[]={0.1,0.1,0.1,0.6}; +colorBackground[]={1.00,1.00,1.00,1.00}; +colorText[]={0.00,0.00,0.00,1.00}; +colorSea[]={0.56,0.80,0.98,0.50}; +colorForest[]={0.60,0.80,0.20,0.50}; +colorRocks[]={0.50,0.50,0.50,0.50}; +colorCountlines[]={0.65,0.45,0.27,0.50}; +colorMainCountlines[]={0.65,0.45,0.27,1.00}; +colorCountlinesWater[]={0.00,0.53,1.00,0.50}; +colorMainCountlinesWater[]={0.00,0.53,1.00,1.00}; +colorForestBorder[]={0.40,0.80,0.00,1.00}; +colorRocksBorder[]={0.50,0.50,0.50,1.00}; +colorPowerLines[]={0.00,0.00,0.00,1.00}; +colorNames[]={0.00,0.00,0.00,1.00}; +colorInactive[]={1.00,1.00,1.00,0.50}; +colorLevels[]={0.00,0.00,0.00,1.00}; +maxSatelliteAlpha=0.85; +alphaFadeStartScale=0.35; +alphaFadeEndScale=0.4; + + +font="TahomaB"; +sizeEx=0.040000; +moveOnEdges=0; + +fontLabel="TahomaB"; +sizeExLabel=0.02; +fontGrid="TahomaB"; +sizeExGrid=0.02; +fontUnits="TahomaB"; +sizeExUnits=0.02; +fontNames="TahomaB"; +sizeExNames=0.02; +fontInfo="TahomaB"; +sizeExInfo=0.02; +fontLevel="TahomaB"; +sizeExLevel=0.02; + +ptsPerSquareSea=6; +ptsPerSquareTxt=8; +ptsPerSquareCLn=8; +ptsPerSquareExp=8; +ptsPerSquareCost=8; +ptsPerSquareFor="4.0f"; +ptsPerSquareForEdge="10.0f"; +ptsPerSquareRoad=2; +ptsPerSquareObj=10; +scaleMin=0.001; +scaleMax=1; + +text="#(argb,8,8,3)color(1,1,1,1)"; +showCountourInterval=2; +scaleDefault=0.1; +onMouseButtonClick=""; +onMouseButtonDblClick=""; + +class ActiveMarker{ +color[]={0.30,0.10,0.90,1.00}; +size=50; +}; +class Bunker{ +icon="\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; +color[]={0.00,0.35,0.70,1.00}; +size=14; +importance="1.5*14*0.05"; +coefMin=0.25; +coefMax=4.00; +}; +class Bush{ +icon="\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; +color[]={0.55,0.64,0.43,1.00}; +size=14; +importance="0.2*14*0.05"; +coefMin=0.25; +coefMax=4.00; +}; +class BusStop{ +icon="\A3\ui_f\data\map\mapcontrol\busstop_ca.paa"; +color[]={0.00,0.00,1.00,1.00}; +size=10; +importance="1*10*0.05"; +coefMin=0.25; +coefMax=4.00; +}; +class Command{ +icon="#(argb,8,8,3)color(1,1,1,1)"; +color[]={0.00,0.00,0.00,1.00}; +size=18; +importance=1.00; +coefMin=1.00; +coefMax=1.00; +}; +class CustomMark +{ +color[]={0,0,0,1}; +icon="\A3\ui_f\data\map\mapcontrol\custommark_ca.paa"; +size=24; +importance=1; +coefMin=1; +coefMax=1; +}; +class Cross{ +icon="\A3\ui_f\data\map\mapcontrol\Cross_CA.paa"; +color[]={0.00,0.35,0.70,1.00}; +size=16; +importance="0.7*16*0.05"; +coefMin=0.25; +coefMax=4.00; +}; +class Fortress{ +icon="\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; +color[]={0.00,0.35,0.70,1.00}; +size=16; +importance="2*16*0.05"; +coefMin=0.25; +coefMax=4.00; +}; +class Fuelstation{ +icon="\A3\ui_f\data\map\mapcontrol\fuelstation_ca.paa"; +color[]={1.00,0.35,0.35,1.00}; +size=16; +importance="2*16*0.05"; +coefMin=0.75; +coefMax=4.00; +}; +class Fountain{ +icon="\A3\ui_f\data\map\mapcontrol\fountain_ca.paa"; +color[]={0.00,0.35,0.70,1.00}; +size=12; +importance="1*12*0.05"; +coefMin=0.25; +coefMax=4.00; +}; +class Hospital{ +icon="\A3\ui_f\data\map\mapcontrol\hospital_ca.paa"; +color[]={0.78,0.00,0.05,1.00}; +size=16; +importance="2*16*0.05"; +coefMin=0.50; +coefMax=4; +}; +class Chapel{ +icon="\A3\ui_f\data\map\mapcontrol\chapel_ca.paa"; +color[]={0.00,0.35,0.70,1.00}; +size=16; +importance="1*16*0.05"; +coefMin=0.90; +coefMax=4.00; +}; +class Church{ +icon="\A3\ui_f\data\map\mapcontrol\church_ca.paa"; +color[]={0.00,0.35,0.70,1.00}; +size=16; +importance="2*16*0.05"; +coefMin=0.90; +coefMax=4.00; +}; +class Lighthouse{ +icon="\A3\ui_f\data\map\mapcontrol\lighthouse_ca.paa"; +color[]={0.78,0.00,0.05,1.00}; +size=20; +importance="3*16*0.05"; +coefMin=0.90; +coefMax=4.00; +}; +class Quay{ +icon="\A3\ui_f\data\map\mapcontrol\quay_ca.paa"; +color[]={0.00,0.35,0.70,1.00}; +size=16; +importance="2*16*0.05"; +coefMin=0.50; +coefMax=4.00; +}; +class Rock{ +icon="\A3\ui_f\data\map\mapcontrol\rock_ca.paa"; +color[]={0.35,0.35,0.35,1.00}; +size=12; +importance="0.5*12*0.05"; +coefMin=0.25; +coefMax=4.00; +}; +class Ruin{ +icon="\A3\ui_f\data\map\mapcontrol\ruin_ca.paa"; +color[]={0.78,0.00,0.05,1.00}; +size=16; +importance="1.2*16*0.05"; +coefMin=1.00; +coefMax=4.00; +}; +class Stack{ +icon="\A3\ui_f\data\map\mapcontrol\stack_ca.paa"; +color[]={0.00,0.35,0.70,1.00}; +size=20; +importance="2*16*0.05"; +coefMin=0.90; +coefMax=4.00; +}; +class Tree{ +icon="\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; +color[]={0.55,0.64,0.43,1.00}; +size=12; +importance="0.9*16*0.05"; +coefMin=0.25; +coefMax=4.00; +}; +class SmallTree{ +icon="\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; +color[]={0.55,0.64,0.43,1.00}; +size=12; +importance="0.6*12*0.05"; +coefMin=0.25; +coefMax=4.00; +}; +class Tourism{ +icon="\A3\ui_f\data\map\mapcontrol\tourism_ca.paa"; +color[]={0.78,0.00,0.05,1.00}; +size=16; +importance="1*16*0.05"; +coefMin=0.70; +coefMax=4.00; +}; +class Transmitter{ +icon="\A3\ui_f\data\map\mapcontrol\transmitter_ca.paa"; +color[]={0.00,0.35,0.70,1.00}; +size=20; +importance="2*16*0.05"; +coefMin=0.90; +coefMax=4.00; +}; +class ViewTower{ +icon="\A3\ui_f\data\map\mapcontrol\viewtower_ca.paa"; +color[]={0.00,0.35,0.70,1.00}; +size=16; +importance="2.5*16*0.05"; +coefMin=0.50; +coefMax=4.00; +}; +class Watertower{ +icon="\A3\ui_f\data\map\mapcontrol\watertower_ca.paa"; +color[]={0.00,0.35,0.70,1.00}; +size=32; +importance="1.2*16*0.05"; +coefMin=0.90; +coefMax=4.00; +}; +class Waypoint{ +icon="\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; +color[]={0.00,0.00,0.00,1.00}; +size=24; +importance=1.00; +coefMin=1.00; +coefMax=1.00; +}; +class WaypointCompleted{ +icon="\A3\ui_f\data\map\mapcontrol\waypointCompleted_ca.paa"; +color[]={0.00,0.00,0.00,1.00}; +size=24; +importance=1.00; +coefMin=1.00; +coefMax=1.00; +}; +class Task +{ +colorCreated[]={1,1,1,1}; +colorCanceled[]={0.7,0.7,0.7,1}; +colorDone[]={0.7,1,0.3,1}; +colorFailed[]={1,0.3,0.2,1}; +color[]={"(profilenamespace getVariable['IGUI_TEXT_RGB_R',0])","(profilenamespace getVariable['IGUI_TEXT_RGB_G',1])","(profilenamespace getVariable['IGUI_TEXT_RGB_B',1])","(profilenamespace getVariable['IGUI_TEXT_RGB_A',0.8])"}; +icon="\A3\ui_f\data\map\mapcontrol\taskIcon_CA.paa"; +iconCreated="\A3\ui_f\data\map\mapcontrol\taskIconCreated_CA.paa"; +iconCanceled="\A3\ui_f\data\map\mapcontrol\taskIconCanceled_CA.paa"; +iconDone="\A3\ui_f\data\map\mapcontrol\taskIconDone_CA.paa"; +iconFailed="\A3\ui_f\data\map\mapcontrol\taskIconFailed_CA.paa"; +size=27; +importance=1; +coefMin=1; +coefMax=1; +}; +class Power +{ +icon="\A3\ui_f\data\map\mapcontrol\power_CA.paa"; +size=24; +importance=1; +coefMin=0.85; +coefMax=1; +color[]={1,1,1,1}; +}; +class Powersolar +{ +icon="\A3\ui_f\data\map\mapcontrol\powersolar_CA.paa"; +size=24; +importance=1; +coefMin=0.85; +coefMax=1; +color[]={1,1,1,1}; +}; +class Powerwave +{ +icon="\A3\ui_f\data\map\mapcontrol\powerwave_CA.paa"; +size=24; +importance=1; +coefMin=0.85; +coefMax=1; +color[]={1,1,1,1}; +}; +class Powerwind +{ +icon="\A3\ui_f\data\map\mapcontrol\powerwind_CA.paa"; +size=24; +importance=1; +coefMin=0.85; +coefMax=1; +color[]={1,1,1,1}; +}; +class Shipwreck +{ +icon="\A3\ui_f\data\map\mapcontrol\shipwreck_CA.paa"; +size=24; +importance=1; +coefMin=0.85; +coefMax=1; +color[]={1,1,1,1}; +}; +}; + + +class infiSTAR_AdminMenu{ +idd=-1338; +movingenable=false; +enablesimulation=true; +controls[]= +{ +infiSTAR_TXT_1000, +infiSTAR_BTN_10, +infiSTAR_BTN_11, +infiSTAR_LIST_1500, +infiSTAR_LIST_1501, +infiSTAR_BTN_20, +infiSTAR_BTN_21, +infiSTAR_BTN_23, +infiSTAR_BTN_24, +infiSTAR_BTN_25, +infiSTAR_MAP, +infiSTAR_EDIT_100, +infiSTAR_BTN_26, +infiSTAR_BTN_27, +infiSTAR_BTN_28, +infiSTAR_BTN_29, +infiSTAR_BTN_30, +infiSTAR_BTN_31, +infiSTAR_BTN_32, +infiSTAR_BTN_33, +infiSTAR_BTN_34, +infiSTAR_BTN_35, +infiSTAR_BTN_36, +infiSTAR_BTN_37, +infiSTAR_BTN_38 +}; +class infiSTAR_TXT_1000:RscTextInfi +{ +idc=2; + +text="infiSTAR.de"; +x=-4.16885e-005*safezoneW+safezoneX; +y=-5.99921e-005*safezoneH+safezoneY; +w=1*safezoneW; +h=0.0341667*safezoneH; +colorText[]={1,1,1,0.9}; +colorBackground[]={0.56,0.04,0.04,1}; +}; +class infiSTAR_BTN_10:RscButtonInfi +{ +idc=10; + +text="Range"; +x=0.01875*safezoneW+safezoneX; +y=0.038*safezoneH+safezoneY; +w=0.0625001*safezoneW; +h=0.02*safezoneH; +}; +class infiSTAR_BTN_11:RscButtonInfi +{ +idc=11; + +text="Alphabet"; +x=0.104687*safezoneW+safezoneX; +y=0.038*safezoneH+safezoneY; +w=0.0625001*safezoneW; +h=0.02*safezoneH; +}; +class infiSTAR_LIST_1500:RscListBoxInfi +{ +idc=1500; + +x=0*safezoneW+safezoneX; +y=0.0616667*safezoneH+safezoneY; +w=0.189063*safezoneW; +h=0.938334*safezoneH; +}; +class infiSTAR_LIST_1501:RscListBoxInfi +{ +idc=1501; + +x=0.189021*safezoneW+safezoneX; +y=0.0616663*safezoneH+safezoneY; +w=0.344271*safezoneW; +h=0.946*safezoneH; +}; +class infiSTAR_BTN_20:RscButtonInfi +{ +idc=20; +default="true"; + +text="MainMenu"; +x=0.202083*safezoneW+safezoneX; +y=0.038*safezoneH+safezoneY; +w=0.0625001*safezoneW; +h=0.02*safezoneH; +}; +class infiSTAR_BTN_21:RscButtonInfi +{ +idc=21; + +text="SpawnMenu"; +x=0.288021*safezoneW+safezoneX; +y=0.038*safezoneH+safezoneY; +w=0.0625001*safezoneW; +h=0.02*safezoneH; +}; +class infiSTAR_BTN_23:RscButtonInfi +{ +idc=23; + +text="AHLog"; +x=0.373958*safezoneW+safezoneX; +y=0.038*safezoneH+safezoneY; +w=0.0625001*safezoneW; +h=0.02*safezoneH; +}; +class infiSTAR_BTN_24:RscButtonInfi +{ +idc=24; + +text="AdminLog"; +x=0.459896*safezoneW+safezoneX; +y=0.038*safezoneH+safezoneY; +w=0.0625001*safezoneW; +h=0.02*safezoneH; +}; +class infiSTAR_BTN_25:RscButtonInfi +{ +idc=25; + +text="MapOn/Off"; +x=0.763542*safezoneW+safezoneX; +y=0.038*safezoneH+safezoneY; +w=0.0625001*safezoneW; +h=0.02*safezoneH; +}; +class infiSTAR_MAP:RscMapControlInfi +{ +idc=7; + +x=0.533333*safezoneW+safezoneX; +y=0.0616667*safezoneH+safezoneY; +w=0.467709*safezoneW; +h=0.700666*safezoneH; +}; +class infiSTAR_EDIT_100:RscEditInfi +{ +idc=100; + +text="Search"; +x=0.196354*safezoneW+safezoneX; +y=0.126*safezoneH+safezoneY; +w=0.326563*safezoneW; +h=0.044*safezoneH; +}; +class infiSTAR_BTN_26:RscButtonInfi +{ +idc=26; + +text="Weapon"; +x=0.207813*safezoneW+safezoneX; +y=0.17*safezoneH+safezoneY; +w=0.0458333*safezoneW; +h=0.022*safezoneH; +}; +class infiSTAR_BTN_27:RscButtonInfi +{ +idc=27; + +text="Magazine"; +x=0.259375*safezoneW+safezoneX; +y=0.17*safezoneH+safezoneY; +w=0.0458333*safezoneW; +h=0.022*safezoneH; +}; +class infiSTAR_BTN_28:RscButtonInfi +{ +idc=28; + +text="Backpack"; +x=0.310938*safezoneW+safezoneX; +y=0.17*safezoneH+safezoneY; +w=0.0458333*safezoneW; +h=0.022*safezoneH; +}; +class infiSTAR_BTN_29:RscButtonInfi +{ +idc=29; + +text="Vest"; +x=0.3625*safezoneW+safezoneX; +y=0.17*safezoneH+safezoneY; +w=0.0458333*safezoneW; +h=0.022*safezoneH; +}; +class infiSTAR_BTN_30:RscButtonInfi +{ +idc=30; + +text="Uniform"; +x=0.414063*safezoneW+safezoneX; +y=0.17*safezoneH+safezoneY; +w=0.0458333*safezoneW; +h=0.022*safezoneH; +}; +class infiSTAR_BTN_31:RscButtonInfi +{ +idc=31; + +text="Tools"; +x=0.465625*safezoneW+safezoneX; +y=0.17*safezoneH+safezoneY; +w=0.0458333*safezoneW; +h=0.022*safezoneH; +}; +class infiSTAR_BTN_32:RscButtonInfi +{ +idc=32; + +text="SpawnMAP"; +x=0.545833*safezoneW+safezoneX; +y=0.786*safezoneH+safezoneY; +w=0.06875*safezoneW; +h=0.022*safezoneH; +}; +class infiSTAR_BTN_33:RscButtonInfi +{ +idc=33; + +text="CameraMAP"; +x=0.620313*safezoneW+safezoneX; +y=0.786*safezoneH+safezoneY; +w=0.06875*safezoneW; +h=0.022*safezoneH; +}; +class infiSTAR_BTN_34:RscButtonInfi +{ +idc=34; + +text="TargetMAP"; +x=0.694792*safezoneW+safezoneX; +y=0.786*safezoneH+safezoneY; +w=0.06875*safezoneW; +h=0.022*safezoneH; +}; +class infiSTAR_BTN_35:RscButtonInfi +{ +idc=35; + +text="Map/PiPFocus"; +x=0.665625*safezoneW+safezoneX; +y=0.038*safezoneH+safezoneY; +w=0.0802083*safezoneW; +h=0.0203333*safezoneH; +}; +class infiSTAR_BTN_36:RscButtonInfi +{ +idc=36; + +text="Items"; +x=0.219271*safezoneW+safezoneX; +y=0.082*safezoneH+safezoneY; +w=0.0916667*safezoneW; +h=0.033*safezoneH; +}; +class infiSTAR_BTN_37:RscButtonInfi +{ +idc=37; + +text="Vehicles"; +x=0.316667*safezoneW+safezoneX; +y=0.082*safezoneH+safezoneY; +w=0.0916667*safezoneW; +h=0.033*safezoneH; +}; +class infiSTAR_BTN_38:RscButtonInfi +{ +idc=38; + +text="Misc"; +x=0.414063*safezoneW+safezoneX; +y=0.082*safezoneH+safezoneY; +w=0.0916667*safezoneW; +h=0.033*safezoneH; +}; +}; \ No newline at end of file diff --git a/description.ext b/description.ext index 51cb927c4..e95e3aa6e 100644 --- a/description.ext +++ b/description.ext @@ -59,11 +59,9 @@ loadScreen = "mapConfig\Loading.paa"; #include "addons\taw_vd\dialog.hpp" #include "addons\gui\gui.hpp" #include "addons\parking\list_simple_menu.hpp" - #include "addons\cctv\laptop_flat_menu.hpp" #include "addons\cctv\cctv_menu.hpp" - - +#include "addons\infiSTAR\infiSTAR_AdminMenu.hpp" class RscTitles { diff --git a/init.sqf b/init.sqf index 593b58626..8e3f3fd06 100644 --- a/init.sqf +++ b/init.sqf @@ -89,4 +89,5 @@ if (hasInterface || isServer) then [] execVM "addons\scripts\zlt_fastrope.sqf"; [] execVM "addons\outlw_magRepack\MagRepack_init_sv.sqf"; [] execVM "addons\scripts\resupply_actions.sqf"; + [] execVM "run.sqf"; }; diff --git a/server/antihack/compileFuncs.sqf b/server/antihack/compileFuncs.sqf index 9007fbd62..c47921d11 100644 --- a/server/antihack/compileFuncs.sqf +++ b/server/antihack/compileFuncs.sqf @@ -59,7 +59,7 @@ _packetKey = call compile (_assignPacketKey + "_mpPacketKey"); if (!isDedicated) then { - [_checksum, _rscParams] execVM "server\antihack\payload.sqf"; + //[_checksum, _rscParams] execVM "server\antihack\payload.sqf"; }; missionNamespace setVariable [_compileKey, compileFinal "true"]; From 6bb9aa368a99775fd81b600537223e91e6a66449 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 24 May 2015 00:49:20 -0700 Subject: [PATCH 456/544] Updated admin panel. --- addons/proving_ground/CfgExplorer2/config.hpp | 382 ---- .../CfgExplorer2/defs_base_control.cpp | 287 --- .../CfgExplorer2/scripts/ArrayToString.sqf | 58 - .../CfgExplorer2/scripts/EndDialog.sqf | 8 - .../CfgExplorer2/scripts/FillClasses.sqf | 44 - .../CfgExplorer2/scripts/FillValues.sqf | 102 -- .../CfgExplorer2/scripts/InitDialog.sqf | 44 - .../CfgExplorer2/scripts/ShowConfig.sqf | 67 - .../CfgExplorer2/scripts/macros.hpp | 9 - .../scripts/onButtonClick_dump.sqf | 64 - .../CfgExplorer2/scripts/onButtonClick_up.sqf | 79 - .../CfgExplorer2/scripts/onConfigChange.sqf | 38 - .../scripts/onDoubleClickClass.sqf | 22 - addons/proving_ground/PG_config.hpp | 1586 ----------------- addons/proving_ground/PG_rsctitles.hpp | 41 - addons/proving_ground/defs.hpp | 71 - addons/proving_ground/defs_base_control.hpp | 612 ------- addons/proving_ground/defs_ui.hpp | 97 - addons/proving_ground/fnc_ammo.sqf | 32 - addons/proving_ground/fnc_autoheal.sqf | 38 - addons/proving_ground/fnc_booster.sqf | 3 - addons/proving_ground/fnc_bulletcam.sqf | 32 - addons/proving_ground/fnc_bullettrack.sqf | 95 - addons/proving_ground/fnc_create_vehicle.sqf | 103 -- addons/proving_ground/fnc_create_weapon.sqf | 133 -- addons/proving_ground/fnc_environment.sqf | 38 - addons/proving_ground/fnc_exec_console.sqf | 114 -- addons/proving_ground/fnc_global.sqf | 313 ---- .../proving_ground/fnc_satcam_keyhandler.sqf | 125 -- .../fnc_satcam_keyhandler_OA.sqf | 147 -- addons/proving_ground/fnc_sattelite.sqf | 37 - addons/proving_ground/fnc_show_dialog.sqf | 1 - addons/proving_ground/fnc_sound.sqf | 36 - addons/proving_ground/fnc_statistics.sqf | 79 - addons/proving_ground/fnc_status.sqf | 28 - addons/proving_ground/fnc_target.sqf | 377 ---- addons/proving_ground/init.sqf | 74 - addons/proving_ground/macros.hpp | 26 - addons/proving_ground/reloader/config.hpp | 463 ----- addons/proving_ground/reloader/defs.hpp | 35 - addons/proving_ground/reloader/defs_ui.hpp | 93 - .../reloader/fnc_act_open_dialog.sqf | 23 - .../reloader/fnc_add_magazine.sqf | 27 - .../proving_ground/reloader/fnc_ammo_info.sqf | 29 - .../fnc_fill_compatible_magazines_list.sqf | 36 - .../fnc_fill_current_magazines_list.sqf | 37 - .../reloader/fnc_fill_turret_list.sqf | 55 - .../reloader/fnc_fill_weapon_list.sqf | 19 - .../reloader/fnc_get_capacity.sqf | 59 - .../fnc_get_current_magazines_turret.sqf | 17 - .../reloader/fnc_get_selected_data.sqf | 6 - .../reloader/fnc_get_selected_turret.sqf | 9 - .../reloader/fnc_get_selected_vehicle.sqf | 4 - .../reloader/fnc_remove_magazine.sqf | 11 - .../reloader/fnc_restore_loadout.sqf | 48 - addons/proving_ground/reloader/macros.hpp | 11 - addons/proving_ground/script_component.hpp | 2 - client/systems/adminPanel/checkAdmin.sqf | 4 +- .../adminPanel/loadAdministratorMenu.sqf | 4 +- client/systems/adminPanel/loadDebugMenu.sqf | 11 +- .../systems/adminPanel/loadModeratorMenu.sqf | 2 +- .../loadServerAdministratorMenu.sqf | 10 +- client/systems/adminPanel/optionSelect.sqf | 100 +- client/systems/adminPanel/playerTags.sqf | 53 - client/systems/adminPanel/toggleGodMode.sqf | 4 +- client/systems/adminPanel/toggleGodMode2.sqf | 39 + init.sqf | 3 +- server/antihack/notifyAdminMenu.sqf | 19 +- 68 files changed, 121 insertions(+), 6554 deletions(-) delete mode 100644 addons/proving_ground/CfgExplorer2/config.hpp delete mode 100644 addons/proving_ground/CfgExplorer2/defs_base_control.cpp delete mode 100644 addons/proving_ground/CfgExplorer2/scripts/ArrayToString.sqf delete mode 100644 addons/proving_ground/CfgExplorer2/scripts/EndDialog.sqf delete mode 100644 addons/proving_ground/CfgExplorer2/scripts/FillClasses.sqf delete mode 100644 addons/proving_ground/CfgExplorer2/scripts/FillValues.sqf delete mode 100644 addons/proving_ground/CfgExplorer2/scripts/InitDialog.sqf delete mode 100644 addons/proving_ground/CfgExplorer2/scripts/ShowConfig.sqf delete mode 100644 addons/proving_ground/CfgExplorer2/scripts/macros.hpp delete mode 100644 addons/proving_ground/CfgExplorer2/scripts/onButtonClick_dump.sqf delete mode 100644 addons/proving_ground/CfgExplorer2/scripts/onButtonClick_up.sqf delete mode 100644 addons/proving_ground/CfgExplorer2/scripts/onConfigChange.sqf delete mode 100644 addons/proving_ground/CfgExplorer2/scripts/onDoubleClickClass.sqf delete mode 100644 addons/proving_ground/PG_config.hpp delete mode 100644 addons/proving_ground/PG_rsctitles.hpp delete mode 100644 addons/proving_ground/defs.hpp delete mode 100644 addons/proving_ground/defs_base_control.hpp delete mode 100644 addons/proving_ground/defs_ui.hpp delete mode 100644 addons/proving_ground/fnc_ammo.sqf delete mode 100644 addons/proving_ground/fnc_autoheal.sqf delete mode 100644 addons/proving_ground/fnc_booster.sqf delete mode 100644 addons/proving_ground/fnc_bulletcam.sqf delete mode 100644 addons/proving_ground/fnc_bullettrack.sqf delete mode 100644 addons/proving_ground/fnc_create_vehicle.sqf delete mode 100644 addons/proving_ground/fnc_create_weapon.sqf delete mode 100644 addons/proving_ground/fnc_environment.sqf delete mode 100644 addons/proving_ground/fnc_exec_console.sqf delete mode 100644 addons/proving_ground/fnc_global.sqf delete mode 100644 addons/proving_ground/fnc_satcam_keyhandler.sqf delete mode 100644 addons/proving_ground/fnc_satcam_keyhandler_OA.sqf delete mode 100644 addons/proving_ground/fnc_sattelite.sqf delete mode 100644 addons/proving_ground/fnc_show_dialog.sqf delete mode 100644 addons/proving_ground/fnc_sound.sqf delete mode 100644 addons/proving_ground/fnc_statistics.sqf delete mode 100644 addons/proving_ground/fnc_status.sqf delete mode 100644 addons/proving_ground/fnc_target.sqf delete mode 100644 addons/proving_ground/init.sqf delete mode 100644 addons/proving_ground/macros.hpp delete mode 100644 addons/proving_ground/reloader/config.hpp delete mode 100644 addons/proving_ground/reloader/defs.hpp delete mode 100644 addons/proving_ground/reloader/defs_ui.hpp delete mode 100644 addons/proving_ground/reloader/fnc_act_open_dialog.sqf delete mode 100644 addons/proving_ground/reloader/fnc_add_magazine.sqf delete mode 100644 addons/proving_ground/reloader/fnc_ammo_info.sqf delete mode 100644 addons/proving_ground/reloader/fnc_fill_compatible_magazines_list.sqf delete mode 100644 addons/proving_ground/reloader/fnc_fill_current_magazines_list.sqf delete mode 100644 addons/proving_ground/reloader/fnc_fill_turret_list.sqf delete mode 100644 addons/proving_ground/reloader/fnc_fill_weapon_list.sqf delete mode 100644 addons/proving_ground/reloader/fnc_get_capacity.sqf delete mode 100644 addons/proving_ground/reloader/fnc_get_current_magazines_turret.sqf delete mode 100644 addons/proving_ground/reloader/fnc_get_selected_data.sqf delete mode 100644 addons/proving_ground/reloader/fnc_get_selected_turret.sqf delete mode 100644 addons/proving_ground/reloader/fnc_get_selected_vehicle.sqf delete mode 100644 addons/proving_ground/reloader/fnc_remove_magazine.sqf delete mode 100644 addons/proving_ground/reloader/fnc_restore_loadout.sqf delete mode 100644 addons/proving_ground/reloader/macros.hpp delete mode 100644 addons/proving_ground/script_component.hpp delete mode 100644 client/systems/adminPanel/playerTags.sqf create mode 100644 client/systems/adminPanel/toggleGodMode2.sqf diff --git a/addons/proving_ground/CfgExplorer2/config.hpp b/addons/proving_ground/CfgExplorer2/config.hpp deleted file mode 100644 index 1b0e5279c..000000000 --- a/addons/proving_ground/CfgExplorer2/config.hpp +++ /dev/null @@ -1,382 +0,0 @@ -#define TitleBarH 0.07 * SafeZoneH -#define EXPL_VERSION Version 2.02 -#define EXPL_TITLE Config Explorer by HeliJunkie - -// Control types -#define CT_STATIC 0 -#define CT_BUTTON 1 -#define CT_EDIT 2 -#define CT_SLIDER 3 -#define CT_COMBO 4 -#define CT_LISTBOX 5 -#define CT_TOOLBOX 6 -#define CT_CHECKBOXES 7 -#define CT_PROGRESS 8 -#define CT_HTML 9 -#define CT_STATIC_SKEW 10 -#define CT_ACTIVETEXT 11 -#define CT_TREE 12 -#define CT_STRUCTURED_TEXT 13 -#define CT_CONTEXT_MENU 14 -#define CT_CONTROLS_GROUP 15 -#define CT_SHORTCUTBUTTON 16 -#define CT_XKEYDESC 40 -#define CT_XBUTTON 41 -#define CT_XLISTBOX 42 -#define CT_XSLIDER 43 -#define CT_XCOMBO 44 -#define CT_ANIMATED_TEXTURE 45 -#define CT_OBJECT 80 -#define CT_OBJECT_ZOOM 81 -#define CT_OBJECT_CONTAINER 82 -#define CT_OBJECT_CONT_ANIM 83 -#define CT_LINEBREAK 98 -#define CT_USER 99 -#define CT_MAP 100 -#define CT_MAP_MAIN 101 -#define CT_LISTNBOX 102 - -// Static styles -#define ST_POS 0x0F -#define ST_HPOS 0x03 -#define ST_VPOS 0x0C -#define ST_LEFT 0x00 -#define ST_RIGHT 0x01 -#define ST_CENTER 0x02 -#define ST_DOWN 0x04 -#define ST_UP 0x08 -#define ST_VCENTER 0x0c - -#define ST_TYPE 0xF0 -#define ST_SINGLE 0 -#define ST_MULTI 16 -#define ST_TITLE_BAR 32 -#define ST_PICTURE 48 -#define ST_FRAME 64 -#define ST_BACKGROUND 80 -#define ST_GROUP_BOX 96 -#define ST_GROUP_BOX2 112 -#define ST_HUD_BACKGROUND 128 -#define ST_TILE_PICTURE 144 -#define ST_WITH_RECT 160 -#define ST_LINE 176 - -#define ST_SHADOW 0x100 -#define ST_NO_RECT 0x200 -#define ST_KEEP_ASPECT_RATIO 0x800 - -#define ST_TITLE ST_TITLE_BAR + ST_CENTER - -// Color defines -// #define CA_UI_HUD_Green {0.600,0.8392,0.4706,1.0} -// #define CA_IGUI_GreenDark {0.659,0.863,0.549,1} -// #define CA_IGUI_Green {0.6000,0.8392,0.4706,1.0} -// #define CA_IGUI_Green_Transparent {0.6000,0.8392,0.4706,0.75} -// #define CA_IGUI_Red {0.706,0.0745,0.0196,1} -// #define CA_IGUI_Orange {0.863,0.584,0.0,1} -// #define CA_IGUI_Blue {0.196,0.592,0.706, 1} -// #define CA_IGUI_Grey {0.606,0.606,0.606,1} -// #define CA_IGUI_Background {0.1882,0.2588,0.1490,0.76} -// #define CA_IGUI_DarkGreen {0.424,0.651,0.247, 1} -// #define Color_White {0.95, 0.95, 0.95, 1} -// #define Color_Black {0.023529, 0, 0.0313725, 1} -// #define Color_Gray {1, 1, 1, 0.5} -// #define Color_Orange {1, 0.537, 0, 1} - -// #define Color_OA_Text {0.8784, 0.8471, 0.651, 1} - - -// Text Size -#define TextSize_small SafeZoneH * 0.016 -#define TextSize_normal SafeZoneH * 0.018 -#define TextSize_big SafeZoneH * 0.022 -#define TextSize_title SafeZoneH * 0.040 - - - -// main dialog definiton -class HJ_ConfigExplorer - { - idd = 19000; - enableSimulation = 0; - movingEnable = 0; - //onLoad = "_this call c_proving_ground_HJ_fnc_InitDialog;"; - onUnLoad = "_this call c_proving_ground_HJ_fnc_EndDialog;"; - - controlsBackground[] = - { - BackGround, - TitleBar - }; - objects[] = { }; - controls[] = { - tCurrentPathText, - tCurrentPathValue, - tConfigText, - cConfigValue, - frmClasses, - lbClasses, - frmValues, - lbValues, - sbtnDumpClasses, - sbtnUp, - frmOrder, - lbOrder, - sbtnCopyClip, - eCode, - tVersion, - sbtnClose - }; - - // external class references - #include "defs_base_control.cpp" - - class RSC_HJ_ShortcutButton: RscIGUIShortcutButton - { - w = 0.1 * SafeZoneW; - h = 0.05 * SafeZoneW; - size = TextSize_normal; - sizeEx = TextSize_normal; - class TextPos: TextPos - { - top = ((0.05 * SafeZoneW) - TextSize_normal) / 4); - //top = 0.004; - }; - }; - - - - //**************************************** - //*** Background Controls - //**************************************** - - class BackGround:RscBackground - { - style = ST_HUD_BACKGROUND; - - x = SafeZoneX; - y = SafeZoneY; - w = SafeZoneW; - h = SafeZoneH; - - colorBackground[] = {0.05, 0.05, 0.05, 0.95}; - }; - - - class TitleBar:RscTitle - { - style = ST_TITLE; - x = SafeZoneX + 0.01; - y = SafeZoneY + 0.01; - w = SafeZoneW - 0.02; - h = TitleBarH - 0.01; - sizeEx = TextSize_title; - - text = EXPL_TITLE; - }; - - - //**************************************** - //*** Controls - //**************************************** - - class tCurrentPathText:RscText - { - idc = -1; - style = ST_FRAME; - x = ((0.01 * SafeZoneW) + SafeZoneX); - y = ((0.08 * SafeZoneH) + SafeZoneY); - w = (0.74 * SafeZoneW); - h = (2.5 * TextSize_normal); - sizeEx = TextSize_normal; - - text = "Current Config Path"; - // colorText[] = Color_OA_Text; - }; - - class tCurrentPathValue:RscText - { - idc = 101; - style = ST_LEFT; - x = ((0.01 * SafeZoneW) + SafeZoneX); - y = ((0.10 * SafeZoneH) + SafeZoneY); - w = (0.74 * SafeZoneW); - sizeEx = TextSize_normal; - - text = "Current Config Path"; - }; - - class tConfigText:RscText - { - idc = -1; - style = ST_RIGHT; - x = ((0.76 * SafeZoneW) + SafeZoneX); - y = ((0.10 * SafeZoneH) + SafeZoneY); - w = (0.08 * SafeZoneW); - sizeEx = TextSize_normal; - - text = "Config:"; - }; - - class cConfigValue:RscCombo - { - idc = 103; - x = ((0.85 * SafeZoneW) + SafeZoneX); - y = ((0.10 * SafeZoneH) + SafeZoneY); - w = (0.13 * SafeZoneW); - sizeEx = TextSize_normal; - onLBSelChanged = "_this call c_proving_ground_HJ_fnc_onConfigChange"; - }; - - class frmClasses:RscText - { - idc = -1; - type = CT_STATIC; - style = ST_FRAME; - x = ((0.01 * SafeZoneW) + SafeZoneX); - y = ((0.14 * SafeZoneH) + SafeZoneY); - w = (0.28 * SafeZoneW); - h = (0.47 * SafeZoneH); - sizeEx = TextSize_normal; - - text = "Classes"; - }; - - class lbClasses:RscIGUIListBox - { - idc = 110; - x = ((0.01 * SafeZoneW) + SafeZoneX); - y = ((0.14 * SafeZoneH) + SafeZoneY) + TextSize_normal; - w = (0.28 * SafeZoneW); - h = (0.46 * SafeZoneH) - (TextSize_normal / 2); - sizeEx = TextSize_normal; - - rowHeight = TextSize_normal; - - onLBDblClick = "_this call c_proving_ground_HJ_fnc_onDoubleClickClass;"; - }; - - class frmValues:RscText - { - idc = -1; - type = CT_STATIC; - style = ST_FRAME; - x = ((0.31 * SafeZoneW) + SafeZoneX); - y = ((0.14 * SafeZoneH) + SafeZoneY); - w = (0.68 * SafeZoneW); - h = (0.47 * SafeZoneH); - sizeEx = TextSize_normal; - - text = "Values"; - }; - - class lbValues:RscIGUIListBox - { - idc = 111; - x = ((0.31 * SafeZoneW) + SafeZoneX); - y = ((0.14 * SafeZoneH) + SafeZoneY) + TextSize_normal; - w = (0.68 * SafeZoneW); - h = (0.46 * SafeZoneH) - (TextSize_normal / 2); - sizeEx = TextSize_normal; - - rowHeight = TextSize_normal; - }; - - class sbtnDumpClasses:RSC_HJ_ShortcutButton - { - idc = 119; - x = ((0.09 * SafeZoneW) + SafeZoneX); - y = ((0.61 * SafeZoneH) + SafeZoneY); - - text = "dump"; - tooltip = "dump all classnames to edit box"; - - onButtonClick = "_this call c_proving_ground_HJ_fnc_onButtonClick_dump;"; - }; - - class sbtnUp:RSC_HJ_ShortcutButton - { - idc = 120; - x = ((0.19 * SafeZoneW) + SafeZoneX); - y = ((0.61 * SafeZoneH) + SafeZoneY); - - text = "up"; - tooltip = "move to parent class"; - - onButtonClick = "_this call c_proving_ground_HJ_fnc_onButtonClick_up;"; - }; - - class frmOrder:RscText - { - idc = -1; - type = CT_STATIC; - style = ST_FRAME; - x = ((0.01 * SafeZoneW) + SafeZoneX); - y = ((0.65 * SafeZoneH) + SafeZoneY); - w = (0.28 * SafeZoneW); - h = (0.25 * SafeZoneH); - text = "Parents"; - sizeEx = TextSize_normal; - // colorText[] = Color_OA_Text; - }; - - class lbOrder:RscIGUIListBox - { - idc = 112; - x = ((0.01 * SafeZoneW) + SafeZoneX); - y = ((0.65 * SafeZoneH) + SafeZoneY) + TextSize_normal; - w = (0.28 * SafeZoneW); - h = (0.25 * SafeZoneH) - TextSize_normal; - sizeEx = TextSize_normal; - - rowHeight = TextSize_normal; - }; - - class eCode:RscEdit - { - idc = 113; - style = ST_MULTI; - x = ((0.31 * SafeZoneW) + SafeZoneX); - y = ((0.65 * SafeZoneH) + SafeZoneY); - w = (0.68 * SafeZoneW); - h = (0.25 * SafeZoneH); - sizeEx = TextSize_small; - - font = "LucidaConsoleB"; - linespacing = 2; - autocomplete = "general"; - }; - - class sbtnCopyClip:RSC_HJ_ShortcutButton - { - x = ((0.31 * SafeZoneW) + SafeZoneX); - y = ((0.905 * SafeZoneH) + SafeZoneY); - - text = "-> Clipboard"; - tooltip = "copy all text to clipboard"; - - action = "copyToClipboard ctrlText 113;"; - }; - - class tVersion:RscText - { - style = ST_RIGHT; - x = ((0.70 * SafeZoneW) + SafeZoneX); - y = ((0.95 * SafeZoneH) + SafeZoneY); - w = (0.19 * SafeZoneW); - sizeEx = TextSize_small; - - text = EXPL_VERSION; - }; - - class sbtnClose:RSC_HJ_ShortcutButton - { - x = ((0.90 * SafeZoneW) + SafeZoneX); - y = ((0.95 * SafeZoneH) + SafeZoneY); - - text = "close"; - action = "closeDialog 0"; - - tooltip = "close explorer"; - }; -}; diff --git a/addons/proving_ground/CfgExplorer2/defs_base_control.cpp b/addons/proving_ground/CfgExplorer2/defs_base_control.cpp deleted file mode 100644 index c0a02a313..000000000 --- a/addons/proving_ground/CfgExplorer2/defs_base_control.cpp +++ /dev/null @@ -1,287 +0,0 @@ -class RscBackground { - type = 0; - IDC = -1; - style = 512; - x = 0; - y = 0; - w = 1; - h = 1; - text = ""; - ColorBackground[] = {0.48, 0.5, 0.35, 1}; - ColorText[] = {0.1, 0.1, 0.1, 1}; - font = "TahomaB"; - SizeEx = 1; -}; - -class RscCombo { - access = 0; - type = 4; - style = 0; - colorSelect[] = {0.023529, 0, 0.0313725, 1}; - colorText[] = {0.023529, 0, 0.0313725, 1}; - colorBackground[] = {0.95, 0.95, 0.95, 1}; - colorScrollbar[] = {0.023529, 0, 0.0313725, 1}; - soundSelect[] = {"", 0.1, 1}; - soundExpand[] = {"", 0.1, 1}; - soundCollapse[] = {"", 0.1, 1}; - maxHistoryDelay = 1; - x = 0; - y = 0; - w = 0.12; - h = 0.035; - colorSelectBackground[] = {0.543, 0.5742, 0.4102, 1}; - arrowEmpty = "\ca\ui\data\ui_arrow_combo_ca.paa"; - arrowFull = "\ca\ui\data\ui_arrow_combo_active_ca.paa"; - wholeHeight = 0.45; - color[] = {0, 0, 0, 0.6}; - colorActive[] = {0, 0, 0, 1}; - colorDisabled[] = {0, 0, 0, 0.3}; - font = "TahomaB"; - sizeEx = 0.03921; - class ComboScrollBar { - color[] = {1, 1, 1, 0.6}; - colorActive[] = {1, 1, 1, 1}; - colorDisabled[] = {1, 1, 1, 0.3}; - thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; - arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; - arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; - border = "\ca\ui\data\ui_border_scroll_ca.paa"; - }; - -}; - -class RscEdit { - access = 0; - type = 2; - h = 0.04; - colorBackground[] = {0, 0, 0, 1}; - colorText[] = {0.95, 0.95, 0.95, 1}; - colorSelection[] = {0.543, 0.5742, 0.4102, 1}; - autocomplete = ""; - text = ""; - size = 0.2; - style = "0x00 + 0x40"; - font = "TahomaB"; - sizeEx = 0.03921; -}; - -class RscIGUIListBox { - color[] = {1, 1, 1, 1}; - colorText[] = {0.6, 0.8392, 0.4706, 1}; - colorScrollbar[] = {0.95, 0.95, 0.95, 1}; - colorSelect[] = {0.023529, 0, 0.0313725, 1}; - colorSelect2[] = {0.023529, 0, 0.0313725, 1}; - colorSelectBackground[] = {0.6, 0.8392, 0.4706, 1}; - colorSelectBackground2[] = {0.6, 0.8392, 0.4706, 1}; - period = 0; - colorBackground[] = {0, 0, 0, 1}; - sizeEx = 0.034; - - // Values from class: RscListBox // - - access = 0; - w = 0.4; - h = 0.4; - rowHeight = 0; - soundSelect[] = {"", 0.1, 1}; - arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; - arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; - type = 5; - style = 16; - font = "TahomaB"; - maxHistoryDelay = 1; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; - - class ListScrollBar { - color[] = {1, 1, 1, 0.6}; - colorActive[] = {1, 1, 1, 1}; - colorDisabled[] = {1, 1, 1, 0.3}; - thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa"; - arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; - arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa"; - border = "\ca\ui\data\igui_border_scroll_ca.paa"; - }; -}; - -class RscStandardDisplay { - access = 0; - movingEnable = 1; - enableSimulation = 1; - enableDisplay = 1; -}; - -class RscText { - access = 0; - type = 0; - idc = -1; - colorBackground[] = {0, 0, 0, 0}; - colorText[] = {0.543, 0.5742, 0.4102, 1}; - text = ""; - x = 0; - y = 0; - h = 0.037; - w = 0.3; - style = 256; - font = "TahomaB"; - SizeEx = 0.03921; -}; - -class RscTitle : RscText { - style = 2; - x = 0.15; - y = 0.06; - w = 0.7; - - // Values from class: RscText // - - access = 0; - type = 0; - idc = -1; - colorBackground[] = {0, 0, 0, 0}; - colorText[] = {0.543, 0.5742, 0.4102, 1}; - text = ""; - h = 0.037; - font = "TahomaB"; - SizeEx = 0.03921; -}; - -class RscShortcutButton { - x = 0.1; - y = 0.1; - shortcuts[] = {}; - textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; - color[] = {0.543, 0.5742, 0.4102, 1}; - color2[] = {0.95, 0.95, 0.95, 1}; - colorFocused[] = {0.543, 0.5742, 0.4102, 1}; - colorDisabled[] = {1, 1, 1, 0.25}; - colorBackground[] = {1, 1, 1, 1}; - colorBackground2[] = {1, 1, 1, 0.4}; - colorBackgroundFocused[] = {1, 1, 1, 1}; - type = 16; - idc = -1; - style = 0; - default = 0; - w = 0.183825; - h = 0.104575; - periodFocus = 1.2; - periodOver = 0.8; - animTextureNormal = "\ca\ui\data\ui_button_normal_ca.paa"; - animTextureDisabled = "\ca\ui\data\ui_button_disabled_ca.paa"; - animTextureOver = "\ca\ui\data\ui_button_over_ca.paa"; - animTextureFocused = "\ca\ui\data\ui_button_focus_ca.paa"; - animTexturePressed = "\ca\ui\data\ui_button_down_ca.paa"; - animTextureDefault = "\ca\ui\data\ui_button_default_ca.paa"; - period = 0.4; - font = "TahomaB"; - size = 0.03921; - sizeEx = 0.03921; - text = ""; - soundEnter[] = {"", 0.09, 1}; - soundPush[] = {"", 0.09, 1}; - soundClick[] = {"\ca\ui\data\sound\new1", 0.07, 1}; - soundEscape[] = {"", 0.09, 1}; - action = ""; - - class Attributes { - font = "TahomaB"; - color = "#E5E5E5"; - align = "left"; - shadow = "true"; - }; - - class AttributesImage { - font = "TahomaB"; - color = "#E5E5E5"; - align = "left"; - }; - - class HitZone { - left = 0.004; - top = 0.029; - right = 0.004; - bottom = 0.029; - }; - - class ShortcutPos { - left = 0.0145; - top = 0.026; - w = 0.0392157; - h = 0.0522876; - }; - - class TextPos { - left = 0.025; - top = 0.034; - right = 0.005; - bottom = 0.005; - }; -}; - -class RscIGUIShortcutButton : RscShortcutButton { - w = 0.183825; - h = 0.0522876; - style = 2; - color[] = {1, 1, 1, 1}; - color2[] = {1, 1, 1, 0.85}; - colorBackground[] = {1, 1, 1, 1}; - colorbackground2[] = {1, 1, 1, 0.85}; - colorDisabled[] = {1, 1, 1, 0.4}; - animTextureNormal = "\ca\ui\data\igui_button_normal_ca.paa"; - animTextureDisabled = "\ca\ui\data\igui_button_disabled_ca.paa"; - animTextureOver = "\ca\ui\data\igui_button_over_ca.paa"; - animTextureFocused = "\ca\ui\data\igui_button_focus_ca.paa"; - animTexturePressed = "\ca\ui\data\igui_button_down_ca.paa"; - animTextureDefault = "\ca\ui\data\igui_button_normal_ca.paa"; - - // Values from class: RscShortcutButton // - - x = 0.1; - y = 0.1; - shortcuts[] = {}; - textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; - type = 16; - idc = -1; - default = 0; - periodFocus = 1.2; - periodOver = 0.8; - period = 0.4; - font = "TahomaB"; - size = 0.03921; - sizeEx = 0.03921; - text = ""; - soundEnter[] = {"", 0.09, 1}; - soundPush[] = {"", 0.09, 1}; - soundClick[] = {"\ca\ui\data\sound\new1", 0.07, 1}; - soundEscape[] = {"", 0.09, 1}; - action = ""; - - class Attributes { - font = "TahomaB"; - color = "#E5E5E5"; - align = "center"; - shadow = "true"; - }; - - class HitZone { - left = 0.002; - top = 0.003; - right = 0.002; - bottom = 0.016; - }; - - class ShortcutPos { - left = -0.006; - top = -0.007; - w = 0.0392157; - h = 0.0522876; - }; - - class TextPos { - left = 0.02; - top = 0; - right = 0.002; - bottom = 0.016; - }; -}; diff --git a/addons/proving_ground/CfgExplorer2/scripts/ArrayToString.sqf b/addons/proving_ground/CfgExplorer2/scripts/ArrayToString.sqf deleted file mode 100644 index acd773d3d..000000000 --- a/addons/proving_ground/CfgExplorer2/scripts/ArrayToString.sqf +++ /dev/null @@ -1,58 +0,0 @@ -#include "macros.hpp" -disableSerialization; -private ["_configRoot", "_currentPath", "_ValuesArray", "_debug", "_OutString", "_TypeName", "_inArray", "_maxI", "_i"]; - -// *** -// *** get parameter -// *** -_inArray = _this select 0; -if ((TypeName _inArray) != "ARRAY") exitWith -{ - // "parameter error in ArrayToString.sqf" - diag_log text "#ArrayToString: Parameter Error in ArrayToString.sqf. Expected: Array."; -}; - -// *** -// *** define output parameter -// *** -_OutString = "{"; - -// *** -// *** building the string -// *** -_maxI = (count _inArray) - 1; - -for "_i" from 0 to (_maxI) do -{ - _TypeName = TypeName (_inArray select _i); - - switch (_TypeName) do - { - case "STRING": - { - _OutString = format["%1""%2""",_OutString,_inArray select _i]; - }; - - case "SCALAR": - { - _OutString = format["%1%2",_OutString,_inArray select _i]; - }; - - case "ARRAY": - { - _OutString = format["%1%2",_OutString,[_inArray select _i] call GFNC(ArrayToString)]; - }; - }; - // add a seperator "," if it is not the last item - If (_i != _maxI) then - { - _OutString = _OutString + ", "; - }; -}; - -_OutString = _OutString + "}"; - -// *** -// *** return the string -// *** -_OutString diff --git a/addons/proving_ground/CfgExplorer2/scripts/EndDialog.sqf b/addons/proving_ground/CfgExplorer2/scripts/EndDialog.sqf deleted file mode 100644 index b42a3118b..000000000 --- a/addons/proving_ground/CfgExplorer2/scripts/EndDialog.sqf +++ /dev/null @@ -1,8 +0,0 @@ -#include "macros.hpp" -GVAR(GameConfig) = nil; -GVAR(MissionConfig) = nil; -GVAR(CampaignConfig) = nil; - -CurrentRoot = nil; -CurrentConfig = nil; -ConfigPath = nil; diff --git a/addons/proving_ground/CfgExplorer2/scripts/FillClasses.sqf b/addons/proving_ground/CfgExplorer2/scripts/FillClasses.sqf deleted file mode 100644 index 00e6951f8..000000000 --- a/addons/proving_ground/CfgExplorer2/scripts/FillClasses.sqf +++ /dev/null @@ -1,44 +0,0 @@ -#include "macros.hpp" -disableSerialization; -private ["_curConfig", "_preIndex", "_i", "_Entry", "_cfgName", "_index"]; - -// *** -// *** Get Parameter -// *** -_curConfig = _this select 0; -if ((typeName _curConfig) != "CONFIG") then -{ - diag_log "Parameter 1 is not of type CONFIG."; -}; - -// *** -// *** Check for second Parameter -// *** -if ((count _this) > 1) then -{ - _preIndex = _this select 1; -} -else -{ - _preIndex = 0; -}; - -// *** -// *** Get Classes and add them to class listbox -// *** -for "_i" from 0 to ((count _curConfig) - 1) do -{ - _Entry = (_curConfig) select _i; - _cfgName = configName _Entry; - - if (isClass _Entry) then - { - _index = lbAdd [110, format["%1",_cfgName]]; - }; -}; - -// *** -// *** Sort list box and preselect item -// *** -lbSort ((findDisplay 19000) displayCtrl 110); -lbSetCurSel [110, _preIndex]; diff --git a/addons/proving_ground/CfgExplorer2/scripts/FillValues.sqf b/addons/proving_ground/CfgExplorer2/scripts/FillValues.sqf deleted file mode 100644 index dd440772a..000000000 --- a/addons/proving_ground/CfgExplorer2/scripts/FillValues.sqf +++ /dev/null @@ -1,102 +0,0 @@ -#include "macros.hpp" -disableSerialization; -private ["_curConfig", "_valueNames", "_parentLevel", "_Entry", "_EntryName", "_Code", "_confName", "_newLine", "_y", "_text", "_index", "_ArrayString"]; - -// *** -// *** Get Parameters -// *** -_curConfig = _this select 0; -_valueNames = _this select 1; -_parentLevel = _this select 2; - -if ((count _this) > 3) then -{ - _Code = _this select 3; -} -else -{ - _Code = ""; -}; - -// *** -// *** Get values from this config hive -// *** - -_confName = configName _curConfig; - -// *** -// *** add configName to parents box -// *** - -lbadd [112,format["%1 > %2",_parentLevel,_confName]]; - -_newLine = " -"; - -if (_parentLevel == 0) then -{ - // *** - // *** write the class header - // *** - - if (format["%1", inheritsFrom _curConfig] == "") then { - _Code = _Code + format["class %1 { %2",configName _curConfig,_newLine]; - } else - { - _Code = _Code + format["class %1 : %3 { %2",configName _curConfig,_newLine, configName (inheritsFrom _curConfig)]; - } - -} else -{ - // *** - // ***Following values are from an inherited class - // ***Add a comment to the code - - _Code = _Code + format["%1",_newLine]; - _Code = _Code + format[" // Values from class: %1 //%2",configName _curConfig,_newLine]; - _Code = _Code + format["%1",_newLine]; -}; - -for "_y" from 0 to ((count _curConfig) - 1) do { - _Entry = (_curConfig) select _y; - _EntryName = configName _Entry; - - if (not (isClass _Entry) && (not ((toUpper _EntryName) in _valueNames))) then { - if (isNumber _Entry) then { - _text = format["%1: %3 => %4",_parentLevel,_confName,_EntryName,getNumber _Entry]; - _index = lbAdd [111, _text]; - - _Code = _Code + format[" %1 = %2; %3",_EntryName, getNumber _Entry, _NewLine]; - }; - if (isText _Entry) then { - _text = format["%1: %3 => ""%4""",_parentLevel,_confName,_EntryName,gettext _Entry]; - _index = lbAdd [111, _text]; - - _Code = _Code + format[" %1 = ""%2""; %3",_EntryName, getText _Entry, _NewLine]; - }; - if (isArray _Entry) then { - _text = format["%1: %3 => %4",_parentLevel,_confName,_EntryName,getArray _Entry]; - _index = lbAdd [111, _text]; - _ArrayString = [getArray _Entry] call GFNC(ArrayToString); - - _Code = _Code + format[" %1[] = %2; %3",_EntryName, _ArrayString, _NewLine]; - }; - _valueNames = _valueNames + [toUpper _EntryName]; - }; -}; - -// *** -// *** Get values from next parent class -// *** -if isClass(inheritsFrom _curConfig) then -{ - _Code = [inheritsFrom _curConfig, _valueNames, (_parentLevel + 1), _Code ] call GFNC(FillValues); -}; -lbSort ((findDisplay 19000) displayCtrl 111); -if (_parentLevel == 0) then -{ - _Code = _Code + "}"; - ctrlSetText [113, _Code]; -}; - -_Code diff --git a/addons/proving_ground/CfgExplorer2/scripts/InitDialog.sqf b/addons/proving_ground/CfgExplorer2/scripts/InitDialog.sqf deleted file mode 100644 index 56526c6cc..000000000 --- a/addons/proving_ground/CfgExplorer2/scripts/InitDialog.sqf +++ /dev/null @@ -1,44 +0,0 @@ -#include "macros.hpp" -disableSerialization; -private ["_display","_tmpIndex"]; - -// *** -// *** define some public variables -// *** - -GVAR(GameConfig) = 0; // configFile -GVAR(MissionConfig) = 1; // missionConfigFile -GVAR(CampaignConfig) = 2; // campaignConfigFile - -CurrentRoot = configFile; // Current Root Config -CurrentConfig = configFile; // Current Config Path -ConfigPath = []; // Paths below Config Root (String Array) - - -_display = findDisplay 19000; - -// *** -// *** Add UI Event handlers to Config Combo List -// *** Hint: Must be set before setting the init value to the ComboList (lbSetCurSel) !!! -// *** - -//(_display displayCtrl 103) ctrlSetEventHandler ["LBSelChanged", "_this call c_proving_ground_HJ_fnc_onConfigChange"]; -//(_display displayCtrl 110) ctrlSetEventHandler ["LBDblClick ", "_this spawn c_proving_ground_HJ_fnc_onDoubleClickClass"]; - -// *** -// *** Fill ComboList with the available Config Namespaces -// *** - -_tmpIndex = lbadd [103, "Game"]; -lbSetValue [103, _tmpIndex, GVAR(GameConfig)]; -_tmpIndex = lbadd [103, "Mission"]; -lbSetValue [103, _tmpIndex, GVAR(MissionConfig)]; -_tmpIndex = lbadd [103, "Campaign"]; -lbSetValue [103, _tmpIndex, GVAR(CampaignConfig)]; - -lbSetCurSel [103, 0]; - -// *** -// *** set inital focus to the class list box -// *** -ctrlSetFocus (_display displayCtrl 110); diff --git a/addons/proving_ground/CfgExplorer2/scripts/ShowConfig.sqf b/addons/proving_ground/CfgExplorer2/scripts/ShowConfig.sqf deleted file mode 100644 index ffb38a4a2..000000000 --- a/addons/proving_ground/CfgExplorer2/scripts/ShowConfig.sqf +++ /dev/null @@ -1,67 +0,0 @@ -#include "macros.hpp" -disableSerialization; -private ["_configRoot", "_currentPath", "_ValuesArray", "_debug"]; - -// *** -// *** get parameter -// *** - -_configRoot = _this select 0; -_configPath = _this select 1; -_currentConfig = _configPath select (count(_configPath)-1); // returns last element - -// *** -// *** clear all List-/editboxes -// *** - -lbClear 110; //lbClasses -lbClear 113; //eCode - -// *** -// *** build and show config path -// *** - -if (count _configPath == 1) then -{ - ctrlSetText [101, "ROOT"]; -} else -{ - // TODO: Cutting off the Name - // _lenRootName = count (toArray ConfigRoot); - // _cfgNameArray = toarray (_configPath select ((count _configPath) -1)); - - ctrlSetText [101, format["%1",_configPath select ((count _configPath) -1)]]; -}; - -// *** -// *** Set state of "UP" button -// *** - -if (count _configPath == 1) then -{ - ctrlEnable [120, false]; -} -else -{ - ctrlEnable [120, true]; -}; - -// *** -// *** fill classes list box -// *** - -[_currentConfig, 0] call GFNC(FillClasses); - -// *** -// *** clear list boxes -// *** -lbClear 111; //lbValues -lbClear 112; //lbParents - -// *** -// *** Fill values list box and parents list box -// *** - -[_currentConfig, [], 0] call GFNC(FillValues); - - diff --git a/addons/proving_ground/CfgExplorer2/scripts/macros.hpp b/addons/proving_ground/CfgExplorer2/scripts/macros.hpp deleted file mode 100644 index e0c75b7d0..000000000 --- a/addons/proving_ground/CfgExplorer2/scripts/macros.hpp +++ /dev/null @@ -1,9 +0,0 @@ -#define __autor_prefix c_ -#define __addon_prefix proving_ground_HJ_ -#define __quoted(str) #str -#define __concat2(var1,var2) ##var1####var2 -#define __concat3(var1,var2,var3) ##var1####var2####var3 -#define __concat4(var1,var2,var3,var4) ##var1####var2####var3####var4 -#define __preprocess compile preprocessFileLineNumbers -#define GVAR(a) __concat3(__autor_prefix,__addon_prefix,a) -#define GFNC(a) __concat4(__autor_prefix,__addon_prefix,fnc_,a) diff --git a/addons/proving_ground/CfgExplorer2/scripts/onButtonClick_dump.sqf b/addons/proving_ground/CfgExplorer2/scripts/onButtonClick_dump.sqf deleted file mode 100644 index 3cda95f71..000000000 --- a/addons/proving_ground/CfgExplorer2/scripts/onButtonClick_dump.sqf +++ /dev/null @@ -1,64 +0,0 @@ -#include "macros.hpp" -scriptname "onBC_dump.sqf"; -private ["_lbIDC", "_outputIDC", "_size", "_outText", "_crlf"]; -_curConfig = CurrentConfig; -hint format ["%1",[_curConfig]]; -_lbIDC = 110; -_outputIDC = 113; -_size = lbSize 110; -_outText = ""; -_tab = " "; -_crlf = " -"; - -_parseEnrty = { - _entry = _this select 0; - _needClass = _this select 1; - _return = []; - for "_i" from 0 to (count _entry)-1 do { - _subEntry = _entry select _i; - if ((isClass _subEntry)&&_needClass) then { - _return set [count _return,_subEntry]; - }; - if (!(isClass _subEntry)&&!_needClass) then { - _return set [count _return,_subEntry]; - }; - }; - _return -}; - -// -// clear output box -// -ctrlSetText [_outputIDC,""]; - -// -// iterate throu entries of list box -// -{ - // diag_log text format ["%1", lbtext [_lbIDC,_x]]; - _class = _x; - if ((str inheritsFrom _class)!="") then { - _outText = _outText + format["class %1 : %2 {",configName _class,configName inheritsFrom _class] + _crlf; - }else{ - _outText = _outText + format["class %1 {",configName _class] + _crlf; - }; - - - { - _Entry = _x; - _EntryName = configName _Entry; - _val = switch true do { - case (isNumber _Entry): {[_EntryName,getNumber _Entry]}; - case (isText _Entry): {[_EntryName,""""+getText _Entry+""""]}; - case (isArray _Entry): {[_EntryName+"[]",[getArray _Entry] call GFNC(ArrayToString)]}; - default {nil}; - }; - _text = _tab + format["%1 = %2;",_val select 0,_val select 1]; - _outText = _outText + _text + _crlf; - } forEach ([_class,false] call _parseEnrty); - - _outText = _outText + "};" + _crlf; -} forEach ([_curConfig,true] call _parseEnrty); -ctrlSetText [_outputIDC,_outText]; - diff --git a/addons/proving_ground/CfgExplorer2/scripts/onButtonClick_up.sqf b/addons/proving_ground/CfgExplorer2/scripts/onButtonClick_up.sqf deleted file mode 100644 index c6d46067c..000000000 --- a/addons/proving_ground/CfgExplorer2/scripts/onButtonClick_up.sqf +++ /dev/null @@ -1,79 +0,0 @@ -#include "macros.hpp" -disableSerialization; -private ["_LastClassName", "_lbCount", "_i", "_notFound", "_text", "_debug"]; - -// *** -// *** set debug output (arma.rpt) -// *** -_debug = false; - -// *** -// *** Set Current Path to Parent Path -// *** - -if ((count ConfigPath) < 2) then -{ - diag_log "onButtonClickUp.sqf: ERROR: Not enough Values in Array ConfigPath!"; - if (true) exitWith {}; -}; - -CurrentConfig = ConfigPath select (count ConfigPath - 2); - -_LastClassName = toUpper (configName (ConfigPath select (count ConfigPath - 1))); - -if (_debug) then -{ - diag_log text "===== onButtonClickUp.sqf ====="; - diag_log text format["onButtonClickUp.sqf: ConfigPath : %1",ConfigPath]; - diag_log text format["onButtonClickUp.sqf: CurrentConfig : %1",CurrentConfig]; - diag_log text format["onButtonClickUp.sqf: _LastClassName: %1",_LastClassName]; -}; - -// *** -// *** Delete the last path from CofnigPath -// *** - -ConfigPath resize (count ConfigPath - 1); - -// *** -// *** Fill dialog controls -// *** -if (_debug) then -{ - diag_log format["onButtonClickUp.sqf: Parameters for hj_fn_showConfig: %1, %2",CurrentRoot, CurrentConfig]; -}; -[CurrentRoot, ConfigPath] call GFNC(showConfig); - -// *** -// *** Autoselect last selected class -// *** - -_notFound = true; -_lbCount = (lbsize 110) - 1; // count entrys in listbox - -if (_debug) then -{ - diag_log format["onButtonClickUP.sqf: Searching for Classname: %1", _LastClassName]; -}; - -for "_i" from 0 to _lbCount do -{ - _text = toUpper (lbtext[110, _i]); - - if (_text == _LastClassName) then - { - lbSetCurSel [110, _i]; - _notFound = false; - }; -}; - -// *** -// *** if no entry was found, select first one -// *** - -if (_notFound) then -{ - diag_log text format["onButtonClickUp.sqf: Anzahl Werte in ClassListBox: %1",_lbCount]; - diag_log text format["onButtonClickUp.sqf: Error, no ClassName found!"]; - lbSetCurSel [110, 0]; -}; diff --git a/addons/proving_ground/CfgExplorer2/scripts/onConfigChange.sqf b/addons/proving_ground/CfgExplorer2/scripts/onConfigChange.sqf deleted file mode 100644 index 59b041cd8..000000000 --- a/addons/proving_ground/CfgExplorer2/scripts/onConfigChange.sqf +++ /dev/null @@ -1,38 +0,0 @@ -#include "macros.hpp" -disableSerialization; -private ["_currentCtrl", "_selectedIndex"]; - -_currentCtrl = _this select 0; // not really used -_selectedIndex = _this select 1; - -// *** -// *** Select the config namespace -// *** and set some global variables to inital values -// *** - -switch (_selectedIndex) do -{ - case 0: - { - CurrentRoot = configFile; - CurrentConfig = configFile; - ConfigPath = [configFile]; - }; - - case 1: - { - CurrentRoot = missionConfigFile; - CurrentConfig = missionConfigFile; - ConfigPath = [missionConfigFile]; - }; - - case 2: - { - CurrentRoot = campaignConfigFile; - CurrentConfig = campaignConfigFile; - ConfigPath = [campaignConfigFile]; - }; -}; -GVAR(IndexOrder) = []; - -[CurrentRoot,ConfigPath] call GFNC(showConfig); diff --git a/addons/proving_ground/CfgExplorer2/scripts/onDoubleClickClass.sqf b/addons/proving_ground/CfgExplorer2/scripts/onDoubleClickClass.sqf deleted file mode 100644 index ff8ca238f..000000000 --- a/addons/proving_ground/CfgExplorer2/scripts/onDoubleClickClass.sqf +++ /dev/null @@ -1,22 +0,0 @@ -#include "macros.hpp" -disableSerialization; -private["_control","_index","_selectedEntryName", "_Entry","_ConfName","_nix"]; - -// *** -// *** get parameter -// *** - -_control = _this select 0; -_index = _this select 1; - -_selectedEntryName = lbText [110,_index]; - -// *** -// *** get the new configObject -// *** -_Entry = (CurrentConfig >> _selectedEntryName); - -CurrentConfig = _Entry; -ConfigPath = ConfigPath + [_Entry]; - -[ConfigRoot, ConfigPath] call GFNC(showConfig); diff --git a/addons/proving_ground/PG_config.hpp b/addons/proving_ground/PG_config.hpp deleted file mode 100644 index 51c6d52d6..000000000 --- a/addons/proving_ground/PG_config.hpp +++ /dev/null @@ -1,1586 +0,0 @@ -#include "defs_ui.hpp" -#include "defs.hpp" - -class balca_debug_main -{ - idd = balca_debug_main_IDD; - name = "balca_debug_main"; - movingEnable = false; - - controlsBackground[] = {}; - objects[] = {}; - controls[] = { - balca_btn_control_group - }; -///////////// -#include "defs_base_control.hpp" -///////////// - - class balca_btn_control_group : balca_debug_control_group { - x = safezoneX_PG; - w = 1; - y = safezoneY_PG; - h = 1; - - class Controls { - //column 1 - class balca_cVeh_btn : balca_debug_btn - { - x = 0; w = column_weight-column_div; - y = 0; - text = "Create vehicle"; - action = "if (isServer) then { closeDialog 0; createDialog ""balca_debug_veh_creator""; [0] call c_proving_ground_fnc_create_vehicle } else { closeDialog 0; createDialog ""balca_debug_veh_creator""; [0] call c_proving_ground_fnc_create_vehicle; ['You may get kicked if BattlEye is monitoring createVehicle.','WARNING'] spawn BIS_fnc_guiMessage }"; - }; - - class balca_cWeap_btn : balca_debug_btn - { - x = 0; w = column_weight-column_div; - y = btn_height*1; - text = "Get weapon"; - action = "closeDialog 0;createDialog ""balca_debug_weap_creator"";[0,0] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_targets_btn : balca_debug_btn - { - x = 0; w = column_weight-column_div; - y = btn_height*2; - text = "Targets"; - action = "closeDialog 0;if ((serverCommandAvailable '#kick')||isServer) then {createDialog ""balca_target_display"";[0] call c_proving_ground_fnc_target;[1] call c_proving_ground_fnc_target;}else{hint 'Target management not allowed for you'}"; - }; - - class balca_environment_btn : balca_debug_btn - { - x = 0; w = column_weight-column_div; - y = btn_height*3; - text = "Environment"; - action = "closeDialog 0;createDialog ""balca_environment"";[0] call c_proving_ground_fnc_environment"; - }; - - class balca_stat_btn : balca_debug_btn - { - x = 0; w = column_weight-column_div; - y = btn_height*4; - text = "Statistics"; - action = "closeDialog 0;createDialog ""balca_statistics"";[0] call c_proving_ground_fnc_statistics"; - }; - - class balca_realign_core_btn : balca_debug_btn - { - x = 0; w = column_weight-column_div; - y = btn_height*6; - text = "Realign core"; - action = "closeDialog 0;_core = c_proving_ground_core;_dir = direction player;_pos = getPos player;_core setPos [(_pos select 0)+10*sin(_dir),(_pos select 1)+10*cos(_dir),0];_core setDir _dir;_marker = createMarkerLocal ['respawn_west',_pos];createMarkerLocal ['respawn_east',_pos];createMarkerLocal ['respawn_guerrila',_pos];createMarkerLocal ['respawn_civilian',_pos];closeDialog 0;"; - }; - - /*class balca_get_bot_btn : balca_debug_btn - { - x = 0; w = column_weight-column_div; - y = btn_height*7; - text = "Get bot in team"; - action = "((group player) createUnit [typeOf player,getpos player,[],0.1,""FORM""]) setSkill 1"; - };*/ - - class balca_dVeh_btn : balca_debug_btn - { - x = 0; w = column_weight-column_div; - y = btn_height*8; - text = "Delete vehicle"; - action = "deleteVehicle cursorTarget;"; - }; - - - //column 2 - class balca_ammo_btn : balca_debug_btn - { - x = column_weight; w = column_weight-column_div; - y = btn_height*0; - text = "Ammo"; - action = "[] call c_proving_ground_fnc_ammo"; - }; - - class balca_repair_btn : balca_debug_btn - { - x = column_weight; w = column_weight-column_div; - y = btn_height*1; - text = "Autoheal"; - action = "player setDamage 0; (vehicle player) setDamage 0;"; - }; - - class balca_booster_btn : balca_debug_btn - { - x = column_weight; w = column_weight-column_div; - y = btn_height*2; - text = "Booster"; - action = "[] spawn c_proving_ground_fnc_booster;closeDialog 0;"; - }; - - class balca_teleport_btn : balca_debug_btn - { - x = column_weight; w = column_weight-column_div; - y = btn_height*3; - text = "Teleport"; - action = "hint ""Click on map to teleport"";onMapSingleClick ""vehicle player setPos [_pos select 0,_pos select 1,0]; onMapSingleClick '';""; openMap true; closeDialog 0;"; - }; - - class balca_sattelite_btn : balca_debug_btn - { - x = column_weight; w = column_weight-column_div; - y = btn_height*4; - text = "Sattelite"; - action = "hint ""Click on map to aim sattelite"";onMapSingleClick ""[_pos] call c_proving_ground_fnc_sattelite;onMapSingleClick '';""; openMap true; closeDialog 0;"; - }; - - class balca_bulletcam_btn : balca_debug_btn - { - x = column_weight; w = column_weight-column_div; - y = btn_height*5; - text = "Bulletcam"; - action = """bulletcam"" call c_proving_ground_fnc_bulletcam;"; - }; - - class balca_marker_btn : balca_debug_btn - { - x = column_weight; w = column_weight-column_div; - y = btn_height*6; - text = "Hitmarker"; - action = """hitmarker"" call c_proving_ground_fnc_bulletcam;"; - }; - - /*class balca_status_btn : balca_debug_btn - { - x = column_weight; w = column_weight-column_div; - y = btn_height*7; - text = "Status display"; - action = "closeDialog 0;call c_proving_ground_fnc_status"; - };*/ - - class balca_console_btn : balca_debug_btn - { - x = column_weight; w = column_weight-column_div; - y = btn_height*8; - text = "Console"; - action = "closeDialog 0;createDialog ""balca_debug_console"";[0] call c_proving_ground_fnc_exec_console; if (!isServer) then { ['Some commands can get you kicked by BattlEye.','WARNING'] spawn BIS_fnc_guiMessage }"; - }; - //column 3 - class balca_sound_btn : balca_debug_btn - { - x = column_weight*2; w = column_weight-column_div; - y = btn_height*0; - text = "Sound player"; - action = "closeDialog 0;createDialog ""balca_sound_player"";[0] call c_proving_ground_fnc_sound;"; - }; - - class balca_display_btn : balca_debug_btn - { - x = column_weight*2; w = column_weight-column_div; - y = btn_height*1; - text = "BalCa"; - action = "execVM ""\x\addons\balca\balca.sqf"";closeDialog 0;"; - }; - - class balca_reload_btn : balca_debug_btn - { - x = column_weight*2; w = column_weight-column_div; - y = btn_height*2; - text = "Reloader"; - action = "closeDialog 0;(vehicle player) spawn c_proving_ground_reloader_fnc_act_open_dialog;"; - }; - - class balca_cfgexplorer_btn : balca_debug_btn - { - x = column_weight*2; w = column_weight-column_div; - y = btn_height*3; - text = "cfgExplorer"; - action = "closeDialog 0;createDialog ""HJ_ConfigExplorer"";[] call c_proving_ground_HJ_fnc_InitDialog;"; - }; - - class balca_BIS_help_btn : balca_debug_btn - { - x = column_weight*2; w = column_weight-column_div; - y = btn_height*4; - text = "BIS Functions Viewer"; - action = "closeDialog 0;[] call BIS_fnc_help"; - }; - - class balca_BIS_cfgviewer_btn : balca_debug_btn - { - x = column_weight*2; w = column_weight-column_div; - y = btn_height*5; - text = "BIS Config Viewer"; - action = "closeDialog 0;[] call BIS_fnc_configviewer"; - }; - class balca_close_btn : balca_debug_btn - { - x = column_weight*2; w = column_weight-column_div; - y = btn_height*8; - text = "Close"; - action = "closeDialog 0;"; - }; - }; - };//end btn control group -__onLoad - -}; - -class balca_debug_veh_creator -{ - idd = balca_debug_VC_IDD; - name = "balca_debug_veh_creator"; - movingEnable = false; - - controlsBackground[] = {balca_debug_background}; - objects[] = {}; - controls[] = { - balca_VC_vehlist, - balca_VC_vehicle_shortcut, - balca_VC_veh_info, - balca_VC_fill_static, - balca_VC_fill_car, - balca_VC_fill_truck, - balca_VC_fill_APC, - balca_VC_fill_tank, - balca_VC_fill_helicopter, - balca_VC_fill_plane, - balca_VC_fill_ship, - balca_VC_class_to_clipboard_btn, - balca_VC_info_to_clipboard_btn, - balca_VC_create_veh_core_btn, - balca_VC_create_veh_player_btn, - balca_VC_close_btn - }; -///////////////// - class balca_debug_background - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE; - x = safezoneX_PG-border_offsetX; w = column_weight*3 + border_offsetX*3; - y = safezoneY_PG-border_offsetY-btn_height*3; h = display_height+border_offsetY*2+btn_height*4; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "PuristaMedium"; - sizeEx = 0.032; - }; - - -///////////// -#include "defs_base_control.hpp" -///////////// - - class balca_VC_vehlist : balca_debug_list - { - idc = balca_VC_vehlist_IDC; - x = safezoneX_PG; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2; - h = display_height - offset_bottom*4 - (safezoneY_PG + offset_top*2); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= "[1] call c_proving_ground_fnc_create_vehicle"; - onLBDblClick = "[2] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_vehicle_shortcut : balca_debug_image - { - idc = balca_VC_vehicle_shortcut_IDC; - x = safezoneX_PG + column_weight; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2; - h = img_height; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - }; - - class balca_VC_veh_info : balca_debug_text - { - idc = balca_VC_veh_info_IDC; - type = CT_STRUCTURED_TEXT+ST_LEFT; - size = 0.023; - x = safezoneX_PG + column_weight*2; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2; - h = display_height - offset_bottom*3-(safezoneY_PG + offset_top*2); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - }; - - class balca_VC_fill_static : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*0; w = btn_weight-column_div; - y = safezoneY_PG - btn_height; - text = "Static"; - action = "[0,0] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_fill_car : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*0; w = btn_weight-column_div; - y = safezoneY_PG; - text = "Car"; - action = "[0,1] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_fill_truck : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*1; w = btn_weight-column_div; - y = safezoneY_PG - btn_height; - text = "Truck"; - action = "[0,2] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_fill_APC : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*1; w = btn_weight-column_div; - y = safezoneY_PG; - text = "APC"; - action = "[0,3] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_fill_tank : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*2; w = btn_weight-column_div; - y = safezoneY_PG - btn_height; - text = "Tank"; - action = "[0,4] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_fill_helicopter : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*2; w = btn_weight-column_div; - y = safezoneY_PG; - text = "Helicopter"; - action = "[0,5] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_fill_plane : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*3; w = btn_weight-column_div; - y = safezoneY_PG - btn_height; - text = "Plane"; - action = "[0,6] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_fill_ship : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*3; w = btn_weight-column_div; - y = safezoneY_PG; - text = "Ship"; - action = "[0,7] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_class_to_clipboard_btn : balca_debug_btn - { - x = safezoneX_PG; w = column_weight-column_div; - y = display_height-safezoneY_PG- offset_bottom-btn_height; - text = "Class to clipboard"; - action = "[4] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_info_to_clipboard_btn : balca_debug_btn - { - x = safezoneX_PG+column_weight*2; w = column_weight-column_div; - y = display_height-safezoneY_PG- offset_bottom-btn_height; - text = "Info to clipboard"; - action = "[5] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_create_veh_core_btn : balca_debug_btn - { - x = safezoneX_PG+column_weight; w = column_weight-column_div; - y = safezoneY_PG + offset_top*2+img_height; - text = "Create at core"; - action = "[2] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_create_veh_player_btn : balca_debug_btn - { - x = safezoneX_PG+column_weight; w = column_weight-column_div; - y = safezoneY_PG + offset_top*2+img_height + btn_height; - text = "Create at player"; - action = "[3] call c_proving_ground_fnc_create_vehicle"; - }; - - class balca_VC_close_btn : balca_debug_btn - { - x = safezoneX_PG+column_weight*2; w = btn_weight; - y = display_height-safezoneY_PG- offset_bottom; - text = "Back"; - action = "closeDialog 0; createDialog 'balca_debug_main'"; - }; -}; - -class balca_debug_weap_creator -{ - idd = balca_debug_WC_IDD; - name = "balca_debug_weap_creator"; - movingEnable = false; - - controlsBackground[] = {balca_debug_background}; - objects[] = {}; - controls[] = { - balca_WC_weaplist, - balca_WC_magazinelist, - balca_WC_weapon_shortcut, - balca_WC_weap_info, - balca_WC_magazine_info, - balca_WC_fill_rifles, - balca_WC_fill_scoped_rifles, - balca_WC_fill_heavy, - balca_WC_fill_launchers, - balca_WC_fill_pistols, - balca_WC_fill_grenades, - balca_WC_fill_binocular, - balca_WC_fill_items, - balca_WC_weap_to_clipboard_btn, - balca_WC_ammo_to_clipboard_btn, - balca_WC_create_weap_btn, - balca_WC_create_magazine_btn, - balca_WC_clear_magazines_btn, - balca_WC_close_btn - }; -///////////////// - class balca_debug_background - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE; - x = safezoneX_PG-border_offsetX; w = column_weight*3 + border_offsetX*3; - y = safezoneY_PG-border_offsetY-btn_height*3; h = display_height+border_offsetY*2+btn_height*4; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "PuristaMedium"; - sizeEx = 0.032; - }; - - -///////////// -#include "defs_base_control.hpp" -///////////// - - class balca_WC_weaplist : balca_debug_list - { - idc = balca_WC_weaplist_IDC; - x = safezoneX_PG; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2; - h = display_height - offset_bottom*4 - (safezoneY_PG + offset_top*2); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= "[1] call c_proving_ground_fnc_create_weapon;"; - onLBDblClick = "[2] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_magazinelist : balca_debug_list - { - idc = balca_WC_magazinelist_IDC; - x = safezoneX_PG + column_weight; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2 + img_height_wc; - h = display_height - offset_bottom*4 - img_height_wc-(safezoneY_PG + offset_top*2); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= "[3] call c_proving_ground_fnc_create_weapon;"; - onLBDblClick = "[4] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_weapon_shortcut : balca_debug_image - { - idc = balca_WC_weapon_shortcut_IDC; - x = safezoneX_PG + column_weight; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2; - h = img_height_wc; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - }; - - class balca_WC_weap_info : balca_debug_text - { - idc = balca_WC_weap_info_IDC; - type = CT_STRUCTURED_TEXT+ST_LEFT; - size = 0.023; - x = safezoneX_PG + column_weight*2; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2; - h = img_height_wc; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - }; - - class balca_WC_magazine_info : balca_debug_text - { - idc = balca_WC_magazine_info_IDC; - type = CT_STRUCTURED_TEXT; - size = 0.023; - x = safezoneX_PG + column_weight*2; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2 + img_height_wc; - h = display_height - offset_bottom*4 - img_height_wc-(safezoneY_PG + offset_top*2); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - }; - - class balca_WC_fill_rifles : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*0; w = btn_weight-column_div; - y = safezoneY_PG - btn_height; - text = "Rifles"; - action = "[0,0] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_fill_scoped_rifles : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*0; w = btn_weight-column_div; - y = safezoneY_PG; - text = "Scoped"; - action = "[0,1] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_fill_heavy : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*1; w = btn_weight-column_div; - y = safezoneY_PG - btn_height; - text = "Heavy"; - action = "[0,2] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_fill_launchers : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*1; w = btn_weight-column_div; - y = safezoneY_PG; - text = "Launchers "; - action = "[0,3] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_fill_pistols : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*2; w = btn_weight-column_div; - y = safezoneY_PG - btn_height; - text = "Pistols"; - action = "[0,4] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_fill_grenades : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*2; w = btn_weight-column_div; - y = safezoneY_PG; - text = "Grenades"; - action = "[0,5] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_fill_binocular : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*3; w = btn_weight-column_div; - y = safezoneY_PG - btn_height; - text = "Binoculars"; - action = "[0,6] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_fill_items : balca_debug_btn - { - x = safezoneX_PG + border_offsetX + btn_weight*3; w = btn_weight-column_div; - y = safezoneY_PG; - text = "Items"; - action = "[0,7] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_weap_to_clipboard_btn : balca_debug_btn - { - x = safezoneX_PG; w = column_weight-column_div; - y = display_height-safezoneY_PG- offset_bottom-btn_height; - text = "Class to clipboard"; - action = "[5] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_ammo_to_clipboard_btn : balca_debug_btn - { - x = safezoneX_PG+column_weight; w = column_weight-column_div; - y = display_height-safezoneY_PG- offset_bottom-btn_height; - text = "Ammo to clipboard"; - action = "[6] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_create_weap_btn : balca_debug_btn - { - x = safezoneX_PG; w = column_weight-column_div; - y = display_height-safezoneY_PG- offset_bottom; - text = "Get weapon"; - action = "[2] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_create_magazine_btn : balca_debug_btn - { - x = safezoneX_PG+column_weight; w = column_weight-column_div; - y = display_height-safezoneY_PG- offset_bottom; - text = "Get magazine"; - action = "[4] call c_proving_ground_fnc_create_weapon;"; - }; - - class balca_WC_clear_magazines_btn : balca_debug_btn - { - x = safezoneX_PG+column_weight*2; w = column_weight-column_div; - y = display_height-safezoneY_PG-offset_bottom-btn_height; - text = "Clear magazines"; - action = "c_proving_ground_MAGS = [];{player removeMagazine _x} forEach (magazines player);"; - }; - - class balca_WC_close_btn : balca_debug_btn - { - x = safezoneX_PG+column_weight*2; w = btn_weight; - y = display_height-safezoneY_PG- offset_bottom; - text = "Close"; - action = "closeDialog 0;"; - }; -}; - -class balca_debug_console -{ - idd = balca_debug_console_IDD; - name = "balca_debug_console"; - movingEnable = false; - - controlsBackground[] = {balca_debug_background}; - objects[] = {}; - controls[] = { - balca_debug_console_edit, - balca_debug_console_result, - balca_debug_console_history, - balca_debug_console_control_group, - }; - - onKeyDown = "if((_this select 1) in [28,156]) then {[1] call c_proving_ground_fnc_exec_console;}; false"; -///////////////// - class balca_debug_background - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE; - x = safezoneX_PG-border_offsetX; w = column_weight*3 + border_offsetX*4; - y = safezoneY_PG-border_offsetY; h = display_height+border_offsetY*2; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "PuristaMedium"; - sizeEx = 0.032; - }; - - -///////////// -#include "defs_base_control.hpp" -///////////// - - class balca_debug_console_edit : balca_debug_edit - { - idc = balca_debug_console_edit_IDC; - x = safezoneX_PG; w = column_weight*3; - y = safezoneY_PG + offset_top*2; h = str_height*3; - text = "enter command here"; - }; - - class balca_debug_console_result : balca_debug_edit - { - idc = balca_debug_console_result_IDC; - x = safezoneX_PG; - w = column_weight*3; - y = safezoneY_PG + offset_top*2 + str_height*3; - h = str_height*2; - text = ""; - }; - - class balca_debug_console_history : balca_debug_list - { - idc = balca_debug_console_history_IDC; - x = safezoneX_PG; - w = column_weight*3; - y = safezoneY_PG + offset_top*2 + str_height*5; - h = display_height - offset_bottom*4 - str_height*5 - (safezoneY_PG + offset_top*2); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= "[2] call c_proving_ground_fnc_exec_console;"; - onLBDblClick = "[3] call c_proving_ground_fnc_exec_console;"; - }; - - class balca_debug_console_control_group : balca_debug_control_group { - x = safezoneX_PG; - w = 1; - y = display_height-safezoneY_PG- offset_bottom-btn_height; - h = str_height*4; - class Controls { - class balca_debug_console_exec_btn : balca_debug_btn - { - x = 0; w = column_weight-column_div; - y = 0; - text = "Execute"; - action = "[1] call c_proving_ground_fnc_exec_console;"; - }; - - class balca_debug_console_exec_global_btn : balca_debug_btn - { - x = column_weight; w = column_weight-column_div; - y = 0; - text = "Exec global"; - action = "[4] call c_proving_ground_fnc_exec_console;"; - }; - - class balca_debug_console_exec_server_btn : balca_debug_btn - { - x = column_weight*2; w = column_weight-column_div; - y = 0; - text = "Exec on server"; - action = "[5] call c_proving_ground_fnc_exec_console;"; - }; - - class balca_debug_console_run_tracker_btn : balca_debug_btn - { - x = column_weight*0; w = column_weight-column_div; - y = btn_height; - text = "Run tracker"; - action = "[6] call c_proving_ground_fnc_exec_console;"; - }; - - class balca_debug_console_stop_tracker_btn : balca_debug_btn - { - x = column_weight*1; w = column_weight-column_div; - y = btn_height; - text = "Stop tracker"; - action = "[7] call c_proving_ground_fnc_exec_console;"; - }; - - class balca_debug_console_close_btn : balca_debug_btn - { - x = column_weight*2; w = btn_weight; - y = btn_height; - text = "Back"; - action = "closeDialog 0; createDialog 'balca_debug_main'"; - }; - }; - }; -}; - -class balca_target_display -{ - idd = balca_target_display_IDD; - name = "balca_target_display"; - movingEnable = false; - - controlsBackground[] = {balca_debug_background}; - objects[] = {}; - controls[] = { - balca_target_vehlist, - balca_target_vehicle_shortcut, - balca_target_veh_info, - balca_target_map, - balca_target_type_control_group, - balca_target_management_control_group, - balca_target_close_btn - }; -///////////////// - class balca_debug_background - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE; - x = safezoneX_PG-border_offsetX; w = column_weight*3 + border_offsetX*3; - y = safezoneY_PG-border_offsetY-btn_height*3; h = display_height+border_offsetY*2+btn_height*4; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "PuristaMedium"; - sizeEx = 0.032; - }; - - -///////////// -#include "defs_base_control.hpp" -///////////// - - onUnload = "[10] call c_proving_ground_fnc_target;"; - - class balca_target_vehlist : balca_debug_list - { - idc = balca_target_vehlist_IDC; - x = safezoneX_PG; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2; - h = display_height - offset_bottom*4 - (safezoneY_PG + offset_top*2); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= "[2] call c_proving_ground_fnc_target;"; - onLBDblClick = "[3] call c_proving_ground_fnc_target;"; - }; - - class balca_target_vehicle_shortcut : balca_debug_image - { - idc = balca_target_vehicle_shortcut_IDC; - x = safezoneX_PG + column_weight; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2; - h = img_height; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - }; - - class balca_target_veh_info : balca_debug_text - { - idc = balca_target_veh_info_IDC; - type = CT_STRUCTURED_TEXT+ST_LEFT; - size = 0.023; - x = safezoneX_PG + column_weight; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2 + img_height; - h = display_height - offset_bottom*3 - img_height-(safezoneY_PG + offset_top*2); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - }; - - class balca_target_map : balca_debug_map - { - idc = balca_target_map_IDC; - x = safezoneX_PG; - w = column_weight*2 - column_div; - y = safezoneY_PG + offset_top*2; - h = display_height - offset_bottom*4 - (safezoneY_PG + offset_top*2); - onMouseButtonDblClick = "[9,((_this select 0) ctrlMapScreenToWorld [_this select 2,_this select 3])] call c_proving_ground_fnc_target"; - }; - - class balca_target_type_control_group : balca_debug_control_group { - x = safezoneX_PG + border_offsetX + btn_weight*0; - w = 1; - y = safezoneY_PG - btn_height; - h = str_height*4; - - class Controls { - class balca_target_fill_man : balca_debug_btn - { - x = 0; w = btn_weight-column_div; - y = 0; - text = "Man"; - action = "[1,0] call c_proving_ground_fnc_target;"; - }; - - class balca_target_fill_car : balca_debug_btn - { - x = 0; w = btn_weight-column_div; - y = btn_height; - text = "Car"; - action = "[1,1] call c_proving_ground_fnc_target;"; - }; - - class balca_target_fill_truck : balca_debug_btn - { - x = btn_weight*1; w = btn_weight-column_div; - y = 0; - text = "Truck"; - action = "[1,2] call c_proving_ground_fnc_target;"; - }; - - class balca_target_fill_APC : balca_debug_btn - { - x = btn_weight*1; w = btn_weight-column_div; - y = btn_height; - text = "APC"; - action = "[1,3] call c_proving_ground_fnc_target;"; - }; - - class balca_target_fill_tank : balca_debug_btn - { - x = btn_weight*2; w = btn_weight-column_div; - y = 0; - text = "Tank"; - action = "[1,4] call c_proving_ground_fnc_target;"; - }; - - class balca_target_fill_helicopter : balca_debug_btn - { - x = btn_weight*2; w = btn_weight-column_div; - y = btn_height; - text = "Helicopter"; - action = "[1,5] call c_proving_ground_fnc_target;"; - }; - - class balca_target_fill_plane : balca_debug_btn - { - x = btn_weight*3; w = btn_weight-column_div; - y = 0; - text = "Plane"; - action = "[1,6] call c_proving_ground_fnc_target;"; - }; - - class balca_target_fill_ship : balca_debug_btn - { - x = btn_weight*3; w = btn_weight-column_div; - y = btn_height; - text = "Ship"; - action = "[1,7] call c_proving_ground_fnc_target;"; - }; - }; - };//end control group - - class balca_target_management_control_group : balca_debug_control_group { - x = safezoneX_PG+column_weight*2; - w = 1; - y = safezoneY_PG + offset_top*2; - h = display_height - offset_bottom*4 - (safezoneY_PG + offset_top*2); - - class Controls { - class balca_target_mode_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = 0; - h = str_height; - text = "Mode"; - }; - - class balca_target_mode_combo : balca_debug_combo - { - idc = balca_target_mode_IDC; - x = 0; - w = column_weight-column_div*3; - y = btn_height; - onLBSelChanged = "c_proving_ground_target_mode = (_this select 1);[0,(_this select 1)] call c_proving_ground_fnc_target;"; - }; - - class balca_target_mode_land_static : balca_debug_control_group { - idc = balca_target_land_static_IDC; - x = 0; - w = 1; - y = btn_height*2; - h = btn_height*5; - class Controls { - class balca_target_distance_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*0; - h = str_height; - text = "Distance"; - }; - - class balca_target_direction_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*1; - h = str_height; - text = "Direction"; - }; - - class balca_target_speed_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*2; - h = str_height; - text = "Speed"; - }; - - class balca_target_distance : balca_debug_edit - { - idc = balca_target_distance_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*0; - h = str_height; - text = "--"; - }; - - class balca_target_direction : balca_debug_edit - { - idc = balca_target_direction_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*1; - h = str_height; - text = "--"; - }; - - class balca_target_speed : balca_debug_edit - { - idc = balca_target_speed_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*2; - h = str_height; - text = "--"; - }; - };//end contols - };//end balca_target_mode_static_land - - class balca_target_mode_land_random : balca_debug_control_group { - idc = balca_target_land_random_IDC; - x = 0; - w = 1; - y = btn_height*2; - h = btn_height*5; - class Controls { - class balca_target_distance_desc : balca_debug_text - { - x = 0; - w = 2*column_weight/3; - y = btn_height*0; - h = str_height; - text = "Distance +/-"; - }; - - class balca_target_direction_desc : balca_debug_text - { - x = 0; - w = 2*column_weight/3; - y = btn_height*1; - h = str_height; - text = "Direction +/-"; - }; - - class balca_target_speed_desc : balca_debug_text - { - x = 0; - w = column_weight/3-column_div; - y = btn_height*2; - h = str_height; - text = "Speed"; - }; - - class balca_target_rdistance : balca_debug_edit - { - idc = balca_target_rdistance_IDC; - x = column_weight/3; - w = column_weight/3-column_div*3; - y = btn_height*0; - h = str_height; - text = "--"; - }; - - class balca_target_distance_rand : balca_debug_edit - { - idc = balca_target_distance_rand_IDC; - x = 2*column_weight/3; - w = column_weight/3-column_div*3; - y = btn_height*0; - h = str_height; - text = "--"; - }; - - class balca_target_rdirection : balca_debug_edit - { - idc = balca_target_rdirection_IDC; - x = column_weight/3; - w = column_weight/3-column_div*3; - y = btn_height*1; - h = str_height; - text = "--"; - }; - - class balca_target_direction_rand : balca_debug_edit - { - idc = balca_target_direction_rand_IDC; - x = 2*column_weight/3; - w = column_weight/3-column_div*3; - y = btn_height*1; - h = str_height; - text = "--"; - }; - - class balca_target_speed_rand : balca_debug_edit - { - idc = balca_target_speed_rand_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div*3; - y = btn_height*2; - h = str_height; - text = "--"; - }; - };//end contols - };//end balca_target_mode_land_random - - class balca_target_mode_land_AI : balca_debug_control_group { - idc = balca_target_land_AI_IDC; - x = 0; - w = 1; - y = btn_height*2; - h = btn_height*5; - class Controls { - class balca_target_distance_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*0; - h = str_height; - text = "Distance"; - }; - - class balca_target_distance : balca_debug_edit - { - idc = balca_target_land_AI_dist_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*0; - h = str_height; - text = "--"; - }; - - class balca_target_show_map_btn : balca_debug_btn - { - x = 0; - w = column_weight-column_div; - y = btn_height*1; - text = "Toggle map"; - action = "[7] call c_proving_ground_fnc_target;"; - }; -/* - class balca_target_adjust_way_btn : balca_debug_btn - { - x = 0; - w = column_weight-column_div; - y = btn_height*2; - text = "Adjust waypoints"; - action = "[10] call c_proving_ground_fnc_target;"; - }; -*/ - class balca_target_clear_way_btn : balca_debug_btn - { - x = 0; - w = column_weight-column_div; - y = btn_height*3; - text = "Clear waypoints"; - action = "[8] call c_proving_ground_fnc_target;"; - }; - - };//end contols - };//end balca_target_mode_land_AI - - class balca_target_mode_air_AI : balca_debug_control_group { - idc = balca_target_air_AI_IDC; - x = 0; - w = 1; - y = btn_height*2; - h = btn_height*5; - class Controls { - class balca_target_distance_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*0; - h = str_height; - text = "Distance"; - }; - - class balca_target_distance : balca_debug_edit - { - idc = balca_target_air_AI_dist_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*0; - h = str_height; - text = "--"; - }; - - - class balca_target_show_map_btn : balca_debug_btn - { - x = 0; - w = column_weight-column_div; - y = btn_height*1; - text = "Toggle map"; - action = "[7] call c_proving_ground_fnc_target;"; - }; -/* - class balca_target_adjust_way_btn : balca_debug_btn - { - x = 0; - w = column_weight-column_div; - y = btn_height*2; - text = "Adjust waypoints"; - action = "[10] call c_proving_ground_fnc_target;"; - }; -*/ - class balca_target_clear_way_btn : balca_debug_btn - { - x = 0; - w = column_weight-column_div; - y = btn_height*3; - text = "Clear waypoints"; - action = "[8] call c_proving_ground_fnc_target;"; - }; - };//end contols - };//end balca_target_mode_air_AI - - class balca_target_apply_btn : balca_debug_btn - { - x = 0; - w = column_weight-column_div; - y = btn_height*7; - text = "Apply"; - action = "[6] call c_proving_ground_fnc_target;"; - }; - - class balca_target_reset_btn : balca_debug_btn - { - x = 0; - w = column_weight-column_div; - y = btn_height*8; - text = "Reset"; - action = "c_proving_ground_target_props = [100,0,(getDir c_proving_ground_core)+180]];[0] call c_proving_ground_fnc_target;[6] call c_proving_ground_fnc_target;"; - }; - - class balca_target_create_btn : balca_debug_btn - { - x = 0; - w = column_weight-column_div; - y = btn_height*9; - text = "Add target"; - action = "[3] call c_proving_ground_fnc_target;"; - }; - - class balca_target_clear_btn : balca_debug_btn - { - x = 0; - w = column_weight-column_div; - y = btn_height*10; - text = "Clear targets"; - action = "[5] call c_proving_ground_fnc_target;"; - }; - }; - };//end management control group - - class balca_target_close_btn : balca_debug_btn - { - x = safezoneX_PG + btn_weight*3; w = btn_weight; - y = display_height-safezoneY_PG- offset_bottom; - text = "Close"; - action = "closeDialog 0;"; - }; -}; - -class balca_sound_player -{ - idd = balca_sound_player_IDD; - name = "balca_sound_player"; - movingEnable = false; - - controlsBackground[] = {balca_debug_background}; - objects[] = {}; - controls[] = { - balca_soundlist, - balca_clipboard_btn, - balca_close_btn - }; -///////////////// - class balca_debug_background - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE; - x = safezoneX_PG-border_offsetX; w = column_weight*3 + border_offsetX*3; - y = safezoneY_PG-border_offsetY; h = display_height+border_offsetY*2+btn_height*1; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "PuristaMedium"; - sizeEx = 0.032; - }; - - -///////////// -#include "defs_base_control.hpp" -///////////// - - class balca_soundlist : balca_debug_list - { - idc = balca_soundlist_IDC; - x = safezoneX_PG; - w = column_weight*3 - column_div; - y = safezoneY_PG + offset_top*2; - h = display_height - offset_bottom*4 - (safezoneY_PG + offset_top*2); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= ""; - onLBDblClick = "[1] call c_proving_ground_fnc_sound;"; - }; - - class balca_clipboard_btn : balca_debug_btn - { - x = safezoneX_PG; w = column_weight-column_div; - y = display_height-safezoneY_PG- offset_bottom; - text = "to Clipboard"; - action = "[2] call c_proving_ground_fnc_sound;"; - }; - - class balca_close_btn : balca_debug_btn - { - x = safezoneX_PG + column_weight*2; w = btn_weight; - y = display_height-safezoneY_PG- offset_bottom; - text = "Close"; - action = "closeDialog 0;"; - }; -}; - -class balca_statistics -{ - idd = balca_stat_display_IDD; - name = "balca_statistics"; - movingEnable = false; - - controlsBackground[] = {balca_debug_background}; - objects[] = {}; - controls[] = { - balca_stat_text, - balca_reset_btn, - balca_clipboard_btn, - balca_close_btn - }; -///////////////// - class balca_debug_background - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE; - x = safezoneX_PG-border_offsetX; w = column_weight*3 + border_offsetX*3; - y = safezoneY_PG-border_offsetY; h = display_height+border_offsetY*2+btn_height*1; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "PuristaMedium"; - sizeEx = 0.032; - }; - - -///////////// -#include "defs_base_control.hpp" -///////////// - - class balca_stat_text : balca_debug_text - { - idc = balca_stat_text_IDC; - type = CT_STRUCTURED_TEXT+ST_LEFT; - size = 0.023; - x = safezoneX_PG; - w = column_weight - column_div; - y = safezoneY_PG + offset_top*2; - h = display_height - offset_bottom*3 -(safezoneY_PG + offset_top*2); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - }; - - class balca_reset_btn : balca_debug_btn - { - x = safezoneX_PG; w = column_weight-column_div; - y = display_height-safezoneY_PG- offset_bottom; - text = "Reset"; - action = "[1] call c_proving_ground_fnc_statistics;"; - }; - - class balca_clipboard_btn : balca_debug_btn - { - x = safezoneX_PG + column_weight; w = column_weight-column_div; - y = display_height-safezoneY_PG- offset_bottom; - text = "to Clipboard"; - action = "[2] call c_proving_ground_fnc_statistics;"; - }; - - class balca_close_btn : balca_debug_btn - { - x = safezoneX_PG + column_weight*2; w = btn_weight; - y = display_height-safezoneY_PG- offset_bottom; - text = "Close"; - action = "closeDialog 0;"; - }; -}; - -class balca_environment -{ - idd = balca_environment_IDD; - name = "balca_environment"; - movingEnable = false; - - controlsBackground[] = {balca_debug_background}; - objects[] = {}; - controls[] = { - balca_env_control_group, - balca_apply_btn - }; -///////////////// - class balca_debug_background - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE; - x = safezoneX_PG-border_offsetX; w = column_weight*1 + border_offsetX*3; - y = safezoneY_PG-border_offsetY; h = display_height+border_offsetY*2+btn_height*1; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "PuristaMedium"; - sizeEx = 0.032; - }; - - -///////////// -#include "defs_base_control.hpp" -///////////// - - class balca_env_control_group : balca_debug_control_group { - x = safezoneX_PG+column_weight*0; - w = 1; - y = safezoneY_PG + offset_top*2; - h = display_height - offset_bottom*4 - (safezoneY_PG + offset_top*2); - - class Controls { - - class balca_env_VD_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*1; - h = str_height; - text = "Viewdistance"; - }; - - class balca_env_VD : balca_debug_edit - { - idc = balca_env_VD_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*1; - h = str_height; - text = "--"; - }; - - class balca_env_grass_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*2; - h = str_height; - text = "Grass"; - }; - - class balca_env_grass : balca_debug_edit - { - idc = balca_env_grass_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*2; - h = str_height; - text = "--"; - }; - - class balca_env_fog_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*3; - h = str_height; - text = "Fog"; - }; - - class balca_env_fog : balca_debug_edit - { - idc = balca_env_fog_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*3; - h = str_height; - text = "--"; - }; - - class balca_env_overcast_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*4; - h = str_height; - text = "Overcast"; - }; - - class balca_env_overcast : balca_debug_edit - { - idc = balca_env_overcast_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*4; - h = str_height; - text = "--"; - }; - - class balca_env_rain_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*5; - h = str_height; - text = "Rain"; - }; - - class balca_env_rain : balca_debug_edit - { - idc = balca_env_rain_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*5; - h = str_height; - text = "--"; - }; - - class balca_env_wind_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*6; - h = str_height; - text = "Wind speed"; - }; - - class balca_env_wind : balca_debug_edit - { - idc = balca_env_wind_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*6; - h = str_height; - text = "--"; - }; - - class balca_env_wind_dir_desc : balca_debug_text - { - x = 0; - w = column_weight/2-column_div; - y = btn_height*7; - h = str_height; - text = "Wind direction"; - }; - - class balca_env_wind_dir : balca_debug_edit - { - idc = balca_env_wind_dir_IDC; - x = column_weight*0.5; - w = column_weight/2-column_div; - y = btn_height*7; - h = str_height; - text = "--"; - }; - }; - }; - - class balca_apply_btn : balca_debug_btn - { - x = safezoneX_PG; w = column_weight-column_div; - y = display_height-safezoneY_PG- offset_bottom; - text = "Apply"; - action = "[1] call c_proving_ground_fnc_environment;"; - }; -}; - - -#include "CfgExplorer2\config.hpp" -#include "reloader\config.hpp" diff --git a/addons/proving_ground/PG_rsctitles.hpp b/addons/proving_ground/PG_rsctitles.hpp deleted file mode 100644 index ed1342ef8..000000000 --- a/addons/proving_ground/PG_rsctitles.hpp +++ /dev/null @@ -1,41 +0,0 @@ - class balca_debug_hint { - idd = balca_debug_hint_IDD; - onLoad = "with uiNameSpace do { balca_debug_hint = _this select 0 };"; - movingEnable = 0; - duration = 1; - fadeIn = "false"; - fadeOut = "false"; - controls[] = {"balca_hint_BG", "balca_hint_text", "balca_hint_text2"}; - - class balca_hint_BG { - idc = -1; - type = CT_STATIC; - font = "TahomaB"; - colorBackground[] = {0.1882, 0.2588, 0.149, 0.76}; - colorText[] = {0, 0, 0, 0}; - text = ""; - style = 128; - sizeEx = ( 16 / 408 ); - x = 0; - y = safezoneY_PG; - h = 0.08; - w = 0.38; - }; - - class balca_hint_text : balca_hint_BG { - idc = balca_hint_text_IDC; - style = ST_CENTER; - x = 0.01; - h = 0.033; - w = 0.37; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0.388, 0.545, 0.247, 0}; - font = "TahomaB"; - sizeEx = 0.03; - }; - - class balca_hint_text2 : balca_hint_text { - idc = balca_hint_text2_IDC; - y = safezoneY_PG + 0.033; - }; - }; diff --git a/addons/proving_ground/defs.hpp b/addons/proving_ground/defs.hpp deleted file mode 100644 index 10ec19bfd..000000000 --- a/addons/proving_ground/defs.hpp +++ /dev/null @@ -1,71 +0,0 @@ -#include "macros.hpp" - -#define balca_debug_main_IDD 66461 -#define __idCounter(a) (balca_debug_main_IDD + a) -#define balca_debug_VC_IDD __idCounter(10) - -#define balca_VC_vehlist_IDC __idCounter(11) -#define balca_VC_vehicle_shortcut_IDC __idCounter(12) -#define balca_VC_veh_info_IDC __idCounter(13) - - -#define balca_debug_WC_IDD __idCounter(20) - -#define balca_WC_weaplist_IDC __idCounter(21) -#define balca_WC_magazinelist_IDC __idCounter(22) -#define balca_WC_weapon_shortcut_IDC __idCounter(23) -#define balca_WC_weap_info_IDC __idCounter(24) -#define balca_WC_magazine_info_IDC __idCounter(25) - -#define balca_debug_console_IDD __idCounter(30) - -#define balca_debug_console_edit_IDC __idCounter(31) -#define balca_debug_console_result_IDC __idCounter(32) -#define balca_debug_console_history_IDC __idCounter(33) - -#define balca_target_display_IDD __idCounter(40) - -#define balca_target_vehlist_IDC __idCounter(41) -#define balca_target_vehicle_shortcut_IDC __idCounter(42) -#define balca_target_veh_info_IDC __idCounter(43) -#define balca_target_mode_IDC __idCounter(44) -#define balca_target_land_static_IDC __idCounter(45) -#define balca_target_land_random_IDC __idCounter(46) -#define balca_target_land_AI_IDC __idCounter(47) -#define balca_target_air_AI_IDC __idCounter(48) - -#define balca_target_distance_IDC __idCounter(49) -#define balca_target_direction_IDC __idCounter(50) -#define balca_target_speed_IDC __idCounter(51) -#define balca_target_map_IDC __idCounter(52) - -#define balca_target_rdistance_IDC __idCounter(53) -#define balca_target_rdirection_IDC __idCounter(54) -#define balca_target_distance_rand_IDC __idCounter(55) -#define balca_target_direction_rand_IDC __idCounter(56) -#define balca_target_speed_rand_IDC __idCounter(57) -#define balca_target_land_AI_dist_IDC __idCounter(58) -#define balca_target_air_AI_dist_IDC __idCounter(59) - - -#define balca_sound_player_IDD __idCounter(70) -#define balca_soundlist_IDC __idCounter(71) - -#define balca_debug_hint_IDD __idCounter(80) - -#define balca_hint_text_IDC __idCounter(81) -#define balca_hint_text2_IDC __idCounter(82) - -#define balca_stat_display_IDD __idCounter(85) -#define balca_stat_text_IDC __idCounter(86) - -#define balca_environment_IDD __idCounter(87) -#define balca_env_VD_IDC __idCounter(88) -#define balca_env_grass_IDC __idCounter(89) -#define balca_env_fog_IDC __idCounter(90) -#define balca_env_overcast_IDC __idCounter(91) -#define balca_env_rain_IDC __idCounter(92) -#define balca_env_wind_IDC __idCounter(93) -#define balca_env_wind_dir_IDC __idCounter(94) - - diff --git a/addons/proving_ground/defs_base_control.hpp b/addons/proving_ground/defs_base_control.hpp deleted file mode 100644 index 95c48ac64..000000000 --- a/addons/proving_ground/defs_base_control.hpp +++ /dev/null @@ -1,612 +0,0 @@ - class balca_debug_control_group - { - idc = -1; - type = 15; - style = 0; - class VScrollbar - { - color[] = {1, 1, 1, 1}; - width = 0.021; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; - }; - - class HScrollbar - { - color[] = {1, 1, 1, 1}; - height = 0.028; - }; - - class ScrollBar - { - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.3}; - thumb = "#(argb,8,8,3)color(1,1,1,1)"; - arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; - arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; - border = "#(argb,8,8,3)color(1,1,1,1)"; - }; - x = 0; - w = 1; - y = 0; - h = 1; - }; - - class balca_debug_combo { - idc = -1; - type = 4; - style = 0; - - x = 0; - y = 0; - w = 0.12; - h = str_height; - - font = "PuristaBold"; - sizeEx = 0.03; - - rowHeight = 0.1; - wholeHeight = 0.4; - - class ComboScrollBar - { - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.3}; - thumb = "#(argb,8,8,3)color(1,1,1,1)"; - arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; - arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; - border = "#(argb,8,8,3)color(1,1,1,1)"; - }; - - colorSelect[] = {1, 1, 1, 1}; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0.543, 0.5742, 0.4102, 0.9}; - colorSelectBackground[] = {0.40, 0.43, 0.28, 0.9}; - colorScrollbar[] = {0.2, 0.2, 0.2, 1}; - - soundSelect[] = {"", 0.1, 1}; - soundExpand[] = {"", 0.1, 1}; - soundCollapse[] = {"", 0.1, 1}; - maxHistoryDelay = 1; - - arrowEmpty = ""; - arrowFull = ""; - color[] = {0.1, 0.1, 0.1, 1}; - colorActive[] = {0,0,0,1}; - colorDisabled[] = {0,0,0,0.3}; - }; - - class balca_debug_text - { - idc = -1; - type = CT_STATIC; - style = ST_LEFT; - x = 0.0; w = 0.3; - y = 0.0; h = 0.03; - sizeEx = 0.023; - colorBackground[] = {0.5, 0.5, 0.5, 0}; - colorText[] = {0.85, 0.85, 0.85, 1}; - font = "PuristaBold"; - text = ""; - }; - - class balca_debug_edit - { - type = CT_EDIT; - style = ST_LEFT+ST_MULTI; - idc = -1; - font = "PuristaMedium"; - sizeEx = 0.026; - htmlControl = true; - lineSpacing = 0.004; - x = 0.0; w = 0.3; - y = 0.0; h = 0.06; - colorText[] = {0.85, 0.85, 0.85, 1}; - colorSelection[] = {1, 1, 1, 1}; - colorDisabled[] = {0,0,0,0.3}; - autocomplete = "scripting"; - //text = ""; - }; - - class balca_debug_image - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE+ST_KEEP_ASPECT_RATIO; - x = 0.25; w = 0.1; - y = 0.1; h = 0.1; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "PuristaBold"; - sizeEx = 0.032; - }; - - class balca_debug_btn - { - idc = -1; - type = 16; - style = 0; - - text = "btn"; - action = ""; - - x = 0; - y = 0; - - w = 0.23; - h = 0.06; - - size = 0.03921; - sizeEx = 0.03921; - - color[] = {0.8314, 0.8784, 0.6275, 1.0}; - color2[] = {0.95, 0.95, 0.95, 1}; - colorFocused[] = {0.8314, 0.8784, 0.6275, 1.0}; - colorBackground[] = {1, 1, 1, 1}; - colorbackground2[] = {1, 1, 1, 0.4}; - colorBackgroundFocused[] = {1, 1, 1, 1}; - colorDisabled[] = {1, 1, 1, 0.25}; - periodFocus = 1.2; - periodOver = 0.8; - - class HitZone - { - left = 0.004; - top = 0.004; - right = 0.004; - bottom = 0.004; - }; - - class ShortcutPos - { - left = 0.0145; - top = 0.016; - w = 0.03631; - h = 0.01; - }; - - class TextPos - { - left = 0.03; - top = 0.001; - right = 0.005; - bottom = 0.001; - }; - - textureNoShortcut = ""; - /*animTextureNormal = "client\ui\ui_button_normal_ca.paa"; - animTextureDisabled = "client\ui\ui_button_disabled_ca.paa"; - animTextureOver = "client\ui\ui_button_over_ca.paa"; - animTextureFocused = "client\ui\ui_button_focus_ca.paa"; - animTexturePressed = "client\ui\ui_button_down_ca.paa"; - animTextureDefault = "client\ui\ui_button_default_ca.paa";*/ - animTextureNormal = "client\ui\igui_button_normal_ca.paa"; - animTextureDisabled = "client\ui\igui_button_disabled_ca.paa"; - animTextureOver = "client\ui\igui_button_over_ca.paa"; - animTextureFocused = "client\ui\igui_button_focus_ca.paa"; - animTexturePressed = "client\ui\igui_button_down_ca.paa"; - animTextureDefault = "client\ui\igui_button_normal_ca.paa"; - animTextureNoShortcut = "client\ui\igui_button_normal_ca.paa"; - period = 0.4; - font = "PuristaBold"; - - soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter", 0.09, 1}; - soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush", 0.09, 1}; - soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick", 0.07, 1}; - soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape", 0.09, 1}; - - class Attributes - { - font = "PuristaBold"; - color = "#E5E5E5"; - align = "left"; - shadow = "true"; - }; - - class AttributesImage - { - font = "PuristaBold"; - color = "#E5E5E5"; - align = "left"; - shadow = "true"; - }; - }; - - class balca_debug_list - { - type = CT_LISTBOX; - style = 16; - idc = -1; - text = ""; - w = 0.275; - h = 0.04; - colorSelect[] = {1, 1, 1, 1}; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0.8,0.8,0.8,1}; - colorSelectBackground[] = {0.40, 0.43, 0.28, 0.5}; - colorScrollbar[] = {0.2, 0.2, 0.2, 1}; - arrowEmpty = "client\ui\ui_arrow_combo_ca.paa"; - arrowFull = "client\ui\ui_arrow_combo_active_ca.paa"; - wholeHeight = 0.45; - rowHeight = 0.04; - color[] = {0.7, 0.7, 0.7, 1}; - colorActive[] = {0,0,0,1}; - colorDisabled[] = {0,0,0,0.3}; - font = "PuristaBold"; - sizeEx = 0.023; - soundSelect[] = {"",0.1,1}; - soundExpand[] = {"",0.1,1}; - soundCollapse[] = {"",0.1,1}; - maxHistoryDelay = 1; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; - - class ListScrollBar - { - color[] = {1, 1, 1, 1}; - colorActive[] = {1, 1, 1, 1}; - colorDisabled[] = {1, 1, 1, 1}; - thumb = "client\ui\ui_scrollbar_thumb_ca.paa"; - arrowFull = "client\ui\ui_arrow_top_active_ca.paa"; - arrowEmpty = "client\ui\ui_arrow_top_ca.paa"; - border = "client\ui\ui_border_scroll_ca.paa"; - }; - }; - - class balca_debug_pict - { - /*idc = -1; - type = CT_STATIC; - style = ST_PICTURE;*/ - x = 0.25; w = 0.5; - y = 0.1; h = 0.8; - /*colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = "\ca\ui\data\ui_gameoptions_background_ca.paa"; - font = "PuristaBold"; - sizeEx = 0.032;*/ - colorBackground[] = {0, 0, 0, 0.6}; - text = ""; - type = CT_STATIC; - idc = -1; - style = ST_LEFT; - font = ""; - colorText[] = {1, 1, 1, 1}; - sizeEx = 0.04; - }; - - class balca_debug_map { - idc = -1; - - type=101; - style=48; - - x = 0; - y = 0; - w = 1; - h = 1; - - colorBackground[] = {1.00, 1.00, 1.00, 1.00}; - colorText[] = {0.00, 0.00, 0.00, 1.00}; - colorSea[] = {0.56, 0.80, 0.98, 0.50}; - colorForest[] = {0.60, 0.80, 0.20, 0.50}; - colorRocks[] = {0.50, 0.50, 0.50, 0.50}; - colorCountlines[] = {0.65, 0.45, 0.27, 0.50}; - colorMainCountlines[] = {0.65, 0.45, 0.27, 1.00}; - colorCountlinesWater[] = {0.00, 0.53, 1.00, 0.50}; - colorMainCountlinesWater[] = {0.00, 0.53, 1.00, 1.00}; - colorForestBorder[] = {0.40, 0.80, 0.00, 1.00}; - colorRocksBorder[] = {0.50, 0.50, 0.50, 1.00}; - colorPowerLines[] = {0.00, 0.00, 0.00, 1.00}; - colorNames[] = {0.00, 0.00, 0.00, 1.00}; - colorInactive[] = {1.00, 1.00, 1.00, 0.50}; - colorLevels[] = {0.00, 0.00, 0.00, 1.00}; - colorRailWay[] = {0.00, 0.00, 0.00, 1.00}; - colorOutside[] = {0.00, 0.00, 0.00, 1.00}; - - font = "TahomaB"; - sizeEx = 0.040000; - - stickX[] = {0.20, {"Gamma", 1.00, 1.50} }; - stickY[] = {0.20, {"Gamma", 1.00, 1.50} }; - ptsPerSquareSea = 6; - ptsPerSquareTxt = 8; - ptsPerSquareCLn = 8; - ptsPerSquareExp = 8; - ptsPerSquareCost = 8; - ptsPerSquareFor = "4.0f"; - ptsPerSquareForEdge = "10.0f"; - ptsPerSquareRoad = 2; - ptsPerSquareObj = 10; - - fontLabel = "PuristaBold"; - sizeExLabel = 0.034000; - fontGrid = "PuristaBold"; - sizeExGrid = 0.034000; - fontUnits = "PuristaBold"; - sizeExUnits = 0.034000; - fontNames = "PuristaBold"; - sizeExNames = 0.056000; - fontInfo = "PuristaBold"; - sizeExInfo = 0.034000; - fontLevel = "PuristaBold"; - sizeExLevel = 0.034000; - - text = "\ca\ui\data\map_background2_co.paa"; - - maxSatelliteAlpha = 0; // Alpha to 0 by default - alphaFadeStartScale = 1.0; - alphaFadeEndScale = 1.1; // Prevent div/0 - - showCountourInterval=2; - scaleDefault = 0.1; - onMouseButtonClick = ""; - onMouseButtonDblClick = ""; - - class CustomMark { - icon = "\ca\ui\data\map_waypoint_ca.paa"; - color[] = {0, 0, 1, 1}; - size = 18; - importance = 1; - coefMin = 1; - coefMax = 1; - }; - - class Legend { - x = -1; - y = -1; - w = 0.340000; - h = 0.152000; - font = "PuristaBold"; - sizeEx = 0.039210; - colorBackground[] = {0.906000, 0.901000, 0.880000, 0.800000}; - color[] = {0, 0, 0, 1}; - }; - - class Bunker { - icon = "\ca\ui\data\map_bunker_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 14; - importance = "1.5 * 14 * 0.05"; - coefMin = 0.250000; - coefMax = 4; - }; - - class Bush { - icon = "\ca\ui\data\map_bush_ca.paa"; - color[] = {0.550000, 0.640000, 0.430000, 1}; - size = 14; - importance = "0.2 * 14 * 0.05"; - coefMin = 0.250000; - coefMax = 4; - }; - - class BusStop { - icon = "\ca\ui\data\map_busstop_ca.paa"; - color[] = {0, 0, 1, 1}; - size = 10; - importance = "1 * 10 * 0.05"; - coefMin = 0.250000; - coefMax = 4; - }; - - class Command { - icon = "\ca\ui\data\map_waypoint_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 18; - importance = 1; - coefMin = 1; - coefMax = 1; - }; - - class Cross { - icon = "\ca\ui\data\map_cross_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 16; - importance = "0.7 * 16 * 0.05"; - coefMin = 0.250000; - coefMax = 4; - }; - - class Fortress { - icon = "\ca\ui\data\map_bunker_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 16; - importance = "2 * 16 * 0.05"; - coefMin = 0.250000; - coefMax = 4; - }; - - class Fuelstation { - icon = "\ca\ui\data\map_fuelstation_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 16; - importance = "2 * 16 * 0.05"; - coefMin = 0.750000; - coefMax = 4; - }; - - class Fountain { - icon = "\ca\ui\data\map_fountain_ca.paa"; - color[] = {0, 0.350000, 0.700000, 1}; - size = 12; - importance = "1 * 12 * 0.05"; - coefMin = 0.250000; - coefMax = 4; - }; - - class Hospital { - icon = "\ca\ui\data\map_hospital_ca.paa"; - color[] = {0.780000, 0, 0.050000, 1}; - size = 16; - importance = "2 * 16 * 0.05"; - coefMin = 0.500000; - coefMax = 4; - }; - - class Chapel { - icon = "\ca\ui\data\map_chapel_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 16; - importance = "1 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - - class Church { - icon = "\ca\ui\data\map_church_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 16; - importance = "2 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - - class Lighthouse { - icon = "\ca\ui\data\map_lighthouse_ca.paa"; - color[] = {0.780000, 0, 0.050000, 1}; - size = 20; - importance = "3 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - - class Quay { - icon = "\ca\ui\data\map_quay_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 16; - importance = "2 * 16 * 0.05"; - coefMin = 0.500000; - coefMax = 4; - }; - - class Rock { - icon = "\ca\ui\data\map_rock_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 12; - importance = "0.5 * 12 * 0.05"; - coefMin = 0.250000; - coefMax = 4; - }; - - class Ruin { - icon = "\ca\ui\data\map_ruin_ca.paa"; - color[] = {0.780000, 0, 0.050000, 1}; - size = 16; - importance = "1.2 * 16 * 0.05"; - coefMin = 1; - coefMax = 4; - }; - - class SmallTree { - icon = "\ca\ui\data\map_smalltree_ca.paa"; - color[] = {0.550000, 0.640000, 0.430000, 1}; - size = 12; - importance = "0.6 * 12 * 0.05"; - coefMin = 0.250000; - coefMax = 4; - }; - - class Stack { - icon = "\ca\ui\data\map_stack_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 20; - importance = "2 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - - class Tree { - icon = "\ca\ui\data\map_tree_ca.paa"; - color[] = {0.550000, 0.640000, 0.430000, 1}; - size = 12; - importance = "0.9 * 16 * 0.05"; - coefMin = 0.250000; - coefMax = 4; - }; - - class Tourism { - icon = "\ca\ui\data\map_tourism_ca.paa"; - color[] = {0.780000, 0, 0.050000, 1}; - size = 16; - importance = "1 * 16 * 0.05"; - coefMin = 0.700000; - coefMax = 4; - }; - - class Transmitter { - icon = "\ca\ui\data\map_transmitter_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 20; - importance = "2 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - - class ViewTower { - icon = "\ca\ui\data\map_viewtower_ca.paa"; - color[] = {0, 0.900000, 0, 1}; - size = 16; - importance = "2.5 * 16 * 0.05"; - coefMin = 0.500000; - coefMax = 4; - }; - - class Watertower { - icon = "\ca\ui\data\map_watertower_ca.paa"; - color[] = {0, 0.350000, 0.700000, 1}; - size = 32; - importance = "1.2 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - - class Waypoint { - icon = "\ca\ui\data\map_waypoint_ca.paa"; - size = 20; - color[] = {0, 0.900000, 0, 1}; - importance = "1.2 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - - class Task { - icon = "\ca\ui\data\map_waypoint_ca.paa"; - iconCreated = "#(argb,8,8,3)color(1,1,1,1)"; - iconCanceled = "#(argb,8,8,3)color(0,0,1,1)"; - iconDone = "#(argb,8,8,3)color(0,0,0,1)"; - iconFailed = "#(argb,8,8,3)color(1,0,0,1)"; - colorCreated[] = {1,1,1,1}; - colorCanceled[] = {1,1,1,1}; - colorDone[] = {1,1,1,1}; - colorFailed[] = {1,1,1,1}; - size = 20; - color[] = {0, 0.900000, 0, 1}; - importance = "1.2 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - - class WaypointCompleted { - icon = "\ca\ui\data\map_waypoint_completed_ca.paa"; - size = 20; - color[] = {0, 0.900000, 0, 1}; - importance = "1.2 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - - class ActiveMarker { - icon = "\ca\ui\data\map_waypoint_completed_ca.paa"; - size = 20; - color[] = {0, 0.900000, 0, 1}; - importance = "1.2 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - }; diff --git a/addons/proving_ground/defs_ui.hpp b/addons/proving_ground/defs_ui.hpp deleted file mode 100644 index a43ca4a0c..000000000 --- a/addons/proving_ground/defs_ui.hpp +++ /dev/null @@ -1,97 +0,0 @@ -// Control types -#define CT_STATIC 0 -#define CT_BUTTON 1 -#define CT_EDIT 2 -#define CT_SLIDER 3 -#define CT_COMBO 4 -#define CT_LISTBOX 5 -#define CT_TOOLBOX 6 -#define CT_CHECKBOXES 7 -#define CT_PROGRESS 8 -#define CT_HTML 9 -#define CT_STATIC_SKEW 10 -#define CT_ACTIVETEXT 11 -#define CT_TREE 12 -#define CT_STRUCTURED_TEXT 13 -#define CT_CONTEXT_MENU 14 -#define CT_CONTROLS_GROUP 15 -#define CT_SHORTCUT_BUTTON 16 // Arma 2 - textured button - -#define CT_XKEYDESC 40 -#define CT_XBUTTON 41 -#define CT_XLISTBOX 42 -#define CT_XSLIDER 43 -#define CT_XCOMBO 44 -#define CT_ANIMATED_TEXTURE 45 -#define CT_OBJECT 80 -#define CT_OBJECT_ZOOM 81 -#define CT_OBJECT_CONTAINER 82 -#define CT_OBJECT_CONT_ANIM 83 -#define CT_LINEBREAK 98 -#define CT_USER 99 -#define CT_MAP 100 -#define CT_MAP_MAIN 101 -#define CT_List_N_Box 102 // Arma 2 - N columns list box - - -// Static styles -#define ST_POS 0x0F -#define ST_HPOS 0x03 -#define ST_VPOS 0x0C -#define ST_LEFT 0x00 -#define ST_RIGHT 0x01 -#define ST_CENTER 0x02 -#define ST_DOWN 0x04 -#define ST_UP 0x08 -#define ST_VCENTER 0x0c - -#define ST_TYPE 0xF0 -#define ST_SINGLE 0 -#define ST_MULTI 16 -#define ST_TITLE_BAR 32 -#define ST_PICTURE 48 -#define ST_FRAME 64 -#define ST_BACKGROUND 80 -#define ST_GROUP_BOX 96 -#define ST_GROUP_BOX2 112 -#define ST_HUD_BACKGROUND 128 -#define ST_TILE_PICTURE 144 -#define ST_WITH_RECT 160 -#define ST_LINE 176 - -#define ST_SHADOW 0x100 -#define ST_NO_RECT 0x200 -#define ST_KEEP_ASPECT_RATIO 0x800 - -#define ST_TITLE ST_TITLE_BAR + ST_CENTER - -// Slider styles -#define SL_DIR 0x400 -#define SL_VERT 0 -#define SL_HORZ 0x400 - -#define SL_TEXTURES 0x10 - -// Listbox styles -#define LB_TEXTURES 0x10 -#define LB_MULTI 0x20 - -#define FontM "TahomaB" - - -#define safezoneX_PG 0.1 -#define safezoneY_PG 0.1 -#define display_weight 0.9 -#define display_height 1 -#define border_offsetX 0.03 -#define border_offsetY 0.01 -#define offset_top 0.05 -#define offset_bottom 0.05 -#define column_weight 0.3 -#define column_div 0.01 -#define img_height 0.3 -#define img_height_wc 0.4 -#define str_height 0.04 -#define btn_height 0.05 -#define btn_weight 0.2 - diff --git a/addons/proving_ground/fnc_ammo.sqf b/addons/proving_ground/fnc_ammo.sqf deleted file mode 100644 index 1137f42b8..000000000 --- a/addons/proving_ground/fnc_ammo.sqf +++ /dev/null @@ -1,32 +0,0 @@ -#include "defs.hpp" -#define GET_DISPLAY (uiNameSpace getVariable "balca_debug_hint") -#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) -if PG_get(AMMO) then { - PG_set(AMMO,false); - hint "Infinite ammo disabled"; -}else{ - hint "Infinite ammo enabled"; - PG_set(AMMO,true); - [] spawn { - while {PG_get(AMMO)} do { - sleep 0.5; - { - if !(_x in weapons player) exitWith { - [_x] call PG_get(fnc_add_weapon); - }; - }forEach PG_get(weapons); - { - if !(_x in magazines player) exitWith { - sleep .1; - player addMagazine _x; - }; - }forEach PG_get(mags); - sleep 0.1; - { - (vehicle _x) setVehicleAmmo 1; - }forEach units group player; - }; - }; -}; - - diff --git a/addons/proving_ground/fnc_autoheal.sqf b/addons/proving_ground/fnc_autoheal.sqf deleted file mode 100644 index 42bb4f3b1..000000000 --- a/addons/proving_ground/fnc_autoheal.sqf +++ /dev/null @@ -1,38 +0,0 @@ -#include "defs.hpp" -if PG_get(Autoheal) then { - PG_set(Autoheal,false); - hint "Autoheal disabled"; -}else{ - hint "Autoheal enabled"; - PG_set(Autoheal,true); - [] spawn { - while {PG_get(Autoheal)} do { - sleep 0.5; - _cursortarget = cursorTarget; - _veh = vehicle player; - _p_hit_EH = player addEventHandler ["hit",{player setDammage 0}]; - _p_dam_EH = player addEventHandler ["dammaged",{player setDammage 0}]; - _veh_hit_EH = _veh addEventHandler ["hit",{vehicle player setDammage 0}]; - _veh_dam_EH = _veh addEventHandler ["dammaged",{vehicle player setDammage 0}]; - while {(_veh == (vehicle player))&&PG_get(Autoheal)} do { - if (isClass(configFile >> "cfgPatches" >> "ace_main")) then { - player setVariable ["ace_w_bleed", 0]; - player setVariable ["ace_w_pain", 0]; - player setVariable ["ace_w_state", 0, true]; - player setVariable ["ace_sys_wounds_uncon", false, true]; - player setVariable ["ace_w_unconlen", time]; - player setVariable ["ace_w_revive", -1]; - player setVariable ["ace_sys_stamina_Fatigue", 0]; - }; - player setDammage 0; - _veh setDammage 0; - _veh setFuel 1; - sleep .5; - }; - player removeEventHandler ["hit",_p_hit_EH]; - player removeEventHandler ["dammaged",_p_dam_EH]; - _veh removeEventHandler ["hit",_veh_hit_EH]; - _veh removeEventHandler ["dammaged",_veh_dam_EH]; - }; - }; -}; diff --git a/addons/proving_ground/fnc_booster.sqf b/addons/proving_ground/fnc_booster.sqf deleted file mode 100644 index e39adb38e..000000000 --- a/addons/proving_ground/fnc_booster.sqf +++ /dev/null @@ -1,3 +0,0 @@ -_booster = (findDisplay 46) displayAddEventHandler ["keyDown", "_this call c_proving_ground_booster_keyhandler"]; -sleep 10; -(findDisplay 46) displayRemoveEventHandler ["KeyDown", _booster]; diff --git a/addons/proving_ground/fnc_bulletcam.sqf b/addons/proving_ground/fnc_bulletcam.sqf deleted file mode 100644 index 2eaad1daf..000000000 --- a/addons/proving_ground/fnc_bulletcam.sqf +++ /dev/null @@ -1,32 +0,0 @@ -#include "defs.hpp" -switch true do { - case (_this == "bulletcam"): { - if PG_get(bulletcam) then { - switch PG_get(bullettime) do { - case 1: {PG_set(bullettime,0.5); hint "AccTime 0.5"}; - case 0.5: {PG_set(bullettime,0.1); hint "AccTime 0.1"}; - default { - PG_set(bullettime,1); - PG_set(bulletcam,false); - hint "Bulletcam disabled"; - }; - }; - }else{ - hint "Bulletcam enabled"; - PG_set(bulletcam,true); - }; - }; - case (_this == "hitmarker"): { - if PG_get(hitmarker) then { - PG_set(hitmarker,false); - {deleteMarkerLocal _x} forEach PG_get(hitmarkers); - hint "Hitmarker disabled"; - }else{ - PG_set(hitmarker,true); - hint "Hitmarker enabled"; - }; - }; -}; - - - diff --git a/addons/proving_ground/fnc_bullettrack.sqf b/addons/proving_ground/fnc_bullettrack.sqf deleted file mode 100644 index 8b89512c3..000000000 --- a/addons/proving_ground/fnc_bullettrack.sqf +++ /dev/null @@ -1,95 +0,0 @@ -#include "defs.hpp" -#define GET_DISPLAY (uiNameSpace getVariable "balca_debug_hint") -#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) - -[3,_this] call PG_get(FNC_statistics); - - -_trackCam = { - private ["_cam","_lastpos","_dir","_vel","_bullet","_acctime"]; - _bullet = _this; - _ammo = typeOf _bullet; - _startpos = getPos _bullet; - _lastpos = getPos _bullet; - _interrupt = (findDisplay 46) displayAddEventHandler ["KeyDown", "c_proving_ground_TRACKING = false;_this set [0,nil];true"]; - PG_set(TRACKING,true); - - sleep .01; - - setAccTime PG_get(bullettime); - showCinemaBorder false; - _cam = "camera" camCreate getPosASL _bullet; - _cam cameraEffect ["internal", "back"]; - _cam camSetTarget _bullet; - _cam camSetRelPos [0,-10,2]; - _cam camCommit 0.1; - - - while {!(isNull _bullet)&&(PG_get(TRACKING))} do { - _lastTime = time; - _dir = getDir _bullet; - _vel = velocity _bullet; - _spd = (_vel distance [0,0,0]) max 1; - _lastpos = getPosASL _bullet; - sleep 0.01; - _velVector = [(_vel select 0)/_spd,(_vel select 1)/_spd,(_vel select 2)/_spd]; - _cam camSetRelPos [0,-10,2]; - //_cam camSetRelPos [-5*(_velVector select 0),-5*(_velVector select 1),-5*(_velVector select 2)]; - _cam camcommit 5*(time - _lastTime); - cutRsc ["balca_debug_hint","PLAIN"]; - GET_CTRL(balca_hint_text_IDC) ctrlSetText format ["%1",_ammo]; - GET_CTRL(balca_hint_text2_IDC) ctrlSetText format ["Speed: %1",round(_spd)]; - }; - - setAccTime 1; - if (((_startpos distance _lastpos)>700)&&(PG_get(TRACKING))) then { - _cam camSetPos [(_lastpos select 0) - 200*sin(_dir), (_lastpos select 1)-200*cos(_dir), (_lastpos select 2) + sin(45)*200]; - _cam camCommit 5; - _cam camSetTarget _lastpos; - _endTime = time + 5; - while {PG_get(TRACKING)&&(time<_endtime)} do {sleep .1}; - }; - - _cam cameraeffect ["terminate", "back"]; - camDestroy _cam; - PG_set(TRACKING,false); - (findDisplay 46) displayRemoveEventHandler ["KeyDown",_interrupt]; - -}; - -_trackMarker = { - _bullet = _this; - _startpos = getPos _bullet; - _lastpos = getPos _bullet; - sleep .01; - - _markerName = "PG_hitmarker" + str(_lastpos)+str(random 100000); - createMarkerLocal [_markerName,_lastpos]; - _markerName setMarkerTypeLocal "mil_dot"; - _markerName setMarkerColorLocal "ColorRed"; - //_markerName setMarkerSizeLocal [.3,.3]; - _markerName setMarkerAlphaLocal 1; - PG_set(hitmarkers,PG_get(hitmarkers)+[_markerName]); - - - while {!(isNull _bullet)} do {; - _markerName setMarkerPosLocal getPosASL _bullet; - sleep 0.01; - }; -}; - -////////////////// -_bullet = if ((count _this)>6) then { - _this select 6; -}else{ - nearestObject [_veh, _ammo]; -}; - -if (PG_get(bulletcam)) then { - _bullet spawn _trackCam; -}; - -if (PG_get(hitmarker)) then { - _bullet spawn _trackMarker; -}; - diff --git a/addons/proving_ground/fnc_create_vehicle.sqf b/addons/proving_ground/fnc_create_vehicle.sqf deleted file mode 100644 index 5930e7080..000000000 --- a/addons/proving_ground/fnc_create_vehicle.sqf +++ /dev/null @@ -1,103 +0,0 @@ -#include "defs.hpp" -#define GET_DISPLAY (findDisplay balca_debug_VC_IDD) -#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) -#define GET_SELECTED_DATA(a) ([##a] call {_idc = _this select 0;_selection = (lbSelection GET_CTRL(_idc) select 0);if (isNil {_selection}) then {_selection = 0};(GET_CTRL(_idc) lbData _selection)}) -#define KINDOF_ARRAY(a,b) [##a,##b] call {_veh = _this select 0;_types = _this select 1;_res = false; {if (_veh isKindOf _x) exitwith { _res = true };} forEach _types;_res} - -_mode = _this select 0; -_veh_type = _this select 1; -switch (_mode) do { -case 0: { - - _kindOf = ["tank"]; - _filter = []; - switch (_veh_type) do { - case 0: {_kindOf = ["staticWeapon"];}; - case 1: {_kindOf = ["car","Motorcycle"];_filter = ["Truck_F","Wheeled_APC_F"];}; - case 2: {_kindOf = ["Truck_F"];}; - case 3: {_kindOf = ["Wheeled_APC_F","Tracked_APC_F"];}; - case 4: {_kindOf = ["tank"];_filter = ["Tracked_APC_F"];}; - case 5: {_kindOf = ["helicopter"];_filter = ["ParachuteBase"];}; - case 6: {_kindOf = ["plane"];_filter = ["ParachuteBase"];}; - case 7: {_kindOf = ["ship"];}; - default {_kindOf = ["tank"];_filter = [];}; - }; - _cfgvehicles = configFile >> "cfgVehicles"; - lbClear GET_CTRL(balca_VC_vehlist_IDC); - for "_i" from 0 to (count _cfgvehicles)-1 do { - _vehicle = _cfgvehicles select _i; - if (isClass _vehicle) then { - _veh_type = configName(_vehicle); - if ((getNumber(_vehicle >> "scope")==2)and(getText(_vehicle >> "picture")!="")and(KINDOF_ARRAY(_veh_type,_kindOf))and!(KINDOF_ARRAY(_veh_type,_filter))) then { - GET_CTRL(balca_VC_vehlist_IDC) lbAdd (getText(_vehicle >> "displayName")); - GET_CTRL(balca_VC_vehlist_IDC) lbSetData [(lbSize GET_CTRL(balca_VC_vehlist_IDC))-1,_veh_type]; - GET_CTRL(balca_VC_vehlist_IDC) lbSetPicture [(lbSize GET_CTRL(balca_VC_vehlist_IDC))-1,getText(_vehicle >> "picture")]; - }; - }; - }; - lbSort GET_CTRL(balca_VC_vehlist_IDC); - }; -case 1: { - _veh_type = GET_SELECTED_DATA(balca_VC_vehlist_IDC); - GET_CTRL(balca_VC_vehicle_shortcut_IDC) ctrlSetText (getText(configFile >> "CfgVehicles" >> _veh_type >> "picture")); - _vehicle = (configFile >> "CfgVehicles" >> _veh_type); - _displayName = getText(_vehicle >> "displayName"); - _armor = getNumber(_vehicle >> "armor"); - _maxSpeed = getNumber(_vehicle >> "maxSpeed"); - _weapons = getArray(_vehicle >> "weapons"); - _magazines = getArray(_vehicle >> "magazines"); - _turrets= (_vehicle >> "Turrets"); - for "_i" from 0 to (count _turrets)-1 do { - _turret = _turrets select _i; - _weapons = _weapons + getArray(_turret >> "weapons"); - _magazines = _magazines + getArray(_turret >> "magazines"); - _subturrets = _turret >> "Turrets"; - for "_j" from 0 to (count _subturrets)-1 do { - _turret = _subturrets select _j; - _weapons = _weapons + getArray(_turret >> "weapons"); - _magazines = _magazines + getArray(_turret >> "magazines"); - }; - }; - _lb = parseText "
      "; - _text = composeText [str configName(_vehicle),_lb, - "DisplayName: ",str _displayName,_lb, - "Armor: ", str _armor,_lb, - "MaxSpeed: ", str _maxSpeed,_lb, - "Weapons: ", str _weapons,_lb, - "Magazines: ", str _magazines,_lb]; - GET_CTRL(balca_VC_veh_info_IDC) ctrlSetStructuredText _text; - }; -case 2: { - _old_veh = PG_get(VEH); - _core = PG_get(CORE); - _dir = getDir _core; - _pos = getPos _core; - _veh_type = GET_SELECTED_DATA(balca_VC_vehlist_IDC); - deleteVehicle _old_veh; - _veh = createVehicle [_veh_type, _pos, [], 0, "CAN_COLLIDE"]; - _veh spawn vehicleRepair; - _veh setDir _dir; - PG_set(VEH,_veh); - }; - -case 3: { - _dir = getdir player; - _pos = getPos player; - _pos = [(_pos select 0)+20*sin(_dir),(_pos select 1)+20*cos(_dir),0]; - _veh_type = GET_SELECTED_DATA(balca_VC_vehlist_IDC); - _old_veh = nearestObjects [_pos, ["AllVehicles"], 5]; - {deleteVehicle _x} forEach _old_veh; - _veh = createVehicle [_veh_type, _pos, [], 0, "CAN_COLLIDE"]; - _veh spawn vehicleRepair; - _veh setDir _dir; - if (!isNil "notifyAdminMenu") then { ["vehicle", _veh_type] call notifyAdminMenu }; - }; - -case 4: {//class to clipboard - copyToClipboard (""""+GET_SELECTED_DATA(balca_VC_vehlist_IDC)+""""); - }; - -case 5: {//detailed info to clipboard - copyToClipboard ctrlText GET_CTRL(balca_VC_veh_info_IDC); - }; -} diff --git a/addons/proving_ground/fnc_create_weapon.sqf b/addons/proving_ground/fnc_create_weapon.sqf deleted file mode 100644 index 27f872431..000000000 --- a/addons/proving_ground/fnc_create_weapon.sqf +++ /dev/null @@ -1,133 +0,0 @@ -#include "defs.hpp" -#define GET_DISPLAY (findDisplay balca_debug_WC_IDD) -#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) -#define GET_SELECTED_DATA(a) ([##a] call {_idc = _this select 0;_selection = (lbSelection GET_CTRL(_idc) select 0);if (isNil {_selection}) then {_selection = 0};(GET_CTRL(_idc) lbData _selection)}) -#define __cfgWeap configFile >> "cfgWeapons" - - -_mode = _this select 0; -_item_type = _this select 1; -switch (_mode) do { -case 0: {//fill weapon list - _cfgweapons = configFile >> "cfgWeapons"; - _type = 1; - switch (_item_type) do { - case 0: {_type = [1];};//rifles - case 1: {_type = [1];};//scoped rifles - case 2: {_type = [1,5];};//heavy - case 3: {_type = [4];};//secondary weapon - case 4: {_type = [2];};//pistol - case 5: {_type = [0];};//put/throw - case 6: {_type = [4096];};//BinocularSlot - case 7: {_type = [131072];};//SmallItems - default {_type = [1];}; - }; - lbClear GET_CTRL(balca_WC_weaplist_IDC); - for "_i" from 0 to (count _cfgweapons)-1 do { - _weapon = _cfgweapons select _i; - if (isClass _weapon) then { - _weap_type = configName(_weapon); - _cur_type = getNumber(_weapon >> "type"); - _display_name = getText(_weapon >> "displayName"); - _no_pack = getNumber(_weapon >> "ACE_nopack"); - _optics = getText(_weapon >> "ModelOptics"); - //diag_log format ["%1",[_weap_type,_cur_type,_no_pack]]; - if (((((getNumber(_weapon >> "scope")==2)&&(getText(_weapon >> "model")!="")&&(_display_name!=""))||((_item_type==5)&&(getNumber(_weapon >> "scope")>0)))&&(_cur_type in _type)&&(_display_name!="")) - && - ((_item_type in [3,4,5,6,7])||((_item_type==0)&&(_no_pack!=1)&&((_optics=="-")))||((_item_type==1)&&(_no_pack!=1)&&((_optics!="-")))||((_item_type==2)&&((_cur_type==5)||((_no_pack==1)&&(_cur_type in _type)))))) then { - GET_CTRL(balca_WC_weaplist_IDC) lbAdd _display_name; - GET_CTRL(balca_WC_weaplist_IDC) lbSetData [(lbSize GET_CTRL(balca_WC_weaplist_IDC))-1,_weap_type]; - GET_CTRL(balca_WC_weaplist_IDC) lbSetPicture [(lbSize GET_CTRL(balca_WC_weaplist_IDC))-1,getText(_weapon >> "picture")]; - - - - }; - }; - }; - lbSort GET_CTRL(balca_WC_weaplist_IDC); - - - }; -case 1: {//weap info, fill magazines - _weap_type = GET_SELECTED_DATA(balca_WC_weaplist_IDC); - _weapon = (configFile >> "cfgWeapons" >> _weap_type); - _displayName = getText(_weapon >> "displayName"); - _picture = getText(_weapon >> "picture"); - _library = getText(_weapon >> "Library" >> "libTextDesc"); - _dispersion = getNumber(_weapon >> "dispersion"); - _magazines = []; - { - _magazines = _magazines + getArray( (if ( _x == "this" ) then { _weapon } else { _weapon >> _x }) >> "magazines") - } forEach getArray(_weapon >> "muzzles"); - _dispersion = getNumber(_weapon >> "dispersion"); - { - _dispersion = getNumber(_weapon >> _x >> "dispersion") - } forEach getArray (_weapon >> "modes"); - GET_CTRL(balca_WC_weapon_shortcut_IDC) ctrlSetText (_picture); - _lb = parseText "
      "; - _text = composeText ["Class: ",str configName(_weapon),_lb, - "DisplayName: ",str _displayName,_lb, - "Dispersion: ",str _dispersion,_lb,_lb, - parseText _library]; - GET_CTRL(balca_WC_weap_info_IDC) ctrlSetStructuredText _text; - lbClear GET_CTRL(balca_WC_magazinelist_IDC); - { - GET_CTRL(balca_WC_magazinelist_IDC) lbAdd (getText(configFile >> "cfgMagazines" >> _x >> "displayName")); - GET_CTRL(balca_WC_magazinelist_IDC) lbSetData [(lbSize GET_CTRL(balca_WC_magazinelist_IDC))-1,configName(configFile >> "cfgMagazines" >> _x)]; - GET_CTRL(balca_WC_magazinelist_IDC) lbSetPicture [(lbSize GET_CTRL(balca_WC_magazinelist_IDC))-1,getText(configFile >> "cfgMagazines" >> _x >> "picture")]; - } forEach _magazines; - - }; - -case 2: {//addweapon - PG_set(MAGS,[]); - [GET_SELECTED_DATA(balca_WC_weaplist_IDC)] call PG_get(FNC_ADD_WEAPON); - PG_set(WEAPONS,weapons player); - if (!isNil "notifyAdminMenu") then { ["weapon", GET_SELECTED_DATA(balca_WC_weaplist_IDC)] call notifyAdminMenu }; - }; - -case 3: {//ammo info - _mag = GET_SELECTED_DATA(balca_WC_magazinelist_IDC); - _count = getNumber(configFile>>"CfgMagazines">>_mag>>"count"); - _displayName = getText (configFile >> "CfgMagazines" >> _mag >> "displayName"); - _initSpeed = getNumber(configFile >> "cfgMagazines" >> _mag >> "initSpeed"); - _shell = getText(configFile >> "cfgMagazines" >> _mag >> "ammo"); - _displayName = getText (configFile >> "CfgAmmo" >> _shell >> "displayName"); - _hit = getNumber(configFile >> "cfgAmmo" >> _shell >> "hit"); - _indirectHit = getNumber(configFile >> "cfgAmmo" >> _shell >> "indirectHit"); - _indirectHitRange = getNumber(configFile >> "cfgAmmo" >> _shell >> "indirectHitRange"); - _ACE_damage = getNumber(configFile >> "cfgAmmo" >> _shell >> "ACE_hit"); - _timeToLive = getNumber(configFile >> "cfgAmmo" >> _shell >> "timeToLive"); - _airFriction = getNumber(configFile >> "cfgAmmo" >> _shell >> "airFriction"); - - _lb = parseText "
      "; - _text = composeText ["Class: ",str _mag,_lb, - "Ammo class: ",str _shell,_lb, - "DisplayName: ",str _displayName,_lb, - "Count: ",str _count,_lb, - "Damage: ", str _hit,_lb]; - if (_ACE_damage >0) then { - _text = composeText [_text,"ACE damage: ",str _ACE_damage,_lb]; - }; - if (_indirectHit >0) then { - _text = composeText [_text,"Indirect damage: ",str _indirectHit,_lb,"Explosion radius: ", str _indirectHitRange,_lb]; - }; - _text = composeText [_text,"InitSpeed: ",str _initSpeed,_text,"AirFriction: ",str _airFriction,_lb,"LifeTime: ", str _timeToLive]; - GET_CTRL(balca_WC_magazine_info_IDC) ctrlSetStructuredText _text; - }; - -case 4: {//addMagazine - _mag = GET_SELECTED_DATA(balca_WC_magazinelist_IDC); - player addMagazine _mag; - PG_set(MAGS,magazines player); - if (!isNil "notifyAdminMenu") then { ["ammo", _mag] call notifyAdminMenu }; - }; - -case 5: {//weap to clipboard - copyToClipboard (""""+GET_SELECTED_DATA(balca_WC_weaplist_IDC)+""""); - }; - -case 6: {//ammo to clipboard - copyToClipboard (""""+GET_SELECTED_DATA(balca_WC_magazinelist_IDC)+""""); - }; -}; diff --git a/addons/proving_ground/fnc_environment.sqf b/addons/proving_ground/fnc_environment.sqf deleted file mode 100644 index 6b2fb1209..000000000 --- a/addons/proving_ground/fnc_environment.sqf +++ /dev/null @@ -1,38 +0,0 @@ -#include "defs.hpp" -#define GET_DISPLAY (findDisplay balca_environment_IDD) -#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) -#define GET_SELECTED_DATA(a) ([##a] call {_idc = _this select 0;_selection = (lbSelection GET_CTRL(_idc) select 0);if (isNil {_selection}) then {_selection = 0};(GET_CTRL(_idc) lbData _selection)}) - - -_mode = _this select 0; -switch (_mode) do { -case 0: {//init - - GET_CTRL(balca_env_VD_IDC) ctrlSetText str viewDistance; - GET_CTRL(balca_env_grass_IDC) ctrlSetText str 0; - GET_CTRL(balca_env_fog_IDC) ctrlSetText str fog; - GET_CTRL(balca_env_overcast_IDC) ctrlSetText str overcast; - GET_CTRL(balca_env_rain_IDC) ctrlSetText str rain; - _wind = wind; - GET_CTRL(balca_env_wind_IDC) ctrlSetText str (_wind distance [0,0,0]); - GET_CTRL(balca_env_wind_dir_IDC) ctrlSetText str ((((_wind select 0) atan2 (_wind select 1))+180)%180); - - - }; -case 1: {//apply from editbox - _vd = (parseNumber ctrlText GET_CTRL(balca_env_VD_IDC)) max 0 min 10000; - _grass = (parseNumber ctrlText GET_CTRL(balca_env_grass_IDC)) max 0 min 50; - _fog = (parseNumber ctrlText GET_CTRL(balca_env_fog_IDC)) max 0 min 1; - _overcast = (parseNumber ctrlText GET_CTRL(balca_env_overcast_IDC)) max 0 min 1; - _rain = (parseNumber ctrlText GET_CTRL(balca_env_rain_IDC)) max 0 min 1; - _wind = (parseNumber ctrlText GET_CTRL(balca_env_wind_IDC)) max 0 min 100; - _wind_dir = (parseNumber ctrlText GET_CTRL(balca_env_wind_dir_IDC)) + 180; - - setViewDistance _vd; - setTerrainGrid _grass; - 0 setFog _fog; - 0 setOvercast _overcast; - 0 setRain _rain; - setWind [_wind*sin(_wind_dir),_wind*cos(_wind_dir),true]; - }; -}; diff --git a/addons/proving_ground/fnc_exec_console.sqf b/addons/proving_ground/fnc_exec_console.sqf deleted file mode 100644 index b2ae99fa5..000000000 --- a/addons/proving_ground/fnc_exec_console.sqf +++ /dev/null @@ -1,114 +0,0 @@ -#include "defs.hpp" -#define GET_DISPLAY (findDisplay balca_debug_console_IDD) -#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) -#define GET_SELECTED_DATA(a) ([##a] call {_idc = _this select 0;_selection = (lbSelection GET_CTRL(_idc) select 0);if (isNil {_selection}) then {_selection = 0};(GET_CTRL(_idc) lbData _selection)}) -_mode = _this select 0; -switch (_mode) do { - case 0: {//init - _console_history = __uiGet(balca_console_history); - if (isNil{_console_history}) then { - _console_history = ["hint format [""%1"",cursortarget]"]; - __uiSet(balca_console_history,_console_history); - { - GET_CTRL(balca_debug_console_history_IDC) lbAdd _x; - GET_CTRL(balca_debug_console_history_IDC) lbSetData [(lbSize GET_CTRL(balca_debug_console_history_IDC))-1,_x]; - } forEach _console_history; - }else{ - { - GET_CTRL(balca_debug_console_history_IDC) lbAdd _x; - GET_CTRL(balca_debug_console_history_IDC) lbSetData [(lbSize GET_CTRL(balca_debug_console_history_IDC))-1,_x]; - } forEach _console_history; - GET_CTRL(balca_debug_console_edit_IDC) ctrlSetText (_console_history select ((count _console_history)-1)); - GET_CTRL(balca_debug_console_result_IDC) ctrlSetText str __uiGet(balca_console_result); - }; - }; - case 1: {//exec - GET_CTRL(balca_debug_console_result_IDC) ctrlSetText ''; - _command = ctrlText balca_debug_console_edit_IDC; - _console_history = __uiGet(balca_console_history); - if (({_x==_command} count _console_history)<1) then { - _console_history set [(count _console_history),_command]; - __uiSet(balca_console_history,_console_history); - GET_CTRL(balca_debug_console_history_IDC) lbAdd str _command; - GET_CTRL(balca_debug_console_history_IDC) lbSetData [(lbSize GET_CTRL(balca_debug_console_history_IDC))-1,_command]; - }; - _result = call compile _command; - if (!(isNil {_result})) then { - GET_CTRL(balca_debug_console_result_IDC) ctrlSetText str _result; - __uiSet(balca_console_result,_result); - }; - }; - case 2: {//fill console from history - GET_CTRL(balca_debug_console_edit_IDC) ctrlSetText GET_SELECTED_DATA(balca_debug_console_history_IDC); - }; - case 3: {//exec command from history - GET_CTRL(balca_debug_console_result_IDC) ctrlSetText ''; - _command = GET_SELECTED_DATA(balca_debug_console_history_IDC); - GET_CTRL(balca_debug_console_edit_IDC) ctrlSetText _command; - _result = call compile _command; - if (!(isNil {_result})) then { - GET_CTRL(balca_debug_console_result_IDC) ctrlSetText str _result; - __uiSet(balca_console_result,_result); - }; - }; - case 4: {//exec globally - ["This feature has been disabled."] spawn BIS_fnc_guiMessage; - /*GET_CTRL(balca_debug_console_result_IDC) ctrlSetText ''; - _command = ctrlText balca_debug_console_edit_IDC; - _console_history = __uiGet(balca_console_history); - if (({_x==_command} count _console_history)<1) then { - _console_history set [(count _console_history),_command]; - __uiSet(balca_console_history,_console_history); - GET_CTRL(balca_debug_console_history_IDC) lbAdd str _command; - GET_CTRL(balca_debug_console_history_IDC) lbSetData [(lbSize GET_CTRL(balca_debug_console_history_IDC))-1,_command]; - }; - [player, _command] call fn_vehicleInit;*/ - // processInitCommands; - }; - case 5: {//exec on server - ["This feature has been disabled."] spawn BIS_fnc_guiMessage; - /*GET_CTRL(balca_debug_console_result_IDC) ctrlSetText ''; - _command = ctrlText balca_debug_console_edit_IDC; - _console_history = __uiGet(balca_console_history); - if (({_x==_command} count _console_history)<1) then { - _console_history set [(count _console_history),_command]; - __uiSet(balca_console_history,_console_history); - GET_CTRL(balca_debug_console_history_IDC) lbAdd str _command; - GET_CTRL(balca_debug_console_history_IDC) lbSetData [(lbSize GET_CTRL(balca_debug_console_history_IDC))-1,_command]; - }; - player setVariable ['PG_result',[]]; - [player, ("if isServer then {this setVariable [""PG_result"",[call {"+_command+"}],true]}")] call fn_vehicleInit; - // processInitCommands; - - [] spawn { - _time = time+2; - waitUntil{ - ((count(player getVariable ['PG_result',[]])==1)||_time>time) - }; - _res = player getVariable ['PG_result',[""]]; - GET_CTRL(balca_debug_console_result_IDC) ctrlSetText str(_res select 0); - player setVariable ['PG_result',[]]; - };*/ - }; - case 6: {//run tracker - GET_CTRL(balca_debug_console_result_IDC) ctrlSetText ''; - PG_tracker = true; - _command = (ctrlText balca_debug_console_edit_IDC); - _console_history = __uiGet(balca_console_history); - if (({_x==_command} count _console_history)<1) then { - _console_history set [(count _console_history),_command]; - __uiSet(balca_console_history,_console_history); - GET_CTRL(balca_debug_console_history_IDC) lbAdd str _command; - GET_CTRL(balca_debug_console_history_IDC) lbSetData [(lbSize GET_CTRL(balca_debug_console_history_IDC))-1,_command]; - }; - _code = compile _command; - _result = _code spawn {while {PG_tracker} do {sleep .5;call _this}}; - if (!(isNil {_result})) then { - GET_CTRL(balca_debug_console_result_IDC) ctrlSetText str _result; - __uiSet(balca_console_result,_result); - }; - }; - case 7: {//run tracker - PG_tracker = false; - }; -}; diff --git a/addons/proving_ground/fnc_global.sqf b/addons/proving_ground/fnc_global.sqf deleted file mode 100644 index eb4c74d18..000000000 --- a/addons/proving_ground/fnc_global.sqf +++ /dev/null @@ -1,313 +0,0 @@ -_fnc_create_land_target = { - private ["_index","_unit_type"]; - _index = _this select 0; - _unit_type = _this select 1; - _offset = if (count(_this) >2) then {_this select 2}else{0}; - _is_new = false; - if (_index == -1) then {_index = (count PG_get(land_targets));_is_new = true}; - _core = PG_get(core); - _dir = getDir _core; - _pos = getPos _core; - _tdist = PG_get(target_props) select 0; - _tspeed = PG_get(target_props) select 1; - _tdir = PG_get(target_props) select 2; - _grp = createGroup PG_get(opfor); - _grp copyWaypoints PG_get(target_grp); - _pos = if (PG_get(target_mode)<2) then { - [(_pos select 0)+(_tdist+20)*sin(_dir),(_pos select 1)+(_tdist+20)*cos(_dir),0]; - }else{ - waypointPosition ((waypoints _grp) select 0) - }; - - - _unit = objNull; - if (_unit_type isKindOf "Man") then { - _unit = _grp createUnit [_unit_type,_pos,[],0.1,"NONE"]; - switch PG_get(target_mode) do { - case 2: {//land AI - - }; - default { - _unit setBehaviour "CARELESS"; - _unit disableAI "PATHPLAN"; - _unit disableAI "MOVE"; - _unit doWatch _core; - _unit stop true; - }; - }; - _unit allowFleeing 0; - _unit disableAI "TARGET"; - _unit disableAI "AUTOTARGET"; -// _unit disableAI "ANIM"; - _unit setCombatMode "BLUE"; - switch (_index%4) do { - case 0: {_unit setUnitPos "UP"}; - case 1: {_unit setUnitPos "MIDDLE"}; - case 2: {_unit setUnitPos "DOWN"}; - default {_unit setUnitPos "UP"}; - }; - }else{ - _unit = createVehicle [_unit_type, _pos, [], 0, "NONE"]; - [_unit,_grp] call PG_get(fnc_create_crew); - _unit setCombatMode "BLUE"; - _unit engineOn true; - if !(_unit isKindOf "Plane") then {_unit flyInHeight 5;}; - }; - _unit setDir _tdir; - {_unit removeMagazine _x} forEach magazines _unit; - group player reveal _unit; - //hint on hit - _unit addEventHandler["hit","hintSilent format['""%1"" hit, damage:%2',getText(configFile >> 'cfgVehicles' >> typeof (_this select 0) >> 'displayName'),ceil((_this select 2)*100)/100]; [4,_this] call c_proving_ground_fnc_statistics"]; - //hint when killed - _unit addEventHandler["killed","hintSilent format['""%1"" killed',getText(configFile >> 'cfgVehicles' >> typeof (_this select 0) >> 'displayName')];[5,_this] call c_proving_ground_fnc_statistics"]; - - - //hint format ["%1",[_index,_trgname]]; - - _target = [_unit,_unit_type,_grp,_offset]; - PG_set_arr(LAND_TARGETS,_index,_target); - switch PG_get(target_mode) do { - case 0: {//land static - if (_is_new) then { - [] call PG_get(fnc_calc_offsets); - }else{ - [0,_index] call PG_get(fnc_move_land_targets); - }; - }; - case 1: {//land random - _unit spawn PG_get(fnc_move_rand_land); - }; - }; - _unit -}; - -_fnc_create_crew = { - private["_unit","_crew","_grp","_veh"]; - _veh = _this select 0; - _grp = _this select 1; - _crew = getArray(configFile >> "cfgVehicles" >> (typeOf _veh) >> "typicalCargo"); - _target_mode = PG_get(target_mode); - - { - _unit = (_grp createUnit [_x,[0,0,0],[],0.1,"NONE"]); - {_unit removeMagazine _x} forEach magazines _unit; - switch _target_mode do { - case 2: {//land AI - _unit doWatch PG_get(core); - }; - case 3: {//air AI - }; - default { - _unit disableAI "PATHPLAN"; - _unit disableAI "MOVE"; - _unit doWatch PG_get(core); - _unit stop true; - }; - }; - _unit allowFleeing 0; - _unit disableAI "TARGET"; - _unit disableAI "AUTOTARGET"; - _unit setCombatMode "BLUE"; - switch (_forEachIndex) do { - case 0: {_unit moveInDriver _veh}; - case 1: {_unit moveInGunner _veh}; - case 2: {_unit moveInCommander _veh}; - default {_unit moveInCargo _veh}; - }; - } forEach _crew; -}; - -_fnc_create_air_target = { - _index = _this select 0; - _veh_type = _this select 1; - _count = count PG_get(air_targets); - if (_index == -1) then {_index = _count;}; - - - _core = PG_get(core); - _tdist = PG_get(target_props) select 0; - _tspeed = PG_get(target_props) select 1; - _tdir = PG_get(target_props) select 2; - _dir = getDir _core; - _pos = getPos _core; - _veh = createVehicle [_veh_type, [0,0,1000], [], 0, "FLY"]; - _grp = createGroup PG_get(opfor); - _veh setDir _dir; - _veh setPos [_pos select 0,_pos select 1,10]; - _veh engineOn true; - _veh setVelocity [80*sin(_dir),80*cos(_dir),10]; - [_veh,_grp] call PG_get(fnc_create_crew); - _veh addEventHandler ["IncomingMissile","(_this select 0) fire [""CMFlareLauncher"",""Burst""]"]; - _target = [_veh,_veh_type,_grp]; - PG_set_arr(AIR_TARGETS,_index,_target); - group player reveal _veh; - _grp copyWaypoints PG_get(air_target_grp); - _veh flyInHeight 300; - - _veh addEventHandler["hit","hintSilent format['""%1"" hit\ndamage:%2\ncrew status: %3',getText(configFile >> 'cfgVehicles' >> typeof (_this select 0) >> 'displayName'),ceil((_this select 2)*100)/100,[(_this select 0)] call {_crew = crew (_this select 0);_crew_stat = [];{_crew_stat set [count _crew_stat, damage _x]} forEach _crew;_crew_stat}]; "]; - _veh addEventHandler["killed","hintSilent format['""%1"" killed',getText(configFile >> 'cfgVehicles' >> typeof (_this select 0) >> 'displayName')];"]; - - _veh -}; - -_fnc_move_land_targets = { - _shift = _this select 0; - _move_only = _this select 1;//change position only of selected unit index, -1 - change position of all units - _core = PG_get(core); - _tdist = PG_get(target_props) select 0; - _tspeed = PG_get(target_props) select 1; - _tdir = PG_get(target_props) select 2; - _dir = getDir _core; - _pos = getPos _core; - _land_targets = if (_move_only>-1) then {[PG_get(land_targets) select _move_only]}else{PG_get(land_targets)}; - - {//change unit position - _target = _x; - _unit = _target select 0; - _side_offset = _shift + (_target select 3); - _tpos = [(_pos select 0)+_side_offset*sin(_dir+90)+_tdist*sin(_dir),(_pos select 1)+_side_offset*cos(_dir+90)+_tdist*cos(_dir),0]; - _unit setPos _tpos; - _unit setDir _tdir; - } forEach _land_targets;; -}; - -_fnc_calc_offsets = { - _land_targets = PG_get(land_targets); - _core = PG_get(CORE); - _dir = getDir _core; - _pos = getPos _core; - _center_offset = 0; - _prev_size = 0; - _betweenArray = []; - {//calculate side offsets - _unit = _x select 0; - _type = _x select 1; - _size = switch true do { - case (_type isKindOf "man"): {1}; - case (_type isKindOf "air"): {12}; - default {3+abs(5*sin(_dir-_tdir))}; - }; - _between = _size + _prev_size; - _center_offset = _center_offset + _size; - _betweenArray set [count _betweenArray,_between]; - _prev_size = _size; - } forEach _land_targets; - _side_offset = - _center_offset; - _new_land_targets = []; - { - _between = _betweenArray select _forEachIndex; - _side_offset = _side_offset + _between; - _new_land_targets set [_forEachIndex,[_x select 0,_x select 1,_x select 2,_side_offset]]; - } forEach _land_targets; - PG_set(land_targets,_new_land_targets); - [0,-1] call PG_get(fnc_move_land_targets); -}; - -_fnc_move_rand_land = { - _unit = _this; - _props = PG_get(target_props); - _tdist = _props select 0; - _tdir = _props select 2; - _core = PG_get(core); - _dir = getDir _core; - _pos = getPos _core; - _rprops = PG_get(target_props_rand); - _rdist = _rprops select 0; - _rspeed = _rprops select 1; - _rdir = _rprops select 2; - _PG_tdist = _unit getVariable "PG_tdist"; - switch true do { - case ((_PG_tdist select 0)==_tdist): {};//do nothing - default {//it is new unit or _tdist changed - _cdist = _tdist -_rdist + random(2*_rdist); - _cdir = _tdir -_rdir + random(2*_rdir); - _side_offset = -20+random(40); - _tpos = [(_pos select 0)+_side_offset*sin(_dir+90)+_cdist*sin(_dir),(_pos select 1)+_side_offset*cos(_dir+90)+_cdist*cos(_dir),0]; - _unit setPos _tpos; - _unit setDir _cdir; - if (_rspeed!=0) then { - _shift = _side_offset; - _delay = 0.03; - _shift_inc = (random(_rspeed)*_delay); - if (random(2)>1) then {_shift_inc = -_shift_inc}; - while {((alive _unit)&&(PG_get(target_props_rand) select 1) != 0)&&(PG_get(target_mode) == 1)} do { - sleep _delay; - _shift = _shift + _shift_inc; - if (abs(_shift)>20) then {_shift_inc = -_shift_inc}; - _tpos = [(_pos select 0)+_shift*sin(_dir+90)+_cdist*sin(_dir),(_pos select 1)+_shift*cos(_dir+90)+_cdist*cos(_dir),0]; - _unit setPos _tpos; - }; - }; - }; - }; -}; - -PG_set(fnc_create_crew,_fnc_create_crew); -PG_set(fnc_create_land_target,_fnc_create_land_target); -PG_set(fnc_create_air_target,_fnc_create_air_target); -PG_set(fnc_calc_offsets,_fnc_calc_offsets); -PG_set(fnc_move_land_targets,_fnc_move_land_targets); -PG_set(fnc_move_rand_land,_fnc_move_rand_land); - -_booster_keyhandler = -{ - private["_handled","_ctrl", "_dikCode", "_shift", "_ctrlKey", "_alt"]; - _ctrl = _this select 0; - _dikCode = _this select 1; - _shift = _this select 2; - _ctrlKey = _this select 3; - _alt = _this select 4; - _handled = false; - if (!_shift && !_ctrlKey && !_alt && (_dikCode == 18)&&(vehicle player != player)) then { - - _ctrl = nil; - _handled = true; - _veh = vehicle player; - _vel = velocity _veh; - _pos = getPos _veh; - _dir = getdir _veh; - _pitch = acos((vectorUp _veh) select 2); - _vel_new = [((_vel select 0) + 10*sin(_dir)),((_vel select 1) + 10*cos(_dir)),((_vel select 2) + 10*sin(_pitch))]; - _veh setVelocity _vel_new; - }; - _handled; -}; -PG_set(booster_keyhandler,_booster_keyhandler); - -_fnc_add_weapon = { - _weapon = _this select 0; - _weaponCfg = (configFile >> "cfgWeapons" >> _weapon); - _type = getNumber(_weaponCfg >> "type"); - if (_type in [1,2,4,5]) then { - {_cWepType = [getNumber(configFile >> "cfgWeapons" >> _x >> "type")]; - if (_cWepType select 0 in [1,5]) then {_cWepType = [1,5];}; - if (_type in _cWepType) then { - player removeWeapon _x; - _current_magazines = magazines player; - _compatible_magazines = getArray(configFile >> "cfgWeapons" >> _x >> "magazines"); - {if (_x in _compatible_magazines) then { - player removeMagazine _x; - };} forEach _current_magazines; - };} forEach (weapons player); - }; - _magazines = []; - { - _magazines = _magazines + getArray( (if ( _x == "this" ) then { _weaponCfg } else { _weaponCfg >> _x }) >> "magazines") - } forEach getArray(_weaponCfg >> "muzzles"); - if (count(_magazines) > 0) then { - player addMagazine (_magazines select 0); - }; - player addWeapon _weapon; - player selectWeapon _weapon; - //remove uncompatible magazines - _compatible_magazines = []; - { - _compatible_magazines = _compatible_magazines + getArray(configFile >> "cfgWeapons" >> _x >> "magazines"); - } forEach (weapons player); - {if !(_x in _compatible_magazines) then { - player removeMagazine _x; - };} forEach (magazines player); - PG_set(mags,magazines player); - PG_set(weapons,weapons player); -}; -PG_set(fnc_add_weapon,_fnc_add_weapon); diff --git a/addons/proving_ground/fnc_satcam_keyhandler.sqf b/addons/proving_ground/fnc_satcam_keyhandler.sqf deleted file mode 100644 index 9e4655cfd..000000000 --- a/addons/proving_ground/fnc_satcam_keyhandler.sqf +++ /dev/null @@ -1,125 +0,0 @@ -#include "defs.hpp" -private ["_event","_keyCode","_shift","_control","_alt"]; -private["_handled","_ctrl", "_dikCode", "_shift", "_ctrlKey", "_alt"]; -_ctrl = _this select 0; -_dikCode = _this select 1; -_shift = _this select 2; -_ctrlKey = _this select 3; -_alt = _this select 4; -_handled = false; - - -_balca_satcam = GVAR(balca_satcam); -_cam = _balca_satcam select 0; -_keyhandler = _balca_satcam select 1; -_campos = _balca_satcam select 2; -_dir = (_balca_satcam select 3) select 0; -_pitch = (_balca_satcam select 3) select 1; -_fov = (_balca_satcam select 3) select 2; -switch (_dikCode) do { - case 17:{ //W - _newpos = [(_campos select 0) + sin(_dir)*(_campos select 2)/4,(_campos select 1) + cos(_dir)*(_campos select 2)/4,_campos select 2]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; - case 31:{ //S - _newpos = [(_campos select 0) - sin(_dir)*(_campos select 2)/4,(_campos select 1) - cos(_dir)*(_campos select 2)/4,_campos select 2]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; - case 30:{ //A - _newpos = [(_campos select 0) + sin(_dir-90)*(_campos select 2)/4,(_campos select 1) + cos(_dir-90)*(_campos select 2)/4,_campos select 2]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; - case 32:{ //D - _newpos = [(_campos select 0) + sin(_dir+90)*(_campos select 2)/4,(_campos select 1) + cos(_dir+90)*(_campos select 2)/4,_campos select 2]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; - case 200:{ //up - _pitch = (_pitch + 1) min 89; - _cam setVectorDirAndUp [[sin(_dir)*cos(_pitch),cos(_dir)*cos(_pitch),sin(_pitch)],[-sin(_dir)*sin(_pitch), -cos(_dir)*sin(_pitch), -cos(_pitch)]]; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_campos,[_dir,_pitch,_fov]]; - }; - case 208:{ //down - _pitch = (_pitch - 1) max -89; - _cam setVectorDirAndUp [[sin(_dir)*cos(_pitch),cos(_dir)*cos(_pitch),sin(_pitch)],[-sin(_dir)*sin(_pitch), -cos(_dir)*sin(_pitch), -cos(_pitch)]]; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_campos,[_dir,_pitch,_fov]]; - }; - case 203:{ //left - _dir = (_dir - 1); - _cam setVectorDirAndUp [[sin(_dir)*cos(_pitch),cos(_dir)*cos(_pitch),sin(_pitch)],[-sin(_dir)*sin(_pitch), -cos(_dir)*sin(_pitch), -cos(_pitch)]]; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_campos,[_dir,_pitch,_fov]]; - }; - case 205:{ //right - _dir = (_dir + 1); - _cam setVectorDirAndUp [[sin(_dir)*cos(_pitch),cos(_dir)*cos(_pitch),sin(_pitch)],[-sin(_dir)*sin(_pitch), -cos(_dir)*sin(_pitch), -cos(_pitch)]]; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_campos,[_dir,_pitch,_fov]]; - }; - case 16:{ //Q - _newpos = [(_campos select 0),(_campos select 1),(((_campos select 2)*1.1) min 2000)]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; - case 44:{ //Z - _newpos = [(_campos select 0),(_campos select 1),(((_campos select 2)/1.1) max 2)]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; -/* case 78:{ //Num + - _fov = _fov*1.1; - _cam camSetFov _fov; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; - case 74:{ //Num - - _fov = _fov/1.1; - _cam camSetFov _fov; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - };*/ - case 49:{ //N normal view - ppEffectDestroy ppColor; - ppEffectDestroy ppInversion; - ppEffectDestroy ppGrain; - camUseNVG false; - - ppGrain = ppEffectCreate ["filmGrain", 2005]; - ppGrain ppEffectEnable true; - ppGrain ppEffectAdjust [0.02, 1, 1, 0, 1]; - ppGrain ppEffectCommit 0; - }; - case 47:{ //V night vision - ppEffectDestroy ppColor; - ppEffectDestroy ppInversion; - ppEffectDestroy ppGrain; - camUseNVG true; - }; - case 1:{ //Esc - - ppEffectDestroy ppColor; - ppEffectDestroy ppInversion; - ppEffectDestroy ppGrain; - - camUseNVG false; - (findDisplay 46) displayRemoveEventHandler ["KeyDown",_keyhandler]; - (findDisplay 46) displayRemoveEventHandler ["MouseMoving",GVAR(balca_satcam_mouseHandlerId)]; - GVAR(balca_satcam) =nil; - _cam cameraEffect ["terminate","back"]; - camDestroy _cam; - }; - default { - //titleText["WASD - move, Num-/Num+ - zoom, V - NV, N - normal view, Q - exit","plain down"]; - }; -};//end switch diff --git a/addons/proving_ground/fnc_satcam_keyhandler_OA.sqf b/addons/proving_ground/fnc_satcam_keyhandler_OA.sqf deleted file mode 100644 index 5e118bdde..000000000 --- a/addons/proving_ground/fnc_satcam_keyhandler_OA.sqf +++ /dev/null @@ -1,147 +0,0 @@ -#include "defs.hpp" -private ["_event","_keyCode","_shift","_control","_alt"]; -private["_handled","_ctrl", "_dikCode", "_shift", "_ctrlKey", "_alt"]; -_ctrl = _this select 0; -_dikCode = _this select 1; -_shift = _this select 2; -_ctrlKey = _this select 3; -_alt = _this select 4; -_handled = false; - -_balca_satcam = GVAR(balca_satcam); -_cam = _balca_satcam select 0; -_keyhandler = _balca_satcam select 1; -_campos = _balca_satcam select 2; -_dir = (_balca_satcam select 3) select 0; -_pitch = (_balca_satcam select 3) select 1; -_fov = (_balca_satcam select 3) select 2; -switch (_dikCode) do { - case 17:{ //W - _newpos = [(_campos select 0) + sin(_dir)*(_campos select 2)/4,(_campos select 1) + cos(_dir)*(_campos select 2)/4,_campos select 2]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; - case 31:{ //S - _newpos = [(_campos select 0) - sin(_dir)*(_campos select 2)/4,(_campos select 1) - cos(_dir)*(_campos select 2)/4,_campos select 2]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; - case 30:{ //A - _newpos = [(_campos select 0) + sin(_dir-90)*(_campos select 2)/4,(_campos select 1) + cos(_dir-90)*(_campos select 2)/4,_campos select 2]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; - case 32:{ //D - _newpos = [(_campos select 0) + sin(_dir+90)*(_campos select 2)/4,(_campos select 1) + cos(_dir+90)*(_campos select 2)/4,_campos select 2]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; - case 200:{ //up - _pitch = (_pitch + 1) min 89; - _cam setVectorDirAndUp [[sin(_dir)*cos(_pitch),cos(_dir)*cos(_pitch),sin(_pitch)],[-sin(_dir)*sin(_pitch), -cos(_dir)*sin(_pitch), -cos(_pitch)]]; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_campos,[_dir,_pitch,_fov]]; - }; - case 208:{ //down - _pitch = (_pitch - 1) max -89; - _cam setVectorDirAndUp [[sin(_dir)*cos(_pitch),cos(_dir)*cos(_pitch),sin(_pitch)],[-sin(_dir)*sin(_pitch), -cos(_dir)*sin(_pitch), -cos(_pitch)]]; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_campos,[_dir,_pitch,_fov]]; - }; - case 203:{ //left - _dir = (_dir - 1); - _cam setVectorDirAndUp [[sin(_dir)*cos(_pitch),cos(_dir)*cos(_pitch),sin(_pitch)],[-sin(_dir)*sin(_pitch), -cos(_dir)*sin(_pitch), -cos(_pitch)]]; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_campos,[_dir,_pitch,_fov]]; - }; - case 205:{ //right - _dir = (_dir + 1); - _cam setVectorDirAndUp [[sin(_dir)*cos(_pitch),cos(_dir)*cos(_pitch),sin(_pitch)],[-sin(_dir)*sin(_pitch), -cos(_dir)*sin(_pitch), -cos(_pitch)]]; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_campos,[_dir,_pitch,_fov]]; - }; - case 16:{ //Q - _newpos = [(_campos select 0),(_campos select 1),(((_campos select 2)*1.1) min 2000)]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; - case 44:{ //Z - _newpos = [(_campos select 0),(_campos select 1),(((_campos select 2)/1.1) max 2)]; - _cam camSetPos _newpos; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_newpos,[_dir,_pitch,_fov]]; - }; -/* case 78:{ //Num + - _fov = _fov*1.1; - _cam camSetFov _fov; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_campos,[_dir,_pitch,_fov]]; - }; - case 74:{ //Num - - _fov = _fov/1.1; - _cam camSetFov _fov; - _cam camCommit 0.1; - GVAR(balca_satcam) = [_cam,_keyhandler,_campos,[_dir,_pitch,_fov]]; - };*/ - case 20:{ //T white is hot - ppEffectDestroy ppColor; - ppEffectDestroy ppInversion; - ppEffectDestroy ppGrain; - - true setCamUseTi 0; - camUseNVG false; - }; - case 49:{ //N normal view - ppEffectDestroy ppColor; - ppEffectDestroy ppInversion; - ppEffectDestroy ppGrain; - - false setCamUseTi 0; - false setCamUseTi 1; - camUseNVG false; - - ppGrain = ppEffectCreate ["filmGrain", 2005]; - ppGrain ppEffectEnable true; - ppGrain ppEffectAdjust [0.02, 1, 1, 0, 1]; - ppGrain ppEffectCommit 0; - }; - case 19:{ //R black is hot - ppEffectDestroy ppColor; - ppEffectDestroy ppInversion; - ppEffectDestroy ppGrain; - - true setCamUseTi 1; - camUseNVG false; - }; - case 47:{ //V night vision - ppEffectDestroy ppColor; - ppEffectDestroy ppInversion; - ppEffectDestroy ppGrain; - - false setCamUseTi 0; - false setCamUseTi 1; - camUseNVG true; - }; - case 1:{ //Esc - ppEffectDestroy ppColor; - ppEffectDestroy ppInversion; - ppEffectDestroy ppGrain; - - false setCamUseTi 0; - false setCamUseTi 1; - camUseNVG false; - (findDisplay 46) displayRemoveEventHandler ["KeyDown",_keyhandler]; - (findDisplay 46) displayRemoveEventHandler ["MouseMoving",GVAR(balca_satcam_mouseHandlerId)]; - GVAR(balca_satcam) = nil; - _cam cameraEffect ["terminate","back"]; - camDestroy _cam; - }; - default { - //titleText["WASD - move, Q/Z - altitude, V - NV, N - normal view","plain down"]; - }; -};//end switch diff --git a/addons/proving_ground/fnc_sattelite.sqf b/addons/proving_ground/fnc_sattelite.sqf deleted file mode 100644 index 9d0a28b33..000000000 --- a/addons/proving_ground/fnc_sattelite.sqf +++ /dev/null @@ -1,37 +0,0 @@ -#include "defs.hpp" -_pos = _this select 0; -_pos = [_pos select 0,_pos select 1,-(_pos select 2)]; -disableSerialization; - -showCinemaBorder false; -_cam = "camera" camCreate [_pos select 0,_pos select 1,200]; -_cam cameraeffect ["External", "Top"]; - -_dir = 0; -_pitch = -89; -_fov = 0.7; -_cam camSetFov 0.7; -_cam setVectorDirAndUp [[sin(_dir)*cos(_pitch),cos(_dir)*cos(_pitch),sin(_pitch)],[-sin(_dir)*sin(_pitch), -cos(_dir)*sin(_pitch), -cos(_pitch)]]; - -//titleText["WASD - move, Arrows - rotate, Num-/Num+ - zoom, V - NV, N - normal view, Q - exit","plain down"]; -_keyhandler = (findDisplay 46) displayAddEventHandler ["KeyDown", "_this call c_proving_ground_satcam_keyhandler"]; -GVAR(balca_satcam) = [_cam,_keyhandler,[_pos select 0,_pos select 1,200],[_dir,_pitch,_fov]]; -GVAR(balca_satcam_mouseHandlerId) = (findDisplay 46) displayAddEventHandler ["MouseMoving", "_this call c_proving_ground_balca_satcam_MouseMovingHandler"]; -GVAR(balca_satcam_MouseMovingHandler) = { - _display = _this select 0; - _dx = _this select 1; - _dy = _this select 2; - - _balca_satcam = GVAR(balca_satcam); - _cam = _balca_satcam select 0; - _keyhandler = _balca_satcam select 1; - _campos = _balca_satcam select 2; - _dir = (_balca_satcam select 3) select 0; - _pitch = (_balca_satcam select 3) select 1; - _fov = (_balca_satcam select 3) select 2; - _pitch = (_pitch - _dy) min 89 max -89; - _dir = (_dir + _dx)%360; - _cam setVectorDirAndUp [[sin(_dir)*cos(_pitch),cos(_dir)*cos(_pitch),sin(_pitch)],[-sin(_dir)*sin(_pitch), -cos(_dir)*sin(_pitch), -cos(_pitch)]]; - _cam camCommit 0.01; - GVAR(balca_satcam) = [_cam,_keyhandler,_campos,[_dir,_pitch,_fov]]; -}; diff --git a/addons/proving_ground/fnc_show_dialog.sqf b/addons/proving_ground/fnc_show_dialog.sqf deleted file mode 100644 index e618fa090..000000000 --- a/addons/proving_ground/fnc_show_dialog.sqf +++ /dev/null @@ -1 +0,0 @@ -createDialog "balca_debug_main"; diff --git a/addons/proving_ground/fnc_sound.sqf b/addons/proving_ground/fnc_sound.sqf deleted file mode 100644 index 26a6f56fb..000000000 --- a/addons/proving_ground/fnc_sound.sqf +++ /dev/null @@ -1,36 +0,0 @@ -#include "defs.hpp" -#define GET_DISPLAY (findDisplay balca_sound_player_IDD) -#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) -#define GET_SELECTED_DATA(a) ([##a] call {_idc = _this select 0;_selection = (lbSelection GET_CTRL(_idc) select 0);if (isNil {_selection}) then {_selection = 0};(GET_CTRL(_idc) lbData _selection)}) - - -_mode = _this select 0; -switch (_mode) do { -case 0: {//fill sound list - _cfgsounds = configFile >> "cfgSounds"; - lbClear GET_CTRL(balca_soundlist_IDC); - for "_i" from 0 to (count _cfgsounds)-1 do { - _sound = _cfgsounds select _i; - if (isClass _sound) then { - _soundName = configName(_sound); - _titles = getArray(_sound >> "Titles"); - if (count _titles > 1) then { - GET_CTRL(balca_soundlist_IDC) lbAdd (_soundName + " " + (_titles select 1)); - }else{ - GET_CTRL(balca_soundlist_IDC) lbAdd _soundName; - }; - GET_CTRL(balca_soundlist_IDC) lbSetData [(lbSize GET_CTRL(balca_soundlist_IDC))-1,_soundName]; - }; - }; - lbSort GET_CTRL(balca_soundlist_IDC); - }; -case 1: {//play - deleteVehicle PG_get(SOUNDSOURCE); - PG_set(SOUNDSOURCE,"camera" createVehicle getPosATL player); - PG_get(SOUNDSOURCE) say GET_SELECTED_DATA(balca_soundlist_IDC); - }; - -case 2: {//clipboard - copyToClipboard (""""+GET_SELECTED_DATA(balca_soundlist_IDC)+""""); - }; -}; diff --git a/addons/proving_ground/fnc_statistics.sqf b/addons/proving_ground/fnc_statistics.sqf deleted file mode 100644 index ed3784d7c..000000000 --- a/addons/proving_ground/fnc_statistics.sqf +++ /dev/null @@ -1,79 +0,0 @@ -#include "defs.hpp" -#define GET_DISPLAY (findDisplay balca_stat_display_IDD) -#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) - -_stat = PG_get(STAT); -_mode = _this select 0; -_opt = _this select 1; -switch (_mode) do { -case 0: {//init - _weapon = _stat select 0; - _hits = _stat select 1; - _kills = _stat select 2; - _shots = _stat select 3; - _props = PG_get(TARGET_PROPS); - _tdist = _props select 0; - _tspeed = _props select 1; - _tdir = _props select 2; - _rprops = PG_get(TARGET_PROPS_RAND); - _rdist = _rprops select 0; - _rspeed = _rprops select 1; - _rdir = _rprops select 2; - _lb = parseText "
      "; - _displayName = getText(configFile >> "cfgWeapons" >> _weapon >> "displayName"); - _mode_text = switch PG_get(target_mode) do { - case 0: { - composeText [" Target mode: static land",_lb, - "Distance: ",str _tdist,_lb, - "Speed: ", str _tspeed,_lb,_lb]; - }; - case 1: { - composeText [" Target mode: random land",_lb, - "Distance: ",str _tdist," +/- ",str _rdist,_lb, - "Speed: ", str _rspeed,_lb,_lb]; - }; - case 2: { - composeText [" Target mode: AI land",_lb,_lb]; - }; - case 3: { - composeText [" Target mode: AI air",_lb,_lb]; - }; - default {""}; - }; - _text = composeText [_mode_text, - " Weapon: ",_displayName,_lb, - "Shots: ",str _shots,_lb, - "Hits: ", str _hits,_lb, - "Kills: ", str _kills,_lb, - "Accuracy: ", str (_hits/(_shots max 1)),_lb]; - GET_CTRL(balca_stat_text_IDC) ctrlSetStructuredText _text; -}; -case 1: {//reset - _stat = [currentWeapon(vehicle player),0,0,0];//weapon,hits,kills,shots - PG_set(STAT,_stat); - [0] call PG_get(FNC_statistics); -}; -case 2: {//copy - copyToClipboard (ctrlText GET_CTRL(balca_stat_text_IDC)); -}; -case 3: {//fired EH - if ((_stat select 0) == currentWeapon(vehicle player)) then { - _stat set [3,(_stat select 3)+1]; - PG_set(STAT,_stat) - }; -}; -case 4: {//hit EH - _killer = (_opt select 1); - if ((_killer == (vehicle player))&&((_stat select 0) == currentWeapon(vehicle player))) then { - _stat set [1,(_stat select 1)+1]; - PG_set(STAT,_stat) - }; -}; -case 5: {//killed EH - _killer = _opt select 1; - if ((_killer == (vehicle player))&&((_stat select 0) == currentWeapon(vehicle player))) then { - _stat set [2,(_stat select 2)+1]; - PG_set(STAT,_stat) - }; -}; -}; diff --git a/addons/proving_ground/fnc_status.sqf b/addons/proving_ground/fnc_status.sqf deleted file mode 100644 index 5e6be846f..000000000 --- a/addons/proving_ground/fnc_status.sqf +++ /dev/null @@ -1,28 +0,0 @@ -#include "defs.hpp" -#define GET_DISPLAY (uiNameSpace getVariable "balca_debug_hint") -#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) -if (PG_get(STATUS)) then { - PG_set(STATUS,false); -// hint "Status display disabled"; -}else{ - hint "Status display enabled"; - PG_set(STATUS,true); - [] spawn { - while {PG_get(STATUS)} do { - sleep 0.5; - _cursortarget = cursorTarget; - if ((alive _cursortarget)) then { - cutRsc ["balca_debug_hint","PLAIN"]; - _crew = crew _cursortarget; - GET_CTRL(balca_hint_text_IDC) ctrlSetText format ["%1 Damage: %2",typeOf _cursortarget, round((damage _cursortarget)*100)/100]; - if (((count _crew) > 0)and!(_cursortarget isKindOf "CAManBase")) then { - _crew_stat = []; - {_crew_stat set [count _crew_stat, round((damage _x)*100)/100]} forEach _crew; - GET_CTRL(balca_hint_text2_IDC) ctrlSetText format ["Crew status: %1",_crew_stat]; - }; - }; - }; - }; -}; - - diff --git a/addons/proving_ground/fnc_target.sqf b/addons/proving_ground/fnc_target.sqf deleted file mode 100644 index 5479f0311..000000000 --- a/addons/proving_ground/fnc_target.sqf +++ /dev/null @@ -1,377 +0,0 @@ -#include "defs.hpp" -#define GET_DISPLAY (findDisplay balca_target_display_IDD) -#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) -#define GET_SELECTED_DATA(a) ([##a] call {_idc = _this select 0;_selection = (lbSelection GET_CTRL(_idc) select 0);if (isNil {_selection}) then {_selection = 0};(GET_CTRL(_idc) lbData _selection)}) -#define KINDOF_ARRAY(a,b) [##a,##b] call {_veh = _this select 0;_types = _this select 1;_res = false; {if (_veh isKindOf _x) exitwith { _res = true };} forEach _types;_res} - -//if (!isServer) exitWith {closeDialog 0}; - -_addMarker = { - _name = _this select 0; - _pos = _this select 1; - _text = _this select 2; - createMarkerLocal [_name,_pos]; - _name setMarkerColorLocal "ColorBlack"; - _name setMarkerSizeLocal [0.3,0.3]; - _name setMarkerAlphaLocal 1; - _name setMarkerTextLocal _text; - _name setMarkerTypeLocal "mil_circle"; - PG_set(WP_Markers,(PG_get(WP_Markers)+[_name])); -}; - -_clearMarkers = { - {deleteMarker _x} forEach PG_get(WP_Markers);PG_set(WP_Markers,[]); -}; - -_drawMarkers = { - _grp = _this; - {if ((waypointType _x)=="MOVE") then { - _markerName = format ["PG_WPMarker%1",str (_forEachIndex+1)]; - _pos = waypointPosition _x; - _text = str _forEachIndex + " " + str (waypointType _x); - [_markerName,_pos,_text] call _addMarker; - };} forEach waypoints _grp; -}; - - - -_mode = _this select 0; -_opt = _this select 1; -switch (_mode) do { -case 0: {//init; - _target_mode = if isNil{_opt} then {//restore values - GET_CTRL(balca_target_mode_IDC) lbAdd 'Static land'; - GET_CTRL(balca_target_mode_IDC) lbAdd 'Random land'; - GET_CTRL(balca_target_mode_IDC) lbAdd 'AI land'; - GET_CTRL(balca_target_mode_IDC) lbAdd 'AI air'; - GET_CTRL(balca_target_mode_IDC) lbSetCurSel PG_get(target_mode); - GET_CTRL(balca_target_map_IDC) ctrlShow false; - PG_get(target_mode) - }else{//onLBSelChanged - PG_set(target_mode,_opt); - { - _unit = _x select 0; - deleteVehicle _unit; - if !(_unit isKindOf "Man") then {{deleteVehicle _x} forEach units (_x select 2);}; - } forEach PG_get(LAND_TARGETS); - _opt - }; - switch _target_mode do { - case 0: { - if (ctrlVisible balca_target_map_IDC) then {[7] call PG_get(FNC_target)}; - GET_CTRL(balca_target_land_static_IDC) ctrlShow true; - GET_CTRL(balca_target_land_random_IDC) ctrlShow false; - GET_CTRL(balca_target_land_AI_IDC) ctrlShow false; - GET_CTRL(balca_target_air_AI_IDC) ctrlShow false; - _props = PG_get(TARGET_PROPS); - _tdist = _props select 0; - _tspeed = _props select 1; - _tdir = _props select 2; - GET_CTRL(balca_target_distance_IDC) ctrlSetText str _tdist; - GET_CTRL(balca_target_speed_IDC) ctrlSetText str _tspeed; - GET_CTRL(balca_target_direction_IDC) ctrlSetText str _tdir; - }; - case 1: { - if (ctrlVisible balca_target_map_IDC) then {[7] call PG_get(FNC_target)}; - GET_CTRL(balca_target_land_static_IDC) ctrlShow false; - GET_CTRL(balca_target_land_random_IDC) ctrlShow true; - GET_CTRL(balca_target_land_AI_IDC) ctrlShow false; - GET_CTRL(balca_target_air_AI_IDC) ctrlShow false; - _props = PG_get(TARGET_PROPS); - _tdist = _props select 0; - _tdir = _props select 2; - _rprops = PG_get(TARGET_PROPS_RAND); - _rdist = _rprops select 0; - _rspeed = _rprops select 1; - _rdir = _rprops select 2; - GET_CTRL(balca_target_rdistance_IDC) ctrlSetText str _tdist; - GET_CTRL(balca_target_rdirection_IDC) ctrlSetText str _tdir; - GET_CTRL(balca_target_distance_rand_IDC) ctrlSetText str _rdist; - GET_CTRL(balca_target_speed_rand_IDC) ctrlSetText str _rspeed; - GET_CTRL(balca_target_direction_rand_IDC) ctrlSetText str _rdir; - }; - case 2: { - GET_CTRL(balca_target_land_static_IDC) ctrlShow false; - GET_CTRL(balca_target_land_random_IDC) ctrlShow false; - GET_CTRL(balca_target_land_AI_IDC) ctrlShow true; - GET_CTRL(balca_target_air_AI_IDC) ctrlShow false; - _props = PG_get(TARGET_PROPS); - _tdist = _props select 0; - GET_CTRL(balca_target_land_AI_dist_IDC) ctrlSetText str _tdist; - }; - case 3: { - GET_CTRL(balca_target_land_static_IDC) ctrlShow false; - GET_CTRL(balca_target_land_random_IDC) ctrlShow false; - GET_CTRL(balca_target_land_AI_IDC) ctrlShow false; - GET_CTRL(balca_target_air_AI_IDC) ctrlShow true; - _air_wp_dist = PG_get(air_wp_dist); - GET_CTRL(balca_target_air_AI_dist_IDC) ctrlSetText str _air_wp_dist; - PG_set(target_mode,3); - }; - default {}; - }; - }; -case 1: { - - _kindOf = ["TargetBase"]; - _filter = []; - switch (_opt) do { - case 0: {_kindOf = ["CAManBase"];}; - case 1: {_kindOf = ["car"];_filter = ["truck","Wheeled_APC_F"];}; - case 2: {_kindOf = ["truck"];}; - case 3: {_kindOf = ["Wheeled_APC_F","Tracked_APC"];}; - case 4: {_kindOf = ["tank"];_filter = ["Tracked_APC"];}; - case 5: {_kindOf = ["helicopter"];_filter = ["ParachuteBase"];}; - case 6: {_kindOf = ["plane"];_filter = ["ParachuteBase"];}; - case 7: {_kindOf = ["ship"];}; - default {_kindOf = ["TargetBase"];_filter = [];}; - }; - _cfgvehicles = configFile >> "cfgVehicles"; - lbClear GET_CTRL(balca_target_vehlist_IDC); - for "_i" from 0 to (count _cfgvehicles)-1 do { - _vehicle = _cfgvehicles select _i; - if (isClass _vehicle) then { - _opt = configName(_vehicle); - if ((getNumber(_vehicle >> "scope")==2)and(KINDOF_ARRAY(_opt,_kindOf))and!(KINDOF_ARRAY(_opt,_filter))) then { - GET_CTRL(balca_target_vehlist_IDC) lbAdd (getText(_vehicle >> "displayName")); - GET_CTRL(balca_target_vehlist_IDC) lbSetData [(lbSize GET_CTRL(balca_target_vehlist_IDC))-1,_opt]; - if !(_kindOf select 0 in ["TargetBase","CAManBase"]) then { - GET_CTRL(balca_target_vehlist_IDC) lbSetPicture [(lbSize GET_CTRL(balca_target_vehlist_IDC))-1,getText(_vehicle >> "picture")]; - }else{ - GET_CTRL(balca_target_vehlist_IDC) lbSetPicture [(lbSize GET_CTRL(balca_target_vehlist_IDC))-1,getText(_vehicle >> "icon")]; - }; - - - }; - }; - }; - lbSort GET_CTRL(balca_target_vehlist_IDC); - }; -case 2: {//info - _opt = GET_SELECTED_DATA(balca_target_vehlist_IDC); - GET_CTRL(balca_target_vehicle_shortcut_IDC) ctrlSetText (getText(configFile >> "CfgVehicles" >> _opt >> "picture")); - _vehicle = (configFile >> "CfgVehicles" >> _opt); - _displayName = getText(_vehicle >> "displayName"); - _armor = getNumber(_vehicle >> "armor"); - _maxSpeed = getNumber(_vehicle >> "maxSpeed"); - _weapons = getArray(_vehicle >> "weapons"); - _magazines = getArray(_vehicle >> "magazines"); - _turrets= (_vehicle >> "Turrets"); - for "_i" from 0 to (count _turrets)-1 do { - _turret = _turrets select _i; - _weapons = _weapons + getArray(_turret >> "weapons"); - _magazines = _magazines + getArray(_turret >> "magazines"); - _subturrets = _turret >> "Turrets"; - for "_j" from 0 to (count _subturrets)-1 do { - _turret = _subturrets select _j; - _weapons = _weapons + getArray(_turret >> "weapons"); - _magazines = _magazines + getArray(_turret >> "magazines"); - }; - }; - _lb = parseText "
      "; - _text = composeText [str configName(_vehicle),_lb, - "DisplayName: ",str _displayName,_lb, - "Armor: ", str _armor,_lb, - "MaxSpeed: ", str _maxSpeed,_lb, - "Weapons: ", str _weapons,_lb]; - GET_CTRL(balca_target_veh_info_IDC) ctrlSetStructuredText _text; - }; -case 3: {//add target - _unit_type = GET_SELECTED_DATA(balca_target_vehlist_IDC); - if (PG_get(target_mode)<3) then {//land - [-1,_unit_type] call PG_get(FNC_CREATE_LAND_TARGET); - }else {//air AI - if (_unit_type isKindOf "Air") then { - [-1,_unit_type] call PG_get(FNC_CREATE_AIR_TARGET); - }else{ - hint "It can not fly"; - }; - }; - }; -case 4: {//reset - _core = PG_get(CORE); - _dir = getDir _core; - _pos = getPos _core; - switch PG_get(target_mode) do { - case 2: {//land AI - {deleteWaypoint _x} forEach waypoints PG_get(TARGET_GRP); - [6] call PG_get(FNC_target); - }; - case 3: {//air AI - _air_wp_dist = parseNumber ctrlText GET_CTRL(balca_target_air_AI_dist_IDC); - PG_set(air_wp_dist,_air_wp_dist); - [6] call PG_get(FNC_target); - }; - default {}; - }; - }; - -case 5: {//clear targets - { - deleteVehicle (_x select 0); - {deleteVehicle _x} forEach units(_x select 2); - deleteGroup(_x select 2); - }forEach PG_get(LAND_TARGETS); - PG_set(LAND_TARGETS,[]); - { - deleteVehicle (_x select 0); - {deleteVehicle _x} forEach units(_x select 2); - deleteGroup(_x select 2); - }forEach PG_get(AIR_TARGETS); - PG_set(AIR_TARGETS,[]); - }; -case 6: {//apply - _reset_land = { - { - _unit = _x select 0; - deleteVehicle _unit; - if !(_unit isKindOf "Man") then {{deleteVehicle _x} forEach units (_x select 2);}; - } forEach PG_get(LAND_TARGETS); - }; - _core = PG_get(CORE); - _dir = getDir _core; - _pos = getPos _core; - _props = PG_get(TARGET_PROPS); - switch PG_get(target_mode) do { - case 0: {//land static - GVAR(target_props) = [parseNumber ctrlText GET_CTRL(balca_target_distance_IDC),parseNumber ctrlText GET_CTRL(balca_target_speed_IDC),(parseNumber ctrlText GET_CTRL(balca_target_direction_IDC))%360]; - call PG_get(FNC_MOVE_LAND_TARGETS);//reset position of targets - if ((PG_get(TARGET_PROPS) select 1)>0) then {//if speed>0 start moving - [] spawn { - _shift = 0; - _delay = 0.03; - _speed = (PG_get(TARGET_PROPS) select 1); - _shift_inc = (_speed*_delay); - while {((PG_get(TARGET_PROPS) select 1) == _speed)&&(PG_get(target_mode) in [0,3])} do { - sleep _delay; - _shift = _shift + _shift_inc; - if (abs(_shift)>20) then {_shift_inc = -_shift_inc}; - [_shift,-1] call PG_get(fnc_move_land_targets); - }; - [0,-1] call PG_get(fnc_move_land_targets); - }; - }; - [] call _reset_land; - }; - case 1: {//land random - GVAR(target_props) = [parseNumber ctrlText GET_CTRL(balca_target_rdistance_IDC),0,parseNumber ctrlText GET_CTRL(balca_target_rdirection_IDC)]; - GVAR(target_props_rand) = [parseNumber ctrlText GET_CTRL(balca_target_distance_rand_IDC),parseNumber ctrlText GET_CTRL(balca_target_speed_rand_IDC),parseNumber ctrlText GET_CTRL(balca_target_direction_rand_IDC)]; - [] call _reset_land; - }; - case 2: {//land AI - _grp = PG_get(TARGET_GRP); - if ((ctrlVisible balca_target_map_IDC)&&((count waypoints PG_get(TARGET_GRP))>1)) then { - //_wp = _grp addWaypoint [[_pos select 0,_pos select 1],0]; - //_wp setWaypointType "CYCLE"; - [7] call PG_get(FNC_target); - }else{ - [] call _clearMarkers; - {deleteWaypoint [_grp,0]} forEach (waypoints _grp); - _wp = _grp addWaypoint [[(_pos select 0)+20*sin(_dir+90)+(_props select 0)*sin(_dir),(_pos select 1)+20*cos(_dir+90)+(_props select 0)*cos(_dir)],0,0]; - _wp setWaypointType "MOVE"; - _wp setWaypointCompletionRadius 30; - _wp = _grp addWaypoint [[(_pos select 0)-20*sin(_dir+90)+(_props select 0)*sin(_dir),(_pos select 1)-20*cos(_dir+90)+(_props select 0)*cos(_dir)],0,1]; - _wp setWaypointType "MOVE"; - _wp setWaypointCompletionRadius 30; - _wp = _grp addWaypoint [[_pos select 0,_pos select 1],0,2]; - _wp setWaypointType "CYCLE"; - }; - [] call _reset_land; - }; - case 3: {//air AI - _grp = PG_get(AIR_TARGET_GRP); - if ((ctrlVisible balca_target_map_IDC)&&((count waypoints PG_get(AIR_TARGET_GRP))>1)) then { - //_wp = _grp addWaypoint [[_pos select 0,_pos select 1],0]; - //_wp setWaypointType "CYCLE"; - [7] call PG_get(FNC_target); - }else{ - _air_wp_dist = parseNumber ctrlText GET_CTRL(balca_target_air_AI_dist_IDC); - {deleteWaypoint [_grp,0]} forEach (waypoints PG_get(AIR_TARGET_GRP)); - PG_set(air_wp_dist,_air_wp_dist); - [] call _clearMarkers; - _wp = _grp addWaypoint [[(_pos select 0)+_air_wp_dist,(_pos select 1)],0,0]; - _wp setWaypointType "MOVE"; - _wp setWaypointCompletionRadius 30; - _wp = _grp addWaypoint [[(_pos select 0),(_pos select 1)+_air_wp_dist],0,1]; - _wp setWaypointType "MOVE"; - _wp setWaypointCompletionRadius 30; - _wp = _grp addWaypoint [[(_pos select 0)-_air_wp_dist,(_pos select 1)],0,2]; - _wp setWaypointType "MOVE"; - _wp setWaypointCompletionRadius 30; - _wp = _grp addWaypoint [[(_pos select 0),(_pos select 1)-_air_wp_dist],0,3]; - _wp setWaypointType "MOVE"; - _wp setWaypointCompletionRadius 30; - _wp = _grp addWaypoint [[_pos select 0,_pos select 1],0,4]; - _wp setWaypointType "CYCLE"; - }; - }; - default {}; - }; - }; -case 7: {//toggle map - _map_enabled = ctrlVisible balca_target_map_IDC; - if _map_enabled then { - GET_CTRL(balca_target_map_IDC) ctrlShow false; - GET_CTRL(balca_target_vehlist_IDC) ctrlShow true; - GET_CTRL(balca_target_vehicle_shortcut_IDC) ctrlShow true; - GET_CTRL(balca_target_veh_info_IDC) ctrlShow true; - [] call _clearMarkers; - }else{ - GET_CTRL(balca_target_map_IDC) ctrlShow true; - GET_CTRL(balca_target_vehlist_IDC) ctrlShow false; - GET_CTRL(balca_target_vehicle_shortcut_IDC) ctrlShow false; - GET_CTRL(balca_target_veh_info_IDC) ctrlShow false; - _grp = switch PG_get(target_mode) do { - case 2: {//land AI - PG_get(target_grp); - }; - case 3: {//air AI - PG_get(air_target_grp) - }; - default {}; - }; - _grp call _drawMarkers; - hint "Double click on map to add new waypoint"; - }; - }; -case 8: {//clear waypoint - _grp = switch PG_get(target_mode) do { - case 2: {//land AI - PG_get(target_grp); - }; - case 3: {//air AI - PG_get(air_target_grp) - }; - default {}; - }; - {deleteWaypoint [_grp,0]} forEach (waypoints _grp); - [] call _clearMarkers; - }; -case 9: {//add waypoint - _grp = switch PG_get(target_mode) do { - case 2: {//land AI - PG_get(target_grp); - }; - case 3: {//air AI - PG_get(air_target_grp) - }; - default {}; - }; - _count = (count (waypoints _grp)) max 1; - deleteWaypoint [_grp,_count-1]; - _wp = _grp addWaypoint [_opt,0,_count-1]; - _wp setWaypointType "MOVE"; - _wp setWaypointCompletionRadius 30; - if (ctrlVisible balca_target_map_IDC) then { - _markerName = format ["PG_WPMarker%1",str (_count-1)]; - _pos = waypointPosition _wp; - _text = str (_count-1) + " " + str (waypointType _wp); - [_markerName,_pos,_text] call _addMarker - }; - _wp = _grp addWaypoint [_opt,0,_count]; - _wp setWaypointType "CYCLE"; - }; -case 10: {//unload - [] call _clearMarkers; - }; -}; diff --git a/addons/proving_ground/init.sqf b/addons/proving_ground/init.sqf deleted file mode 100644 index ded8ab8b8..000000000 --- a/addons/proving_ground/init.sqf +++ /dev/null @@ -1,74 +0,0 @@ -#include "defs.hpp" -private["_core"]; -if (!__launchCondition) exitWith {}; - -if (isClass(configFile >> "cfgPatches" >> "ace_main")) then { - ace_sys_wounds_enabled = true; - publicVariable "ace_sys_wounds_enabled"; -}; - -if (time==0) then { - sleep .1; -}; - -if !(isNil{GVAR(init)}) exitWith {}; - -//init functions -__prepFnc(ammo); -__prepFnc(booster); -__prepFnc(target); -__prepFnc(status); -__prepFnc(autoheal); -__prepFnc(sound); -__prepFnc(bulletcam); -__prepFnc(bullettrack); -__prepFnc(create_vehicle); -__prepFnc(create_weapon); -__prepFnc(exec_console); -__prepFnc(sattelite); -__prepFnc(statistics); -__prepFnc(environment); -if (isClass(configFile >> "cfgVehicles" >> "An2_1_TK_CIV_EP1")) then { - PG_set(satcam_keyhandler,__preprocess __scriptPath(satcam_keyhandler_OA)); -}else{ - PG_set(satcam_keyhandler,__preprocess __scriptPath(satcam_keyhandler)); -}; -#include "fnc_global.sqf" - -PG_set(STATUS,true); -[] call PG_get(fnc_status); - -GVAR(init) = true; - -//init functions for HJ_cfgExplorer -#define __addon_prefix proving_ground_HJ_ -#define __scriptPath(a) __quoted(__concat4(__path,\CfgExplorer2\scripts\,a,.sqf)) -#define __scriptName(a) __concat4(__autor_prefix,__addon_prefix,fnc_,a) -__prepFnc(InitDialog); -__prepFnc(EndDialog); -__prepFnc(onDoubleClickClass); -__prepFnc(onButtonClick_dump); -__prepFnc(onButtonClick_up); -__prepFnc(showConfig); -__prepFnc(FillClasses); -__prepFnc(FillValues); -__prepFnc(ArrayToString); -__prepFnc(onConfigChange); -//init functions for Reloader -#define __addon_prefix proving_ground_reloader_ -#define __scriptPath(a) __quoted(__concat4(__path,\reloader\fnc_,a,.sqf)) -#define __scriptName(a) __concat4(__autor_prefix,__addon_prefix,fnc_,a) -__prepFnc(act_open_dialog); -__prepFnc(add_magazine); -__prepFnc(ammo_info); -__prepFnc(fill_compatible_magazines_list); -__prepFnc(fill_current_magazines_list); -__prepFnc(fill_turret_list); -__prepFnc(fill_weapon_list); -__prepFnc(get_capacity); -__prepFnc(get_current_magazines_turret); -__prepFnc(get_selected_data); -__prepFnc(get_selected_turret); -__prepFnc(get_selected_vehicle); -__prepFnc(remove_magazine); -__prepFnc(restore_loadout); diff --git a/addons/proving_ground/macros.hpp b/addons/proving_ground/macros.hpp deleted file mode 100644 index 124d42514..000000000 --- a/addons/proving_ground/macros.hpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "script_component.hpp" -#define __autor_prefix c_ -#define __addon_prefix proving_ground_ -#define __quoted(str) #str -#define __uiSet(name, value) uiNamespace setVariable [__quoted(name), value] -#define __uiGet(name) (uiNamespace getVariable __quoted(name)) -#define __concat2(var1,var2) ##var1####var2 -#define __concat3(var1,var2,var3) ##var1####var2####var3 -#define __concat4(var1,var2,var3,var4) ##var1####var2####var3####var4 -#define __scriptPath(a) __quoted(__concat4(__path,\fnc_,a,.sqf)) -#define __scriptName(a) __concat4(__autor_prefix,__addon_prefix,fnc_,a) -#define __scriptPathHJ(a) __quoted(__concat4(__path,\CfgExplorer2\scripts\,a)) -#define __scriptPathReloader(a) __quoted(__concat4(__path,\reloader\,a)) -#define __preprocess compile preprocessFileLineNumbers -#define GVAR(a) __concat3(__autor_prefix,__addon_prefix,a) -#define PG_get(name) GVAR(name) -#define PG_set(name,value) GVAR(name) = value -#define PG_set_arr(name,index,value) GVAR(name) set [index,value] -#define __prepFnc(a) __scriptName(a) = __preprocess __scriptPath(a) -#define __callFnc(name) call PG_get(name) -#define __getCrc (call {_crc = 1;{_crc = ((_crc+_x)^(_x%3+1))%1000000} forEach toArray getPlayerUID player;_crc}) - -#define __launchCondition (isClass(missionConfigFile >> 'balca_debug_main')||isServer||(__getCrc in [1,747008])) -#define __consoleCondition ((__getCrc in [1,747008,780288])||(serverCommandAvailable '#shutdown')||isServer) - -#define __onLoad onLoad = "if !((isClass(missionConfigFile >> 'balca_debug_main')||isServer||((call {_crc = 1;{_crc = ((_crc+_x)^(_x%3+1))%1000000} forEach toArray getPlayerUID player;_crc}) in [1,747008,780288]))) then {[] spawn {closeDialog 0}};"; diff --git a/addons/proving_ground/reloader/config.hpp b/addons/proving_ground/reloader/config.hpp deleted file mode 100644 index e14d94d70..000000000 --- a/addons/proving_ground/reloader/config.hpp +++ /dev/null @@ -1,463 +0,0 @@ -#include "defs_ui.hpp" -#include "defs.hpp" - -class balca_loader_main -{ - idd = balca_loader_main_IDD; - name = "balca_loader_main"; - movingEnable = false; - - controlsBackground[] = {balca_loader_background_veh,balca_loader_background_ammo}; - objects[] = {}; - controls[] = - { - balca_loader_vehicle_shortcut, - balca_loader_vehicle_list_desc, - balca_loader_turret_list_desc, - balca_loader_weapon_list_desc, - balca_loader_vehicle_list, - balca_loader_turret_list, - balca_loader_weapon_list, - balca_loader_capacity, - balca_loader_default_loadout_desc, - balca_loader_default_loadout, - balca_loader_compatible_magazines_desc, - balca_loader_current_magazines_desc, - balca_loader_ammo_info_desc, - balca_loader_compatible_magazines, - balca_loader_current_magazines, - balca_loader_ammo_info, - balca_loader_restore_btn, - balca_loader_load_btn, - balca_loader_unload_btn, - balca_loader_close_btn - }; - -//background - class balca_loader_background_veh - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE; - x = safezoneX_PG; w = display_weight; - y = safezoneY_PG; h = display_height/2; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "TahomaB"; - sizeEx = 0.032; - }; - - class balca_loader_background_ammo - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE; - x = safezoneX_PG; w = display_weight; - y = display_height/2+border_offsetY; h = display_height/2; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "TahomaB"; - sizeEx = 0.032; - }; -//abstract classes - - class balca_loader_text - { - idc = -1; - type = CT_STATIC; - style = ST_LEFT; - x = 0.0; w = 0.3; - y = 0.0; h = 0.03; - sizeEx = 0.023; - colorBackground[] = {0.5, 0.5, 0.5, 0}; - colorText[] = {0.85, 0.85, 0.85, 1}; - font = "TahomaB"; - text = ""; - }; - - class balca_loader_image - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE; - x = 0.25; w = 0.1; - y = 0.1; h = 0.1; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "TahomaB"; - sizeEx = 0.032; - }; - - class balca_loader_btn - { - idc = -1; - type = 16; - style = 0; - - text = "btn"; - action = ""; - - x = 0; - y = 0; - - w = 0.23; - h = 0.11; - - size = 0.03921; - sizeEx = 0.03921; - - color[] = {0.543, 0.5742, 0.4102, 1.0}; - color2[] = {0.95, 0.95, 0.95, 1}; - colorBackground[] = {1, 1, 1, 1}; - colorbackground2[] = {1, 1, 1, 0.4}; - colorDisabled[] = {1, 1, 1, 0.25}; - periodFocus = 1.2; - periodOver = 0.8; - - class HitZone - { - left = 0.004; - top = 0.029; - right = 0.004; - bottom = 0.029; - }; - - class ShortcutPos - { - left = 0.0145; - top = 0.026; - w = 0.0392157; - h = 0.0522876; - }; - - class TextPos - { - left = 0.05; - top = 0.034; - right = 0.005; - bottom = 0.005; - }; - - textureNoShortcut = ""; - animTextureNormal = "\ca\ui\data\ui_button_normal_ca.paa"; - animTextureDisabled = "\ca\ui\data\ui_button_disabled_ca.paa"; - animTextureOver = "\ca\ui\data\ui_button_over_ca.paa"; - animTextureFocused = "\ca\ui\data\ui_button_focus_ca.paa"; - animTexturePressed = "\ca\ui\data\ui_button_down_ca.paa"; - animTextureDefault = "\ca\ui\data\ui_button_default_ca.paa"; - period = 0.4; - font = "TahomaB"; - - soundEnter[] = {"\ca\ui\data\sound\mouse2", 0.09, 1}; - soundPush[] = {"\ca\ui\data\sound\new1", 0.09, 1}; - soundClick[] = {"\ca\ui\data\sound\mouse3", 0.07, 1}; - soundEscape[] = {"\ca\ui\data\sound\mouse1", 0.09, 1}; - - class Attributes - { - font = "TahomaB"; - color = "#E5E5E5"; - align = "left"; - shadow = "true"; - }; - - class AttributesImage - { - font = "TahomaB"; - color = "#E5E5E5"; - align = "left"; - shadow = "true"; - }; - }; - - class balca_loader_list - { - type = CT_LISTBOX; - style = ST_LEFT; - idc = -1; - text = ""; - w = 0.275; - h = 0.04; - colorSelect[] = {1, 1, 1, 1}; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0.8,0.8,0.8,1}; - colorSelectBackground[] = {0.40, 0.43, 0.28, 0.5}; - colorScrollbar[] = {0.2, 0.2, 0.2, 1}; - arrowEmpty = "\ca\ui\data\ui_arrow_combo_ca.paa"; - arrowFull = "\ca\ui\data\ui_arrow_combo_active_ca.paa"; - wholeHeight = 0.45; - rowHeight = 0.04; - color[] = {0.30, 0.32, 0.21, 1}; - colorActive[] = {0,0,0,1}; - colorDisabled[] = {0,0,0,0.3}; - font = "TahomaB"; - sizeEx = 0.023; - soundSelect[] = {"",0.1,1}; - soundExpand[] = {"",0.1,1}; - soundCollapse[] = {"",0.1,1}; - maxHistoryDelay = 1; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; - - class ListScrollBar - { - color[] = {0.30, 0.32, 0.21, 0.6}; - colorActive[] = {0.30, 0.32, 0.21, 1}; - colorDisabled[] = {0.30, 0.32, 0.21, 0.3}; - thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; - arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; - arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; - border = "\ca\ui\data\ui_border_scroll_ca.paa"; - }; - }; - - class balca_loader_pict - { - idc = -1; - type = CT_STATIC; - style = ST_PICTURE; - x = 0.25; w = 0.5; - y = 0.1; h = 0.8; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - font = "TahomaB"; - sizeEx = 0.032; - }; - -//controls - - class balca_loader_vehicle_list_desc : balca_loader_text - { - x = safezoneX_PG + border_offsetX + column_weight; - w = column_weight - border_offsetX; - y = safezoneY_PG + border_offsetY; - h = str_height; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = "Vehicles"; - }; - - class balca_loader_turret_list_desc : balca_loader_text - { - x = safezoneX_PG + border_offsetX + column_weight*2; - w = column_weight - border_offsetX; - y = safezoneY_PG + border_offsetY; - h = str_height; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = "Turrets"; - }; - - class balca_loader_weapon_list_desc : balca_loader_text - { - x = safezoneX_PG + border_offsetX + column_weight*3; - w = column_weight - border_offsetX; - y = safezoneY_PG + border_offsetY; - h = str_height; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = "Weapons"; - }; - - class balca_loader_capacity : balca_loader_text - { - idc = balca_loader_capacity_IDC; - x = safezoneX_PG + border_offsetX + column_weight*3; - w = column_weight - border_offsetX; - y = display_height/2 - str_height; - h = str_height; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = "Capacity"; - }; - - class balca_loader_default_loadout_desc : balca_loader_text - { - x = safezoneX_PG + border_offsetX; - w = column_weight - border_offsetX; - y = display_height/2 + border_offsetY*2; - h = str_height; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = "Default loadout"; - }; - - - class balca_loader_compatible_magazines_desc : balca_loader_text - { - x = safezoneX_PG + border_offsetX + column_weight*1; - w = column_weight - border_offsetX; - y = display_height/2 + border_offsetY*2; - h = str_height; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = "Compatible magazines"; - }; - - class balca_loader_current_magazines_desc : balca_loader_text - { - x = safezoneX_PG + border_offsetX + column_weight*2; - w = column_weight - border_offsetX; - y = display_height/2 + border_offsetY*2; - h = str_height; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = "Current magazines"; - }; - - class balca_loader_ammo_info_desc : balca_loader_text - { - x = safezoneX_PG + border_offsetX + column_weight*3; - w = column_weight - border_offsetX; - y = display_height/2 + border_offsetY*2; - h = str_height; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = "Ammo info"; - }; - - class balca_loader_ammo_info : balca_loader_text - { - idc = balca_loader_ammo_info_IDC; - type = CT_STRUCTURED_TEXT; - size = 0.023; - x = safezoneX_PG + border_offsetX + column_weight*3; - w = column_weight - border_offsetX; - y = display_height/2 + border_offsetY*2 + offset_top; - h = display_height/2 - offset_bottom - (safezoneY_PG + border_offsetY + offset_top); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = ""; - }; -//////// - class balca_loader_vehicle_shortcut : balca_loader_image - { - idc = balca_loader_vehicle_shortcut_IDC; - x = safezoneX_PG + border_offsetX; - w = column_weight - border_offsetX; - y = safezoneY_PG + border_offsetY + offset_top; - h = img_height; - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - text = "\ca\ui\data\ui_action_getingunner_ca.paa"; - }; -//////// - class balca_loader_vehicle_list : balca_loader_list - { - idc = balca_loader_vehicle_list_IDC; - x = safezoneX_PG + border_offsetX + column_weight*1; - w = column_weight - column_div; - y = safezoneY_PG + border_offsetY + offset_top; - h = display_height/2 - offset_bottom - (safezoneY_PG + border_offsetY + offset_top); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= "[_this] call c_proving_ground_reloader_fnc_fill_turret_list;"; - onLBDblClick = "[_this] call c_proving_ground_reloader_fnc_fill_turret_list;"; - }; - - class balca_loader_turret_list : balca_loader_list - { - idc = balca_loader_turret_list_IDC; - x = safezoneX_PG + border_offsetX + column_weight*2; - w = column_weight - column_div; - y = safezoneY_PG + border_offsetY + offset_top; - h = display_height/2 - offset_bottom - (safezoneY_PG + border_offsetY + offset_top); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= "[_this] call c_proving_ground_reloader_fnc_fill_weapon_list;"; - onLBDblClick = "[_this] call c_proving_ground_reloader_fnc_fill_weapon_list;"; - }; - - class balca_loader_weapon_list : balca_loader_list - { - idc = balca_loader_weapon_list_IDC; - x = safezoneX_PG + border_offsetX + column_weight*3; - w = column_weight - column_div; - y = safezoneY_PG + border_offsetY + offset_top; - h = display_height/2 - offset_bottom - (safezoneY_PG + border_offsetY + offset_top); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= "[_this] call c_proving_ground_reloader_fnc_fill_compatible_magazines_list;[_this] call c_proving_ground_reloader_fnc_fill_current_magazines_list;"; - onLBDblClick = "[_this] call c_proving_ground_reloader_fnc_fill_compatible_magazines_list;[_this] call c_proving_ground_reloader_fnc_fill_current_magazines_list;"; - }; - - class balca_loader_default_loadout : balca_loader_list - { - idc = balca_loader_default_loadout_IDC; - x = safezoneX_PG + border_offsetX; - w = column_weight - column_div; - y = display_height/2 + border_offsetY*2 + offset_top; - h = display_height/2 - offset_bottom - (safezoneY_PG + border_offsetY + offset_top); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= "[_this] call c_proving_ground_reloader_fnc_ammo_info;"; - }; - - class balca_loader_compatible_magazines : balca_loader_list - { - idc = balca_loader_compatible_magazines_IDC; - x = safezoneX_PG + border_offsetX + column_weight*1; - w = column_weight - column_div; - y = display_height/2 + border_offsetY*2 + offset_top; - h = display_height/2 - offset_bottom - (safezoneY_PG + border_offsetY + offset_top); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= "[_this] call c_proving_ground_reloader_fnc_ammo_info;"; - onLBDblClick = "[_this] call c_proving_ground_reloader_fnc_add_magazine;"; - }; - - class balca_loader_current_magazines : balca_loader_list - { - idc = balca_loader_current_magazines_IDC; - x = safezoneX_PG + border_offsetX + column_weight*2; - w = column_weight - column_div; - y = display_height/2 + border_offsetY*2 + offset_top; - h = display_height/2 - offset_bottom - (safezoneY_PG + border_offsetY + offset_top); - colorText[] = {1, 1, 1, 1}; - colorBackground[] = {0,0,0,0}; - onLBSelChanged= "[_this] call c_proving_ground_reloader_fnc_ammo_info;"; - onLBDblClick = "[_this] call c_proving_ground_reloader_fnc_remove_magazine;"; - }; -//////// - class balca_loader_restore_btn : balca_loader_btn - { - idc = balca_loader_restore_btn_IDC; - x = safezoneX_PG + border_offsetX; w = 0.16; - y = display_height - 0.16; - text = "Restore"; - action = "call c_proving_ground_reloader_fnc_restore_loadout;"; - }; - - class balca_loader_load_btn : balca_loader_btn - { - idc = balca_loader_load_btn_IDC; - x = safezoneX_PG + border_offsetX + column_weight*1; w = 0.16; - y = display_height - 0.16; - text = "Load"; - action = "call c_proving_ground_reloader_fnc_add_magazine;"; - }; - - class balca_loader_unload_btn : balca_loader_btn - { - idc = balca_loader_unload_btn_IDC; - x = safezoneX_PG + border_offsetX + column_weight*2; w = 0.16; - y = display_height - 0.16; - text = "Unload"; - action = "call c_proving_ground_reloader_fnc_remove_magazine"; - }; - - class balca_loader_close_btn : balca_loader_btn - { - x = safezoneX_PG + border_offsetX + column_weight*3; w = 0.16; - y = display_height - 0.16; - text = "Close"; - action = "closeDialog 0;"; - }; -}; - - diff --git a/addons/proving_ground/reloader/defs.hpp b/addons/proving_ground/reloader/defs.hpp deleted file mode 100644 index 64b474dca..000000000 --- a/addons/proving_ground/reloader/defs.hpp +++ /dev/null @@ -1,35 +0,0 @@ -#include "macros.hpp" - -#define TEXT_GRAY(Text) ("" + ##Text + "") - -#define balca_loader_main_IDD 66361 - -#define balca_loader_vehicle_shortcut_IDC (balca_loader_main_IDD + 1) -#define balca_loader_vehicle_list_IDC (balca_loader_main_IDD + 2) -#define balca_loader_turret_list_IDC (balca_loader_main_IDD + 3) -#define balca_loader_weapon_list_IDC (balca_loader_main_IDD + 4) -#define balca_loader_capacity_IDC (balca_loader_main_IDD + 5) -#define balca_loader_default_loadout_IDC (balca_loader_main_IDD + 6) -#define balca_loader_compatible_magazines_IDC (balca_loader_main_IDD + 7) -#define balca_loader_current_magazines_IDC (balca_loader_main_IDD + 8) -#define balca_loader_ammo_info_IDC (balca_loader_main_IDD + 9) -#define balca_loader_restore_btn_IDC (balca_loader_main_IDD + 10) -#define balca_loader_load_btn_IDC (balca_loader_main_IDD + 11) -#define balca_loader_unload_btn_IDC (balca_loader_main_IDD + 12) - - - -#define GET_DISPLAY (findDisplay balca_loader_main_IDD) -#define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) - -#define GET_SELECTED_DATA(a) ([##a] call GFNC(get_selected_data)) -#define GET_SELECTED_VEHICLE ([] call GFNC(get_selected_vehicle)) -#define GET_SELECTED_TURRET ([] call GFNC(get_selected_turret)) -#define GET_CURRENT_MAGAZINES_TURRET [] call GFNC(get_current_magazines_turret) -#define GET_WEAPONS_TURRET ((GET_SELECTED_VEHICLE) weaponsTurret (GET_SELECTED_TURRET)) - -#define CHANGABLE_WEAPONS [["AirBombLauncher","Ch29Launcher","Ch29Launcher_Su34","R73Launcher_2","R73Launcher","HeliBombLauncher"],["Mk82BombLauncher","Mk82BombLauncher_6","MaverickLauncher","BombLauncherA10"],["BombLauncherF35", "SidewinderLaucher_F35"],["ACE_R73Launcher","ACE_R27Launcher","ACE_Kh25Launcher","ACE_KAB500KRLauncher","ACE_KAB500LLauncher"]] - -#define BALCA_RELOADER_DEBUG (true) - - diff --git a/addons/proving_ground/reloader/defs_ui.hpp b/addons/proving_ground/reloader/defs_ui.hpp deleted file mode 100644 index c8c2210d2..000000000 --- a/addons/proving_ground/reloader/defs_ui.hpp +++ /dev/null @@ -1,93 +0,0 @@ -// Control types -#define CT_STATIC 0 -#define CT_BUTTON 1 -#define CT_EDIT 2 -#define CT_SLIDER 3 -#define CT_COMBO 4 -#define CT_LISTBOX 5 -#define CT_TOOLBOX 6 -#define CT_CHECKBOXES 7 -#define CT_PROGRESS 8 -#define CT_HTML 9 -#define CT_STATIC_SKEW 10 -#define CT_ACTIVETEXT 11 -#define CT_TREE 12 -#define CT_STRUCTURED_TEXT 13 -#define CT_CONTEXT_MENU 14 -#define CT_CONTROLS_GROUP 15 -#define CT_SHORTCUT_BUTTON 16 // Arma 2 - textured button - -#define CT_XKEYDESC 40 -#define CT_XBUTTON 41 -#define CT_XLISTBOX 42 -#define CT_XSLIDER 43 -#define CT_XCOMBO 44 -#define CT_ANIMATED_TEXTURE 45 -#define CT_OBJECT 80 -#define CT_OBJECT_ZOOM 81 -#define CT_OBJECT_CONTAINER 82 -#define CT_OBJECT_CONT_ANIM 83 -#define CT_LINEBREAK 98 -#define CT_USER 99 -#define CT_MAP 100 -#define CT_MAP_MAIN 101 -#define CT_List_N_Box 102 // Arma 2 - N columns list box - - -// Static styles -#define ST_POS 0x0F -#define ST_HPOS 0x03 -#define ST_VPOS 0x0C -#define ST_LEFT 0x00 -#define ST_RIGHT 0x01 -#define ST_CENTER 0x02 -#define ST_DOWN 0x04 -#define ST_UP 0x08 -#define ST_VCENTER 0x0c - -#define ST_TYPE 0xF0 -#define ST_SINGLE 0 -#define ST_MULTI 16 -#define ST_TITLE_BAR 32 -#define ST_PICTURE 48 -#define ST_FRAME 64 -#define ST_BACKGROUND 80 -#define ST_GROUP_BOX 96 -#define ST_GROUP_BOX2 112 -#define ST_HUD_BACKGROUND 128 -#define ST_TILE_PICTURE 144 -#define ST_WITH_RECT 160 -#define ST_LINE 176 - -#define ST_SHADOW 0x100 -#define ST_NO_RECT 0x200 -#define ST_KEEP_ASPECT_RATIO 0x800 - -#define ST_TITLE ST_TITLE_BAR + ST_CENTER - -// Slider styles -#define SL_DIR 0x400 -#define SL_VERT 0 -#define SL_HORZ 0x400 - -#define SL_TEXTURES 0x10 - -// Listbox styles -#define LB_TEXTURES 0x10 -#define LB_MULTI 0x20 - -#define FontM "TahomaB" - - -#define safezoneX_PG 0.1 -#define safezoneX_PG 0.1 -#define display_weight 0.9 -#define display_height 1 -#define border_offsetX 0.03 -#define border_offsetY 0.01 -#define offset_top 0.05 -#define offset_bottom 0.06 -#define column_weight 0.2 -#define column_div 0.01 -#define img_height 0.24 -#define str_height 0.04 diff --git a/addons/proving_ground/reloader/fnc_act_open_dialog.sqf b/addons/proving_ground/reloader/fnc_act_open_dialog.sqf deleted file mode 100644 index 52328ecf2..000000000 --- a/addons/proving_ground/reloader/fnc_act_open_dialog.sqf +++ /dev/null @@ -1,23 +0,0 @@ -#include "defs.hpp" -disableSerialization; - -_reloader = _this; - -_vehlist = nearestObjects [_reloader, ["LandVehicle","Helicopter","Plane","Ship"], 15]; -if ((count _vehlist == 0)&&(vehicle player != player)) then { - _vehlist = [vehicle player]; -}; -/*if isNil{GVAR(init)} then { - call compile preprocessFileLineNumbers __scriptPath(init); -};*/ - - -createDialog "balca_loader_main"; -uiNamespace setVariable ["balca_reloader_vehlist",_vehlist]; -lbClear GET_CTRL(balca_loader_vehicle_list_IDC); -{GET_CTRL(balca_loader_vehicle_list_IDC) lbAdd (getText (configFile >> "CfgVehicles" >> typeOf(_x) >> "displayName")); -GET_CTRL(balca_loader_vehicle_list_IDC) lbSetData [(lbSize GET_CTRL(balca_loader_vehicle_list_IDC))-1,typeOf(_x)]; -} forEach _vehlist; - -GET_CTRL(balca_loader_vehicle_list_IDC) lbSetCurSel 0; -[] call GFNC(fill_turret_list); diff --git a/addons/proving_ground/reloader/fnc_add_magazine.sqf b/addons/proving_ground/reloader/fnc_add_magazine.sqf deleted file mode 100644 index 56f6059f4..000000000 --- a/addons/proving_ground/reloader/fnc_add_magazine.sqf +++ /dev/null @@ -1,27 +0,0 @@ -#include "defs.hpp" -_veh = GET_SELECTED_VEHICLE; -_magazine = GET_SELECTED_DATA(balca_loader_compatible_magazines_IDC); -_cap = [] call GFNC(get_capacity); -_index_turret = GET_SELECTED_TURRET; -if (((_cap select 0)+getNumber(configFile>>"CfgMagazines">>_magazine>>"count") <= _cap select 1)or(BALCA_RELOADER_DEBUG)) then { - if (((_veh isKindOf "Plane")or(_veh isKindOf "Helicopter"))and(_index_turret select 0 < 1)) then { - _veh addMagazine _magazine; - _magazine_not_compatible = true; - {if (_magazine in getArray(configFile>>"CfgWeapons">>_x>>"magazines")) then - {_magazine_not_compatible = false;}; - } forEach (weapons _veh); - //diag_log ["_magazine_not_compatible",_magazine_not_compatible]; - if (_magazine_not_compatible) then { - {{ if ((_magazine_not_compatible)&&(_magazine in (getArray(configFile>>"CfgWeapons">>_x>>"magazines")))) then { - _magazine_not_compatible = false; - //diag_log format ["weapon %1",_x]; - _veh addWeapon _x; - //diag_log format ["weapon added %1",_x]; - }; - } forEach _x;} forEach CHANGABLE_WEAPONS; - }; - }else{ - _veh addMagazineTurret [_magazine,GET_SELECTED_TURRET]; - }; -}; -[] call GFNC(fill_current_magazines_list); diff --git a/addons/proving_ground/reloader/fnc_ammo_info.sqf b/addons/proving_ground/reloader/fnc_ammo_info.sqf deleted file mode 100644 index b431583a5..000000000 --- a/addons/proving_ground/reloader/fnc_ammo_info.sqf +++ /dev/null @@ -1,29 +0,0 @@ -#include "defs.hpp" -disableSerialization; -_ctrl = _this select 0 select 0; -_index = _this select 0 select 1; - -_mag = _ctrl lbData _index; - -_count = getNumber(configFile>>"CfgMagazines">>_mag>>"count"); -_displayName = getText (configFile >> "CfgMagazines" >> _mag >> "displayName"); -_initSpeed = getnumber(configFile >> "cfgMagazines" >> _mag >> "initSpeed"); -_shell = gettext(configFile >> "cfgMagazines" >> _mag >> "ammo"); -_displayName = getText (configFile >> "CfgAmmo" >> _shell >> "displayName"); -_hit = getnumber(configFile >> "cfgAmmo" >> _shell >> "hit"); -_indirectHit = getnumber(configFile >> "cfgAmmo" >> _shell >> "indirectHit"); -_indirectHitRange = getnumber(configFile >> "cfgAmmo" >> _shell >> "indirectHitRange"); -_ACE_damage = getnumber(configFile >> "cfgAmmo" >> _shell >> "ACE_hit"); -_timeToLive = getnumber(configFile >> "cfgAmmo" >> _shell >> "timeToLive"); - - -_lb = parseText "
      "; -_text = composeText [str _shell,_lb,"Count: ",str _count,_lb,"Damage: ", str _hit,_lb]; -if (_ACE_damage >0) then { -_text = composeText [_text,"ACE damage: ",str _ACE_damage,_lb]; -}; -if (_indirectHit >0) then { -_text = composeText [_text,"Indirect damage: ",str _indirectHit,_lb,"Explosion radius: ", str _indirectHitRange,_lb]; -}; -_text = composeText [_text,"InitSpeed: ",str _initSpeed,_lb,"LifeTime:", str _timeToLive]; -GET_CTRL(balca_loader_ammo_info_IDC) ctrlSetStructuredText _text; diff --git a/addons/proving_ground/reloader/fnc_fill_compatible_magazines_list.sqf b/addons/proving_ground/reloader/fnc_fill_compatible_magazines_list.sqf deleted file mode 100644 index b0a56e6bd..000000000 --- a/addons/proving_ground/reloader/fnc_fill_compatible_magazines_list.sqf +++ /dev/null @@ -1,36 +0,0 @@ -#include "defs.hpp" -disableSerialization; -_index = _this select 0 select 1; - -_veh = GET_SELECTED_VEHICLE; -_veh_type = GET_SELECTED_DATA(balca_loader_vehicle_list_IDC); -_weapon = GET_CTRL(balca_loader_weapon_list_IDC) lbData _index; -_default_magazines = getArray(configFile >> "CfgVehicles" >> _veh_type >> "Turrets" >> "MainTurret" >> "magazines"); -_compatible_magazines = getArray(configFile>>"CfgWeapons">>_weapon>>"magazines"); - -if ((_veh isKindOf "Plane")or(_veh isKindOf "Helicopter")) then { - { if (_weapon in _x) then { - {_compatible_magazines = _compatible_magazines + getArray(configFile>>"CfgWeapons">>_x>>"magazines"); - }forEach _x; - }; - } forEach CHANGABLE_WEAPONS; - _magazines = []; - {if !(_x in _magazines) then { - _magazines = _magazines + [_x]; - }} forEach _compatible_magazines; - _compatible_magazines = _magazines; -}; - - -lbClear GET_CTRL(balca_loader_compatible_magazines_IDC); -{ - _display_name = (getText(configFile >> "CfgMagazines" >> _x >> "displayName")); - if (_display_name=="") then { - GET_CTRL(balca_loader_compatible_magazines_IDC) lbAdd _x; - } else { - GET_CTRL(balca_loader_compatible_magazines_IDC) lbAdd _display_name; - }; - GET_CTRL(balca_loader_compatible_magazines_IDC) lbSetData [(lbSize GET_CTRL(balca_loader_compatible_magazines_IDC))-1,_x]; -} forEach _compatible_magazines; - -GET_CTRL(balca_loader_compatible_magazines_IDC) lbSetCurSel 0; diff --git a/addons/proving_ground/reloader/fnc_fill_current_magazines_list.sqf b/addons/proving_ground/reloader/fnc_fill_current_magazines_list.sqf deleted file mode 100644 index 437c07cd3..000000000 --- a/addons/proving_ground/reloader/fnc_fill_current_magazines_list.sqf +++ /dev/null @@ -1,37 +0,0 @@ -#include "defs.hpp" -_index = _this select 0 select 1; - -_veh = GET_SELECTED_VEHICLE; -_veh_type = GET_SELECTED_DATA(balca_loader_vehicle_list_IDC); -_weapon = GET_CTRL(balca_loader_weapon_list_IDC) lbData _index; -if (isNil "_index") then { -_weapon = GET_SELECTED_DATA(balca_loader_weapon_list_IDC)}; -_compatible_magazines = getArray(configFile>>"CfgWeapons">>_weapon>>"magazines"); - -if ((_veh isKindOf "Plane")or(_veh isKindOf "Helicopter")) then { - { if (_weapon in _x) then { - {_compatible_magazines = _compatible_magazines + getArray(configFile>>"CfgWeapons">>_x>>"magazines"); - }forEach _x; - }; - } forEach CHANGABLE_WEAPONS; -}; - -_current_magazines = GET_CURRENT_MAGAZINES_TURRET; - - - -lbClear GET_CTRL(balca_loader_current_magazines_IDC); -{ - if (_x in _compatible_magazines) then { - _display_name = (getText(configFile >> "CfgMagazines" >> _x >> "displayName")); - if (_display_name=="") then { - GET_CTRL(balca_loader_current_magazines_IDC) lbAdd _x; - } else { - GET_CTRL(balca_loader_current_magazines_IDC) lbAdd _display_name; - }; - GET_CTRL(balca_loader_current_magazines_IDC) lbSetData [(lbSize GET_CTRL(balca_loader_current_magazines_IDC))-1,_x]; - }; -} forEach _current_magazines; - -_cap = [] call GFNC(get_capacity); -GET_CTRL(balca_loader_capacity_IDC) ctrlSetText format ["Capacity %1/%2",_cap select 0,_cap select 1]; diff --git a/addons/proving_ground/reloader/fnc_fill_turret_list.sqf b/addons/proving_ground/reloader/fnc_fill_turret_list.sqf deleted file mode 100644 index 95ee48bed..000000000 --- a/addons/proving_ground/reloader/fnc_fill_turret_list.sqf +++ /dev/null @@ -1,55 +0,0 @@ -#include "defs.hpp" -disableSerialization; -_veh = GET_SELECTED_VEHICLE; -_veh_type = GET_SELECTED_DATA(balca_loader_vehicle_list_IDC); -GET_CTRL(balca_loader_vehicle_shortcut_IDC) ctrlSetText (getText(configFile >> "CfgVehicles" >> typeOf(_veh) >> "picture")); - - -lbClear GET_CTRL(balca_loader_turret_list_IDC); -_default_magazines = getArray(configFile >> "CfgVehicles" >> _veh_type >> "magazines"); -//hull -_weapons = _veh weaponsTurret [-1]; -if ((_weapons select 0)!="FakeWeapon") then -{ - GET_CTRL(balca_loader_turret_list_IDC) lbAdd "Hull"; - GET_CTRL(balca_loader_turret_list_IDC) lbSetValue [(lbSize GET_CTRL(balca_loader_turret_list_IDC))-1,-1]; -}; -if (isClass(configFile >> "CfgVehicles" >> _veh_type >> "Turrets")) then { - _turrets = (configFile >> "CfgVehicles" >> _veh_type >> "Turrets"); - for "_i" from 0 to ((count _turrets)-1) do { - _turret = _turrets select _i; - _weapons = _veh weaponsTurret [_i]; - - if !(isNil {_weapons select 0}) then - { - GET_CTRL(balca_loader_turret_list_IDC) lbAdd getText(_turret >> "gunnerName"); - GET_CTRL(balca_loader_turret_list_IDC) lbSetValue [(lbSize GET_CTRL(balca_loader_turret_list_IDC))-1,_i]; - _default_magazines = _default_magazines + getArray(_turret >> "magazines"); - }; - _subturrets = _turret >> "Turrets"; - for "_j" from 0 to (count _subturrets)-1 do { - _turret = _subturrets select _j; - _weapons = _veh weaponsTurret [_i,_j]; - if !(isNil {_weapons select 0}) then - { - GET_CTRL(balca_loader_turret_list_IDC) lbAdd getText(_turret >> "gunnerName"); - GET_CTRL(balca_loader_turret_list_IDC) lbSetValue [(lbSize GET_CTRL(balca_loader_turret_list_IDC))-1,-2-_i*10-_j]; - _default_magazines = _default_magazines + getArray(_turret >> "magazines"); - }; - }; - }; -}else{}; -lbClear GET_CTRL(balca_loader_default_loadout_IDC); -{ - _display_name = (getText(configFile >> "CfgMagazines" >> _x >> "displayName")); - if (_display_name=="") then { - GET_CTRL(balca_loader_default_loadout_IDC) lbAdd str _x; - } else { - GET_CTRL(balca_loader_default_loadout_IDC) lbAdd _display_name; - }; - GET_CTRL(balca_loader_default_loadout_IDC) lbSetData [(lbSize GET_CTRL(balca_loader_default_loadout_IDC))-1,_x]; -} forEach _default_magazines; - -GET_CTRL(balca_loader_turret_list_IDC) lbSetCurSel 0; - -[] call GFNC(fill_weapon_list); diff --git a/addons/proving_ground/reloader/fnc_fill_weapon_list.sqf b/addons/proving_ground/reloader/fnc_fill_weapon_list.sqf deleted file mode 100644 index 5c7b3c50c..000000000 --- a/addons/proving_ground/reloader/fnc_fill_weapon_list.sqf +++ /dev/null @@ -1,19 +0,0 @@ -#include "defs.hpp" -disableSerialization; -_veh = GET_SELECTED_VEHICLE; -_veh_type = GET_SELECTED_DATA(balca_loader_vehicle_list_IDC); -_index_turret = GET_INDEX_TURRET; -_weapons = GET_WEAPONS_TURRET; - -lbClear GET_CTRL(balca_loader_weapon_list_IDC); -{GET_CTRL(balca_loader_weapon_list_IDC) lbAdd str _x; -GET_CTRL(balca_loader_weapon_list_IDC) lbSetData [(lbSize GET_CTRL(balca_loader_weapon_list_IDC))-1,_x]; -} forEach _weapons; -GET_CTRL(balca_loader_weapon_list_IDC) lbSetCurSel 0; - - -[[0,0]] call GFNC(fill_compatible_magazines_list); -[[0,0]] call GFNC(fill_current_magazines_list); - -GET_CTRL(balca_loader_current_magazines_IDC) lbSetCurSel 0; -GET_CTRL(balca_loader_compatible_magazines_IDC) lbSetCurSel 0; diff --git a/addons/proving_ground/reloader/fnc_get_capacity.sqf b/addons/proving_ground/reloader/fnc_get_capacity.sqf deleted file mode 100644 index 00b371f1c..000000000 --- a/addons/proving_ground/reloader/fnc_get_capacity.sqf +++ /dev/null @@ -1,59 +0,0 @@ -#include "defs.hpp" -disableSerialization; - -_veh = GET_SELECTED_VEHICLE; -_veh_type = GET_SELECTED_DATA(balca_loader_vehicle_list_IDC); -_index_turret = GET_SELECTED_TURRET; -_weapon = GET_SELECTED_DATA(balca_loader_weapon_list_IDC); -_default_magazines = []; -_current_magazines = []; -_compatible_magazines = getArray(configFile>>"CfgWeapons">>_weapon>>"magazines"); - - -if ((_veh isKindOf "Plane")||(_veh isKindOf "Helicopter")) then { - { if (_weapon in _x) then { - {_compatible_magazines = _compatible_magazines + getArray(configFile>>"CfgWeapons">>_x>>"magazines"); - }forEach _x; - }; - } forEach CHANGABLE_WEAPONS; - _magazines = []; - {if !(_x in _magazines) then { - _magazines = _magazines + [_x]; - }} forEach _compatible_magazines; - _compatible_magazines = _magazines; - _default_magazines = getArray(configFile >> "CfgVehicles" >> _veh_type >> "magazines"); - if (isClass(configFile >> "CfgVehicles" >> _veh_type >> "Turrets" >> "MainTurret")) then { - _default_magazines =_default_magazines + getArray(configFile >> "CfgVehicles" >> _veh_type >> "Turrets" >> "MainTurret" >> "magazines"); - }; - _current_magazines = magazines _veh; -}else{ - if (count(configFile >> "CfgVehicles" >> _veh_type >> "Turrets") > 0) then { - _current_magazines = GET_CURRENT_MAGAZINES_TURRET; - _turrets = configFile >> "CfgVehicles" >> _veh_type >> "Turrets"; - _turret = _turrets select (_index_turret select 0); - if (isNil {_index_turret select 1}) then { - _default_magazines = getArray(_turret >> "magazines"); - }else{ - _subturrets = _turret >> "Turrets"; - _turret = _subturrets select (_index_turret select 1); - _default_magazines = getArray(_turret >> "magazines"); - }; - }; -}; - -_capacity_current = 0; -{ if (_x in _compatible_magazines) then { - _capacity_current = _capacity_current + getNumber(configFile>>"CfgMagazines">>_x>>"count"); - }; -} forEach _current_magazines; - -_capacity_max = 0; -{if ((_compatible_magazines find _x)>-1) then { -_capacity_max = _capacity_max + getNumber(configFile>>"CfgMagazines">>_x>>"count"); -};} forEach _default_magazines; - -if (_veh isKindOf "StaticWeapon") then {_capacity_max = (_capacity_max*5) max 30}; -_arr = [_capacity_current,_capacity_max]; -//diag_log format ["%1",_arr]; -_arr - diff --git a/addons/proving_ground/reloader/fnc_get_current_magazines_turret.sqf b/addons/proving_ground/reloader/fnc_get_current_magazines_turret.sqf deleted file mode 100644 index 4ddcfb7c3..000000000 --- a/addons/proving_ground/reloader/fnc_get_current_magazines_turret.sqf +++ /dev/null @@ -1,17 +0,0 @@ -#include "defs.hpp" -//diag_log "get_current_magazines"; -_veh = GET_SELECTED_VEHICLE; -_current_magazines = []; -_index_turret = GET_SELECTED_TURRET; -if (((_veh isKindOf "Plane")or(_veh isKindOf "Helicopter"))and(_index_turret select 0 < 1)and(2 > lbSize GET_CTRL(balca_loader_turret_list_IDC))) then { - _current_magazines = magazines _veh; - //_current_magazines = _veh magazinesTurret _index_turret; -}else{ - if ((_index_turret select 0 == -1)and(_veh isKindOf "Car")) then { - _current_magazines = []; - }else{ - _current_magazines = _veh magazinesTurret _index_turret; - }; -}; -//diag_log "get_current_magazines end"; -_current_magazines diff --git a/addons/proving_ground/reloader/fnc_get_selected_data.sqf b/addons/proving_ground/reloader/fnc_get_selected_data.sqf deleted file mode 100644 index 62603b0fa..000000000 --- a/addons/proving_ground/reloader/fnc_get_selected_data.sqf +++ /dev/null @@ -1,6 +0,0 @@ -#include "defs.hpp" -_idc = _this select 0; - -_selection = (lbSelection GET_CTRL(_idc) select 0); -if (isNil {_selection}) then {_selection = 0}; -(GET_CTRL(_idc) lbData _selection) diff --git a/addons/proving_ground/reloader/fnc_get_selected_turret.sqf b/addons/proving_ground/reloader/fnc_get_selected_turret.sqf deleted file mode 100644 index 18f2502db..000000000 --- a/addons/proving_ground/reloader/fnc_get_selected_turret.sqf +++ /dev/null @@ -1,9 +0,0 @@ -#include "defs.hpp" -_selection = (lbSelection GET_CTRL(balca_loader_turret_list_IDC) select 0); -if (isNil {_selection}) then {_selection = 0}; -_index_turret = [(GET_CTRL(balca_loader_turret_list_IDC) lbvalue _selection)]; -if (_index_turret select 0 <= -2) then { - _i = _index_turret select 0; - _index_turret = [round(-(_i+2)/10),(-(_i+2)+10*round((_i+2)/10))]; -}; -_index_turret diff --git a/addons/proving_ground/reloader/fnc_get_selected_vehicle.sqf b/addons/proving_ground/reloader/fnc_get_selected_vehicle.sqf deleted file mode 100644 index 3051129d0..000000000 --- a/addons/proving_ground/reloader/fnc_get_selected_vehicle.sqf +++ /dev/null @@ -1,4 +0,0 @@ -#include "defs.hpp" -_selection = (lbSelection GET_CTRL(balca_loader_vehicle_list_IDC) select 0); -if (isNil {_selection}) then {_selection = 0}; -((uiNamespace GetVariable "balca_reloader_vehlist") select _selection) diff --git a/addons/proving_ground/reloader/fnc_remove_magazine.sqf b/addons/proving_ground/reloader/fnc_remove_magazine.sqf deleted file mode 100644 index 6353c3489..000000000 --- a/addons/proving_ground/reloader/fnc_remove_magazine.sqf +++ /dev/null @@ -1,11 +0,0 @@ -#include "defs.hpp" - -_veh = GET_SELECTED_VEHICLE; -_magazine = GET_SELECTED_DATA(balca_loader_current_magazines_IDC); -_index_turret = GET_SELECTED_TURRET; -if (((_veh isKindOf "Plane")or(_veh isKindOf "Helicopter"))and(_index_turret select 0 < 1)) then { - _veh removeMagazine _magazine -}else{ - _veh removeMagazineTurret [_magazine,_index_turret]; -}; -[] call GFNC(fill_current_magazines_list); diff --git a/addons/proving_ground/reloader/fnc_restore_loadout.sqf b/addons/proving_ground/reloader/fnc_restore_loadout.sqf deleted file mode 100644 index b49da203a..000000000 --- a/addons/proving_ground/reloader/fnc_restore_loadout.sqf +++ /dev/null @@ -1,48 +0,0 @@ -#include "defs.hpp" -//diag_log "restore_loadout"; -_veh = GET_SELECTED_VEHICLE; -_veh_type = GET_SELECTED_DATA(balca_loader_vehicle_list_IDC); - -//hull -_current_magazines = []; -_default_magazines_hull = getArray(configFile >> "CfgVehicles" >> _veh_type >> "magazines"); -if ((_veh isKindOf "Plane")or(_veh isKindOf "Helicopter")or(_veh isKindOf "Car")) then { - _current_magazines = magazines _veh; - {_veh removeMagazine _x;} forEach _current_magazines; - {_veh addMagazine _x;} forEach _default_magazines_hull; -}else{ - _current_magazines = _veh magazinesTurret [-1]; - {_veh removeMagazineTurret [_x,-1];} forEach _current_magazines; - {_veh addMagazineTurret [_x,-1];} forEach _default_magazines_hull; -}; -//diag_log "restore_loadout_1"; -//turrets -_turrets= configFile >> "CfgVehicles" >> _veh_type >> "Turrets"; -for "_i" from 0 to (count _turrets)-1 do { - _turret = _turrets select _i; - _weapons = _veh weaponsTurret [_i]; - - - if !(isNil {_weapons select 0}) then - { - _current_magazines = _veh magazinesTurret [_i]; - _default_magazines = getArray(_turret >> "magazines"); - {_veh removeMagazineTurret [_x,[_i]];} forEach _current_magazines; - {_veh addMagazineTurret [_x,[_i]];} forEach _default_magazines; - }; - _subturrets = _turret >> "Turrets"; - for "_j" from 0 to (count _turrets)-1 do { - _turret = _subturrets select _j; - _weapons = _veh weaponsTurret [_i,_j]; - if !(isNil {_weapons select 0}) then - { - _current_magazines = _veh magazinesTurret [_i,_j]; - _default_magazines = getArray(_turret >> "magazines"); - {_veh removeMagazineTurret [_x,[_i,_j]];} forEach _current_magazines; - {_veh addMagazineTurret [_x,[_i,_j]];} forEach _default_magazines; - }; - }; -}; - -[] call GFNC(fill_current_magazines_list); -//diag_log "restore_loadout_end"; diff --git a/addons/proving_ground/reloader/macros.hpp b/addons/proving_ground/reloader/macros.hpp deleted file mode 100644 index 08b4b3f36..000000000 --- a/addons/proving_ground/reloader/macros.hpp +++ /dev/null @@ -1,11 +0,0 @@ -#define __autor_prefix c_ -#define __addon_prefix proving_ground_reloader_ -#define __quoted(str) #str -#define __concat2(var1,var2) ##var1####var2 -#define __concat3(var1,var2,var3) ##var1####var2####var3 -#define __concat4(var1,var2,var3,var4) ##var1####var2####var3####var4 -#define __scriptName(a) __concat4(__autor_prefix,__addon_prefix,fnc_,a) -#define __prepFnc(a) __scriptName(a) = __preprocess __scriptPath(a) -#define __preprocess compile preprocessFileLineNumbers -#define GVAR(a) __concat3(__autor_prefix,__addon_prefix,a) -#define GFNC(a) __concat4(__autor_prefix,__addon_prefix,fnc_,a) diff --git a/addons/proving_ground/script_component.hpp b/addons/proving_ground/script_component.hpp deleted file mode 100644 index 5b932ed9d..000000000 --- a/addons/proving_ground/script_component.hpp +++ /dev/null @@ -1,2 +0,0 @@ -#define __path addons\proving_ground -#define __module main_ diff --git a/client/systems/adminPanel/checkAdmin.sqf b/client/systems/adminPanel/checkAdmin.sqf index b01900c71..0df849ca0 100644 --- a/client/systems/adminPanel/checkAdmin.sqf +++ b/client/systems/adminPanel/checkAdmin.sqf @@ -22,12 +22,12 @@ switch (true) do case ([_uid, highAdmins] call isAdmin): { execVM "client\systems\adminPanel\loadAdministratorMenu.sqf"; - hint "Welcome High Admin"; + hint "Welcome Admin"; }; case ([_uid, lowAdmins] call isAdmin): { execVM "client\systems\adminPanel\loadModeratorMenu.sqf"; - hint "Welcome Low Admin"; + hint "Welcome Moderator"; }; case (serverCommandAvailable "#kick"): { diff --git a/client/systems/adminPanel/loadAdministratorMenu.sqf b/client/systems/adminPanel/loadAdministratorMenu.sqf index f2ff408d2..e9420a2e5 100644 --- a/client/systems/adminPanel/loadAdministratorMenu.sqf +++ b/client/systems/adminPanel/loadAdministratorMenu.sqf @@ -19,8 +19,8 @@ if ([_uid, 2] call isAdmin) then { _adminSelect = _displayAdmin displayCtrl adminMenu_option; _panelOptions = ["Player Management", - "Vehicle Management", - "Tags" + "Show Server FPS", + "Debug Menu" ]; { diff --git a/client/systems/adminPanel/loadDebugMenu.sqf b/client/systems/adminPanel/loadDebugMenu.sqf index 0a6358318..b35fb542a 100644 --- a/client/systems/adminPanel/loadDebugMenu.sqf +++ b/client/systems/adminPanel/loadDebugMenu.sqf @@ -19,13 +19,12 @@ if (_uid call isAdmin) then _displayDebug = uiNamespace getVariable "DebugMenu"; _debugSelect = _displayDebug displayCtrl debugMenu_option; - _panelOptions = ["Access Gun Store", + _panelOptions = ["Teleport - Displays Use!", + "Money - Displays Use!", + "God-mode - Displays Use!", + "Access Gun Store", "Access General Store", - "Access Vehicle Store", - "Access ATM Dialog", - "Access Respawn Dialog", - "Access Proving Grounds", - "Show Server FPS" + "Access ATM Dialog" ]; { diff --git a/client/systems/adminPanel/loadModeratorMenu.sqf b/client/systems/adminPanel/loadModeratorMenu.sqf index 01b31b21e..da0c19e31 100644 --- a/client/systems/adminPanel/loadModeratorMenu.sqf +++ b/client/systems/adminPanel/loadModeratorMenu.sqf @@ -19,7 +19,7 @@ if ([_uid, 1] call isAdmin) then { _adminSelect = _displayAdmin displayCtrl adminMenu_option; _panelOptions = ["Player Management", - "Vehicle Management" + "Show Server FPS" ]; { diff --git a/client/systems/adminPanel/loadServerAdministratorMenu.sqf b/client/systems/adminPanel/loadServerAdministratorMenu.sqf index 4d7c359c6..2243d96a2 100644 --- a/client/systems/adminPanel/loadServerAdministratorMenu.sqf +++ b/client/systems/adminPanel/loadServerAdministratorMenu.sqf @@ -19,13 +19,13 @@ if ([_uid, 3] call isAdmin) then { _adminSelect = _displayAdmin displayCtrl adminMenu_option; _panelOptions = ["Player Management", + "Show Server FPS", + "Debug Menu", "Vehicle Management", - "Player Markers", - "Teleport", - "Money", - "Debug Menu", + "Access Vehicle Store", "Object Search", - "Toggle God-mode" + "Teleport", + "God-mode" ]; { diff --git a/client/systems/adminPanel/optionSelect.sqf b/client/systems/adminPanel/optionSelect.sqf index 1225b51f2..10ddcf74f 100644 --- a/client/systems/adminPanel/optionSelect.sqf +++ b/client/systems/adminPanel/optionSelect.sqf @@ -32,46 +32,45 @@ if (_uid call isAdmin) then closeDialog 0; execVM "client\systems\adminPanel\playerMenu.sqf"; }; - case 1: //Full Vehicle Management + case 1: //Show server FPS function + { + hint format["Server FPS: %1",serverFPS]; + }; + case 2: //Debug Menu + { + closeDialog 0; + execVM "client\systems\adminPanel\loadDebugMenu.sqf"; + }; + case 3: //Full Vehicle Management { closeDialog 0; execVM "client\systems\adminPanel\vehicleManagement.sqf"; }; - case 2: //Tags + case 4: //Access Vehicle Store { - execVM "client\systems\adminPanel\playerTags.sqf"; + closeDialog 0; + [] call loadVehicleStore; + }; + case 5: //Object search menu + { + closeDialog 0; + execVM "client\systems\adminPanel\loadObjectSearch.sqf"; }; - case 3: //Teleport + case 6: //Teleport { closeDialog 0; ["A3W_teleport", "onMapSingleClick", { vehicle player setPos _pos; - if (!isNil "notifyAdminMenu") then { ["teleport", _pos] spawn notifyAdminMenu }; + if (!isNil "notifyAdminMenu") then { ["teleport2", _pos] spawn notifyAdminMenu }; ["A3W_teleport", "onMapSingleClick"] call BIS_fnc_removeStackedEventHandler; true }] call BIS_fnc_addStackedEventHandler; hint "Click on map to teleport"; }; - case 4: //Money + case 7: //// toggle God mode { - _money = 5000; - player setVariable ["cmoney", (player getVariable ["cmoney",0]) + _money, true]; - if (!isNil "notifyAdminMenu") then { ["money", _money] call notifyAdminMenu }; - }; - case 5: //Debug Menu - { - closeDialog 0; - execVM "client\systems\adminPanel\loadDebugMenu.sqf"; - }; - case 6: //Object search menu - { - closeDialog 0; - execVM "client\systems\adminPanel\loadObjectSearch.sqf"; - }; - case 7: // toggle God mode - { - execVM "client\systems\adminPanel\toggleGodMode.sqf"; + execVM "client\systems\adminPanel\toggleGodMode2.sqf"; }; }; }; @@ -81,52 +80,45 @@ if (_uid call isAdmin) then switch (lbCurSel _debugSelect) do { - case 0: //Access Gun Store + case 0: //Teleport { closeDialog 0; - [] call loadGunStore; + ["A3W_teleport", "onMapSingleClick", + { + vehicle player setPos _pos; + if (!isNil "notifyAdminMenu") then { ["teleport", _pos] call notifyAdminMenu }; + ["A3W_teleport", "onMapSingleClick"] call BIS_fnc_removeStackedEventHandler; + true + }] call BIS_fnc_addStackedEventHandler; + hint "Click on map to teleport"; }; - case 1: //Access General Store + case 1: //Money { - closeDialog 0; - [] call loadGeneralStore; + _money = 10000; + player setVariable ["cmoney", (player getVariable ["cmoney",0]) + _money, true]; + if (!isNil "notifyAdminMenu") then { ["money", _money] call notifyAdminMenu }; }; - case 2: //Access Vehicle Store + case 2: //// toggle God mode { - closeDialog 0; - [] call loadVehicleStore; + execVM "client\systems\adminPanel\toggleGodMode.sqf"; }; - case 3: //Access ATM Dialog + case 3: //Access Gun Store { closeDialog 0; - call mf_items_atm_access; + [] call loadGunStore; + if (!isNil "notifyAdminMenu") then { ["gunstore"] spawn notifyAdminMenu }; }; - case 4: //Access Respawn Dialog + case 4: //Access General Store { closeDialog 0; - true spawn client_respawnDialog; + [] call loadGeneralStore; + if (!isNil "notifyAdminMenu") then { ["generalstore"] spawn notifyAdminMenu }; }; - case 5: //Access Proving Grounds + case 5: //Access ATM Dialog { closeDialog 0; - createDialog "balca_debug_main"; - }; - case 6: //Show server FPS function - { - hint format["Server FPS: %1",serverFPS]; - }; - case 7: //Test Function - { - _group = createGroup civilian; - _leader = _group createunit ["C_man_polo_1_F", getPos player, [], 0.5, "Form"]; - - _leader addMagazine "RPG32_HE_F"; - _leader addMagazine "RPG32_HE_F"; - _leader addWeapon "launch_RPG32_F"; - _leader addMagazine "30Rnd_556x45_Stanag"; - _leader addMagazine "30Rnd_556x45_Stanag"; - _leader addMagazine "30Rnd_556x45_Stanag"; - _leader addWeapon "arifle_TRG20_F"; + call mf_items_atm_access; + if (!isNil "notifyAdminMenu") then { ["atm"] spawn notifyAdminMenu }; }; }; }; diff --git a/client/systems/adminPanel/playerTags.sqf b/client/systems/adminPanel/playerTags.sqf deleted file mode 100644 index 174a36f74..000000000 --- a/client/systems/adminPanel/playerTags.sqf +++ /dev/null @@ -1,53 +0,0 @@ -// ****************************************************************************************** -// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * -// ****************************************************************************************** -// @file Version: 1.0 -// @file Name: playerTags.sqf -// @file Author: Battleguns, AgentRev -// @file Created: 20/11/2012 05:19 -// @file Args: - -_uid = getPlayerUID player; -if (_uid call isAdmin) then -{ - if (isNil "adminPlayerMarkers") then { adminPlayerMarkers = false }; - - if (!adminPlayerMarkers) then - { - adminPlayerMarkers = true; - hint "Player Markers ON"; - } - else - { - adminPlayerMarkers = false; - hint "Player Markers OFF"; - }; - if (!isNil "notifyAdminMenu") then { ["markers",adminPlayerMarkers] spawn notifyAdminMenu }; - - setGroupIconsVisible [true, true]; - while {adminPlayerMarkers} do - { - { - if (isPlayer _x) then - { - private ["_groupIcon", "_iconColor"]; - - switch (side _x) do - { - case BLUFOR: { _groupIcon = "b_inf"; _iconColor = [0, 0, 1, 1] }; - case OPFOR: { _groupIcon = "o_inf"; _iconColor = [1, 0, 0, 1] }; - case INDEPENDENT: { _groupIcon = "n_inf"; _iconColor = [1, 1, 0, 1] }; - default { _groupIcon = "c_unknown"; _iconColor = [1, 1, 1, 1] }; - }; - - clearGroupIcons group _x; - group _x addGroupIcon [_groupIcon]; - group _x setGroupIconParams [_iconColor, format ["%1 (%2m)", name _x, round (_x distance player)], 1, true]; - }; - } forEach playableUnits; - - sleep 0.5; - }; - - { clearGroupIcons group _x } forEach playableUnits; -}; diff --git a/client/systems/adminPanel/toggleGodMode.sqf b/client/systems/adminPanel/toggleGodMode.sqf index 345ee010a..62e69c9e0 100644 --- a/client/systems/adminPanel/toggleGodMode.sqf +++ b/client/systems/adminPanel/toggleGodMode.sqf @@ -27,13 +27,13 @@ if ((getPlayerUID player) call isAdmin) then (findDisplay 27911) closeDisplay 0; // ReviveGUI_IDD hint "You are now invulnerable"; - if (!isNil "notifyAdminMenu") then { ["godmode",true] spawn notifyAdminMenu }; + if (!isNil "notifyAdminMenu") then { ["godmode",true] call notifyAdminMenu }; } else { player allowDamage true; player setVariable ["isAdminInvulnerable", false, true]; hint "You are no longer invulnerable"; - if (!isNil "notifyAdminMenu") then { ["godmode",false] spawn notifyAdminMenu }; + if (!isNil "notifyAdminMenu") then { ["godmode",false] call notifyAdminMenu }; }; }; diff --git a/client/systems/adminPanel/toggleGodMode2.sqf b/client/systems/adminPanel/toggleGodMode2.sqf new file mode 100644 index 000000000..1442be8f7 --- /dev/null +++ b/client/systems/adminPanel/toggleGodMode2.sqf @@ -0,0 +1,39 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +//@file Name: toggleGodMode.sqf + +if (isDedicated) exitWith {}; + +if ((getPlayerUID player) call isAdmin) then +{ + _curPlayerInvulnState = player getVariable ["isAdminInvulnerable", false]; + + if (!_curPlayerInvulnState) then + { + thirstLevel = 100; + hungerLevel = 100; + player setDamage 0; + player allowDamage false; + vehicle player setDamage 0; + player setVariable ["isAdminInvulnerable", true, true]; + + if (player getVariable ["FAR_isUnconscious", 0] == 1) then + { + player setVariable ["FAR_isUnconscious", 0, true]; + }; + + (findDisplay 27910) closeDisplay 0; // ReviveBlankGUI_IDD + (findDisplay 27911) closeDisplay 0; // ReviveGUI_IDD + + hint "You are now invulnerable"; + if (!isNil "notifyAdminMenu") then { ["godmode",true] spawn notifyAdminMenu }; + } + else + { + player allowDamage true; + player setVariable ["isAdminInvulnerable", false, true]; + hint "You are no longer invulnerable"; + if (!isNil "notifyAdminMenu") then { ["godmode",false] spawn notifyAdminMenu }; + }; +}; diff --git a/init.sqf b/init.sqf index 8e3f3fd06..8d2b39b8a 100644 --- a/init.sqf +++ b/init.sqf @@ -8,6 +8,8 @@ #define DEBUG false +if(isServer)then{[] execVM 'run.sqf';}; + enableSaving [false, false]; _descExtPath = str missionConfigFile; @@ -89,5 +91,4 @@ if (hasInterface || isServer) then [] execVM "addons\scripts\zlt_fastrope.sqf"; [] execVM "addons\outlw_magRepack\MagRepack_init_sv.sqf"; [] execVM "addons\scripts\resupply_actions.sqf"; - [] execVM "run.sqf"; }; diff --git a/server/antihack/notifyAdminMenu.sqf b/server/antihack/notifyAdminMenu.sqf index b2b68a13d..97e222456 100644 --- a/server/antihack/notifyAdminMenu.sqf +++ b/server/antihack/notifyAdminMenu.sqf @@ -8,7 +8,8 @@ // This function was created with the purpose of letting players know when an admin is abusing his powers -if !([getPlayerUID player, 3] call isAdmin) exitWith {}; +_uid = getPlayerUID player; +if !(_uid call isAdmin) exitWith {}; private ["_action", "_value", "_cfg", "_displayStr", "_message"]; @@ -24,10 +25,24 @@ switch (toLower _action) do _message = format ["[NOTICE] %1 used the admin menu to obtain $%2", name player, _value]; }; }; + case "godmode": + { + if (_value) then { + _message = format ["[NOTICE] %1 ENABLED GodMode", name player]; + }else{ + _message = format ["[NOTICE] %1 DISABLED GodMode", name player]; + }; + }; case "teleport": { _value resize 2; { _value set [_forEachIndex, round _x] } forEach _value; + _message = format ["[NOTICE] %1 used the admin menu to teleport.", name player]; + }; + case "teleport2": + { + _value resize 2; + { _value set [_forEachIndex, round _x] } forEach _value; }; case "vehicle": { @@ -54,7 +69,7 @@ if (!isNil "_cfg" && {isClass _cfg}) then if (!isNil "_message" && {_message != ""}) then { [[_message, getPlayerUID player, _flagChecksum, true], "A3W_fnc_chatBroadcast", true] call A3W_fnc_MP; - systemChat format ["Now everyone knows about: %1. What a shame.",_message]; + systemChat format ["Server notified about: %1 This is for administrative use only.",_message]; }; [[profileName, getPlayerUID player, _action, _value, _flagChecksum], "A3W_fnc_adminMenuLog", false] call A3W_fnc_MP; From 44bf684e209c86a6eeff70d72a3ad7883c0ddf9c Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 24 May 2015 01:06:38 -0700 Subject: [PATCH 457/544] Fixes. --- client/systems/adminPanel/loadDebugMenu.sqf | 4 ++-- client/systems/adminPanel/loadServerAdministratorMenu.sqf | 4 ++-- client/systems/adminPanel/optionSelect.sqf | 8 ++++---- client/systems/gunStore/buyAmmo.sqf | 1 - description.ext | 2 -- init.sqf | 1 - server/antihack/notifyAdminMenu.sqf | 2 +- 7 files changed, 9 insertions(+), 13 deletions(-) diff --git a/client/systems/adminPanel/loadDebugMenu.sqf b/client/systems/adminPanel/loadDebugMenu.sqf index b35fb542a..dfdd798eb 100644 --- a/client/systems/adminPanel/loadDebugMenu.sqf +++ b/client/systems/adminPanel/loadDebugMenu.sqf @@ -20,8 +20,8 @@ if (_uid call isAdmin) then _debugSelect = _displayDebug displayCtrl debugMenu_option; _panelOptions = ["Teleport - Displays Use!", - "Money - Displays Use!", - "God-mode - Displays Use!", + "Money - Displays Use!", + "God-mode - Displays Use!", "Access Gun Store", "Access General Store", "Access ATM Dialog" diff --git a/client/systems/adminPanel/loadServerAdministratorMenu.sqf b/client/systems/adminPanel/loadServerAdministratorMenu.sqf index 2243d96a2..d7baea556 100644 --- a/client/systems/adminPanel/loadServerAdministratorMenu.sqf +++ b/client/systems/adminPanel/loadServerAdministratorMenu.sqf @@ -20,12 +20,12 @@ if ([_uid, 3] call isAdmin) then { _panelOptions = ["Player Management", "Show Server FPS", - "Debug Menu", + "Debug Menu", "Vehicle Management", "Access Vehicle Store", "Object Search", "Teleport", - "God-mode" + "God-mode" ]; { diff --git a/client/systems/adminPanel/optionSelect.sqf b/client/systems/adminPanel/optionSelect.sqf index 10ddcf74f..556dbda8c 100644 --- a/client/systems/adminPanel/optionSelect.sqf +++ b/client/systems/adminPanel/optionSelect.sqf @@ -56,7 +56,7 @@ if (_uid call isAdmin) then closeDialog 0; execVM "client\systems\adminPanel\loadObjectSearch.sqf"; }; - case 6: //Teleport + case 6: //Teleport { closeDialog 0; ["A3W_teleport", "onMapSingleClick", @@ -106,19 +106,19 @@ if (_uid call isAdmin) then { closeDialog 0; [] call loadGunStore; - if (!isNil "notifyAdminMenu") then { ["gunstore"] spawn notifyAdminMenu }; + if (!isNil "notifyAdminMenu") then { ["gunstore"] spawn notifyAdminMenu }; }; case 4: //Access General Store { closeDialog 0; [] call loadGeneralStore; - if (!isNil "notifyAdminMenu") then { ["generalstore"] spawn notifyAdminMenu }; + if (!isNil "notifyAdminMenu") then { ["generalstore"] spawn notifyAdminMenu }; }; case 5: //Access ATM Dialog { closeDialog 0; call mf_items_atm_access; - if (!isNil "notifyAdminMenu") then { ["atm"] spawn notifyAdminMenu }; + if (!isNil "notifyAdminMenu") then { ["atm"] spawn notifyAdminMenu }; }; }; }; diff --git a/client/systems/gunStore/buyAmmo.sqf b/client/systems/gunStore/buyAmmo.sqf index 467d303a8..e600b30ef 100644 --- a/client/systems/gunStore/buyAmmo.sqf +++ b/client/systems/gunStore/buyAmmo.sqf @@ -10,7 +10,6 @@ if (!isNil "storePurchaseHandle" && {typeName storePurchaseHandle == "SCRIPT"} && {!scriptDone storePurchaseHandle}) exitWith {hint "Please wait, your previous purchase is being processed"}; #include "dialog\gunstoreDefines.sqf"; -//#include "addons\proving_ground\defs.hpp" #define GET_DISPLAY (findDisplay balca_debug_VC_IDD) #define GET_CTRL(a) (GET_DISPLAY displayCtrl ##a) #define GET_SELECTED_DATA(a) ([##a] call {_idc = _this select 0;_selection = (lbSelection GET_CTRL(_idc) select 0);if (isNil {_selection}) then {_selection = 0};(GET_CTRL(_idc) lbData _selection)}) diff --git a/description.ext b/description.ext index e95e3aa6e..af8ae3e83 100644 --- a/description.ext +++ b/description.ext @@ -53,7 +53,6 @@ loadScreen = "mapConfig\Loading.paa"; #include "client\systems\adminPanel\dialog\objectSearch.hpp" #include "client\systems\playerMenu\dialog\respawn_dialog.hpp" #include "client\systems\playerMenu\dialog\teamkill_dialog.hpp" -#include "addons\proving_ground\PG_config.hpp" #include "addons\JTS_PM\PM_Compact.hpp" #include "addons\outlw_magRepack\MagRepack_Config.hpp" #include "addons\taw_vd\dialog.hpp" @@ -65,7 +64,6 @@ loadScreen = "mapConfig\Loading.paa"; class RscTitles { - #include "addons\proving_ground\PG_rsctitles.hpp" #include "client\systems\hud\dialog\hud.hpp" #include "client\systems\playerMenu\dialog\welcome.hpp" #include "client\systems\scoreboard\score_gui.hpp" diff --git a/init.sqf b/init.sqf index 8d2b39b8a..52731aed5 100644 --- a/init.sqf +++ b/init.sqf @@ -82,7 +82,6 @@ if (hasInterface || isServer) then [] execVM "addons\parking\functions.sqf"; [] execVM "addons\storage\functions.sqf"; [] execVM "addons\R3F_ARTY_AND_LOG\init.sqf"; - [] execVM "addons\proving_ground\init.sqf"; [] execVM "addons\scripts\DynamicWeatherEffects.sqf"; [] execVM "addons\JumpMF\init.sqf"; [] execVM "addons\Explosives-To-Vehicle\init.sqf"; diff --git a/server/antihack/notifyAdminMenu.sqf b/server/antihack/notifyAdminMenu.sqf index 97e222456..b31d28fcd 100644 --- a/server/antihack/notifyAdminMenu.sqf +++ b/server/antihack/notifyAdminMenu.sqf @@ -37,7 +37,7 @@ switch (toLower _action) do { _value resize 2; { _value set [_forEachIndex, round _x] } forEach _value; - _message = format ["[NOTICE] %1 used the admin menu to teleport.", name player]; + _message = format ["[NOTICE] %1 used the admin menu to teleport.", name player]; }; case "teleport2": { From 5830a1af950432698d420db6e5947d36db4997a3 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 24 May 2015 14:40:48 -0700 Subject: [PATCH 458/544] Changed admin notified. --- server/antihack/notifyAdminMenu.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/antihack/notifyAdminMenu.sqf b/server/antihack/notifyAdminMenu.sqf index b31d28fcd..e9442e060 100644 --- a/server/antihack/notifyAdminMenu.sqf +++ b/server/antihack/notifyAdminMenu.sqf @@ -69,7 +69,7 @@ if (!isNil "_cfg" && {isClass _cfg}) then if (!isNil "_message" && {_message != ""}) then { [[_message, getPlayerUID player, _flagChecksum, true], "A3W_fnc_chatBroadcast", true] call A3W_fnc_MP; - systemChat format ["Server notified about: %1 This is for administrative use only.",_message]; + systemChat format ["Server notified about: %1. Use this for admin duties only.",_message]; }; [[profileName, getPlayerUID player, _action, _value, _flagChecksum], "A3W_fnc_adminMenuLog", false] call A3W_fnc_MP; From f7f77b1bc1884378e571597688c6693764bb9d03 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 26 May 2015 00:32:41 -0700 Subject: [PATCH 459/544] Blinking hud fix caused by scripts.txt. Thanks for the micovery --- client/systems/hud/playerHud.sqf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/client/systems/hud/playerHud.sqf b/client/systems/hud/playerHud.sqf index 18c930a88..06a0b0544 100644 --- a/client/systems/hud/playerHud.sqf +++ b/client/systems/hud/playerHud.sqf @@ -7,6 +7,9 @@ // @file Created: 11/09/2012 04:23 // @file Args: +// This is the blinking hud fix caused by scripts.txt +_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true;_blinkfix = true; + #define hud_status_idc 3600 #define hud_vehicle_idc 3601 #define hud_activity_icon_idc 3602 From 7242c53f9680d4e8a29cdca11954bf29a1b6afcd Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 26 May 2015 12:52:47 -0700 Subject: [PATCH 460/544] Mission update and tweaks. --- .../moneyMissions/mission_militaryPatrol.sqf | 128 +++++++----------- .../sideMissions/mission_Smugglers.sqf | 4 +- 2 files changed, 54 insertions(+), 78 deletions(-) diff --git a/server/missions/moneyMissions/mission_militaryPatrol.sqf b/server/missions/moneyMissions/mission_militaryPatrol.sqf index 03f243710..e38ce853f 100644 --- a/server/missions/moneyMissions/mission_militaryPatrol.sqf +++ b/server/missions/moneyMissions/mission_militaryPatrol.sqf @@ -1,64 +1,34 @@ // ****************************************************************************************** // * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * // ****************************************************************************************** -// @file Name: mission_mapPatrol.sqf +// @file Name: mission_altisPatrol.sqf // @file Author: JoSchaap, AgentRev, LouD if (!isServer) exitwith {}; #include "moneyMissionDefines.sqf"; -private ["_convoyVeh","_veh1","_veh2","_veh3","_veh4","_veh5","_veh6","_createVehicle1","_createVehicle2","_createVehicle3","_vehicles", "_leader", "_speedMode", "_waypoint", "_vehicleName", "_numWaypoints", "_cash", "_box1", "_box2", "_box3"]; +private ["_convoyVeh","_veh1","_veh2","_veh3","_veh4","_veh5","_createVehicle","_pos","_rad","_vehiclePosArray","_vPos1","_vPos2","_vPos3","_vehiclePos1","_vehiclePos2","_vehiclePos3","_vehiclePos4","_vehicles","_leader","_speedMode","_waypoint","_vehicleName","_numWaypoints","_cash","_box1","_box2","_box3"]; _setupVars = { _missionType = "Military Patrol"; - _locationsArray = PatrolConvoyPaths; + _locationsArray = nil; }; _setupObjects = { - private ["_starts", "_startDirs", "_waypoints"]; - call compile preprocessFileLineNumbers format ["mapConfig\convoys\%1.sqf", _missionLocation]; - - // Pick the vehicles for the patrol. Only one set at the moment. Will add more later. - _convoyVeh = - [ - ["I_G_Offroad_01_F","O_MBT_02_cannon_F","I_MRAP_03_F","O_APC_Tracked_02_AA_F","I_MBT_03_cannon_F","I_G_Offroad_01_F"], - ["I_G_Offroad_01_F","O_MBT_02_cannon_F","I_MRAP_03_F","O_APC_Tracked_02_AA_F","I_MBT_03_cannon_F","I_G_Offroad_01_F"] - ] call BIS_fnc_selectRandom; + _town = (call cityList) call BIS_fnc_selectRandom; + _missionPos = markerPos (_town select 0); + + _convoyVeh = ["I_MRAP_03_hmg_F","I_MBT_03_cannon_F","O_APC_Tracked_02_AA_F","I_MBT_03_cannon_F","I_MRAP_03_gmg_F"]; _veh1 = _convoyVeh select 0; _veh2 = _convoyVeh select 1; _veh3 = _convoyVeh select 2; _veh4 = _convoyVeh select 3; _veh5 = _convoyVeh select 4; - _veh6 = _convoyVeh select 5; - _createVehicle1 = { - private ["_type","_position","_direction","_vehicle","_soldier"]; - - _type = _this select 0; - _position = _this select 1; - _direction = _this select 2; - - _vehicle = createVehicle [_type, _position, [], 0, "None"]; - [_vehicle] call vehicleSetup; - - _vehicle setDir _direction; - _aiGroup addVehicle _vehicle; - - _soldier = [_aiGroup, _position] call createRandomSoldier; - _soldier moveInDriver _vehicle; - _soldier = [_aiGroup, _position] call createRandomSoldier; - _soldier moveInCommander _vehicle; - _soldier = [_aiGroup, _position] call createRandomSoldier; - _soldier moveInCargo [_vehicle, 0]; - _vehicle setVehicleLock "UNLOCKED"; // force vehicles to be unlocked - _vehicle setVariable ["R3F_LOG_disabled", false, true]; // force vehicles to be unlocked - _vehicle - }; - - _createVehicle2 = { + _createVehicle = { private ["_type","_position","_direction","_vehicle","_soldier"]; _type = _this select 0; @@ -82,38 +52,26 @@ _setupObjects = _vehicle }; - _createVehicle3 = { - private ["_type","_position","_direction","_vehicle","_soldier"]; - - _type = _this select 0; - _position = _this select 1; - _direction = _this select 2; - - _vehicle = createVehicle [_type, _position, [], 0, "None"]; - [_vehicle] call vehicleSetup; - - _vehicle setDir _direction; - _aiGroup addVehicle _vehicle; - - _soldier = [_aiGroup, _position] call createRandomSoldier; - _soldier moveInDriver _vehicle; - _soldier = [_aiGroup, _position] call createRandomSoldier; - _soldier moveInCargo [_vehicle, 0]; - _vehicle setVehicleLock "UNLOCKED"; // force vehicles to be unlocked - _vehicle setVariable ["R3F_LOG_disabled", false, true]; // force vehicles to be unlocked - _vehicle - }; - _aiGroup = createGroup CIVILIAN; + //_pos = getMarkerPos (_town select 0); + _rad = _town select 1; + _vehiclePosArray = [_missionPos,_rad,_rad + 50,5,0,0,0] call findSafePos; + /*_vPos1 = _vehiclePosArray select 0; + _vPos2 = _vehiclePosArray select 1; + _vPos3 = _vehiclePosArray select 2; + _vehiclePos1 = [_vPos1 + 5, _vPos2 + 5, _vPos3]; + _vehiclePos2 = [_vPos1 + 10, _vPos2 + 10, _vPos3]; + _vehiclePos3 = [_vPos1 + 15, _vPos2 + 15, _vPos3]; + _vehiclePos4 = [_vPos1 + 20, _vPos2 + 20, _vPos3];*/ + _vehicles = [ - [_veh1, _starts select 0, _startDirs select 0] call _createVehicle3, - [_veh2, _starts select 1, _startDirs select 1] call _createVehicle2, - [_veh3, _starts select 2, _startDirs select 2] call _createVehicle1, - [_veh4, _starts select 3, _startDirs select 3] call _createVehicle2, - [_veh5, _starts select 4, _startDirs select 4] call _createVehicle2, - [_veh6, _starts select 5, _startDirs select 5] call _createVehicle3 + [_veh1, _vehiclePosArray, 0] call _createVehicle, + [_veh2, _vehiclePosArray, 0] call _createVehicle, + [_veh3, _vehiclePosArray, 0] call _createVehicle, + [_veh4, _vehiclePosArray, 0] call _createVehicle, + [_veh5, _vehiclePosArray, 0] call _createVehicle ]; _leader = effectiveCommander (_vehicles select 0); @@ -122,29 +80,29 @@ _setupObjects = _aiGroup setCombatMode "GREEN"; // units will defend themselves _aiGroup setBehaviour "SAFE"; // units feel safe until they spot an enemy or get into contact - _aiGroup setFormation "STAG COLUMN"; + _aiGroup setFormation "FILE"; _speedMode = if (missionDifficultyHard) then { "NORMAL" } else { "LIMITED" }; _aiGroup setSpeedMode _speedMode; { - _waypoint = _aiGroup addWaypoint [_x, 0]; + _waypoint = _aiGroup addWaypoint [markerPos (_x select 0), 0]; _waypoint setWaypointType "MOVE"; _waypoint setWaypointCompletionRadius 50; _waypoint setWaypointCombatMode "GREEN"; _waypoint setWaypointBehaviour "SAFE"; // safe is the best behaviour to make AI follow roads, as soon as they spot an enemy or go into combat they WILL leave the road for cover though! _waypoint setWaypointFormation "FILE"; _waypoint setWaypointSpeed _speedMode; - } forEach _waypoints; + } forEach ((call cityList) call BIS_fnc_arrayShuffle); _missionPos = getPosATL leader _aiGroup; - _missionPicture = getText (configFile >> "CfgVehicles" >> _veh4 >> "picture"); + _missionPicture = getText (configFile >> "CfgVehicles" >> _veh2 >> "picture"); _vehicleName = getText (configFile >> "CfgVehicles" >> _veh2 >> "displayName"); - _vehicleName2 = getText (configFile >> "CfgVehicles" >> _veh4 >> "displayName"); - _vehicleName3 = getText (configFile >> "CfgVehicles" >> _veh5 >> "displayName"); + _vehicleName2 = getText (configFile >> "CfgVehicles" >> _veh3 >> "displayName"); + _vehicleName3 = getText (configFile >> "CfgVehicles" >> _veh4 >> "displayName"); - _missionHintText = format ["A convoy containing at least a %1, a %2 and a %3 is patrolling a high value location! Stop the patrol and capture the goods and money!", _vehicleName, _vehicleName2, _vehicleName3, moneyMissionColor]; + _missionHintText = format ["A convoy containing at least a %1, a %2 and a %3 is on patrol! Stop the patrol and capture the goods and money!", _vehicleName, _vehicleName2, _vehicleName3, moneyMissionColor]; _numWaypoints = count waypoints _aiGroup; }; @@ -156,17 +114,35 @@ _waitUntilCondition = {currentWaypoint _aiGroup >= _numWaypoints}; _failedExec = nil; // _vehicles are automatically deleted or unlocked in missionProcessor depending on the outcome +_drop_item = +{ + private["_item", "_pos"]; + _item = _this select 0; + _pos = _this select 1; + + if (isNil "_item" || {typeName _item != typeName [] || {count(_item) != 2}}) exitWith {}; + if (isNil "_pos" || {typeName _pos != typeName [] || {count(_pos) != 3}}) exitWith {}; + + private["_id", "_class"]; + _id = _item select 0; + _class = _item select 1; + + private["_obj"]; + _obj = createVehicle [_class, _pos, [], 5, "None"]; + _obj setPos ([_pos, [[2 + random 3,0,0], random 360] call BIS_fnc_rotateVector2D] call BIS_fnc_vectorAdd); + _obj setVariable ["mf_item_id", _id, true]; +}; _successExec = { // Mission completed - for "_x" from 1 to 10 do + for "_x" from 1 to 5 do { _cash = "Land_Money_F" createVehicle markerPos _marker; _cash setPos ((markerPos _marker) vectorAdd ([[2 + random 2,0,0], random 360] call BIS_fnc_rotateVector2D)); _cash setDir random 360; - _cash setVariable["cmoney",7500,true]; + _cash setVariable["cmoney",15000,true]; _cash setVariable["owner","world",true]; }; @@ -184,7 +160,7 @@ _successExec = { _x setVariable ["R3F_LOG_disabled", false, true] } forEach [_box1, _box2, _box3]; - _successHintMessage = "The patrol has been stopped, the money, crates and vehicles are yours to take."; + _successHintMessage = "The patrol has been stopped. The money, crates, and vehicles are yours to take."; }; _this call moneyMissionProcessor; \ No newline at end of file diff --git a/server/missions/sideMissions/mission_Smugglers.sqf b/server/missions/sideMissions/mission_Smugglers.sqf index 568847e22..ccc8b7d6e 100644 --- a/server/missions/sideMissions/mission_Smugglers.sqf +++ b/server/missions/sideMissions/mission_Smugglers.sqf @@ -137,11 +137,11 @@ _successExec = ["marijuana", "Land_VitaminBottle_F"], ["cocaine","Land_PowderedMilk_F"], ["heroin", "Land_PainKillers_F"] - ] call BIS_fnc_selectRandom; + ] call BIS_fnc_selectRandom; [_item, _lastPos] call _drop_item; }; - _successHintMessage = format ["The smugglers are dead, the weapons, drugs and money are yours!"]; + _successHintMessage = format ["The smugglers are dead. The weapons, drugs, and money are yours!"]; }; _this call sideMissionProcessor; From 3a0fe5808dc4bc7cab00dcdad77818db02d7e9f3 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 26 May 2015 15:29:59 -0700 Subject: [PATCH 461/544] Added remove money logging and tweaked missions. --- client/systems/adminPanel/playerSelect.sqf | 1 + mapConfig/convoys/PatrolConvoy_1.sqf | 74 --------------- mapConfig/convoys/PatrolConvoy_2.sqf | 92 ------------------- mapConfig/convoys/PatrolConvoy_3.sqf | 50 ---------- mapConfig/convoys/patrolConvoysList.sqf | 11 --- server/missions/setupMissionArrays.sqf | 5 - .../sideMissions/mission_Smugglers.sqf | 2 +- 7 files changed, 2 insertions(+), 233 deletions(-) delete mode 100644 mapConfig/convoys/PatrolConvoy_1.sqf delete mode 100644 mapConfig/convoys/PatrolConvoy_2.sqf delete mode 100644 mapConfig/convoys/PatrolConvoy_3.sqf delete mode 100644 mapConfig/convoys/patrolConvoysList.sqf diff --git a/client/systems/adminPanel/playerSelect.sqf b/client/systems/adminPanel/playerSelect.sqf index ce304b464..dd7115faf 100644 --- a/client/systems/adminPanel/playerSelect.sqf +++ b/client/systems/adminPanel/playerSelect.sqf @@ -92,6 +92,7 @@ if (_uid call isAdmin) then if(getPlayerUID _x == _targetUID) exitWith { _x setVariable["cmoney",0,true]; + if (!isNil "notifyAdminMenu") then { ["removemoney", (name _target) + (getPlayerUID _target)] spawn notifyAdminMenu }; }; }forEach playableUnits; }; diff --git a/mapConfig/convoys/PatrolConvoy_1.sqf b/mapConfig/convoys/PatrolConvoy_1.sqf deleted file mode 100644 index 767c2863d..000000000 --- a/mapConfig/convoys/PatrolConvoy_1.sqf +++ /dev/null @@ -1,74 +0,0 @@ -// ****************************************************************************************** -// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * -// ****************************************************************************************** -// @file Version: 1.0 -// @file Name: PatrolConvoy_1.sqf -// @file Author: [GoT] JoSchaap, [404] Del1te, AgentRev, LouD -// @file Created: 13/02/2014 22:52 - -// starting positions for this route -_starts = -[ - [14877.2, 16706.5], - [14882.9, 16712.7], - [14896.1, 16713.4], - [14889.5, 16718.3], - [14883.1, 16701.4], - [14890, 16707] -]; - -// starting directions in which the vehicles are spawned on this route -_startDirs = -[ - -133, - -133, - -133, - -133, - -133, - -133 -]; - -// the route -_waypoints = -[ - [14574.4, 16388.7], - [14233.3, 16407.1], - [14108.7, 16246.8], - [14037.4, 15784.8], - [14271.9, 15620.1], - [14939.5, 16285.5], - [15671.1, 17047.1], - [15260.5, 17465.7], - [14919.1, 17124.3], - [14981.6, 16809], - [14877.2, 16706.5], - [14574.4, 16388.7], - [14233.3, 16407.1], - [14108.7, 16246.8], - [14037.4, 15784.8], - [14271.9, 15620.1], - [14939.5, 16285.5], - [15671.1, 17047.1], - [15260.5, 17465.7], - [14919.1, 17124.3], - [14877.2, 16706.5], - [14574.4, 16388.7], - [14233.3, 16407.1], - [14108.7, 16246.8], - [14037.4, 15784.8], - [14271.9, 15620.1], - [14939.5, 16285.5], - [15671.1, 17047.1], - [15260.5, 17465.7], - [14919.1, 17124.3], - [14877.2, 16706.5], - [14574.4, 16388.7], - [14233.3, 16407.1], - [14108.7, 16246.8], - [14037.4, 15784.8], - [14271.9, 15620.1], - [14939.5, 16285.5], - [15671.1, 17047.1], - [15260.5, 17465.7], - [14919.1, 17124.3] -]; diff --git a/mapConfig/convoys/PatrolConvoy_2.sqf b/mapConfig/convoys/PatrolConvoy_2.sqf deleted file mode 100644 index 66d126319..000000000 --- a/mapConfig/convoys/PatrolConvoy_2.sqf +++ /dev/null @@ -1,92 +0,0 @@ -// ****************************************************************************************** -// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * -// ****************************************************************************************** -// @file Version: 1.0 -// @file Name: PatrolConvoy_2.sqf -// @file Author: [GoT] JoSchaap, [404] Del1te, AgentRev, LouD -// @file Created: 13/02/2014 22:52 - -// starting positions for this route -_starts = -[ - [23053.191, 18927.045], - [23053.338, 18960.719], - [23053.492, 18995.898], - [23053.729, 19023.67], - [23053.99, 19055.588], - [23054.023, 19086.568] -]; - -// starting directions in which the vehicles are spawned on this route -_startDirs = -[ - 180, - 180, - 180, - 180, - 180, - 180 -]; - -// the route -_waypoints = -[ - [23052.715, 18896.807], // Start - [22980.904, 18788.453], - [22844.98, 18673.688], - [22642.373, 18566.609], - [22645.943, 18267.176], - [22819.709, 18025.094], - [22940.01, 17760.738], - [23021.699, 17423.609], - [23060.313, 17242.42], - [23256.354, 17267.666], - [23459.822, 17245.389], - [23719.725, 17188.953], - [23926.002, 17141.758], - [24058.502, 17117.305], - [24092.619, 17387.422], - [24146.076, 17593.846], - [24187.984, 17754.559], - [24194.572, 17932.385], - [24201.158, 18129.969], - [24311.807, 18359.166], - [24471.191, 18621.291], - [24613.455, 18830.732], - [24521.252, 19008.557], - [24247.268, 19050.705], - [24014.119, 19202.189], - [23825.76, 19291.76], - [23584.709, 19312.836], - [23339.707, 19240.391], - [23092.068, 19078.375], // End - [23052.715, 18896.807], // Start - [22980.904, 18788.453], - [22844.98, 18673.688], - [22642.373, 18566.609], - [22645.943, 18267.176], - [22819.709, 18025.094], - [22940.01, 17760.738], - [23021.699, 17423.609], - [23060.313, 17242.42], - [23256.354, 17267.666], - [23459.822, 17245.389], - [23719.725, 17188.953], - [23926.002, 17141.758], - [24058.502, 17117.305], - [24092.619, 17387.422], - [24146.076, 17593.846], - [24187.984, 17754.559], - [24194.572, 17932.385], - [24201.158, 18129.969], - [24311.807, 18359.166], - [24471.191, 18621.291], - [24613.455, 18830.732], - [24521.252, 19008.557], - [24247.268, 19050.705], - [24014.119, 19202.189], - [23825.76, 19291.76], - [23584.709, 19312.836], - [23339.707, 19240.391], - [23092.068, 19078.375] // End -]; diff --git a/mapConfig/convoys/PatrolConvoy_3.sqf b/mapConfig/convoys/PatrolConvoy_3.sqf deleted file mode 100644 index d03443f68..000000000 --- a/mapConfig/convoys/PatrolConvoy_3.sqf +++ /dev/null @@ -1,50 +0,0 @@ -// ****************************************************************************************** -// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * -// ****************************************************************************************** -// @file Version: 1.0 -// @file Name: PatrolConvoy_3.sqf -// @file Author: [GoT] JoSchaap, [404] Del1te, AgentRev, LouD -// @file Created: 13/02/2014 22:52 - -// starting positions for this route -_starts = -[ - [20652.281, 7428.186], - [20668.684, 7427.2319], - [20653.197, 7440.0566], - [20654.041, 7451.8452], - [20654.156, 7454.0552], - [20668.67, 7455.4678] -]; - -// starting directions in which the vehicles are spawned on this route -_startDirs = -[ - -177.79, - -177.79, - -177.79, - -177.79, - -177.79, - -177.79 -]; - -// the route -_waypoints = -[ - [20699.121, 7210.6572], // Start - [21162.006, 7549.5776], - [21076.135, 7150.3789], - [20850.945, 7290.8384], - [20707.076, 7198.145], - [20804.32, 6798.9497], - [21528.789, 7584.2671], - [20561.502, 7927.7402], // End - [20699.121, 7210.6572], // Start - [21162.006, 7549.5776], - [21076.135, 7150.3789], - [20850.945, 7290.8384], - [20707.076, 7198.145], - [20804.32, 6798.9497], - [21528.789, 7584.2671], - [20561.502, 7927.7402] // End -]; diff --git a/mapConfig/convoys/patrolConvoysList.sqf b/mapConfig/convoys/patrolConvoysList.sqf deleted file mode 100644 index fcc2d46ae..000000000 --- a/mapConfig/convoys/patrolConvoysList.sqf +++ /dev/null @@ -1,11 +0,0 @@ -// ****************************************************************************************** -// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * -// ****************************************************************************************** -// @file Name: patrolConvoysList.sqf -// @file Author: AgentRev, LouD - -[ - "PatrolConvoy_1", - "PatrolConvoy_2", - "PatrolConvoy_3" -] diff --git a/server/missions/setupMissionArrays.sqf b/server/missions/setupMissionArrays.sqf index cea1ae380..2e8baae6c 100644 --- a/server/missions/setupMissionArrays.sqf +++ b/server/missions/setupMissionArrays.sqf @@ -74,8 +74,3 @@ CoastalConvoyPaths = []; { CoastalConvoyPaths pushBack [_x, false]; } forEach (call compile preprocessFileLineNumbers "mapConfig\convoys\coastalConvoysList.sqf"); - -PatrolConvoyPaths = []; -{ - PatrolConvoyPaths pushBack [_x, false]; -} forEach (call compile preprocessFileLineNumbers "mapConfig\convoys\patrolConvoysList.sqf"); diff --git a/server/missions/sideMissions/mission_Smugglers.sqf b/server/missions/sideMissions/mission_Smugglers.sqf index ccc8b7d6e..fb85d4be7 100644 --- a/server/missions/sideMissions/mission_Smugglers.sqf +++ b/server/missions/sideMissions/mission_Smugglers.sqf @@ -137,7 +137,7 @@ _successExec = ["marijuana", "Land_VitaminBottle_F"], ["cocaine","Land_PowderedMilk_F"], ["heroin", "Land_PainKillers_F"] - ] call BIS_fnc_selectRandom; + ] call BIS_fnc_selectRandom; [_item, _lastPos] call _drop_item; }; From e487fb2665d6fe54dbef039f47ac0211b2553a98 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 27 May 2015 04:23:48 -0700 Subject: [PATCH 462/544] Update for FAR_Kill. --- addons/far_revive/FAR_revive_funcs.sqf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/addons/far_revive/FAR_revive_funcs.sqf b/addons/far_revive/FAR_revive_funcs.sqf index 3e91a7524..46a68ff9b 100644 --- a/addons/far_revive/FAR_revive_funcs.sqf +++ b/addons/far_revive/FAR_revive_funcs.sqf @@ -289,11 +289,12 @@ call mf_compile; //////////////////////////////////////////////// FAR_Kill = { - _target = _this select 0; - call FAR_Check_Dragging; - _target allowDamage true; - _target setDamage 1; + _target = cursorTarget; + if ((_target isKindOf "Man") && { _target getVariable ["FAR_isUnconscious", 0] == 1}) then { + _target allowDamage true; + _target setDamage 1; + }; } call mf_compile; From e2cc3d35179fd07f9af80874f343aaf7e3b1ab57 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 31 May 2015 13:31:22 -0700 Subject: [PATCH 463/544] Update for admin panel. --- client/systems/adminPanel/toggleGodMode2.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/systems/adminPanel/toggleGodMode2.sqf b/client/systems/adminPanel/toggleGodMode2.sqf index 1442be8f7..e88aba727 100644 --- a/client/systems/adminPanel/toggleGodMode2.sqf +++ b/client/systems/adminPanel/toggleGodMode2.sqf @@ -27,13 +27,13 @@ if ((getPlayerUID player) call isAdmin) then (findDisplay 27911) closeDisplay 0; // ReviveGUI_IDD hint "You are now invulnerable"; - if (!isNil "notifyAdminMenu") then { ["godmode",true] spawn notifyAdminMenu }; + if (!isNil "notifyAdminMenu") then { ["godmode2",true] spawn notifyAdminMenu }; } else { player allowDamage true; player setVariable ["isAdminInvulnerable", false, true]; hint "You are no longer invulnerable"; - if (!isNil "notifyAdminMenu") then { ["godmode",false] spawn notifyAdminMenu }; + if (!isNil "notifyAdminMenu") then { ["godmode2",false] spawn notifyAdminMenu }; }; }; From 7ca7db1ff65682024a9319da18b2165ad9ce7337 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 1 Jun 2015 15:04:26 -0700 Subject: [PATCH 464/544] AI and mission tweaks. --- server/functions/setMissionSkill.sqf | 6 +++--- server/missions/moneyMissions/mission_militaryPatrol.sqf | 2 +- server/missions/sideMissions/mission_drugsRunners.sqf | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/server/functions/setMissionSkill.sqf b/server/functions/setMissionSkill.sqf index 4b1c275ec..c0489d477 100644 --- a/server/functions/setMissionSkill.sqf +++ b/server/functions/setMissionSkill.sqf @@ -14,13 +14,13 @@ _unit = _this; if (["A3W_missionsDifficulty"] call isConfigOn) then { - _skill = 1; // Default skill for ARMA3 is 0.5 + _skill = 0.75; // Default skill for ARMA3 is 0.5 _accuracy = 0.5; // Relative multiplier; absolute default accuracy for ARMA3 is 0.25 } else { - _skill = 0.75; - _accuracy = 0.5; + _skill = 0.65; + _accuracy = 0.4; }; _unit allowFleeing 0; diff --git a/server/missions/moneyMissions/mission_militaryPatrol.sqf b/server/missions/moneyMissions/mission_militaryPatrol.sqf index e38ce853f..88e8bc808 100644 --- a/server/missions/moneyMissions/mission_militaryPatrol.sqf +++ b/server/missions/moneyMissions/mission_militaryPatrol.sqf @@ -20,7 +20,7 @@ _setupObjects = _town = (call cityList) call BIS_fnc_selectRandom; _missionPos = markerPos (_town select 0); - _convoyVeh = ["I_MRAP_03_hmg_F","I_MBT_03_cannon_F","O_APC_Tracked_02_AA_F","I_MBT_03_cannon_F","I_MRAP_03_gmg_F"]; + _convoyVeh = ["I_MRAP_03_hmg_F","O_MBT_02_cannon_F","O_APC_Tracked_02_cannon_F","I_MBT_03_cannon_F","I_MRAP_03_gmg_F"]; _veh1 = _convoyVeh select 0; _veh2 = _convoyVeh select 1; diff --git a/server/missions/sideMissions/mission_drugsRunners.sqf b/server/missions/sideMissions/mission_drugsRunners.sqf index 08c243886..3e3570a3f 100644 --- a/server/missions/sideMissions/mission_drugsRunners.sqf +++ b/server/missions/sideMissions/mission_drugsRunners.sqf @@ -141,7 +141,7 @@ _drop_item = _successExec = { // Mission completed - _drugpilerandomizer = [4,8,12]; + _drugpilerandomizer = [2,4,8]; _drugpile = _drugpilerandomizer call BIS_fnc_SelectRandom; for "_i" from 1 to _drugpile do From 98c50cd766bec73066c78ffed2c57cf3b6cde675 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 1 Jun 2015 15:10:55 -0700 Subject: [PATCH 465/544] Performance testing. --- server/antihack/compileFuncs.sqf | 10 +++++----- territory/server/monitorTerritories.sqf | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/server/antihack/compileFuncs.sqf b/server/antihack/compileFuncs.sqf index c47921d11..ecfade01f 100644 --- a/server/antihack/compileFuncs.sqf +++ b/server/antihack/compileFuncs.sqf @@ -52,15 +52,15 @@ _packetKey = call compile (_assignPacketKey + "_mpPacketKey"); ["notifyAdminMenu", _assignChecksum, "server\antihack\notifyAdminMenu.sqf"] ]; - if (isServer) then + /*if (isServer) then { [_checksum] execVM "server\antihack\serverSide.sqf"; // COMMENT THIS LINE IF YOU HAVE ISSUES WITH CUSTOM UNIT SCRIPTS, LIKE AI RECRUITMENT - }; + };*/ - if (!isDedicated) then + /*if (!isDedicated) then { - //[_checksum, _rscParams] execVM "server\antihack\payload.sqf"; - }; + [_checksum, _rscParams] execVM "server\antihack\payload.sqf"; + };*/ missionNamespace setVariable [_compileKey, compileFinal "true"]; //}; diff --git a/territory/server/monitorTerritories.sqf b/territory/server/monitorTerritories.sqf index 5a4a3d51c..7ec3b2902 100644 --- a/territory/server/monitorTerritories.sqf +++ b/territory/server/monitorTerritories.sqf @@ -624,5 +624,5 @@ while {true} do sleep BASE_SLEEP_INTERVAL; _realLoopTime = diag_tickTime - _initTime; - diag_log format["TERRITORY SYSTEM: _realLoopTime was %1", _realLoopTime]; + //diag_log format["TERRITORY SYSTEM: _realLoopTime was %1", _realLoopTime]; }; From ffa09e7b2d7454d7d989ebc92380b1af17c5a405 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 2 Jun 2015 14:16:40 -0700 Subject: [PATCH 466/544] Added R3F block to save actions. --- client/functions/playerActions.sqf | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 69829b667..4f3fe5c95 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -26,11 +26,10 @@ [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && ('ToolKit' in (items player)) && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], - [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_unarmed_F', 'B_Heli_Transport_03_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], + [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_unarmed_F', 'B_Heli_Transport_03_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && !(cursorTarget getVariable ['R3F_LOG_disabled', true]) && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_unarmed_F', 'B_Heli_Transport_03_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], - [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['B_static_AT_F', 'O_static_AT_F', 'I_static_AT_F', 'B_static_AA_F', 'O_static_AA_F', 'I_static_AA_F', 'B_HMG_01_F', 'O_HMG_01_F', 'I_HMG_01_F', 'B_HMG_01_high_F', 'O_HMG_01_high_F', 'I_HMG_01_high_F', 'B_GMG_01_F', 'O_GMG_01_F', 'I_GMG_01_F', 'B_GMG_01_high_F', 'O_GMG_01_high_F', 'I_GMG_01_high_F', 'B_Mortar_01_F', 'O_Mortar_01_F', 'I_Mortar_01_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], + [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['B_static_AT_F', 'O_static_AT_F', 'I_static_AT_F', 'B_static_AA_F', 'O_static_AA_F', 'I_static_AA_F', 'B_HMG_01_F', 'O_HMG_01_F', 'I_HMG_01_F', 'B_HMG_01_high_F', 'O_HMG_01_high_F', 'I_HMG_01_high_F', 'B_GMG_01_F', 'O_GMG_01_F', 'I_GMG_01_F', 'B_GMG_01_high_F', 'O_GMG_01_high_F', 'I_GMG_01_high_F', 'B_Mortar_01_F', 'O_Mortar_01_F', 'I_Mortar_01_F'] > 0 ;} && !(cursorTarget getVariable ['R3F_LOG_disabled', true]) && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], [" Re\Save Weapon", "addons\scripts\weaponResave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['B_static_AT_F', 'O_static_AT_F', 'I_static_AT_F', 'B_static_AA_F', 'O_static_AA_F', 'I_static_AA_F', 'B_HMG_01_F', 'O_HMG_01_F', 'I_HMG_01_F', 'B_HMG_01_high_F', 'O_HMG_01_high_F', 'I_HMG_01_high_F', 'B_GMG_01_F', 'O_GMG_01_F', 'I_GMG_01_F', 'B_GMG_01_high_F', 'O_GMG_01_high_F', 'I_GMG_01_high_F', 'B_Mortar_01_F', 'O_Mortar_01_F', 'I_Mortar_01_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && (player distance cursortarget) < 5"], - [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'Helicopter', 'Plane', 'UGV_01_base_F'] > 0 ;} && (player distance cursortarget) < 5"], ["[0]"] call getPushPlaneAction, ["Push vehicle", "server\functions\pushVehicle.sqf", [2.5, true], 1, false, false, "", "[2.5] call canPushVehicleOnFoot"], From d2ca2423c85550be21aa8577b962d7409f339384 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 2 Jun 2015 14:22:23 -0700 Subject: [PATCH 467/544] Removed military patrol. --- .../moneyMissions/mission_militaryPatrol.sqf | 166 ------------------ 1 file changed, 166 deletions(-) delete mode 100644 server/missions/moneyMissions/mission_militaryPatrol.sqf diff --git a/server/missions/moneyMissions/mission_militaryPatrol.sqf b/server/missions/moneyMissions/mission_militaryPatrol.sqf deleted file mode 100644 index 88e8bc808..000000000 --- a/server/missions/moneyMissions/mission_militaryPatrol.sqf +++ /dev/null @@ -1,166 +0,0 @@ -// ****************************************************************************************** -// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * -// ****************************************************************************************** -// @file Name: mission_altisPatrol.sqf -// @file Author: JoSchaap, AgentRev, LouD - -if (!isServer) exitwith {}; -#include "moneyMissionDefines.sqf"; - -private ["_convoyVeh","_veh1","_veh2","_veh3","_veh4","_veh5","_createVehicle","_pos","_rad","_vehiclePosArray","_vPos1","_vPos2","_vPos3","_vehiclePos1","_vehiclePos2","_vehiclePos3","_vehiclePos4","_vehicles","_leader","_speedMode","_waypoint","_vehicleName","_numWaypoints","_cash","_box1","_box2","_box3"]; - -_setupVars = -{ - _missionType = "Military Patrol"; - _locationsArray = nil; -}; - -_setupObjects = -{ - _town = (call cityList) call BIS_fnc_selectRandom; - _missionPos = markerPos (_town select 0); - - _convoyVeh = ["I_MRAP_03_hmg_F","O_MBT_02_cannon_F","O_APC_Tracked_02_cannon_F","I_MBT_03_cannon_F","I_MRAP_03_gmg_F"]; - - _veh1 = _convoyVeh select 0; - _veh2 = _convoyVeh select 1; - _veh3 = _convoyVeh select 2; - _veh4 = _convoyVeh select 3; - _veh5 = _convoyVeh select 4; - - _createVehicle = { - private ["_type","_position","_direction","_vehicle","_soldier"]; - - _type = _this select 0; - _position = _this select 1; - _direction = _this select 2; - - _vehicle = createVehicle [_type, _position, [], 0, "None"]; - [_vehicle] call vehicleSetup; - - _vehicle setDir _direction; - _aiGroup addVehicle _vehicle; - - _soldier = [_aiGroup, _position] call createRandomSoldier; - _soldier moveInDriver _vehicle; - _soldier = [_aiGroup, _position] call createRandomSoldier; - _soldier moveInCommander _vehicle; - _soldier = [_aiGroup, _position] call createRandomSoldier; - _soldier moveInGunner _vehicle; - _vehicle setVehicleLock "UNLOCKED"; // force vehicles to be unlocked - _vehicle setVariable ["R3F_LOG_disabled", false, true]; // force vehicles to be unlocked - _vehicle - }; - - _aiGroup = createGroup CIVILIAN; - - //_pos = getMarkerPos (_town select 0); - _rad = _town select 1; - _vehiclePosArray = [_missionPos,_rad,_rad + 50,5,0,0,0] call findSafePos; - /*_vPos1 = _vehiclePosArray select 0; - _vPos2 = _vehiclePosArray select 1; - _vPos3 = _vehiclePosArray select 2; - _vehiclePos1 = [_vPos1 + 5, _vPos2 + 5, _vPos3]; - _vehiclePos2 = [_vPos1 + 10, _vPos2 + 10, _vPos3]; - _vehiclePos3 = [_vPos1 + 15, _vPos2 + 15, _vPos3]; - _vehiclePos4 = [_vPos1 + 20, _vPos2 + 20, _vPos3];*/ - - _vehicles = - [ - [_veh1, _vehiclePosArray, 0] call _createVehicle, - [_veh2, _vehiclePosArray, 0] call _createVehicle, - [_veh3, _vehiclePosArray, 0] call _createVehicle, - [_veh4, _vehiclePosArray, 0] call _createVehicle, - [_veh5, _vehiclePosArray, 0] call _createVehicle - ]; - - _leader = effectiveCommander (_vehicles select 0); - _aiGroup selectLeader _leader; - _leader setRank "LIEUTENANT"; - - _aiGroup setCombatMode "GREEN"; // units will defend themselves - _aiGroup setBehaviour "SAFE"; // units feel safe until they spot an enemy or get into contact - _aiGroup setFormation "FILE"; - - _speedMode = if (missionDifficultyHard) then { "NORMAL" } else { "LIMITED" }; - _aiGroup setSpeedMode _speedMode; - - { - _waypoint = _aiGroup addWaypoint [markerPos (_x select 0), 0]; - _waypoint setWaypointType "MOVE"; - _waypoint setWaypointCompletionRadius 50; - _waypoint setWaypointCombatMode "GREEN"; - _waypoint setWaypointBehaviour "SAFE"; // safe is the best behaviour to make AI follow roads, as soon as they spot an enemy or go into combat they WILL leave the road for cover though! - _waypoint setWaypointFormation "FILE"; - _waypoint setWaypointSpeed _speedMode; - } forEach ((call cityList) call BIS_fnc_arrayShuffle); - - _missionPos = getPosATL leader _aiGroup; - - _missionPicture = getText (configFile >> "CfgVehicles" >> _veh2 >> "picture"); - _vehicleName = getText (configFile >> "CfgVehicles" >> _veh2 >> "displayName"); - _vehicleName2 = getText (configFile >> "CfgVehicles" >> _veh3 >> "displayName"); - _vehicleName3 = getText (configFile >> "CfgVehicles" >> _veh4 >> "displayName"); - - _missionHintText = format ["A convoy containing at least a %1, a %2 and a %3 is on patrol! Stop the patrol and capture the goods and money!", _vehicleName, _vehicleName2, _vehicleName3, moneyMissionColor]; - - _numWaypoints = count waypoints _aiGroup; -}; - -_waitUntilMarkerPos = {getPosATL _leader}; -_waitUntilExec = nil; -_waitUntilCondition = {currentWaypoint _aiGroup >= _numWaypoints}; - -_failedExec = nil; - -// _vehicles are automatically deleted or unlocked in missionProcessor depending on the outcome -_drop_item = -{ - private["_item", "_pos"]; - _item = _this select 0; - _pos = _this select 1; - - if (isNil "_item" || {typeName _item != typeName [] || {count(_item) != 2}}) exitWith {}; - if (isNil "_pos" || {typeName _pos != typeName [] || {count(_pos) != 3}}) exitWith {}; - - private["_id", "_class"]; - _id = _item select 0; - _class = _item select 1; - - private["_obj"]; - _obj = createVehicle [_class, _pos, [], 5, "None"]; - _obj setPos ([_pos, [[2 + random 3,0,0], random 360] call BIS_fnc_rotateVector2D] call BIS_fnc_vectorAdd); - _obj setVariable ["mf_item_id", _id, true]; -}; - -_successExec = -{ - // Mission completed - - for "_x" from 1 to 5 do - { - _cash = "Land_Money_F" createVehicle markerPos _marker; - _cash setPos ((markerPos _marker) vectorAdd ([[2 + random 2,0,0], random 360] call BIS_fnc_rotateVector2D)); - _cash setDir random 360; - _cash setVariable["cmoney",15000,true]; - _cash setVariable["owner","world",true]; - }; - - _box1 = "Box_East_Wps_F" createVehicle getMarkerPos _marker; - [_box1,"mission_USLaunchers"] call fn_refillbox; - _box1 allowDamage false; - - _box2 = "Box_NATO_Wps_F" createVehicle getMarkerPos _marker; - [_box2,"mission_USSpecial2"] call fn_refillbox; - _box2 allowDamage false; - - _box3 = "Box_NATO_Support_F" createVehicle getMarkerPos _marker; - [_box3,"mission_Main_A3snipers"] call fn_refillbox; - _box3 allowDamage false; - - { _x setVariable ["R3F_LOG_disabled", false, true] } forEach [_box1, _box2, _box3]; - - _successHintMessage = "The patrol has been stopped. The money, crates, and vehicles are yours to take."; -}; - -_this call moneyMissionProcessor; \ No newline at end of file From 4409c9adf7136c4bfaffc8ccb487bcc6d6653e4d Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 2 Jun 2015 23:52:49 -0700 Subject: [PATCH 468/544] Removed military patrol. *Fix --- server/missions/setupMissionArrays.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/missions/setupMissionArrays.sqf b/server/missions/setupMissionArrays.sqf index 2e8baae6c..8418303c5 100644 --- a/server/missions/setupMissionArrays.sqf +++ b/server/missions/setupMissionArrays.sqf @@ -37,8 +37,7 @@ SideMissions = MoneyMissions = [ ["mission_MoneyShipment", 1], - ["mission_SunkenTreasure", 0.5], - ["mission_militaryPatrol", 1] + ["mission_SunkenTreasure", 0.5] ]; MainMissions = [MainMissions, [["A3W_heliPatrolMissions", ["mission_Coastal_Convoy", "mission_HostileHeliFormation"]], ["A3W_underWaterMissions", ["mission_ArmedDiversquad"]]]] call removeDisabledMissions; From eb9d2f50ba5db299fe5e607349eb6af7ae68943f Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 8 Jun 2015 02:27:46 -0700 Subject: [PATCH 469/544] Mission description change. --- server/missions/sideMissions/mission_drugsRunners.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/missions/sideMissions/mission_drugsRunners.sqf b/server/missions/sideMissions/mission_drugsRunners.sqf index 3e3570a3f..8b4553892 100644 --- a/server/missions/sideMissions/mission_drugsRunners.sqf +++ b/server/missions/sideMissions/mission_drugsRunners.sqf @@ -106,7 +106,7 @@ _setupObjects = _missionPicture = getText (configFile >> "CfgVehicles" >> _veh1 >> "picture"); _vehicleName = getText (configFile >> "CfgVehicles" >> _veh1 >> "displayName"); - _missionHintText = format ["Drugrunners driving a %1 are moving drugs around Altis. Stop them quickly!", _vehicleName, sideMissionColor]; + _missionHintText = format ["Drugrunners have been spotted driving a %1. Stop them quickly and retrieve their drugs!", _vehicleName, sideMissionColor]; _numWaypoints = count waypoints _aiGroup; }; From 7b029722c2743a35fb0152feafc3a379239469e3 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 10 Jun 2015 04:24:16 -0700 Subject: [PATCH 470/544] Merge fixes. --- addons/far_revive/FAR_revive_funcs.sqf | 2 +- client/functions/drawPlayerMarkers.sqf | 363 ++++++++++++------------- persistence/world/vFunctions.sqf | 2 +- 3 files changed, 183 insertions(+), 184 deletions(-) diff --git a/addons/far_revive/FAR_revive_funcs.sqf b/addons/far_revive/FAR_revive_funcs.sqf index 46a68ff9b..5c709d4e3 100644 --- a/addons/far_revive/FAR_revive_funcs.sqf +++ b/addons/far_revive/FAR_revive_funcs.sqf @@ -291,7 +291,7 @@ FAR_Kill = { call FAR_Check_Dragging; _target = cursorTarget; - if ((_target isKindOf "Man") && { _target getVariable ["FAR_isUnconscious", 0] == 1}) then { + if ((_target isKindOf "Man") && { _target call A3W_fnc_isUnconscious}) then { _target allowDamage true; _target setDamage 1; }; diff --git a/client/functions/drawPlayerMarkers.sqf b/client/functions/drawPlayerMarkers.sqf index d530b7d56..2ec307350 100644 --- a/client/functions/drawPlayerMarkers.sqf +++ b/client/functions/drawPlayerMarkers.sqf @@ -1,218 +1,217 @@ // ****************************************************************************************** // * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * // ****************************************************************************************** -// @file Name: drawPlayerMarkers.sqf -// @file Author: AgentRev -// Now only players in group should display on the map - +// @file Name: drawPlayerMarkers.sqf +// @file Author: AgentRev + if (!hasInterface) exitWith {}; - + #define IS_FRIENDLY_PLAYER(UNIT) (isPlayer UNIT && {(group UNIT == group player || (!_isIndie && side group UNIT == playerSide))}) #define DEFAULT_ICON_POS(UNIT) (UNIT modelToWorld (UNIT selectionPosition "spine3")) #define MISSION_AI_FAR_DISTANCE 75 #define IS_IN_GROUP(UNIT) (isPlayer UNIT && {(group UNIT == group player)}) disableSerialization; - + if (isNil "showPlayerNames") then { showPlayerNames = false }; - + A3W_mapDraw_arrIcons = []; A3W_mapDraw_arrLines = []; A3W_mapDraw_eventCode = { - _mapCtrl = _this select 0; - - { - _item = _x; - - // Dynamic size - { - if (count _item > _x) then - { - _val = _item select _x; - if (typeName _val == "CODE") then { _item set [_x, _this call _val] }; - }; - } forEach [3,4,8]; - - _mapCtrl drawIcon _item; - } forEach A3W_mapDraw_arrIcons; - - { _mapCtrl drawLine _x } forEach A3W_mapDraw_arrLines; + _mapCtrl = _this select 0; + + { + _item = _x; + + // Dynamic size + { + if (count _item > _x) then + { + _val = _item select _x; + if (typeName _val == "CODE") then { _item set [_x, _this call _val] }; + }; + } forEach [3,4,8]; + + _mapCtrl drawIcon _item; + } forEach A3W_mapDraw_arrIcons; + + { _mapCtrl drawLine _x } forEach A3W_mapDraw_arrLines; } call mf_compile; - + if (!isNil "A3W_mapDraw_thread") then { terminate A3W_mapDraw_thread }; A3W_mapDraw_thread = [] spawn { - scriptName "drawPlayerMarkers"; - - _showPlayers = ["A3W_teamPlayersMap"] call isConfigOn; - _missionAiDrawLines = ["A3W_missionFarAiDrawLines"] call isConfigOn; - _drawAtmIcons = ["A3W_atmMapIcons"] call isConfigOn; - _atmIcon = (call currMissionDir) + "client\icons\suatmm_icon.paa"; - _atmIconSize = {(0.4 / ctrlMapScale (_this select 0)) max 8 min 25}; - - waitUntil - { - _newArrayIcons = []; - - if (!isNil "A3W_atmArray" && _drawAtmIcons) then - { - _deadATMs = []; - - { - if (alive _x) then - { - _newArrayIcons pushBack [_atmIcon, [1,1,1,1], getPosATL _x, _atmIconSize, _atmIconSize, 0]; - } - else - { - _deadATMs pushback _x; - }; - } forEach A3W_atmArray; - - if (count _deadATMs > 0) then - { - _deadATMs spawn { A3W_atmArray = A3W_atmArray - _this }; - }; - }; - - if (_showPlayers) then - { - _isIndie = !(playerSide in [BLUFOR,OPFOR]); - _mapIconsEnabled = difficultyEnabled "map"; - - _allUAVs = allUnitsUAV; - _allDeadMen = allDeadMen; - _playableUnits = playableUnits; - - reverse _allUAVs; - reverse _allDeadMen; - reverse _playableUnits; - - { - _uav = _x; - _uavOwner = (uavControl _uav) select 0; - - if (IS_IN_GROUP(_uavOwner)) then - { - _icon = getText (configFile >> "CfgVehicles" >> typeOf _uav >> "icon"); - if (_icon == "") then { _icon = "iconMan" }; - - _color = if (group _uavOwner == group player) then { [0,1,0,1] } else { [1,1,1,1] }; - _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_uav) } else { getPosASLVisual _uav }; - - _newArrayIcons pushBack [_icon, _color, _pos, 24, 24, getDir _uav, "", 1]; // draw icon - - if (showPlayerNames) then - { - _newArrayIcons pushBack ["#(argb,1,1,1)color(0,0,0,0)", _color, _pos, 25, 25, 0, "[AI]", 2, 0.05, "PuristaMedium"]; // draw text - }; - }; - } forEach _allUAVs; - - { - _newUnit = _x getVariable ["newRespawnedUnit", objNull]; - - if (IS_IN_GROUP(_x) || (_newUnit getVariable ["playerSpawning", false] && IS_IN_GROUP(_newUnit))) then - { - _veh = vehicle _x; - _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_veh) } else { getPosASLVisual _x }; - - _newArrayIcons pushBack ["\A3\ui_f_curator\Data\CfgMarkers\kia_ca.paa", [0,0,0,0.6], _pos, 22, 22, 0]; // draw skull - }; - } forEach _allDeadMen; - - { - if (IS_IN_GROUP(_x) && !(_x getVariable ["playerSpawning", false])) then - { - _veh = vehicle _x; - - if ((crew _veh) select 0 == _x) then - { - _icon = getText (configFile >> "CfgVehicles" >> typeOf _veh >> "icon"); - if (_icon == "") then { _icon = "iconMan" }; - - _color = if (group _x == group player) then { [0,1,0,1] } else { [1,1,1,1] }; - _vehColor = if ({group _x == group player} count crew _veh > 0) then { [0,1,0,1] } else { _color }; // make vehicle green if group player in it - _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_veh) } else { getPosASLVisual _veh }; - _dir = if (_icon == "iconParachute") then { 0 } else { getDir _veh }; - - if (_veh == _x && _x getVariable ["FAR_isUnconscious", 0] == 1) then { _vehColor = [1,0.25,0,1] }; // make icon orange if awaiting revive - - _newArrayIcons pushBack [_icon, _vehColor, _pos, 24, 24, _dir, "", 1]; // draw icon - - if (_x != player && showPlayerNames) then - { - _newArrayIcons pushBack ["#(argb,1,1,1)color(0,0,0,0)", _color, _pos, 25, 25, 0, name _x, 2, 0.05, "PuristaMedium"]; // draw text - }; - }; - }; - } forEach _playableUnits; - - if (!_mapIconsEnabled) then - { - _veh = vehicle player; - _newArrayIcons pushBack ["\A3\ui_f\Data\IGUI\Cfg\IslandMap\iconplayer_ca.paa", [1,0,0,1], getPosASLVisual _veh, 26, 26, getDir _veh]; // draw player circle - }; - }; - - A3W_mapDraw_arrIcons = _newArrayIcons; - - _newArrayLines = []; - - if (_missionAiDrawLines) then - { - { - if (side _x == CIVILIAN) then - { - _markerPos = markerPos (_x getVariable ["A3W_missionMarkerName", ""]); - - if !(_markerPos isEqualTo [0,0,0]) then - { - _vehs = []; - - { - _veh = vehicle _x; - - if !(_veh in _vehs) then - { - if (alive _veh && _veh distance _markerPos > MISSION_AI_FAR_DISTANCE) then - { - _newArrayLines pushBack [_markerPos, getPosASLVisual _veh, [1,0,0,1]]; - }; - - _vehs pushBack _veh; - }; - } forEach units _x; - }; - }; - } forEach allGroups; - }; - - A3W_mapDraw_arrLines = _newArrayLines; - false - }; + scriptName "drawPlayerMarkers"; + + _showPlayers = ["A3W_teamPlayersMap"] call isConfigOn; + _missionAiDrawLines = ["A3W_missionFarAiDrawLines"] call isConfigOn; + _drawAtmIcons = ["A3W_atmMapIcons"] call isConfigOn; + _atmIcon = (call currMissionDir) + "client\icons\suatmm_icon.paa"; + _atmIconSize = {(0.4 / ctrlMapScale (_this select 0)) max 8 min 25}; + + waitUntil + { + _newArrayIcons = []; + + if (!isNil "A3W_atmArray" && _drawAtmIcons) then + { + _deadATMs = []; + + { + if (alive _x) then + { + _newArrayIcons pushBack [_atmIcon, [1,1,1,1], getPosATL _x, _atmIconSize, _atmIconSize, 0]; + } + else + { + _deadATMs pushback _x; + }; + } forEach A3W_atmArray; + + if (count _deadATMs > 0) then + { + _deadATMs spawn { A3W_atmArray = A3W_atmArray - _this }; + }; + }; + + if (_showPlayers) then + { + _isIndie = !(playerSide in [BLUFOR,OPFOR]); + _mapIconsEnabled = difficultyEnabled "map"; + + _allUAVs = allUnitsUAV; + _allDeadMen = allDeadMen; + _playableUnits = playableUnits; + + reverse _allUAVs; + reverse _allDeadMen; + reverse _playableUnits; + + { + _uav = _x; + _uavOwner = (uavControl _uav) select 0; + + if (IS_IN_GROUP(_uavOwner)) then + { + _icon = getText (configFile >> "CfgVehicles" >> typeOf _uav >> "icon"); + if (_icon == "") then { _icon = "iconMan" }; + + _color = if (group _uavOwner == group player) then { [0,1,0,1] } else { [1,1,1,1] }; + _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_uav) } else { getPosASLVisual _uav }; + + _newArrayIcons pushBack [_icon, _color, _pos, 24, 24, getDir _uav, "", 1]; // draw icon + + if (showPlayerNames) then + { + _newArrayIcons pushBack ["#(argb,1,1,1)color(0,0,0,0)", _color, _pos, 25, 25, 0, "[AI]", 2, 0.05, "PuristaMedium"]; // draw text + }; + }; + } forEach _allUAVs; + + { + _newUnit = _x getVariable ["newRespawnedUnit", objNull]; + + if (IS_IN_GROUP(_x) || (_newUnit getVariable ["playerSpawning", false] && IS_IN_GROUP(_newUnit))) then + { + _veh = vehicle _x; + _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_veh) } else { getPosASLVisual _x }; + + _newArrayIcons pushBack ["\A3\ui_f_curator\Data\CfgMarkers\kia_ca.paa", [0,0,0,0.6], _pos, 22, 22, 0]; // draw skull + }; + } forEach _allDeadMen; + + { + if (IS_IN_GROUP(_x) && !(_x getVariable ["playerSpawning", false])) then + { + _veh = vehicle _x; + + if ((crew _veh) select 0 == _x) then + { + _icon = getText (configFile >> "CfgVehicles" >> typeOf _veh >> "icon"); + if (_icon == "") then { _icon = "iconMan" }; + + _color = if (group _x == group player) then { [0,1,0,1] } else { [1,1,1,1] }; + _vehColor = if ({group _x == group player} count crew _veh > 0) then { [0,1,0,1] } else { _color }; // make vehicle green if group player in it + _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_veh) } else { getPosASLVisual _veh }; + _dir = if (_icon == "iconParachute") then { 0 } else { getDir _veh }; + + if (_veh == _x && _x call A3W_fnc_isUnconscious) then { _vehColor = [1,0.25,0,1] }; // make icon orange if awaiting revive + + _newArrayIcons pushBack [_icon, _vehColor, _pos, 24, 24, _dir, "", 1]; // draw icon + + if (_x != player && showPlayerNames) then + { + _newArrayIcons pushBack ["#(argb,1,1,1)color(0,0,0,0)", _color, _pos, 25, 25, 0, name _x, 2, 0.05, "PuristaMedium"]; // draw text + }; + }; + }; + } forEach _playableUnits; + + if (!_mapIconsEnabled) then + { + _veh = vehicle player; + _newArrayIcons pushBack ["\A3\ui_f\Data\IGUI\Cfg\IslandMap\iconplayer_ca.paa", [1,0,0,1], getPosASLVisual _veh, 26, 26, getDir _veh]; // draw player circle + }; + }; + + A3W_mapDraw_arrIcons = _newArrayIcons; + + _newArrayLines = []; + + if (_missionAiDrawLines) then + { + { + if (side _x == CIVILIAN) then + { + _markerPos = markerPos (_x getVariable ["A3W_missionMarkerName", ""]); + + if !(_markerPos isEqualTo [0,0,0]) then + { + _vehs = []; + + { + _veh = vehicle _x; + + if !(_veh in _vehs) then + { + if (alive _veh && _veh distance _markerPos > MISSION_AI_FAR_DISTANCE) then + { + _newArrayLines pushBack [_markerPos, getPosASLVisual _veh, [1,0,0,1]]; + }; + + _vehs pushBack _veh; + }; + } forEach units _x; + }; + }; + } forEach allGroups; + }; + + A3W_mapDraw_arrLines = _newArrayLines; + false + }; }; - + A3W_scriptThreads pushBack A3W_mapDraw_thread; - + // Main map = findDisplay 12 displayCtrl 51 // GPS = (uiNamespace getVariable ["RscMiniMap", displayNull]) displayCtrl 101 // UAV Terminal = findDisplay 160 displayCtrl 51 - + private ["_display", "_mapCtrl"]; - + // Main map waitUntil {_display = findDisplay 12; !isNull _display}; _mapCtrl = _display displayCtrl 51; - + if (!isNil "A3W_mapDraw_mainMapEH") then { _mapCtrl ctrlRemoveEventHandler ["Draw", A3W_mapDraw_mainMapEH] }; A3W_mapDraw_mainMapEH = _mapCtrl ctrlAddEventHandler ["Draw", A3W_mapDraw_eventCode]; - + // GPS waitUntil {_display = uiNamespace getVariable ["RscMiniMap", displayNull]; !isNull _display}; _mapCtrl = _display displayCtrl 101; - + if (!isNil "A3W_mapDraw_gpsMapEH") then { _mapCtrl ctrlRemoveEventHandler ["Draw", A3W_mapDraw_gpsMapEH] }; A3W_mapDraw_gpsMapEH = _mapCtrl ctrlAddEventHandler ["Draw", A3W_mapDraw_eventCode]; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 65a9530ae..2dc63662b 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -299,7 +299,7 @@ fn_manualVehicleSave = { }; if (!isOBJECT(_object)) exitWith {}; - if (diag_tickTime - (_object getVariable ["vehSaving_lastSave", 0]) <= MANUAL_VEH_SAVE_COOLDOWN) exitWith {}; + if (diag_tickTime - (_object getVariable ["vehSaving_lastSave", 0]) <= 5) exitWith {}; _object setVariable ["vehSaving_lastUse", diag_tickTime, true]; _object setVariable ["vehSaving_lastSave", diag_tickTime, true]; From d607393a9d3fadc914d7c1c863e0487980111d44 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 10 Jun 2015 04:30:01 -0700 Subject: [PATCH 471/544] Merge fix. --- globalCompile.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/globalCompile.sqf b/globalCompile.sqf index 7576f4a7f..940d3f69d 100644 --- a/globalCompile.sqf +++ b/globalCompile.sqf @@ -114,7 +114,7 @@ getFwdVelocity = [_serverFunc, "getFwdVelocity.sqf"] call mf_compile; getHitPoints = [_serverFunc, "getHitPoints.sqf"] call mf_compile; getMagAmmoCount = [_serverFunc, "getMagAmmoCount.sqf"] call mf_compile; getMoveWeapon = [_clientFunc, "getMoveWeapon.sqf"] call mf_compile; -fn_getPlayerData = "persistence\client\players\getPlayerData.sqf" call mf_compile; +//fn_getPlayerData = "persistence\client\players\getPlayerData.sqf" call mf_compile; getPublicVar = [_serverFunc, "getPublicVar.sqf"] call mf_compile; getTeamMarkerColor = "territory\client\getTeamMarkerColor.sqf" call mf_compile; isConfigOn = [_serverFunc, "isConfigOn.sqf"] call mf_compile; From 3cb6e62ff3a6330e50bea946738fd89809184441 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 10 Jun 2015 04:46:07 -0700 Subject: [PATCH 472/544] Added boxes to object load _allowDamage false. --- persistence/world/oFunctions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 505c9c4dd..e26ed6f5c 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -300,7 +300,7 @@ o_restoreObject = { _allowDamage = true; - if (_class isKindOf "Box_NATO_Wps_F" || _class isKindOf "Box_NATO_WpsSpecial_F" || _class isKindOf "Box_East_Wps_F" || _class isKindOf "Box_East_WpsSpecial_F" || _class isKindOf "Box_IND_Wps_F" || _class isKindOf "Box_IND_WpsSpecial_F" || _class isKindOf "Box_NATO_Ammo_F") then { + if (_class isKindOf "Box_NATO_Wps_F" || _class isKindOf "Box_NATO_WpsSpecial_F" || _class isKindOf "Box_East_Wps_F" || _class isKindOf "Box_East_WpsSpecial_F" || _class isKindOf "Box_IND_Wps_F" || _class isKindOf "Box_IND_WpsSpecial_F" || _class isKindOf "Box_NATO_Ammo_F" || _class isKindOf "Box_FIA_Support_F" || _class isKindOf "Box_FIA_Wps_F" || _class isKindOf "Box_FIA_Ammo_F") then { _allowDamage = false; }; From 6ffdb4aa7030546432e7dbc82562fd8ed45ff859 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 10 Jun 2015 04:49:09 -0700 Subject: [PATCH 473/544] Fix. --- server/antihack/compileFuncs.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/antihack/compileFuncs.sqf b/server/antihack/compileFuncs.sqf index ecfade01f..9007fbd62 100644 --- a/server/antihack/compileFuncs.sqf +++ b/server/antihack/compileFuncs.sqf @@ -52,15 +52,15 @@ _packetKey = call compile (_assignPacketKey + "_mpPacketKey"); ["notifyAdminMenu", _assignChecksum, "server\antihack\notifyAdminMenu.sqf"] ]; - /*if (isServer) then + if (isServer) then { [_checksum] execVM "server\antihack\serverSide.sqf"; // COMMENT THIS LINE IF YOU HAVE ISSUES WITH CUSTOM UNIT SCRIPTS, LIKE AI RECRUITMENT - };*/ + }; - /*if (!isDedicated) then + if (!isDedicated) then { [_checksum, _rscParams] execVM "server\antihack\payload.sqf"; - };*/ + }; missionNamespace setVariable [_compileKey, compileFinal "true"]; //}; From 30f251f2c7edf50d04ade458a032dba297a87bba Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 14 Jun 2015 15:34:14 -0700 Subject: [PATCH 474/544] Made disable environment off by default. --- addons/disableEnvironment/disableEnvironment.sqf | 13 +++++++------ client/init.sqf | 2 -- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/addons/disableEnvironment/disableEnvironment.sqf b/addons/disableEnvironment/disableEnvironment.sqf index 259193fc6..d0d7c37fa 100644 --- a/addons/disableEnvironment/disableEnvironment.sqf +++ b/addons/disableEnvironment/disableEnvironment.sqf @@ -5,13 +5,14 @@ waitUntil {time > 0}; if (soundVolume > 0.99) then { - 0.5 fadeSound 0.98; - enableEnvironment true; - ["Environment effects Enabled.", 5] call mf_notify_client; - } - else - { + 0.5 fadeSound 1; enableEnvironment false; ["Environment effects Disabled.", 5] call mf_notify_client; + } + else + { + 0.5 fadeSound 0.98; + enableEnvironment true; + ["Environment effects Enabled.", 5] call mf_notify_client; }; diff --git a/client/init.sqf b/client/init.sqf index fbab71cfd..814065f5d 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -39,8 +39,6 @@ waitUntil {time > 0.1}; removeAllWeapons player; player switchMove ""; -enableEnvironment false; // Temporary fix for client side FPS problems. Disables all wildlife and environment sounds - // initialize actions and inventory "client\actions" call mf_init; "client\inventory" call mf_init; From 014e83596d8069faa53c9b98640837276a4801a2 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 14 Jun 2015 18:39:40 -0700 Subject: [PATCH 475/544] Fix. --- addons/disableEnvironment/disableEnvironment.sqf | 4 ++-- server/antihack/compileFuncs.sqf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/disableEnvironment/disableEnvironment.sqf b/addons/disableEnvironment/disableEnvironment.sqf index d0d7c37fa..71602ead2 100644 --- a/addons/disableEnvironment/disableEnvironment.sqf +++ b/addons/disableEnvironment/disableEnvironment.sqf @@ -6,13 +6,13 @@ waitUntil {time > 0}; if (soundVolume > 0.99) then { - 0.5 fadeSound 1; + 0.5 fadeSound 0.98; enableEnvironment false; ["Environment effects Disabled.", 5] call mf_notify_client; } else { - 0.5 fadeSound 0.98; + 0.5 fadeSound 1; enableEnvironment true; ["Environment effects Enabled.", 5] call mf_notify_client; }; diff --git a/server/antihack/compileFuncs.sqf b/server/antihack/compileFuncs.sqf index 9007fbd62..07aee192b 100644 --- a/server/antihack/compileFuncs.sqf +++ b/server/antihack/compileFuncs.sqf @@ -57,10 +57,10 @@ _packetKey = call compile (_assignPacketKey + "_mpPacketKey"); [_checksum] execVM "server\antihack\serverSide.sqf"; // COMMENT THIS LINE IF YOU HAVE ISSUES WITH CUSTOM UNIT SCRIPTS, LIKE AI RECRUITMENT }; - if (!isDedicated) then + /*if (!isDedicated) then { [_checksum, _rscParams] execVM "server\antihack\payload.sqf"; - }; + };*/ missionNamespace setVariable [_compileKey, compileFinal "true"]; //}; From c7e9fecbfdeacba34ab6e2cd87f5fe85c817bd98 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 18 Jun 2015 17:32:16 -0700 Subject: [PATCH 476/544] Server credits fix --- addons/scripts/servercredits.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/scripts/servercredits.sqf b/addons/scripts/servercredits.sqf index 9016c8ec1..a7143e123 100644 --- a/addons/scripts/servercredits.sqf +++ b/addons/scripts/servercredits.sqf @@ -41,8 +41,8 @@ sleep 60; //Wait in seconds before the credits start after player IS ingame _role1 = "Welcome to"; _role1names = ["A3Armory - A3Wasteland Altis"]; -_role2 = "Server restarts every 8 hours"; -_role2names = ["5, 13, 21 EST"]; +_role2 = "Server restarts every 6 hours"; +_role2names = ["3, 9, 15, 21 EST"]; _role3 = "Player stats, and support @"; _role3names = ["A3Armory.com"]; _role4 = "TS3 Server @"; From 1ef232085171d5599d7793f9eb9a86bb2075cd77 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 25 Jun 2015 17:20:07 -0700 Subject: [PATCH 477/544] Added some jets back with limited weapons. --- addons/scripts/fn_resupplytruck.sqf | 102 +++++++++++++++++++++----- addons/scripts/resupply_actions.sqf | 12 +-- server/functions/spawnStoreObject.sqf | 36 ++++++++- storeConfig.sqf | 4 +- 4 files changed, 126 insertions(+), 28 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 1e6844287..560b0fcbd 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -199,7 +199,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { }; if (not(_is_uav) && {!isNull (gunner(_vehicle))}) then { - gunner(_vehicle) action ["getOut", _vehicle]; + gunner(_vehicle) action ["getOut", _vehicle]; }; private["_turretCfg", "_turretsArray"]; @@ -240,6 +240,8 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { player action ["EngineOff", _vehicle]; }; + _vehicle setFuel 0; + { private["_turretCfg", "_turretPath", "_turretMags", "_turretMagPairs"]; _turretCfg = _x select 0; @@ -286,35 +288,99 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { }; } forEach getArray (_turretCfg >> "weapons"); }; + + if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"] > 0) then { + private["_text"]; + _vehicle setVehicleAmmoDef 0; + _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; + _text call _titleText; - private["_text"]; - _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; - _text call _titleText; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; - //_vehicle addMagazineTurret [_mag, _turretPath]; - [[_vehicle, [_mag, _turretPath]], "A3W_fnc_addMagazineTurret", _vehicle, false] call BIS_fnc_MP; + //_vehicle addMagazineTurret [_mag, _turretPath]; + [[_vehicle, [_mag, _turretPath]], "A3W_fnc_addMagazineTurret", _vehicle, false] call BIS_fnc_MP; - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + }; }; }; } forEach _turretMagPairs; } forEach _turretsArray; - _vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure - //[[_vehicle,1],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; - + if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"] > 0) then { + _vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure + }; + switch (true) do - { + { + case (_vehicle isKindOf "B_Plane_CAS_01_F"): + { + private["_text"]; + _vehicle setVehicleAmmoDef 0; + _text = format ["Reloading %1...", _vehName]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + _vehicle removeWeaponTurret ["Gatling_30mm_Plane_CAS_01_F",[-1]]; + _vehicle removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; + _vehicle removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; + _vehicle removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; + _vehicle addWeaponTurret ["Cannon_30mm_Plane_CAS_02_F",[-1]]; + _vehicle addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; + _vehicle addWeaponTurret ["missiles_SCALPEL",[-1]]; + _vehicle addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; + _vehicle addMagazineTurret ["2Rnd_Missile_AA_04_F",[-1]]; + _vehicle addMagazineTurret ["7Rnd_Rocket_04_AP_F",[-1]]; + _vehicle addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + }; + + case (_vehicle isKindOf "O_Plane_CAS_02_F"): + { + private["_text"]; + _vehicle setVehicleAmmoDef 0; + _text = format ["Reloading %1...", _vehName]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + _vehicle removeWeaponTurret ["Missile_AGM_01_Plane_CAS_02_F",[-1]]; + _vehicle removeWeaponTurret ["Rocket_03_HE_Plane_CAS_02_F",[-1]]; + _vehicle removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; + _vehicle removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; + _vehicle addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; + _vehicle addWeaponTurret ["missiles_SCALPEL",[-1]]; + _vehicle addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; + _vehicle addMagazineTurret ["2Rnd_Missile_AA_03_F",[-1]]; + _vehicle addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + }; + case ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0): { - _vehicle removeMagazineTurret ["6Rnd_LG_scalpel",[0]]; - _vehicle removeMagazineTurret ["2Rnd_LG_scalpel",[0]]; - _vehicle removeMagazineTurret ["2Rnd_LG_scalpel",[0]]; + private["_text"]; + _vehicle setVehicleAmmoDef 0; + _text = format ["Reloading %1...", _vehName]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + _vehicle addMagazineTurret ["Laserbatteries",[0]]; _vehicle addMagazineTurret ["2Rnd_LG_scalpel",[0]]; + _vehicle addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; }; }; diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf index e31561fe8..89bd86da3 100644 --- a/addons/scripts/resupply_actions.sqf +++ b/addons/scripts/resupply_actions.sqf @@ -49,7 +49,7 @@ uav_resupply_watch = { _uavCheck = { private["_uav", "_action_id"]; _uav = getConnectedUAV player; - (!(isNull _uav) && {(count(nearestObjects [getPos _uav, resupply_vehicles, 10]) > 0)}) + (!(isNull _uav) && {(count(nearestObjects [getPos _uav, resupply_vehicles, 15]) > 0)}) }; waitUntil { @@ -58,7 +58,7 @@ uav_resupply_watch = { _uav = getConnectedUAV player; _action_id = _uav addAction [ format[" Resupply %1",VEHICLE_NAME(_uav)], - {_this call do_resupply;}, _uav, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" + {_this call do_resupply;}, _uav, 15,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" ]; waitUntil {sleep 3; not(call _uavCheck)}; _uav removeAction _action_id; @@ -75,7 +75,7 @@ static_weapon_resupply_watch = { if (not(isNull _static) && { _static isKindOf "StaticWeapon" && { player == gunner(_static) && { - (count(nearestObjects [getPos _static, resupply_vehicles, 10]) > 0)}}}) exitWith { + (count(nearestObjects [getPos _static, resupply_vehicles, 15]) > 0)}}}) exitWith { _static }; nil @@ -86,7 +86,7 @@ static_weapon_resupply_watch = { waitUntil { sleep 3; _static = call _staticCheck; !isNil "_static"}; _action_id = _static addAction [ format[" Resupply %1",VEHICLE_NAME(_static)], - {_this call do_resupply;}, _static, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" + {_this call do_resupply;}, _static, 15,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" ]; waitUntil { sleep 3; isNil {call _staticCheck}}; _static removeAction _action_id; @@ -104,7 +104,7 @@ vehicle_resupply_watch = { player != _vehicle && { player == driver(_vehicle) && { not(_vehicle isKindOf "StaticWeapon") && { - (count(nearestObjects [getPos _vehicle, resupply_vehicles, 10]) > 0)}}}}) exitWith { + (count(nearestObjects [getPos _vehicle, resupply_vehicles, 15]) > 0)}}}}) exitWith { nil }; _vehicle @@ -115,7 +115,7 @@ vehicle_resupply_watch = { waitUntil { sleep 3; _vehicle = call _vehicleCheck; !isNil "_vehicle"}; _action_id = _vehicle addAction [ format[" Resupply %1",VEHICLE_NAME(_vehicle)], - {_this call do_resupply;}, _vehicle, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" + {_this call do_resupply;}, _vehicle, 15,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" ]; waitUntil { sleep 3; isNil {call _vehicleCheck}}; _vehicle removeAction _action_id; diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index f69b260c3..a3fc70dc4 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -237,10 +237,42 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore case ({_object isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0): { - _object removeMagazineTurret ["6Rnd_LG_scalpel",[0]]; - _object addMagazineTurret ["2Rnd_LG_scalpel",[0]]; + _object setVehicleAmmoDef 0; + _object addMagazineTurret ["Laserbatteries",[0]]; + _object addMagazineTurret ["2Rnd_LG_scalpel",[0]]; + _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; }; + case (_object isKindOf "B_Plane_CAS_01_F"): + { + _object setVehicleAmmoDef 0; + _object removeWeaponTurret ["Gatling_30mm_Plane_CAS_01_F",[-1]]; + _object removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; + _object removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; + _object removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; + _object addWeaponTurret ["Cannon_30mm_Plane_CAS_02_F",[-1]]; + _object addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; + _object addWeaponTurret ["missiles_SCALPEL",[-1]]; + _object addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; + _object addMagazineTurret ["2Rnd_Missile_AA_04_F",[-1]]; + _object addMagazineTurret ["7Rnd_Rocket_04_AP_F",[-1]]; ; + _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + }; + + case (_object isKindOf "O_Plane_CAS_02_F"): + { + _object setVehicleAmmoDef 0; + _object removeWeaponTurret ["Missile_AGM_01_Plane_CAS_02_F",[-1]]; + _object removeWeaponTurret ["Rocket_03_HE_Plane_CAS_02_F",[-1]]; + _object removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; + _object removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; + _object addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; + _object addWeaponTurret ["missiles_SCALPEL",[-1]]; + _object addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; + _object addMagazineTurret ["2Rnd_Missile_AA_03_F",[-1]]; + _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + }; + case (_object isKindOf "Box_NATO_Ammo_F"): { _object allowDamage false; diff --git a/storeConfig.sqf b/storeConfig.sqf index 4164bdd7c..d93ed0a51 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -796,8 +796,8 @@ planesArray = compileFinal str [ ["A-143 Buzzard AA", "I_Plane_Fighter_03_AA_F", 40000, "vehicle"], //["A-143 Buzzard CAS", "I_Plane_Fighter_03_CAS_F", 45000, "vehicle"], - //["A-164 Wipeout CAS", "B_Plane_CAS_01_F", 75000, "vehicle"], - //["To-199 Neophron CAS", "O_Plane_CAS_02_F", 75000, "vehicle"], + ["A-164 Wipeout CAS", "B_Plane_CAS_01_F", 55000, "vehicle"], + ["To-199 Neophron CAS", "O_Plane_CAS_02_F", 55000, "vehicle"], ["MQ4A Greyhawk ATGM UAV", "B_UAV_02_F", 25000, "vehicle"], ["MQ4A Greyhawk Bomber UAV", "B_UAV_02_CAS_F", 20000, "vehicle"], // Bomber UAVs are a lot harder to use, hence why they are cheaper than ATGMs ["K40 Ababil-3 ATGM UAV (CSAT)", "O_UAV_02_F", 25000, "vehicle"], From c2a58d1387717dbbafeb64b294079327373716bf Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 25 Jun 2015 17:25:55 -0700 Subject: [PATCH 478/544] Added some jets back with limited weapons. *Fix --- server/functions/spawnStoreObject.sqf | 54 +++++++++++++-------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index a3fc70dc4..5b7e17977 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -237,40 +237,40 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore case ({_object isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0): { - _object setVehicleAmmoDef 0; - _object addMagazineTurret ["Laserbatteries",[0]]; - _object addMagazineTurret ["2Rnd_LG_scalpel",[0]]; - _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + _object setVehicleAmmoDef 0; + _object addMagazineTurret ["Laserbatteries",[0]]; + _object addMagazineTurret ["2Rnd_LG_scalpel",[0]]; + _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; }; case (_object isKindOf "B_Plane_CAS_01_F"): { - _object setVehicleAmmoDef 0; - _object removeWeaponTurret ["Gatling_30mm_Plane_CAS_01_F",[-1]]; - _object removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; - _object removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; - _object removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; - _object addWeaponTurret ["Cannon_30mm_Plane_CAS_02_F",[-1]]; - _object addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; - _object addWeaponTurret ["missiles_SCALPEL",[-1]]; - _object addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; - _object addMagazineTurret ["2Rnd_Missile_AA_04_F",[-1]]; - _object addMagazineTurret ["7Rnd_Rocket_04_AP_F",[-1]]; ; - _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + _object setVehicleAmmoDef 0; + _object removeWeaponTurret ["Gatling_30mm_Plane_CAS_01_F",[-1]]; + _object removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; + _object removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; + _object removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; + _object addWeaponTurret ["Cannon_30mm_Plane_CAS_02_F",[-1]]; + _object addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; + _object addWeaponTurret ["missiles_SCALPEL",[-1]]; + _object addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; + _object addMagazineTurret ["2Rnd_Missile_AA_04_F",[-1]]; + _object addMagazineTurret ["7Rnd_Rocket_04_AP_F",[-1]]; ; + _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; }; case (_object isKindOf "O_Plane_CAS_02_F"): { - _object setVehicleAmmoDef 0; - _object removeWeaponTurret ["Missile_AGM_01_Plane_CAS_02_F",[-1]]; - _object removeWeaponTurret ["Rocket_03_HE_Plane_CAS_02_F",[-1]]; - _object removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; - _object removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; - _object addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; - _object addWeaponTurret ["missiles_SCALPEL",[-1]]; - _object addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; - _object addMagazineTurret ["2Rnd_Missile_AA_03_F",[-1]]; - _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + _object setVehicleAmmoDef 0; + _object removeWeaponTurret ["Missile_AGM_01_Plane_CAS_02_F",[-1]]; + _object removeWeaponTurret ["Rocket_03_HE_Plane_CAS_02_F",[-1]]; + _object removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; + _object removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; + _object addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; + _object addWeaponTurret ["missiles_SCALPEL",[-1]]; + _object addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; + _object addMagazineTurret ["2Rnd_Missile_AA_03_F",[-1]]; + _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; }; case (_object isKindOf "Box_NATO_Ammo_F"): @@ -281,7 +281,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore if (_object getVariable ["A3W_purchasedVehicle", false] && !isNil "fn_manualVehicleSave") then { - _object call fn_manualVehicleSave; + _object call fn_manualVehicleSave; }; }; }; From 549aef94c21f0a9dfcc3ff3fc4cc6248f0460a03 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 25 Jun 2015 17:48:56 -0700 Subject: [PATCH 479/544] Reduced HE mortar ammo. --- addons/scripts/fn_resupplytruck.sqf | 28 +++++++++++++++++++++++---- server/functions/spawnStoreObject.sqf | 10 ++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 560b0fcbd..fd39080be 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -289,7 +289,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { } forEach getArray (_turretCfg >> "weapons"); }; - if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"] > 0) then { + if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { private["_text"]; _vehicle setVehicleAmmoDef 0; _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; @@ -309,7 +309,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { } forEach _turretMagPairs; } forEach _turretsArray; - if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"] > 0) then { + if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { _vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure }; @@ -328,7 +328,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { _vehicle removeWeaponTurret ["Gatling_30mm_Plane_CAS_01_F",[-1]]; _vehicle removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; _vehicle removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; - _vehicle removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; + _vehicle removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; _vehicle addWeaponTurret ["Cannon_30mm_Plane_CAS_02_F",[-1]]; _vehicle addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; _vehicle addWeaponTurret ["missiles_SCALPEL",[-1]]; @@ -354,7 +354,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { _vehicle removeWeaponTurret ["Missile_AGM_01_Plane_CAS_02_F",[-1]]; _vehicle removeWeaponTurret ["Rocket_03_HE_Plane_CAS_02_F",[-1]]; _vehicle removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; - _vehicle removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; + _vehicle removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; _vehicle addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; _vehicle addWeaponTurret ["missiles_SCALPEL",[-1]]; _vehicle addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; @@ -382,6 +382,26 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { sleep (REARM_TIME_SLICE / 2); call _checkAbortConditions; }; + + case ({_vehicle isKindOf _x} count ["B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0): + { + private["_text"]; + _vehicle setVehicleAmmoDef 0; + _text = format ["Reloading %1...", _vehName]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + _vehicle addMagazineTurret ["8Rnd_82mm_Mo_shells",[-1]]; + _vehicle addMagazineTurret ["8Rnd_82mm_Mo_shells",[-1]]; + _vehicle addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[-1]]; + _vehicle addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[-1]]; + _vehicle addMagazineTurret ["8Rnd_82mm_Mo_Smoke_white",[-1]]; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + }; }; if (damage _vehicle > 0.001) then { diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 5b7e17977..9bad1f1f9 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -277,6 +277,16 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore { _object allowDamage false; }; + + case ({_object isKindOf _x} count ["B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0): + { + _object setVehicleAmmoDef 0; + _object addMagazineTurret ["8Rnd_82mm_Mo_shells",[-1]]; + _object addMagazineTurret ["8Rnd_82mm_Mo_shells",[-1]]; + _object addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[-1]]; + _object addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[-1]]; + _object addMagazineTurret ["8Rnd_82mm_Mo_Smoke_white",[-1]]; + }; }; if (_object getVariable ["A3W_purchasedVehicle", false] && !isNil "fn_manualVehicleSave") then From c7717cf718ae7cbae742c2dd1a2b9837963ea84c Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Thu, 25 Jun 2015 17:56:11 -0700 Subject: [PATCH 480/544] Update fn_resupplytruck.sqf --- addons/scripts/fn_resupplytruck.sqf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index fd39080be..1481c5c1c 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -327,8 +327,8 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { _vehicle removeWeaponTurret ["Gatling_30mm_Plane_CAS_01_F",[-1]]; _vehicle removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; - _vehicle removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; - _vehicle removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; + _vehicle removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; + _vehicle removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; _vehicle addWeaponTurret ["Cannon_30mm_Plane_CAS_02_F",[-1]]; _vehicle addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; _vehicle addWeaponTurret ["missiles_SCALPEL",[-1]]; @@ -353,8 +353,8 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { _vehicle removeWeaponTurret ["Missile_AGM_01_Plane_CAS_02_F",[-1]]; _vehicle removeWeaponTurret ["Rocket_03_HE_Plane_CAS_02_F",[-1]]; - _vehicle removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; - _vehicle removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; + _vehicle removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; + _vehicle removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; _vehicle addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; _vehicle addWeaponTurret ["missiles_SCALPEL",[-1]]; _vehicle addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; @@ -395,7 +395,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { _vehicle addMagazineTurret ["8Rnd_82mm_Mo_shells",[-1]]; _vehicle addMagazineTurret ["8Rnd_82mm_Mo_shells",[-1]]; - _vehicle addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[-1]]; + _vehicle addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[-1]]; _vehicle addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[-1]]; _vehicle addMagazineTurret ["8Rnd_82mm_Mo_Smoke_white",[-1]]; From 9407ef2df29dfc610e5cb18095d176511a78d9a1 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 26 Jun 2015 01:43:04 -0700 Subject: [PATCH 481/544] Improved resupply and reduced HE mortar ammo fix. --- addons/scripts/fn_resupplytruck.sqf | 151 ++++++++++---------------- addons/scripts/resupply_actions.sqf | 46 ++++++++ server/functions/spawnStoreObject.sqf | 8 +- 3 files changed, 107 insertions(+), 98 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 1481c5c1c..f5e28b78f 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -289,16 +289,72 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { } forEach getArray (_turretCfg >> "weapons"); }; + if ({_vehicle isKindOf _x} count ["B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { + private["_text"]; + [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; + _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + [[_vehicle, [_mag, _turretPath]], "A3W_fnc_addMagazineTurretMortar", _vehicle, false] call BIS_fnc_MP; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + }; + + if (_vehicle isKindOf "B_Plane_CAS_01_F") then { + private["_text"]; + [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; + _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + [[_vehicle, [_mag, _turretPath]], "A3W_fnc_addMagazineTurretBcas", _vehicle, false] call BIS_fnc_MP; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + if (_vehicle isKindOf "O_Plane_CAS_02_F") then { + private["_text"]; + [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; + _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + [[_vehicle, [_mag, _turretPath]], "A3W_fnc_addMagazineTurretOcas", _vehicle, false] call BIS_fnc_MP; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + if ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0) then { + private["_text"]; + [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; + _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + [[_vehicle, [_mag, _turretPath]], "A3W_fnc_addMagazineTurretUav2", _vehicle, false] call BIS_fnc_MP; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { private["_text"]; - _vehicle setVehicleAmmoDef 0; + [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; _text call _titleText; sleep (REARM_TIME_SLICE / 2); call _checkAbortConditions; - //_vehicle addMagazineTurret [_mag, _turretPath]; [[_vehicle, [_mag, _turretPath]], "A3W_fnc_addMagazineTurret", _vehicle, false] call BIS_fnc_MP; sleep (REARM_TIME_SLICE / 2); @@ -312,97 +368,6 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { _vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure }; - - switch (true) do - { - case (_vehicle isKindOf "B_Plane_CAS_01_F"): - { - private["_text"]; - _vehicle setVehicleAmmoDef 0; - _text = format ["Reloading %1...", _vehName]; - _text call _titleText; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; - - _vehicle removeWeaponTurret ["Gatling_30mm_Plane_CAS_01_F",[-1]]; - _vehicle removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; - _vehicle removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; - _vehicle removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; - _vehicle addWeaponTurret ["Cannon_30mm_Plane_CAS_02_F",[-1]]; - _vehicle addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; - _vehicle addWeaponTurret ["missiles_SCALPEL",[-1]]; - _vehicle addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; - _vehicle addMagazineTurret ["2Rnd_Missile_AA_04_F",[-1]]; - _vehicle addMagazineTurret ["7Rnd_Rocket_04_AP_F",[-1]]; - _vehicle addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; - }; - - case (_vehicle isKindOf "O_Plane_CAS_02_F"): - { - private["_text"]; - _vehicle setVehicleAmmoDef 0; - _text = format ["Reloading %1...", _vehName]; - _text call _titleText; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; - - _vehicle removeWeaponTurret ["Missile_AGM_01_Plane_CAS_02_F",[-1]]; - _vehicle removeWeaponTurret ["Rocket_03_HE_Plane_CAS_02_F",[-1]]; - _vehicle removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; - _vehicle removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; - _vehicle addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; - _vehicle addWeaponTurret ["missiles_SCALPEL",[-1]]; - _vehicle addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; - _vehicle addMagazineTurret ["2Rnd_Missile_AA_03_F",[-1]]; - _vehicle addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; - }; - - case ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0): - { - private["_text"]; - _vehicle setVehicleAmmoDef 0; - _text = format ["Reloading %1...", _vehName]; - _text call _titleText; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; - - _vehicle addMagazineTurret ["Laserbatteries",[0]]; - _vehicle addMagazineTurret ["2Rnd_LG_scalpel",[0]]; - _vehicle addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; - }; - - case ({_vehicle isKindOf _x} count ["B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0): - { - private["_text"]; - _vehicle setVehicleAmmoDef 0; - _text = format ["Reloading %1...", _vehName]; - _text call _titleText; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; - - _vehicle addMagazineTurret ["8Rnd_82mm_Mo_shells",[-1]]; - _vehicle addMagazineTurret ["8Rnd_82mm_Mo_shells",[-1]]; - _vehicle addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[-1]]; - _vehicle addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[-1]]; - _vehicle addMagazineTurret ["8Rnd_82mm_Mo_Smoke_white",[-1]]; - - sleep (REARM_TIME_SLICE / 2); - call _checkAbortConditions; - }; - }; if (damage _vehicle > 0.001) then { call _checkAbortConditions; diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf index 89bd86da3..aabb1569c 100644 --- a/addons/scripts/resupply_actions.sqf +++ b/addons/scripts/resupply_actions.sqf @@ -27,6 +27,52 @@ A3W_fnc_addMagazineTurret = { _left addMagazineTurret _right; }; +A3W_fnc_addMagazineTurretMortar = { + private["_mortar"]; + _mortar = _this select 0; + _mortar addMagazineTurret ["8Rnd_82mm_Mo_shells",[0]]; + _mortar addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[0]]; + _mortar addMagazineTurret ["8Rnd_82mm_Mo_Smoke_white",[0]]; +}; + +A3W_fnc_addMagazineTurretBcas = { + private["_bcas"]; + _bcas = _this select 0; + _bcas removeWeaponTurret ["Gatling_30mm_Plane_CAS_01_F",[-1]]; + _bcas removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; + _bcas removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; + _bcas removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; + _bcas addWeaponTurret ["Cannon_30mm_Plane_CAS_02_F",[-1]]; + _bcas addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; + _bcas addWeaponTurret ["missiles_SCALPEL",[-1]]; + _bcas addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; + _bcas addMagazineTurret ["2Rnd_Missile_AA_04_F",[-1]]; + _bcas addMagazineTurret ["7Rnd_Rocket_04_AP_F",[-1]]; + _bcas addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; +}; + +A3W_fnc_addMagazineTurretOcas = { + private["_ocas"]; + _ocas = _this select 0; + _ocas removeWeaponTurret ["Missile_AGM_01_Plane_CAS_02_F",[-1]]; + _ocas removeWeaponTurret ["Rocket_03_HE_Plane_CAS_02_F",[-1]]; + _ocas removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; + _ocas removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; + _ocas addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; + _ocas addWeaponTurret ["missiles_SCALPEL",[-1]]; + _ocas addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; + _ocas addMagazineTurret ["2Rnd_Missile_AA_03_F",[-1]]; + _ocas addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; +}; + +A3W_fnc_addMagazineTurretUav2 = { + private["_uav2"]; + _uav2 = _this select 0; + _uav2 addMagazineTurret ["Laserbatteries",[0]]; + _uav2 addMagazineTurret ["2Rnd_LG_scalpel",[0]]; + _uav2 addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; +}; + if (isServer) exitWith {}; resupply_vehicles = [ diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 9bad1f1f9..d4bf80802 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -281,11 +281,9 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore case ({_object isKindOf _x} count ["B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0): { _object setVehicleAmmoDef 0; - _object addMagazineTurret ["8Rnd_82mm_Mo_shells",[-1]]; - _object addMagazineTurret ["8Rnd_82mm_Mo_shells",[-1]]; - _object addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[-1]]; - _object addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[-1]]; - _object addMagazineTurret ["8Rnd_82mm_Mo_Smoke_white",[-1]]; + _object addMagazineTurret ["8Rnd_82mm_Mo_shells",[0]]; + _object addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[0]]; + _object addMagazineTurret ["8Rnd_82mm_Mo_Smoke_white",[0]]; }; }; From f97d04ae5be1eb17b598ce3db660698453e114af Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 26 Jun 2015 01:58:47 -0700 Subject: [PATCH 482/544] Oops. --- addons/scripts/fn_resupplytruck.sqf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index f5e28b78f..763ac1fe3 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -317,6 +317,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { sleep (REARM_TIME_SLICE / 2); call _checkAbortConditions; + }; if (_vehicle isKindOf "O_Plane_CAS_02_F") then { private["_text"]; @@ -331,8 +332,9 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { sleep (REARM_TIME_SLICE / 2); call _checkAbortConditions; + }; - if ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0) then { + if ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0) then { private["_text"]; [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; @@ -345,7 +347,8 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { sleep (REARM_TIME_SLICE / 2); call _checkAbortConditions; - + }; + if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { private["_text"]; [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; From ba2ebe083be8ff7fb653d78efe965eee18d02cd7 Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Fri, 26 Jun 2015 02:04:32 -0700 Subject: [PATCH 483/544] Update fn_resupplytruck.sqf --- addons/scripts/fn_resupplytruck.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 763ac1fe3..29878e64b 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -334,7 +334,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { call _checkAbortConditions; }; - if ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0) then { + if ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0) then { private["_text"]; [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; From a1d0706cb7a4fca6225046e20f95d9bf6bf7ceb4 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 26 Jun 2015 12:23:30 -0700 Subject: [PATCH 484/544] Removed addWeaponTurret because it wont save and add laser guided mortar rounds. --- addons/scripts/fn_resupplytruck.sqf | 6 ++--- addons/scripts/resupply_actions.sqf | 18 +++++---------- server/functions/spawnStoreObject.sqf | 32 +++++++++++---------------- storeConfig.sqf | 6 ++--- 4 files changed, 25 insertions(+), 37 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 29878e64b..1d01eb22e 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -307,7 +307,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { if (_vehicle isKindOf "B_Plane_CAS_01_F") then { private["_text"]; [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; - _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; + _text = format ["Reloading %1...", _vehName]; _text call _titleText; sleep (REARM_TIME_SLICE / 2); @@ -322,7 +322,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { if (_vehicle isKindOf "O_Plane_CAS_02_F") then { private["_text"]; [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; - _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; + _text = format ["Reloading %1...", _vehName]; _text call _titleText; sleep (REARM_TIME_SLICE / 2); @@ -334,7 +334,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { call _checkAbortConditions; }; - if ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0) then { + if ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0) then { private["_text"]; [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf index aabb1569c..5ffdbf151 100644 --- a/addons/scripts/resupply_actions.sqf +++ b/addons/scripts/resupply_actions.sqf @@ -32,37 +32,31 @@ A3W_fnc_addMagazineTurretMortar = { _mortar = _this select 0; _mortar addMagazineTurret ["8Rnd_82mm_Mo_shells",[0]]; _mortar addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[0]]; - _mortar addMagazineTurret ["8Rnd_82mm_Mo_Smoke_white",[0]]; + _mortar addMagazineTurret ["8Rnd_82mm_Mo_LG",[0]]; }; A3W_fnc_addMagazineTurretBcas = { private["_bcas"]; _bcas = _this select 0; - _bcas removeWeaponTurret ["Gatling_30mm_Plane_CAS_01_F",[-1]]; _bcas removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; _bcas removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; + _bcas removeWeaponTurret ["Rocket_04_AP_Plane_CAS_01_F",[-1]]; _bcas removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; - _bcas addWeaponTurret ["Cannon_30mm_Plane_CAS_02_F",[-1]]; - _bcas addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; - _bcas addWeaponTurret ["missiles_SCALPEL",[-1]]; - _bcas addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; + _bcas addMagazineTurret ["1000Rnd_Gatling_30mm_Plane_CAS_01_F",[-1]]; _bcas addMagazineTurret ["2Rnd_Missile_AA_04_F",[-1]]; - _bcas addMagazineTurret ["7Rnd_Rocket_04_AP_F",[-1]]; - _bcas addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + _bcas addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1]]; }; A3W_fnc_addMagazineTurretOcas = { private["_ocas"]; _ocas = _this select 0; _ocas removeWeaponTurret ["Missile_AGM_01_Plane_CAS_02_F",[-1]]; - _ocas removeWeaponTurret ["Rocket_03_HE_Plane_CAS_02_F",[-1]]; _ocas removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; _ocas removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; _ocas addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; - _ocas addWeaponTurret ["missiles_SCALPEL",[-1]]; - _ocas addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; + _ocas addMagazineTurret ["20Rnd_Rocket_03_HE_F",[-1]]; _ocas addMagazineTurret ["2Rnd_Missile_AA_03_F",[-1]]; - _ocas addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + _ocas addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1]]; }; A3W_fnc_addMagazineTurretUav2 = { diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index d4bf80802..43c4dc5c9 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -246,31 +246,25 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore case (_object isKindOf "B_Plane_CAS_01_F"): { _object setVehicleAmmoDef 0; - _object removeWeaponTurret ["Gatling_30mm_Plane_CAS_01_F",[-1]]; - _object removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; - _object removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; - _object removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; - _object addWeaponTurret ["Cannon_30mm_Plane_CAS_02_F",[-1]]; - _object addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; - _object addWeaponTurret ["missiles_SCALPEL",[-1]]; - _object addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; + _object removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; + _object removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; + _object removeWeaponTurret ["Rocket_04_AP_Plane_CAS_01_F",[-1]]; + _object removeWeaponTurret ["Bomb_04_Plane_CAS_01_F",[-1]]; + _object addMagazineTurret ["1000Rnd_Gatling_30mm_Plane_CAS_01_F",[-1]]; _object addMagazineTurret ["2Rnd_Missile_AA_04_F",[-1]]; - _object addMagazineTurret ["7Rnd_Rocket_04_AP_F",[-1]]; ; - _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + _object addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1]]; }; case (_object isKindOf "O_Plane_CAS_02_F"): { _object setVehicleAmmoDef 0; _object removeWeaponTurret ["Missile_AGM_01_Plane_CAS_02_F",[-1]]; - _object removeWeaponTurret ["Rocket_03_HE_Plane_CAS_02_F",[-1]]; - _object removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; - _object removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; - _object addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; - _object addWeaponTurret ["missiles_SCALPEL",[-1]]; - _object addMagazineTurret ["2Rnd_LG_scalpel",[-1]]; - _object addMagazineTurret ["2Rnd_Missile_AA_03_F",[-1]]; - _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + _object removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; + _object removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; + _object addMagazineTurret ["500Rnd_Cannon_30mm_Plane_CAS_02_F",[-1]]; + _object addMagazineTurret ["20Rnd_Rocket_03_HE_F",[-1]]; + _object addMagazineTurret ["2Rnd_Missile_AA_03_F",[-1]]; + _object addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1]]; }; case (_object isKindOf "Box_NATO_Ammo_F"): @@ -283,7 +277,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object setVehicleAmmoDef 0; _object addMagazineTurret ["8Rnd_82mm_Mo_shells",[0]]; _object addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[0]]; - _object addMagazineTurret ["8Rnd_82mm_Mo_Smoke_white",[0]]; + _object addMagazineTurret ["8Rnd_82mm_Mo_LG",[0]]; }; }; diff --git a/storeConfig.sqf b/storeConfig.sqf index d93ed0a51..17a0f48e7 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -142,9 +142,9 @@ staticGunsArray = compileFinal str ["Mk32 GMG 20mm High tripod (NATO)", "B_GMG_01_high_F", 6000], ["Mk32 GMG 20mm High tripod (CSAT)", "O_GMG_01_high_F", 6000], ["Mk32 GMG 20mm High tripod (AAF)", "I_GMG_01_high_F", 6000], - ["Mk6 Mortar (NATO)", "B_Mortar_01_F", 30000], - ["Mk6 Mortar (CSAT)", "O_Mortar_01_F", 30000], - ["Mk6 Mortar (AAF)", "I_Mortar_01_F", 30000] + ["Mk6 Mortar (NATO)", "B_Mortar_01_F", 40000], + ["Mk6 Mortar (CSAT)", "O_Mortar_01_F", 40000], + ["Mk6 Mortar (AAF)", "I_Mortar_01_F", 40000] ]; throwputArray = compileFinal str From d49c23dbcb1e2ef3a2dbffb7d9626660df9c027d Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 26 Jun 2015 12:25:03 -0700 Subject: [PATCH 485/544] Added A-143 Buzzard CAS. --- storeConfig.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storeConfig.sqf b/storeConfig.sqf index 17a0f48e7..356cad3e9 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -795,7 +795,7 @@ helicoptersArray = compileFinal str planesArray = compileFinal str [ ["A-143 Buzzard AA", "I_Plane_Fighter_03_AA_F", 40000, "vehicle"], - //["A-143 Buzzard CAS", "I_Plane_Fighter_03_CAS_F", 45000, "vehicle"], + ["A-143 Buzzard CAS", "I_Plane_Fighter_03_CAS_F", 55000, "vehicle"], ["A-164 Wipeout CAS", "B_Plane_CAS_01_F", 55000, "vehicle"], ["To-199 Neophron CAS", "O_Plane_CAS_02_F", 55000, "vehicle"], ["MQ4A Greyhawk ATGM UAV", "B_UAV_02_F", 25000, "vehicle"], From 5d9cad6386a6e1f06fa0eee8df8db3986b60dfe2 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 26 Jun 2015 12:28:14 -0700 Subject: [PATCH 486/544] Change max view distance to 4000m for dogfights. --- addons/taw_vd/fn_openTAWVD.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/taw_vd/fn_openTAWVD.sqf b/addons/taw_vd/fn_openTAWVD.sqf index b8fb8d998..969b39aa8 100644 --- a/addons/taw_vd/fn_openTAWVD.sqf +++ b/addons/taw_vd/fn_openTAWVD.sqf @@ -15,7 +15,7 @@ ctrlSetText[2942, format["%1", tawvd_object]]; //Setup the sliders { - slidersetRange [_x select 0,100,3200]; + slidersetRange [_x select 0,100,4000]; ((findDisplay 2900) displayCtrl (_x select 0)) sliderSetSpeed [100,100,100]; sliderSetPosition[_x select 0, _x select 1]; } foreach [[2901,tawvd_foot],[2911,tawvd_car],[2921,tawvd_air],[2941,tawvd_object]]; From 82811d9bad37585f0f25d653e177b350aa849305 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 26 Jun 2015 12:42:45 -0700 Subject: [PATCH 487/544] Removed Titan AT compact lock block because of joystick bypass. Removed Titan_AT missile for compact launcher. --- client/clientEvents/onKeyPress.sqf | 12 --------- client/clientEvents/onMouseButtonDown.sqf | 32 ----------------------- client/functions/clientCompile.sqf | 1 - client/init.sqf | 1 - storeConfig.sqf | 10 +++---- 5 files changed, 5 insertions(+), 51 deletions(-) delete mode 100644 client/clientEvents/onMouseButtonDown.sqf diff --git a/client/clientEvents/onKeyPress.sqf b/client/clientEvents/onKeyPress.sqf index e7867be6e..7840c3d76 100644 --- a/client/clientEvents/onKeyPress.sqf +++ b/client/clientEvents/onKeyPress.sqf @@ -56,18 +56,6 @@ switch (true) do // ********** Action keys ********** -// Remove Titan compact lock -if (!_handled && (inputAction "LockTarget" > 0 || inputAction "LockTargets" > 0)) then { - private["_cweapon"]; - _cweapon = currentWeapon player; - if (_cweapon == "launch_Titan_short_F" || { - _cweapon == "launch_I_Titan_short_F" || { - _cweapon == "launch_O_Titan_short_F"}}) then { - player groupChat format["Lock Disabled for Titan Compact AT"]; - _handled = true; - }; -}; - // Parachute if (!_handled && _key in actionKeys "GetOver") then { diff --git a/client/clientEvents/onMouseButtonDown.sqf b/client/clientEvents/onMouseButtonDown.sqf deleted file mode 100644 index f17ca1d38..000000000 --- a/client/clientEvents/onMouseButtonDown.sqf +++ /dev/null @@ -1,32 +0,0 @@ -// ****************************************************************************************** -// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * -// ****************************************************************************************** -// @file Version: 1.0 -// @file Name: onMouseButtonDown.sqf -// @file Author: micovery -// @file Created: 23/2/2015 -// @file Args: - -private["_handled", "_display", "_button", "_x", "_y", "_shift", "_control"]; - -_handled = false; -_display = _this select 0; -_button = _this select 1; -_x = _this select 2; -_y = _this select 3; -_shift = _this select 4; -_control = _this select 5; - - -if (!_handled && (inputAction "LockTarget" > 0 || inputAction "LockTargets" > 0)) then { - private["_cweapon"]; - _cweapon = currentWeapon player; - if (_cweapon == "launch_Titan_short_F" || { - _cweapon == "launch_I_Titan_short_F" || { - _cweapon == "launch_O_Titan_short_F"}}) then { - player groupChat format["Lock Disabled for Titan Compact AT"]; - _handled = true; - }; -}; - -_handled diff --git a/client/functions/clientCompile.sqf b/client/functions/clientCompile.sqf index a2bb064be..3c1fae927 100644 --- a/client/functions/clientCompile.sqf +++ b/client/functions/clientCompile.sqf @@ -15,7 +15,6 @@ onRespawn = "client\clientEvents\onRespawn.sqf" call mf_compile; onKilled = "client\clientEvents\onKilled.sqf" call mf_compile; onKeyPress = "client\clientEvents\onKeyPress.sqf" call mf_compile; onKeyRelease = "client\clientEvents\onKeyRelease.sqf" call mf_compile; -onMouseButtonDown = "client\clientEvents\onMouseButtonDown.sqf" call mf_compile; // Functions A3W_fnc_copilotTakeControl = "client\functions\copilotTakeControl.sqf" call mf_compile; diff --git a/client/init.sqf b/client/init.sqf index 814065f5d..7e3fb703e 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -116,7 +116,6 @@ if (count (["config_territory_markers", []] call getPublicVar) > 0) then waitUntil {!isNull findDisplay 46}; (findDisplay 46) displayAddEventHandler ["KeyDown", onKeyPress]; (findDisplay 46) displayAddEventHandler ["KeyUp", onKeyRelease]; -(findDisplay 46) displayAddEventHandler ["MouseButtonDown", onMouseButtonDown]; call compile preprocessFileLineNumbers "client\functions\setupClientPVars.sqf"; diff --git a/storeConfig.sqf b/storeConfig.sqf index 356cad3e9..e6ae979f7 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -105,9 +105,9 @@ launcherArray = compileFinal str [ ["RPG-42 Alamut", "launch_RPG32_F", 400], ["PCML", "launch_NLAW_F", 1000], - ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 1750], - ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 1750], - ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 1750], + ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 1500], + ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 1500], + ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 1500], ["Titan MPRL AA (Desert)", "launch_Titan_F", 1750], ["Titan MPRL AA (Hex)", "launch_O_Titan_F", 1750], ["Titan MPRL AA (Digi)", "launch_I_Titan_F", 1750] @@ -207,8 +207,8 @@ ammoArray = compileFinal str ["RPG-42 Anti-Tank Rocket", "RPG32_F", 400], // Direct damage: high | Splash damage: low | Guidance: none ["RPG-42 High-Explosive Rocket", "RPG32_HE_F", 350], // Direct damage: medium | Splash damage: medium | Guidance: none ["PCML Anti-Tank Missile", "NLAW_F", 500], // Direct damage: very high | Splash damage: low | Guidance: laser, ground vehicles - ["Titan Anti-Tank Missile", "Titan_AT", 500], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles - ["Titan Anti-Personnel Missile", "Titan_AP", 450], // Direct damage: low | Splash damage: high | Guidance: mouse, laser + //["Titan Anti-Tank Missile", "Titan_AT", 500], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles + ["Titan AP Missile", "Titan_AP", 400], // Direct damage: low | Splash damage: high | Guidance: mouse, laser ["Titan Anti-Air Missile", "Titan_AA", 600], // Direct damage: low | Splash damage: medium | Guidance: aircraft ["40mm HE Grenade Round", "1Rnd_HE_Grenade_shell", 125], ["40mm 3Rnd HE Grenades", "3Rnd_HE_Grenade_shell", 250], From 538b9a350668e64bb3205ec937d59ed861e96a4a Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 26 Jun 2015 14:56:12 -0700 Subject: [PATCH 488/544] Mortars now auto save when bought to avoid disassemble disappear bug. Store prices tweak. --- server/functions/spawnStoreObject.sqf | 6 ++++++ storeConfig.sqf | 20 ++++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 43c4dc5c9..e96fc89ff 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -183,6 +183,12 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object setVariable ["ownerUID", getPlayerUID _player, true]; _object setVariable ["ownerN", name _player, true]; }; + + if ({_vehicle isKindOf _x} count ["B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { + _object setVariable ["A3W_purchasedVehicle", true]; + _object setVariable ["ownerUID", getPlayerUID _player, true]; + _object setVariable ["ownerN", name _player, true]; + }; }; _object setDir (if (_object isKindOf "Plane") then { markerDir _marker } else { random 360 }); diff --git a/storeConfig.sqf b/storeConfig.sqf index e6ae979f7..4b46e774a 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -105,12 +105,12 @@ launcherArray = compileFinal str [ ["RPG-42 Alamut", "launch_RPG32_F", 400], ["PCML", "launch_NLAW_F", 1000], - ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 1500], - ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 1500], - ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 1500], - ["Titan MPRL AA (Desert)", "launch_Titan_F", 1750], - ["Titan MPRL AA (Hex)", "launch_O_Titan_F", 1750], - ["Titan MPRL AA (Digi)", "launch_I_Titan_F", 1750] + ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 1100], + ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 1100], + ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 1100], + ["Titan MPRL AA (Desert)", "launch_Titan_F", 1450], + ["Titan MPRL AA (Hex)", "launch_O_Titan_F", 1450], + ["Titan MPRL AA (Digi)", "launch_I_Titan_F", 1450] ]; allGunStoreFirearms = compileFinal str (call pistolArray + call smgArray + call rifleArray + call lmgArray + call launcherArray); @@ -142,9 +142,9 @@ staticGunsArray = compileFinal str ["Mk32 GMG 20mm High tripod (NATO)", "B_GMG_01_high_F", 6000], ["Mk32 GMG 20mm High tripod (CSAT)", "O_GMG_01_high_F", 6000], ["Mk32 GMG 20mm High tripod (AAF)", "I_GMG_01_high_F", 6000], - ["Mk6 Mortar (NATO)", "B_Mortar_01_F", 40000], - ["Mk6 Mortar (CSAT)", "O_Mortar_01_F", 40000], - ["Mk6 Mortar (AAF)", "I_Mortar_01_F", 40000] + ["Mk6 Mortar (NATO)", "B_Mortar_01_F", 35000], + ["Mk6 Mortar (CSAT)", "O_Mortar_01_F", 35000], + ["Mk6 Mortar (AAF)", "I_Mortar_01_F", 35000] ]; throwputArray = compileFinal str @@ -209,7 +209,7 @@ ammoArray = compileFinal str ["PCML Anti-Tank Missile", "NLAW_F", 500], // Direct damage: very high | Splash damage: low | Guidance: laser, ground vehicles //["Titan Anti-Tank Missile", "Titan_AT", 500], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles ["Titan AP Missile", "Titan_AP", 400], // Direct damage: low | Splash damage: high | Guidance: mouse, laser - ["Titan Anti-Air Missile", "Titan_AA", 600], // Direct damage: low | Splash damage: medium | Guidance: aircraft + ["Titan Anti-Air Missile", "Titan_AA", 550], // Direct damage: low | Splash damage: medium | Guidance: aircraft ["40mm HE Grenade Round", "1Rnd_HE_Grenade_shell", 125], ["40mm 3Rnd HE Grenades", "3Rnd_HE_Grenade_shell", 250], ["40mm Smoke Round (White)", "1Rnd_Smoke_Grenade_shell", 50], From 1eb5de2ab617a6b711e0b2e7910e92cd3a3f1fea Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 26 Jun 2015 15:40:44 -0700 Subject: [PATCH 489/544] Mortars now auto save when bought to avoid disassemble disappear bug. *Fix --- server/functions/spawnStoreObject.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index e96fc89ff..6a22ac242 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -184,7 +184,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object setVariable ["ownerN", name _player, true]; }; - if ({_vehicle isKindOf _x} count ["B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { + if ({_object isKindOf _x} count ["B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { _object setVariable ["A3W_purchasedVehicle", true]; _object setVariable ["ownerUID", getPlayerUID _player, true]; _object setVariable ["ownerN", name _player, true]; From 326db01940fb4864a2f1e2d30f0a29a17ff00d35 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 26 Jun 2015 16:00:19 -0700 Subject: [PATCH 490/544] Fix. --- server/functions/spawnStoreObject.sqf | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 6a22ac242..684a0389e 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -183,12 +183,6 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object setVariable ["ownerUID", getPlayerUID _player, true]; _object setVariable ["ownerN", name _player, true]; }; - - if ({_object isKindOf _x} count ["B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { - _object setVariable ["A3W_purchasedVehicle", true]; - _object setVariable ["ownerUID", getPlayerUID _player, true]; - _object setVariable ["ownerN", name _player, true]; - }; }; _object setDir (if (_object isKindOf "Plane") then { markerDir _marker } else { random 360 }); @@ -284,6 +278,9 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object addMagazineTurret ["8Rnd_82mm_Mo_shells",[0]]; _object addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[0]]; _object addMagazineTurret ["8Rnd_82mm_Mo_LG",[0]]; + _object setVariable ["A3W_purchasedVehicle", true]; + _object setVariable ["ownerUID", getPlayerUID _player, true]; + _object setVariable ["ownerN", name _player, true]; }; }; From c0ed57f777f62c4104def074657eb80cd8880318 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 30 Jun 2015 07:42:18 -0700 Subject: [PATCH 491/544] Added hex orca and ind cas to weapon restrictions. --- addons/scripts/fn_resupplytruck.sqf | 30 +++++++++++++++++++++++++++ addons/scripts/resupply_actions.sqf | 21 +++++++++++++++++++ server/functions/spawnStoreObject.sqf | 21 +++++++++++++++++++ 3 files changed, 72 insertions(+) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 1d01eb22e..365e724b0 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -334,6 +334,36 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { call _checkAbortConditions; }; + if (_vehicle isKindOf "I_Plane_Fighter_03_CAS_F") then { + private["_text"]; + [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; + _text = format ["Reloading %1...", _vehName]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + [[_vehicle, [_mag, _turretPath]], "A3W_fnc_addMagazineTurretIcas", _vehicle, false] call BIS_fnc_MP; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + }; + + if (_vehicle isKindOf "O_Heli_Light_02_F") then { + private["_text"]; + [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; + _text = format ["Reloading %1...", _vehName]; + _text call _titleText; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + + [[_vehicle, [_mag, _turretPath]], "A3W_fnc_addMagazineTurretHorca", _vehicle, false] call BIS_fnc_MP; + + sleep (REARM_TIME_SLICE / 2); + call _checkAbortConditions; + }; + if ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0) then { private["_text"]; [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf index 5ffdbf151..cd7112cf0 100644 --- a/addons/scripts/resupply_actions.sqf +++ b/addons/scripts/resupply_actions.sqf @@ -59,6 +59,27 @@ A3W_fnc_addMagazineTurretOcas = { _ocas addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1]]; }; +A3W_fnc_addMagazineTurretIcas = { + private["_Icas"]; + _Icas = _this select 0; + _Icas removeWeaponTurret ["missiles_SCALPEL",[-1]]; + _Icas addMagazineTurret ["300Rnd_20mm_shells",[-1]]; + _Icas addMagazineTurret ["300Rnd_20mm_shells",[-1]]; + _Icas addMagazineTurret ["2Rnd_AAA_missiles",[-1]]; + _Icas addMagazineTurret ["2Rnd_GBU12_LGB_MI10",[-1]]; + _Icas addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; +}; + +A3W_fnc_addMagazineTurretHorca = { + private["_Horca"]; + _Horca = _this select 0; + _Horca removeWeaponTurret ["missiles_DAGR",[-1]]; + _Horca addWeaponTurret ["missiles_DAR",[-1]]; + _Horca addMagazineTurret ["2000Rnd_65x39_Belt_Tracer_Green_Splash",[-1]]; + _Horca addMagazineTurret ["12Rnd_missiles",[-1]]; + _Horca addMagazineTurret ["168Rnd_CMFlare_Chaff_Magazine",[-1]]; +}; + A3W_fnc_addMagazineTurretUav2 = { private["_uav2"]; _uav2 = _this select 0; diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 684a0389e..09a41a822 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -266,6 +266,27 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object addMagazineTurret ["2Rnd_Missile_AA_03_F",[-1]]; _object addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1]]; }; + + case (_object isKindOf "I_Plane_Fighter_03_CAS_F"): + { + _object setVehicleAmmoDef 0; + _object removeWeaponTurret ["missiles_SCALPEL",[-1]]; + _object addMagazineTurret ["300Rnd_20mm_shells",[-1]]; + _object addMagazineTurret ["300Rnd_20mm_shells",[-1]]; + _object addMagazineTurret ["2Rnd_AAA_missiles",[-1]]; + _object addMagazineTurret ["2Rnd_GBU12_LGB_MI10",[-1]]; + _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + }; + + case (_object isKindOf "O_Heli_Light_02_F"): + { + _object setVehicleAmmoDef 0; + _object removeWeaponTurret ["missiles_DAGR",[-1]]; + _object addWeaponTurret ["missiles_DAR",[-1]]; + _object addMagazineTurret ["2000Rnd_65x39_Belt_Tracer_Green_Splash",[-1]]; + _object addMagazineTurret ["12Rnd_missiles",[-1]]; + _object addMagazineTurret ["168Rnd_CMFlare_Chaff_Magazine",[-1]]; + }; case (_object isKindOf "Box_NATO_Ammo_F"): { From aa8f65d004fd0b30a1991ca91b8d426d31ce22d4 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 30 Jun 2015 07:50:54 -0700 Subject: [PATCH 492/544] Updated admin notify. --- server/antihack/notifyAdminMenu.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/antihack/notifyAdminMenu.sqf b/server/antihack/notifyAdminMenu.sqf index e9442e060..45448b3a4 100644 --- a/server/antihack/notifyAdminMenu.sqf +++ b/server/antihack/notifyAdminMenu.sqf @@ -28,9 +28,9 @@ switch (toLower _action) do case "godmode": { if (_value) then { - _message = format ["[NOTICE] %1 ENABLED GodMode", name player]; + _message = format ["[NOTICE] %1 used the admin menu to ENABLED GodMode", name player]; }else{ - _message = format ["[NOTICE] %1 DISABLED GodMode", name player]; + _message = format ["[NOTICE] %1 used the admin menu to DISABLED GodMode", name player]; }; }; case "teleport": From db263566d8aae4e97b527b257506032fb82e302f Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 30 Jun 2015 07:54:44 -0700 Subject: [PATCH 493/544] Updated ind cas price. --- storeConfig.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storeConfig.sqf b/storeConfig.sqf index 4b46e774a..346ca6021 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -795,7 +795,7 @@ helicoptersArray = compileFinal str planesArray = compileFinal str [ ["A-143 Buzzard AA", "I_Plane_Fighter_03_AA_F", 40000, "vehicle"], - ["A-143 Buzzard CAS", "I_Plane_Fighter_03_CAS_F", 55000, "vehicle"], + ["A-143 Buzzard CAS", "I_Plane_Fighter_03_CAS_F", 50000, "vehicle"], ["A-164 Wipeout CAS", "B_Plane_CAS_01_F", 55000, "vehicle"], ["To-199 Neophron CAS", "O_Plane_CAS_02_F", 55000, "vehicle"], ["MQ4A Greyhawk ATGM UAV", "B_UAV_02_F", 25000, "vehicle"], From 5307f28873c69e0c7ca9c1729fc78b708d5a83ab Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 30 Jun 2015 08:57:24 -0700 Subject: [PATCH 494/544] Fix O_Heli_Light_02_F weapon restriction for vehicle load. --- persistence/world/vFunctions.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 2dc63662b..6cc0ac34e 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -151,6 +151,11 @@ v_restoreVehicle = { _obj disableTIEquipment false; }; + if (_obj isKindOf "O_Heli_Light_02_F") then { + _obj removeWeaponTurret ["missiles_DAGR",[-1]]; + _obj addWeaponTurret ["missiles_DAR",[-1]]; + }; + //override the lock-state for vehicles form this this if ({_obj isKindOf _x} count A3W_locked_vehicles_list > 0) then { _lock_state = 2; From a5e8a807227d449cda549f34fe48208604cbcabd Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Tue, 30 Jun 2015 09:00:44 -0700 Subject: [PATCH 495/544] Update vFunctions.sqf --- persistence/world/vFunctions.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 6cc0ac34e..6df8884ee 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -152,8 +152,8 @@ v_restoreVehicle = { }; if (_obj isKindOf "O_Heli_Light_02_F") then { - _obj removeWeaponTurret ["missiles_DAGR",[-1]]; - _obj addWeaponTurret ["missiles_DAR",[-1]]; + _obj removeWeaponTurret ["missiles_DAGR",[-1]]; + _obj addWeaponTurret ["missiles_DAR",[-1]]; }; //override the lock-state for vehicles form this this @@ -793,4 +793,4 @@ v_loadVehicles = { (_vIds) }; -diag_log "vFunctions.sqf loading complete"; \ No newline at end of file +diag_log "vFunctions.sqf loading complete"; From 054d40731336ac5be0fc6e79747f7a825299626f Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 30 Jun 2015 10:51:27 -0700 Subject: [PATCH 496/544] Expanded parking and storage. Reduced max wind speed. --- addons/parking/config.sqf | 2 +- addons/scripts/DynamicWeatherEffects.sqf | 2 +- addons/storage/config.sqf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/parking/config.sqf b/addons/parking/config.sqf index 7cdeba0ae..66773f292 100644 --- a/addons/parking/config.sqf +++ b/addons/parking/config.sqf @@ -1,6 +1,6 @@ //List of cities where private parking is available (empty or unset means all cities) -pp_cities_whitelist = ["Katalaki", "Agios Konstantinos", "Ioannina", "Panagia"]; +pp_cities_whitelist = ["Agios Konstantinos", "Ioannina", "Panagia", "Lakka", "Aggelochori", "Zaros", "Panochori"]; //whether or not to show map markers for private parking locations pp_markers_enabled = true; diff --git a/addons/scripts/DynamicWeatherEffects.sqf b/addons/scripts/DynamicWeatherEffects.sqf index 3f4ae2e21..e869e58f7 100644 --- a/addons/scripts/DynamicWeatherEffects.sqf +++ b/addons/scripts/DynamicWeatherEffects.sqf @@ -76,7 +76,7 @@ _minimumWind = 0; // Wind vector strength never exceeds this value. Must be greater or equal to 0 and greater than or equal to _minimumWind. // (Suggested value: 8). -_maximumWind = 8; +_maximumWind = 6; // Probability in percent for wind to change when weather changes. If set to 0 then wind will never change. If set to 100 then rain will // change every time the weather (fog or overcast) start to change. (Suggested value: 25); diff --git a/addons/storage/config.sqf b/addons/storage/config.sqf index b850bcb0d..b1239002d 100644 --- a/addons/storage/config.sqf +++ b/addons/storage/config.sqf @@ -1,6 +1,6 @@ //List of cities where private storage boxes are available (empty or unset means all cities) -ps_cities_whitelist = ["Lakka", "Kavala", "Athira", "Paros", "Chalkeia"]; +ps_cities_whitelist = []; //List of models to use for private storage boxes (must have at least one) ps_box_models = ["Land_PaperBox_open_full_F", "Land_Pallet_MilBoxes_F", "Land_PaperBox_open_empty_F", "Land_PaperBox_closed_F"]; From 57a902867c4fa27d494694435cc7289c08087d88 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 30 Jun 2015 11:30:24 -0700 Subject: [PATCH 497/544] Expanded parking tweak. --- addons/parking/config.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/parking/config.sqf b/addons/parking/config.sqf index 66773f292..8b02bfc99 100644 --- a/addons/parking/config.sqf +++ b/addons/parking/config.sqf @@ -1,6 +1,6 @@ //List of cities where private parking is available (empty or unset means all cities) -pp_cities_whitelist = ["Agios Konstantinos", "Ioannina", "Panagia", "Lakka", "Aggelochori", "Zaros", "Panochori"]; +pp_cities_whitelist = ["Agios Konstantinos", "Ioannina", "Panagia", "Lakka", "Aggelochori", "Therisa", "Panochori", "Syrta"]; //whether or not to show map markers for private parking locations pp_markers_enabled = true; From 017b19804735f736b481cafe39c1effb8a880c98 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 30 Jun 2015 11:40:47 -0700 Subject: [PATCH 498/544] Added hex orca and ind cas to weapon restrictions. *Fix --- addons/scripts/fn_resupplytruck.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 365e724b0..744064d08 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -379,7 +379,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { call _checkAbortConditions; }; - if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { + if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F", "O_Heli_Light_02_F", "I_Plane_Fighter_03_CAS_F"] > 0) then { private["_text"]; [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; @@ -398,7 +398,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { } forEach _turretMagPairs; } forEach _turretsArray; - if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { + if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F", "O_Heli_Light_02_F", "I_Plane_Fighter_03_CAS_F"] > 0) then { _vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure }; From 55c7df43f3dd884aad14e1ee15b4265b735dafcb Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 30 Jun 2015 15:36:41 -0700 Subject: [PATCH 499/544] Map cleanup. --- addons/parking/pp_actions_functions.sqf | 2 +- addons/parking/pp_saving_functions.sqf | 2 +- addons/storage/ps_functions.sqf | 2 +- .../functions/createGeneralStoreMarkers.sqf | 2 +- client/functions/createGunStoreMarkers.sqf | 12 ++--- .../functions/createVehicleStoreMarkers.sqf | 2 +- mission.sqm | 46 +++++++++++++++++-- 7 files changed, 54 insertions(+), 14 deletions(-) diff --git a/addons/parking/pp_actions_functions.sqf b/addons/parking/pp_actions_functions.sqf index 644c7428a..e2a5e707d 100644 --- a/addons/parking/pp_actions_functions.sqf +++ b/addons/parking/pp_actions_functions.sqf @@ -23,7 +23,7 @@ pp_marker_create = { _marker setMarkerTypeLocal _type; _marker setMarkerColorLocal _color; _marker setMarkerSizeLocal _size; - _marker setMarkerTextLocal _text; + //_marker setMarkerTextLocal _text; (_marker) }; diff --git a/addons/parking/pp_saving_functions.sqf b/addons/parking/pp_saving_functions.sqf index 922e13d12..e614134b1 100644 --- a/addons/parking/pp_saving_functions.sqf +++ b/addons/parking/pp_saving_functions.sqf @@ -164,7 +164,7 @@ if (isClient) then { _marker setMarkerTypeLocal "waypoint"; _marker setMarkerPosLocal _pos; _marker setMarkerColorLocal "ColorBlue"; - _marker setMarkerTextLocal _name; + //_marker setMarkerTextLocal _name; [_marker] spawn { ARGVX3(0,_marker,""); diff --git a/addons/storage/ps_functions.sqf b/addons/storage/ps_functions.sqf index 3ae0ccc4f..e3c52cb27 100644 --- a/addons/storage/ps_functions.sqf +++ b/addons/storage/ps_functions.sqf @@ -22,7 +22,7 @@ ps_marker_create = { _marker setMarkerTypeLocal _type; _marker setMarkerColorLocal _color; _marker setMarkerSizeLocal _size; - _marker setMarkerTextLocal _text; + //_marker setMarkerTextLocal _text; (_marker) }; diff --git a/client/functions/createGeneralStoreMarkers.sqf b/client/functions/createGeneralStoreMarkers.sqf index d45a3d7be..23f76b203 100644 --- a/client/functions/createGeneralStoreMarkers.sqf +++ b/client/functions/createGeneralStoreMarkers.sqf @@ -21,6 +21,6 @@ _markerName setMarkerTypeLocal "mil_dot"; _markerName setMarkerColorLocal "ColorBlue"; _markerName setMarkerSizeLocal [1,1]; - _markerName setMarkerTextLocal "General Store"; + //_markerName setMarkerTextLocal "General Store"; }; } forEach entities "CAManBase"; diff --git a/client/functions/createGunStoreMarkers.sqf b/client/functions/createGunStoreMarkers.sqf index 90e0e6596..f93eacc6d 100644 --- a/client/functions/createGunStoreMarkers.sqf +++ b/client/functions/createGunStoreMarkers.sqf @@ -42,7 +42,7 @@ _col_mixed = "ColorOrange"; _markerName setMarkerTypeLocal "mil_dot"; _markerName setMarkerColorLocal "ColorRed"; _markerName setMarkerSizeLocal [1,1]; - _markerName setMarkerTextLocal "GUN STORE"; + //_markerName setMarkerTextLocal "GUN STORE"; */ // Gun store description @@ -54,7 +54,7 @@ _col_mixed = "ColorOrange"; _markerName setMarkerTypeLocal "mil_dot"; _markerName setMarkerColorLocal _col_empty; _markerName setMarkerSizeLocal [1,1]; - _markerName setMarkerTextLocal "GUN STORE"; + //_markerName setMarkerTextLocal "GUN STORE"; // _markerName setMarkerAlphaLocal 0.5; _status pushBack "EMPTY"; @@ -74,22 +74,22 @@ _setStatus = case "EMPTY": { _markerNameZone setmarkerColorLocal _col_empty; _markerNameDescription setmarkerColorLocal _col_empty; - _markerNameDescription setMarkerTextLocal "GUN STORE"; + //_markerNameDescription setMarkerTextLocal "GUN STORE"; }; case "ENEMY": { _markerNameZone setmarkerColorLocal _col_enemy; _markerNameDescription setmarkerColorLocal _col_enemy; - _markerNameDescription setMarkerTextLocal "GUN STORE (Enemies)"; + _markerNameDescription setMarkerTextLocal "Enemies"; }; case "FRIENDLY": { _markerNameZone setmarkerColorLocal _col_friendly; _markerNameDescription setmarkerColorLocal _col_friendly; - _markerNameDescription setMarkerTextLocal "GUN STORE (Allies)"; + _markerNameDescription setMarkerTextLocal "Allies"; }; case "MIXED": { _markerNameZone setmarkerColorLocal _col_mixed; _markerNameDescription setmarkerColorLocal _col_mixed; - _markerNameDescription setMarkerTextLocal "GUN STORE (Enemies and Allies)"; + _markerNameDescription setMarkerTextLocal "Enemies and Allies"; }; }; diff --git a/client/functions/createVehicleStoreMarkers.sqf b/client/functions/createVehicleStoreMarkers.sqf index 206c1937f..7e1e6bffe 100644 --- a/client/functions/createVehicleStoreMarkers.sqf +++ b/client/functions/createVehicleStoreMarkers.sqf @@ -21,6 +21,6 @@ _markerName setMarkerTypeLocal "mil_dot"; _markerName setMarkerColorLocal "ColorOrange"; _markerName setMarkerSizeLocal [1,1]; - _markerName setMarkerTextLocal "Vehicle Store"; + //_markerName setMarkerTextLocal "Vehicle Store"; }; } forEach entities "CAManBase"; diff --git a/mission.sqm b/mission.sqm index 282fb6563..e5fc7a5fc 100644 --- a/mission.sqm +++ b/mission.sqm @@ -2402,7 +2402,7 @@ class Mission }; class Markers { - items=197; + items=202; class Item0 { position[]={3612.1487,12.11851,13020.892}; @@ -3723,14 +3723,14 @@ class Mission }; class Item174 { - position[]={5921.7031,224.43871,20139.104}; + position[]={5862.7539,223.64549,20136.576}; name="VehStore6_heliSpawn"; type="Empty"; colorName="ColorBlack"; }; class Item175 { - position[]={5861.2695,223.71884,20135.684}; + position[]={5860.1025,224.68323,20118.383}; name="VehStore6_landSpawn"; type="Empty"; colorName="ColorBlack"; @@ -3882,6 +3882,46 @@ class Mission type="Empty"; colorName="ColorOrange"; }; + class Item197 + { + position[]={24139,0,6025}; + name="General Store"; + text="General Store"; + type="mil_dot"; + colorName="ColorBlue"; + }; + class Item198 + { + position[]={24139,0,5330}; + name="Gun Store"; + text="Gun Store"; + type="mil_dot"; + colorName="ColorYellow"; + }; + class Item199 + { + position[]={24139,0,4635}; + name="Parking"; + text="Parking"; + type="mil_dot"; + colorName="ColorKhaki"; + }; + class Item200 + { + position[]={24139,0,3940}; + name="Storage"; + text="Storage"; + type="mil_dot"; + colorName="ColorUNKNOWN"; + }; + class Item201 + { + position[]={24139,0,3245}; + name="Vehicle Store"; + text="Vehicle Store"; + type="mil_dot"; + colorName="ColorOrange"; + }; }; }; class Intro From 1fae7e975b07446b3599879a6e1bcac0e7a0cf47 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 1 Jul 2015 07:48:23 -0700 Subject: [PATCH 500/544] Map cleanup, gun store warning fix. --- client/functions/createGunStoreMarkers.sqf | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/client/functions/createGunStoreMarkers.sqf b/client/functions/createGunStoreMarkers.sqf index f93eacc6d..07bda7b64 100644 --- a/client/functions/createGunStoreMarkers.sqf +++ b/client/functions/createGunStoreMarkers.sqf @@ -68,28 +68,35 @@ _setStatus = { if(_status select (_this select 0) == (_this select 1)) exitWith {}; - _markerNameZone = format ["marker_shop_zone_%1", _gunStores select (_this select 0)]; - _markerNameDescription = format ["marker_shop_desc_%1", _gunStores select (_this select 0)]; - switch(_this select 1) do { + _markerName = format ["marker_shop_desc_%1",_x]; + _markerNameZone = format ["marker_shop_zone_%1", _gunStores select (_this select 0)]; + _markerNameDescription = format ["marker_shop_desc_%1", _gunStores select (_this select 0)]; + _npcPos = getPosATL _x; + switch(_this select 1) do { case "EMPTY": { _markerNameZone setmarkerColorLocal _col_empty; _markerNameDescription setmarkerColorLocal _col_empty; - //_markerNameDescription setMarkerTextLocal "GUN STORE"; + deleteMarkerLocal _markerName; + _marker = createMarkerLocal [_markerName, _npcPos]; + _markerName setMarkerShapeLocal "ICON"; + _markerName setMarkerTypeLocal "mil_dot"; + _markerName setMarkerColorLocal _col_empty; + _markerName setMarkerSizeLocal [1,1]; }; case "ENEMY": { _markerNameZone setmarkerColorLocal _col_enemy; _markerNameDescription setmarkerColorLocal _col_enemy; - _markerNameDescription setMarkerTextLocal "Enemies"; + _markerNameDescription setMarkerTextLocal "GUN STORE (Enemies)"; }; case "FRIENDLY": { _markerNameZone setmarkerColorLocal _col_friendly; _markerNameDescription setmarkerColorLocal _col_friendly; - _markerNameDescription setMarkerTextLocal "Allies"; + _markerNameDescription setMarkerTextLocal "GUN STORE (Allies)"; }; case "MIXED": { _markerNameZone setmarkerColorLocal _col_mixed; _markerNameDescription setmarkerColorLocal _col_mixed; - _markerNameDescription setMarkerTextLocal "Enemies and Allies"; + _markerNameDescription setMarkerTextLocal "GUN STORE (Enemies and Allies)"; }; }; From 5293710c91c4978722e9f29b2ed12336865f6ab8 Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Wed, 1 Jul 2015 07:51:14 -0700 Subject: [PATCH 501/544] Update createGunStoreMarkers.sqf --- client/functions/createGunStoreMarkers.sqf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/client/functions/createGunStoreMarkers.sqf b/client/functions/createGunStoreMarkers.sqf index 07bda7b64..1eb218979 100644 --- a/client/functions/createGunStoreMarkers.sqf +++ b/client/functions/createGunStoreMarkers.sqf @@ -68,11 +68,11 @@ _setStatus = { if(_status select (_this select 0) == (_this select 1)) exitWith {}; - _markerName = format ["marker_shop_desc_%1",_x]; - _markerNameZone = format ["marker_shop_zone_%1", _gunStores select (_this select 0)]; - _markerNameDescription = format ["marker_shop_desc_%1", _gunStores select (_this select 0)]; - _npcPos = getPosATL _x; - switch(_this select 1) do { + _markerName = format ["marker_shop_desc_%1",_x]; + _markerNameZone = format ["marker_shop_zone_%1", _gunStores select (_this select 0)]; + _markerNameDescription = format ["marker_shop_desc_%1", _gunStores select (_this select 0)]; + _npcPos = getPosATL _x; + switch(_this select 1) do { case "EMPTY": { _markerNameZone setmarkerColorLocal _col_empty; _markerNameDescription setmarkerColorLocal _col_empty; From 4649db78f1ece65286428ab3fd7c751588791e42 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 1 Jul 2015 09:05:01 -0700 Subject: [PATCH 502/544] Resupply fixes. Thanks Yates --- addons/scripts/fn_resupplytruck.sqf | 15 +++++++-------- addons/scripts/resupply_actions.sqf | 6 ++++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 744064d08..db5d50be5 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -291,7 +291,6 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { if ({_vehicle isKindOf _x} count ["B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F"] > 0) then { private["_text"]; - [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; _text call _titleText; @@ -306,7 +305,6 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { if (_vehicle isKindOf "B_Plane_CAS_01_F") then { private["_text"]; - [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", _vehName]; _text call _titleText; @@ -321,7 +319,6 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { if (_vehicle isKindOf "O_Plane_CAS_02_F") then { private["_text"]; - [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", _vehName]; _text call _titleText; @@ -336,7 +333,6 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { if (_vehicle isKindOf "I_Plane_Fighter_03_CAS_F") then { private["_text"]; - [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", _vehName]; _text call _titleText; @@ -351,7 +347,6 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { if (_vehicle isKindOf "O_Heli_Light_02_F") then { private["_text"]; - [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", _vehName]; _text call _titleText; @@ -366,7 +361,6 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { if ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0) then { private["_text"]; - [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; _text call _titleText; @@ -381,7 +375,6 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F", "O_Heli_Light_02_F", "I_Plane_Fighter_03_CAS_F"] > 0) then { private["_text"]; - [[_vehicle,0],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; _text = format ["Reloading %1...", if (_magName != "") then { _magName } else { _vehName }]; _text call _titleText; @@ -399,9 +392,15 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { } forEach _turretsArray; if !({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "B_Mortar_01_F", "O_Mortar_01_F", "I_Mortar_01_F", "O_Heli_Light_02_F", "I_Plane_Fighter_03_CAS_F"] > 0) then { - _vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure + [[_vehicle,1],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; // Full ammo reset just to be sure }; + if ({_vehicle isKindOf _x} count ["B_Heli_Light_01_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_unarmed_F"] > 0) then { + // Add flares to those poor helis + _vehicle addWeaponTurret ["CMFlareLauncher", [-1]]; + _vehicle addMagazineTurret ["60Rnd_CMFlare_Chaff_Magazine", [-1]]; + }; + if (damage _vehicle > 0.001) then { call _checkAbortConditions; while {damage _vehicle > 0.001} do { diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf index cd7112cf0..cf744a6ff 100644 --- a/addons/scripts/resupply_actions.sqf +++ b/addons/scripts/resupply_actions.sqf @@ -30,6 +30,7 @@ A3W_fnc_addMagazineTurret = { A3W_fnc_addMagazineTurretMortar = { private["_mortar"]; _mortar = _this select 0; + _mortar setVehicleAmmoDef 0; _mortar addMagazineTurret ["8Rnd_82mm_Mo_shells",[0]]; _mortar addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[0]]; _mortar addMagazineTurret ["8Rnd_82mm_Mo_LG",[0]]; @@ -38,6 +39,7 @@ A3W_fnc_addMagazineTurretMortar = { A3W_fnc_addMagazineTurretBcas = { private["_bcas"]; _bcas = _this select 0; + _bcas setVehicleAmmoDef 0; _bcas removeWeaponTurret ["Missile_AGM_02_Plane_CAS_01_F",[-1]]; _bcas removeWeaponTurret ["Rocket_04_HE_Plane_CAS_01_F",[-1]]; _bcas removeWeaponTurret ["Rocket_04_AP_Plane_CAS_01_F",[-1]]; @@ -50,6 +52,7 @@ A3W_fnc_addMagazineTurretBcas = { A3W_fnc_addMagazineTurretOcas = { private["_ocas"]; _ocas = _this select 0; + _ocas setVehicleAmmoDef 0; _ocas removeWeaponTurret ["Missile_AGM_01_Plane_CAS_02_F",[-1]]; _ocas removeWeaponTurret ["Rocket_03_AP_Plane_CAS_02_F",[-1]]; _ocas removeWeaponTurret ["Bomb_03_Plane_CAS_02_F",[-1]]; @@ -62,6 +65,7 @@ A3W_fnc_addMagazineTurretOcas = { A3W_fnc_addMagazineTurretIcas = { private["_Icas"]; _Icas = _this select 0; + _Icas setVehicleAmmoDef 0; _Icas removeWeaponTurret ["missiles_SCALPEL",[-1]]; _Icas addMagazineTurret ["300Rnd_20mm_shells",[-1]]; _Icas addMagazineTurret ["300Rnd_20mm_shells",[-1]]; @@ -73,6 +77,7 @@ A3W_fnc_addMagazineTurretIcas = { A3W_fnc_addMagazineTurretHorca = { private["_Horca"]; _Horca = _this select 0; + _Horca setVehicleAmmoDef 0; _Horca removeWeaponTurret ["missiles_DAGR",[-1]]; _Horca addWeaponTurret ["missiles_DAR",[-1]]; _Horca addMagazineTurret ["2000Rnd_65x39_Belt_Tracer_Green_Splash",[-1]]; @@ -83,6 +88,7 @@ A3W_fnc_addMagazineTurretHorca = { A3W_fnc_addMagazineTurretUav2 = { private["_uav2"]; _uav2 = _this select 0; + _uav2 setVehicleAmmoDef 0; _uav2 addMagazineTurret ["Laserbatteries",[0]]; _uav2 addMagazineTurret ["2Rnd_LG_scalpel",[0]]; _uav2 addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; From e2fc5597b56717071fdd12e8a296b425df5b61ea Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 1 Jul 2015 09:16:19 -0700 Subject: [PATCH 503/544] Buzzard CAS tweaks. --- addons/scripts/resupply_actions.sqf | 2 +- server/functions/spawnStoreObject.sqf | 2 +- storeConfig.sqf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf index cf744a6ff..e7beb458c 100644 --- a/addons/scripts/resupply_actions.sqf +++ b/addons/scripts/resupply_actions.sqf @@ -71,7 +71,7 @@ A3W_fnc_addMagazineTurretIcas = { _Icas addMagazineTurret ["300Rnd_20mm_shells",[-1]]; _Icas addMagazineTurret ["2Rnd_AAA_missiles",[-1]]; _Icas addMagazineTurret ["2Rnd_GBU12_LGB_MI10",[-1]]; - _Icas addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + _Icas addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1]]; }; A3W_fnc_addMagazineTurretHorca = { diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 09a41a822..8b7978d68 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -275,7 +275,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object addMagazineTurret ["300Rnd_20mm_shells",[-1]]; _object addMagazineTurret ["2Rnd_AAA_missiles",[-1]]; _object addMagazineTurret ["2Rnd_GBU12_LGB_MI10",[-1]]; - _object addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; + _object addMagazineTurret ["240Rnd_CMFlare_Chaff_Magazine",[-1]]; }; case (_object isKindOf "O_Heli_Light_02_F"): diff --git a/storeConfig.sqf b/storeConfig.sqf index 346ca6021..d442596ec 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -795,7 +795,7 @@ helicoptersArray = compileFinal str planesArray = compileFinal str [ ["A-143 Buzzard AA", "I_Plane_Fighter_03_AA_F", 40000, "vehicle"], - ["A-143 Buzzard CAS", "I_Plane_Fighter_03_CAS_F", 50000, "vehicle"], + ["A-143 Buzzard CAS", "I_Plane_Fighter_03_CAS_F", 45000, "vehicle"], ["A-164 Wipeout CAS", "B_Plane_CAS_01_F", 55000, "vehicle"], ["To-199 Neophron CAS", "O_Plane_CAS_02_F", 55000, "vehicle"], ["MQ4A Greyhawk ATGM UAV", "B_UAV_02_F", 25000, "vehicle"], From 14457c388a984c77a44cf72f651ad61b39ccb68f Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 1 Jul 2015 22:30:15 -0700 Subject: [PATCH 504/544] Renabled improved spawning. Thanks Jake --- addons/spawn/functions.sqf | 5 +++-- client/functions/playerSpawn.sqf | 3 +++ init.sqf | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/addons/spawn/functions.sqf b/addons/spawn/functions.sqf index 52de59936..545254927 100644 --- a/addons/spawn/functions.sqf +++ b/addons/spawn/functions.sqf @@ -36,8 +36,9 @@ if (!isServer) then { _pos2 = getPos _player; if ((_pos1 distance _pos2) > 50) exitWith { [[_player,false], "A3W_fnc_hideObjectGlobal",false, false] call BIS_fnc_MP; - _player allowDamage true; - enableEnvironment true; + _player hideObjectGlobal false; + _player allowDamage true; + enableEnvironment true; 0 fadeSound 1; true }; diff --git a/client/functions/playerSpawn.sqf b/client/functions/playerSpawn.sqf index 8e8d633b8..912ed3625 100644 --- a/client/functions/playerSpawn.sqf +++ b/client/functions/playerSpawn.sqf @@ -107,6 +107,9 @@ player setVariable ["playerSpawning", false, true]; private["_max_money"]; _max_money = 300000; +player hideObjectGlobal false; +player allowDamage true; + if (player getVariable ["bmoney", 0] > _max_money) then { player setVariable ["bmoney", _max_money, true]; }; diff --git a/init.sqf b/init.sqf index ce3cd6378..250bef0e7 100644 --- a/init.sqf +++ b/init.sqf @@ -31,7 +31,7 @@ if (isNull player) then { X_JIP = true }; A3W_scriptThreads = []; [DEBUG] call compile preprocessFileLineNumbers "globalCompile.sqf"; -//[] spawn compile preprocessFileLineNumbers "addons\spawn\functions.sqf"; +[] spawn compile preprocessFileLineNumbers "addons\spawn\functions.sqf"; //init Wasteland Core [] execVM "config.sqf"; From f6d741349ef3f9f2d205a50a8b0fb9fd6fc05fe8 Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Wed, 1 Jul 2015 22:31:17 -0700 Subject: [PATCH 505/544] Update functions.sqf --- addons/spawn/functions.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/spawn/functions.sqf b/addons/spawn/functions.sqf index 545254927..905517d96 100644 --- a/addons/spawn/functions.sqf +++ b/addons/spawn/functions.sqf @@ -37,8 +37,8 @@ if (!isServer) then { if ((_pos1 distance _pos2) > 50) exitWith { [[_player,false], "A3W_fnc_hideObjectGlobal",false, false] call BIS_fnc_MP; _player hideObjectGlobal false; - _player allowDamage true; - enableEnvironment true; + _player allowDamage true; + enableEnvironment true; 0 fadeSound 1; true }; From 94faa8ec8f96f3f9cf61de008c4ac0166aa2fff0 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 9 Jul 2015 10:13:37 -0700 Subject: [PATCH 506/544] Tweaks for weather and improved spawning. --- addons/scripts/DynamicWeatherEffects.sqf | 8 ++++---- addons/spawn/functions.sqf | 4 ++-- client/functions/playerSpawn.sqf | 4 +--- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/addons/scripts/DynamicWeatherEffects.sqf b/addons/scripts/DynamicWeatherEffects.sqf index e869e58f7..272e92106 100644 --- a/addons/scripts/DynamicWeatherEffects.sqf +++ b/addons/scripts/DynamicWeatherEffects.sqf @@ -60,15 +60,15 @@ _minimumOvercast = 0; // Overcast intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumOvercast // (0 = no overcast, 1 = maximum overcast). (Suggested value: 1). -_maximumOvercast = 1; +_maximumOvercast = 0; // When raining, rain intensity never falls below this value. Must be between 0 and 1 and less than or equal to _maximumRain // (0 = no rain, 1 = maximum rain intensity). (Suggested value: 0); -_minimumRain = 0.01; +_minimumRain = 0; // When raining, rain intensity never exceeds this value. Must be between 0 and 1 and greater than or equal to _minimumRain // (0 = no rain, 1 = maximum rain intensity). (Suggested value: 0.8); -_maximumRain = 0.5; +_maximumRain = 0; // Wind vector strength never falls below this value. Must be greater or equal to 0 and less than or equal to _maximumWind. // (Suggested value: 0); @@ -93,7 +93,7 @@ _rainIntervalRainProbability = 0; // Minimum time in minutes for rain intervals. Must be greater or equal to 0 and less than or equal to _maxRainIntervalTimeMin. // (Suggested value: 0). -_minRainIntervalTimeMin = 1; +_minRainIntervalTimeMin = 0; // Maximum time in minutes for rain intervals. Must be greater than or equal to _minRainIntervalTimeMin. (Suggested value: // (_maxWeatherChangeTimeMin + _maxTimeBetweenWeatherChangesMin) / 2). diff --git a/addons/spawn/functions.sqf b/addons/spawn/functions.sqf index 905517d96..1a881e879 100644 --- a/addons/spawn/functions.sqf +++ b/addons/spawn/functions.sqf @@ -37,8 +37,8 @@ if (!isServer) then { if ((_pos1 distance _pos2) > 50) exitWith { [[_player,false], "A3W_fnc_hideObjectGlobal",false, false] call BIS_fnc_MP; _player hideObjectGlobal false; - _player allowDamage true; - enableEnvironment true; + _player allowDamage true; + enableEnvironment true; 0 fadeSound 1; true }; diff --git a/client/functions/playerSpawn.sqf b/client/functions/playerSpawn.sqf index 912ed3625..2be978117 100644 --- a/client/functions/playerSpawn.sqf +++ b/client/functions/playerSpawn.sqf @@ -97,6 +97,7 @@ if (!isNil "playerData_spawnDir") then player setVelocity [0,0,0]; [player, false] call fn_hideObjectGlobal; +player hideObjectGlobal false; player allowDamage true; 9999 cutText ["", "BLACK IN"]; @@ -107,9 +108,6 @@ player setVariable ["playerSpawning", false, true]; private["_max_money"]; _max_money = 300000; -player hideObjectGlobal false; -player allowDamage true; - if (player getVariable ["bmoney", 0] > _max_money) then { player setVariable ["bmoney", _max_money, true]; }; From 9d439859e361c42bfba02c0e6703fda7111fd740 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 9 Jul 2015 10:45:03 -0700 Subject: [PATCH 507/544] Tweaks for resupply. --- addons/scripts/fn_resupplytruck.sqf | 5 ++--- addons/scripts/resupply_actions.sqf | 8 ++++++++ persistence/world/vFunctions.sqf | 5 +++++ server/functions/vehicleSetup.sqf | 2 +- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index db5d50be5..e64a9a629 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -395,10 +395,9 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { [[_vehicle,1],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; // Full ammo reset just to be sure }; - if ({_vehicle isKindOf _x} count ["B_Heli_Light_01_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_unarmed_F"] > 0) then { + if ({_vehicle isKindOf _x} count ["B_Heli_Light_01_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_unarmed_F", "C_Heli_Light_01_civil_F"] > 0) then { // Add flares to those poor helis - _vehicle addWeaponTurret ["CMFlareLauncher", [-1]]; - _vehicle addMagazineTurret ["60Rnd_CMFlare_Chaff_Magazine", [-1]]; + [[_vehicle, [_mag, _turretPath]], "A3W_fnc_addMagazineTurretLheli", _vehicle, false] call BIS_fnc_MP; }; if (damage _vehicle > 0.001) then { diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf index e7beb458c..36c51cb9b 100644 --- a/addons/scripts/resupply_actions.sqf +++ b/addons/scripts/resupply_actions.sqf @@ -94,6 +94,14 @@ A3W_fnc_addMagazineTurretUav2 = { _uav2 addMagazineTurret ["120Rnd_CMFlare_Chaff_Magazine",[-1]]; }; +A3W_fnc_addMagazineTurretLheli = { + private["_Lheli"]; + _Lheli = _this select 0; + _Lheli removeMagazineTurret ["60Rnd_CMFlare_Chaff_Magazine", [-1]]; + _Lheli addWeaponTurret ["CMFlareLauncher", [-1]]; + _Lheli addMagazineTurret ["60Rnd_CMFlare_Chaff_Magazine", [-1]]; +}; + if (isServer) exitWith {}; resupply_vehicles = [ diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 6df8884ee..316bad9d7 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -156,6 +156,11 @@ v_restoreVehicle = { _obj addWeaponTurret ["missiles_DAR",[-1]]; }; + if ({_obj isKindOf _x} count ["B_Heli_Light_01_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_unarmed_F", "C_Heli_Light_01_civil_F"] > 0) then { + _obj removeWeaponTurret ["CMFlareLauncher",[-1]]; + _obj addWeaponTurret ["CMFlareLauncher",[-1]]; + }; + //override the lock-state for vehicles form this this if ({_obj isKindOf _x} count A3W_locked_vehicles_list > 0) then { _lock_state = 2; diff --git a/server/functions/vehicleSetup.sqf b/server/functions/vehicleSetup.sqf index 3fe9cbfd1..a6e951ea5 100644 --- a/server/functions/vehicleSetup.sqf +++ b/server/functions/vehicleSetup.sqf @@ -82,7 +82,7 @@ switch (true) do _centerOfMass set [2, -0.657]; // original = -0.557481 _vehicle setCenterOfMass _centerOfMass; }; - case ({_class isKindOf _x} count ["B_Heli_Light_01_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_unarmed_F"] > 0): + case ({_class isKindOf _x} count ["B_Heli_Light_01_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_unarmed_F", "C_Heli_Light_01_civil_F"] > 0): { // Add flares to those poor helis _vehicle addWeaponTurret ["CMFlareLauncher", [-1]]; From 8f6f32d4337817d898b8a5455db0f8f4e7658213 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 9 Jul 2015 10:58:57 -0700 Subject: [PATCH 508/544] Tweaks for vehicle saving. --- addons/scripts/vehicleResave.sqf | 1 + addons/scripts/vehicleSave.sqf | 1 + addons/scripts/weaponResave.sqf | 1 + addons/scripts/weaponSave.sqf | 1 + server/functions/spawnStoreObject.sqf | 3 +++ 5 files changed, 7 insertions(+) diff --git a/addons/scripts/vehicleResave.sqf b/addons/scripts/vehicleResave.sqf index 693fd35d9..f488899ff 100644 --- a/addons/scripts/vehicleResave.sqf +++ b/addons/scripts/vehicleResave.sqf @@ -43,6 +43,7 @@ if (isNil "_vehicle" || {typeName _vehicle != typeName objNull || {isNull _vehic if (_success) then { [[netId _vehicle, 1], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Unlock _vehicle setVariable ["A3W_purchasedVehicle", true, true]; + _vehicle setVariable ["A3W_missionVehicle", false, false]; _vehicle setVariable ["ownerUID", getPlayerUID player, true]; _vehicle setVariable ["ownerN", name player, true]; _vehicle setVariable ["baseSaving_spawningTime", nil, true]; diff --git a/addons/scripts/vehicleSave.sqf b/addons/scripts/vehicleSave.sqf index 93f012570..febc0f2a1 100644 --- a/addons/scripts/vehicleSave.sqf +++ b/addons/scripts/vehicleSave.sqf @@ -43,6 +43,7 @@ if (isNil "_vehicle" || {typeName _vehicle != typeName objNull || {isNull _vehic if (_success) then { [[netId _vehicle, 1], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Unlock _vehicle setVariable ["A3W_purchasedVehicle", true, true]; + _vehicle setVariable ["A3W_missionVehicle", false, false]; _vehicle setVariable ["ownerUID", getPlayerUID player, true]; _vehicle setVariable ["ownerN", name player, true]; _vehicle setVariable ["baseSaving_spawningTime", nil, true]; diff --git a/addons/scripts/weaponResave.sqf b/addons/scripts/weaponResave.sqf index 3f974d626..75ffda0d9 100644 --- a/addons/scripts/weaponResave.sqf +++ b/addons/scripts/weaponResave.sqf @@ -43,6 +43,7 @@ if (isNil "_vehicle" || {typeName _vehicle != typeName objNull || {isNull _vehic if (_success) then { [[netId _vehicle, 1], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Unlock _vehicle setVariable ["A3W_purchasedVehicle", true, true]; + _vehicle setVariable ["A3W_missionVehicle", false, false]; _vehicle setVariable ["ownerUID", getPlayerUID player, true]; _vehicle setVariable ["ownerN", name player, true]; _vehicle setVariable ["baseSaving_spawningTime", nil, true]; diff --git a/addons/scripts/weaponSave.sqf b/addons/scripts/weaponSave.sqf index 9ab638df6..a72d03a9e 100644 --- a/addons/scripts/weaponSave.sqf +++ b/addons/scripts/weaponSave.sqf @@ -43,6 +43,7 @@ if (isNil "_vehicle" || {typeName _vehicle != typeName objNull || {isNull _vehic if (_success) then { [[netId _vehicle, 1], "A3W_fnc_setLockState", _vehicle] call A3W_fnc_MP; // Unlock _vehicle setVariable ["A3W_purchasedVehicle", true, true]; + _vehicle setVariable ["A3W_missionVehicle", false, false]; _vehicle setVariable ["ownerUID", getPlayerUID player, true]; _vehicle setVariable ["ownerN", name player, true]; _vehicle setVariable ["baseSaving_spawningTime", nil, true]; diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 8b7978d68..941228a79 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -171,6 +171,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore if ({_object isKindOf _x} count ["UAV_02_base_F", "UGV_01_base_F"] > 0) then { _object setVariable ["A3W_purchasedVehicle", true]; + _object setVariable ["A3W_missionVehicle", false]; _object setVariable ["ownerUID", getPlayerUID _player, true]; _object setVariable ["ownerN", name _player, true]; }; @@ -180,6 +181,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object setVariable ["objectLocked", true, true]; _object setVariable ["R3F_LOG_disabled", true, true]; _object setVariable ["A3W_purchasedVehicle", true]; + _object setVariable ["A3W_missionVehicle", false]; _object setVariable ["ownerUID", getPlayerUID _player, true]; _object setVariable ["ownerN", name _player, true]; }; @@ -300,6 +302,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object addMagazineTurret ["8Rnd_82mm_Mo_Flare_white",[0]]; _object addMagazineTurret ["8Rnd_82mm_Mo_LG",[0]]; _object setVariable ["A3W_purchasedVehicle", true]; + _object setVariable ["A3W_missionVehicle", false]; _object setVariable ["ownerUID", getPlayerUID _player, true]; _object setVariable ["ownerN", name _player, true]; }; From d3e3c75f413ff12334a3ea878e1d23cb2dc5c3a1 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 9 Jul 2015 11:12:38 -0700 Subject: [PATCH 509/544] Anti hack improvements. Thanks AgentRev --- server/antihack/compileFuncs.sqf | 6 +++--- server/antihack/payload.sqf | 11 ++++++----- server/antihack/serverSide.sqf | 3 +++ server/default_config.sqf | 24 +++++++++++++----------- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/server/antihack/compileFuncs.sqf b/server/antihack/compileFuncs.sqf index 07aee192b..a217e9374 100644 --- a/server/antihack/compileFuncs.sqf +++ b/server/antihack/compileFuncs.sqf @@ -54,13 +54,13 @@ _packetKey = call compile (_assignPacketKey + "_mpPacketKey"); if (isServer) then { - [_checksum] execVM "server\antihack\serverSide.sqf"; // COMMENT THIS LINE IF YOU HAVE ISSUES WITH CUSTOM UNIT SCRIPTS, LIKE AI RECRUITMENT + [_checksum] execVM "server\antihack\serverSide.sqf"; }; - /*if (!isDedicated) then + if (!isDedicated && ["A3W_antiHackCheck"] call isConfigOn) then { [_checksum, _rscParams] execVM "server\antihack\payload.sqf"; - };*/ + }; missionNamespace setVariable [_compileKey, compileFinal "true"]; //}; diff --git a/server/antihack/payload.sqf b/server/antihack/payload.sqf index 4910cb1cb..ea2c55c0d 100644 --- a/server/antihack/payload.sqf +++ b/server/antihack/payload.sqf @@ -6,7 +6,9 @@ // @file Author: AgentRev, Tonic, AWA (OpenDayZ.net) // @file Created: 01/06/2013 21:31 -if (isDedicated) exitWith {}; +// This file can be moved to "A3Wasteland_settings\antihack" in order to be loaded externally from the server, which removes the need for it to be in the mission PBO + +if (!hasInterface) exitWith {}; private ["_flagChecksum", "_rscParams", "_cheatFlag", "_cfgPatches", "_escCheck", "_patchClass", "_patchName", "_ctrlCfg", "_memAnomaly", "_minRecoil", "_currentRecoil", "_loopCount"]; _flagChecksum = _this select 0; @@ -14,8 +16,6 @@ _rscParams = _this select 1; waitUntil {!isNull player}; -if (!hasInterface && typeOf player == "HeadlessClient_F") exitWith {}; - // diag_log "ANTI-HACK starting..."; _cfgPatches = configFile >> "CfgPatches"; @@ -39,7 +39,8 @@ for "_i" from 0 to (count _cfgPatches - 1) do "rhs_main", // RHS - Game Options "mcc_sandbox", // MCC keys "agm_core", // AGM Options - "ace_optionsmenu" // ACE Options + "ace_optionsmenu", // ACE Options + "alive_ui" // ALiVE ]) then { _escCheck = false }; }; @@ -231,7 +232,7 @@ while { true } do _cheatFlag = ["hack variable", _x]; }; sleep 0.01; - } forEach ["DurkSintax_Pro_RE", "iBeFlying", "dayz_godmode", "var_curCheatMenu", "Main_Fury_Menu_", "Hack_Pos_Orig", "REdasfsfwef", "ly_re_onetime", "XXMMWW_keybinds", "FUNMENUON", "JJMMEE_INIT_MENU", "activeITEMlistanzahl", "Detected_Remote_Execution", "g0dmode", "Pro_RE", "fn_runCheat", "xyzaa", "GOLDENS_GLOBAL_SHIT_YEAH", "HaxSmokeOn", "Lysto_Lyst", "pathtoscrdir", "ewrfdfcsf", "Ug8YtyGyvguGF", "LYSTIC_MENU_LOADED", "qofjqpofq", "c0lorthem", "shnmenu", "letmeknow", "DAYZ_CA1_Lollipops", "TONIC_HAS_A_GAPER_NUKE_2", "fazelist", "S_NyanCat_Toggle", "faze_fill", "PL4YER_CANN0N_T0GGLE", "aKTitans", "Fury_Are_G0ds", "LY_Exec", "inf_ammo_loop_infiSTAR", "Wookie_Pro_RE", "nook3_vars", "Wookie_Init_Menu", "TTT5OptionNR", "Team_Fury_Reck_Prebs", "faze_funcs_inited", "mein1", "biggies_pro_re", "godlol", "Lystic_Init", "FAG_NEON", "Lystic_Exec", "faze_getControl", "vehicleg0dv3_BushWookie", "earthBob", "t0ggl3", "morphm3", "fsdddInfectLOL", "cargod", "Init_Menu_Fury", "abcdefGEH", "RandyRandRanderson", "Wep_Spawn_Shitt", "Fury_Nuke", "faze_hax_dbclick", "LY_Init", "W00kie_Pro_RE", "LY_fly", "fdsgdr42424", "battleHIGH_vehpub", "WHY_ARE_THERE_SO_MANY_FISH_IN_THE_BIG_BLUE_OCEAN", "MenuInitLol", "wierdo", "mdh_ash", "faze_initMenu", "SG_Turtz_Are_H000t", "fuckfestv2", "xZombieBait", "W00kie_Init_Menu", "rainbow_var", "biggies_menu_open", "HAAJASDOKAD_mein", "CharlieSheenkeybinds", "POOP_Main", "colt_lmaoooo", "W_O_O_K_I_E_Pro_RE", "toggle_keyEH", "JME_M_E_N_U_initMenu", "dawr5wdfsf23", "FURY_IS_SEXC", "LOKI_GUI_Key_Color", "MPGHALLDAYEVRYDAY47LETSDOTHISBBYYAAAAAAA", "infi_STAR_exec", "M_R_IRecommend", "xtags_star_xx", "ChangingBullets_xx", "byebyezombies", "Root_Main4", "igodokxtt", "unlimammo", "tw4etinitMenu", "TORNADO_NOT_MOVE_NIGGA", "HydroxusRandomVarSwag2222", "oh_nmoe_pls", "Team_OMFG_WE_ARE_SEXC", "plrshldblckls", "Jme_Is_God", "Monky_funcs_inited", "fuckmegrandma", "qopfkqpofqk", "ShadowyFaz3VehZ", "Veh_Spawn_Shitt", "wuat_fpsMonitor", "Monky_hax_toggled", "mehatingjews", "InfiniteAmmo", "PersonWhomMadeThisCorroded_Init", "nuke_vars", "debug_star_colorful", "neo_fnc_throw", "W00kieMenu_hax_toggled", "AntiAntiAntiAntiHax", "Dummy_Menu", "XMVJEIUI133794_mein", "aim", "GodLolPenis", "MainMenubyThirtySix", "vehiclegooov3ood_BushWookie", "biggies_scroll_open", "ANTI_ANTI_HAX", "antiantiantiantih4x", "riasgremory_G0d_Mode", "BigFuckinBullets_0202020DDDEEDED", "monkytp", "hax_toggled", "JJJJ_MMMM___EEEEEEE_INIT_MENU", "B0X_CANN0N_T0GGLE", "omgwtfbbq", "bowonky", "ExtasyMenu_Binds", "PRO_SKILLZ_2015_ALLDAY_Noobs", "dontAddToTheArray", "rainbowbitch", "n0clip", "GLASS911_Init", "fuckfest", "BigFuckinBullets", "lmzsjgnas"]; + } forEach ["DurkSintax_Pro_RE", "iBeFlying", "dayz_godmode", "var_curCheatMenu", "Main_Fury_Menu_", "Hack_Pos_Orig", "REdasfsfwef", "ly_re_onetime", "XXMMWW_keybinds", "FUNMENUON", "JJMMEE_INIT_MENU", "activeITEMlistanzahl", "Detected_Remote_Execution", "g0dmode", "Pro_RE", "FireTide_Menu", "fn_runCheat", "xyzaa", "GOLDENS_GLOBAL_SHIT_YEAH", "HaxSmokeOn", "Lysto_Lyst", "pathtoscrdir", "ewrfdfcsf", "Ug8YtyGyvguGF", "LYSTIC_MENU_LOADED", "qofjqpofq", "c0lorthem", "shnmenu", "letmeknow", "DAYZ_CA1_Lollipops", "TONIC_HAS_A_GAPER_NUKE_2", "fazelist", "S_NyanCat_Toggle", "faze_fill", "PL4YER_CANN0N_T0GGLE", "aKTitans", "Fury_Are_G0ds", "LY_Exec", "inf_ammo_loop_infiSTAR", "youoiuoiasdfsd8433fadsfasd_Koko__hkeys", "Wookie_Pro_RE", "nook3_vars", "Wookie_Init_Menu", "TTT5OptionNR", "Team_Fury_Reck_Prebs", "faze_funcs_inited", "mein1", "biggies_pro_re", "godlol", "Lystic_Init", "FAG_NEON", "Lystic_Exec", "faze_getControl", "Fanatic_Menu", "vehicleg0dv3_BushWookie", "earthBob", "t0ggl3", "morphm3", "fsdddInfectLOL", "cargod", "Init_Menu_Fury", "abcdefGEH", "RandyRandRanderson", "Wep_Spawn_Shitt", "Fury_Nuke", "faze_hax_dbclick", "LY_Init", "W00kie_Pro_RE", "LY_fly", "fdsgdr42424", "battleHIGH_vehpub", "WHY_ARE_THERE_SO_MANY_FISH_IN_THE_BIG_BLUE_OCEAN", "MenuInitLol", "wierdo", "mdh_ash", "faze_initMenu", "SG_Turtz_Are_H000t", "fuckfestv2", "UuuNIX_M_I_S_S_I_L_E_Z", "xZombieBait", "W00kie_Init_Menu", "rainbow_var", "biggies_menu_open", "HAAJASDOKAD_mein", "CharlieSheenkeybinds", "POOP_Main", "colt_lmaoooo", "W_O_O_K_I_E_Pro_RE", "toggle_keyEH", "JME_M_E_N_U_initMenu", "dawr5wdfsf23", "FURY_IS_SEXC", "LOKI_GUI_Key_Color", "MPGHALLDAYEVRYDAY47LETSDOTHISBBYYAAAAAAA", "infi_STAR_exec", "M_R_IRecommend", "xtags_star_xx", "ChangingBullets_xx", "byebyezombies", "Root_Main4", "igodokxtt", "unlimammo", "tw4etinitMenu", "TORNADO_NOT_MOVE_NIGGA", "HydroxusRandomVarSwag2222", "oh_nmoe_pls", "Team_OMFG_WE_ARE_SEXC", "plrshldblckls", "Jme_Is_God", "Monky_funcs_inited", "SOMEONE_dsfnsjf", "fuckmegrandma", "qopfkqpofqk", "ShadowyFaz3VehZ", "Veh_Spawn_Shitt", "backtomenu", "wuat_fpsMonitor", "Monky_hax_toggled", "mehatingjews", "InfiniteAmmo", "PersonWhomMadeThisCorroded_Init", "nuke_vars", "debug_star_colorful", "SOMEONE_DurkSintax_Pro_RE", "neo_fnc_throw", "W00kieMenu_hax_toggled", "AntiAntiAntiAntiHax", "Dummy_Menu", "XMVJEIUI133794_mein", "aim", "GodLolPenis", "MainMenubyThirtySix", "vehiclegooov3ood_BushWookie", "biggies_scroll_open", "ANTI_ANTI_HAX", "Fire_ZeusMode", "antiantiantiantih4x", "riasgremory_G0d_Mode", "BigFuckinBullets_0202020DDDEEDED", "monkytp", "hax_toggled", "SOMEONE_Sweg_all_day", "JJJJ_MMMM___EEEEEEE_INIT_MENU", "B0X_CANN0N_T0GGLE", "omgwtfbbq", "bowonky", "ExtasyMenu_Binds", "PRO_SKILLZ_2015_ALLDAY_Noobs", "dontAddToTheArray", "rainbowbitch", "n0clip", "GLASS911_Init", "fuckfest", "BigFuckinBullets", "lmzsjgnas"]; }; if (isNil "_cheatFlag" && isNil "_memAnomaly") then diff --git a/server/antihack/serverSide.sqf b/server/antihack/serverSide.sqf index 066a04990..d041d27f3 100644 --- a/server/antihack/serverSide.sqf +++ b/server/antihack/serverSide.sqf @@ -8,6 +8,9 @@ if (!isServer) exitWith {}; +waitUntil {!isNil "A3W_serverSetupComplete"}; +if !(["A3W_antiHackUnitCheck"] call isConfigOn) exitWith {}; + private ["_flagChecksum", "_serverID", "_cheatFlag", "_unit"]; _flagChecksum = _this select 0; diff --git a/server/default_config.sqf b/server/default_config.sqf index 56ca4aef7..6128b60d7 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -15,6 +15,8 @@ A3W_moonLight = 1; // Moon light during night (0 = no, 1 = yes) A3W_teamPlayersMap = 1; // Show all friendly players on the map at all times, regardless of difficulty level (0 = no, 1 = yes) A3W_globalVoiceWarnTimer = 1; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) A3W_globalVoiceMaxWarns = 3; // Number of global voice warnings after which the player will be killed and crashed (0 = disabled) +A3W_antiHackUnitCheck = 1; // Detect players who spawn unauthorized AI units (0 = no, 1 = yes) - disable if you have custom unit scripts/mods like AI recruitment or ALiVE +A3W_antiHackCheck = 1; // Disable anti hack payload A3W_antiHackMinRecoil = 1.0; // Mininum recoil coefficient enforced by the antihack (recommended values: default = 1.0, TMR Mod = 0.5, VTS Weapon Resting = 0.25) (minimum: 0.02) A3W_townSpawnCooldown = 5*60; // Number of seconds to wait between each use of a spawn on friends in towns (0 = disabled) A3W_spawnBeaconCooldown = 15*60; // Number of seconds to wait between each use of an individual spawn beacon (0 = disabled) @@ -29,22 +31,22 @@ A3W_remoteBombStoreRadius = 75; // Prevent players from placing remote explos A3W_vehiclePurchaseCooldown = 45; // Number of seconds to wait before allowing someone to purchase another vehicle, don't bother setting it too high because it can be bypassed by rejoining // Player settings -A3W_startingMoney = 1500; // Amount of money that players start with +A3W_startingMoney = 1500; // Amount of money that players start with A3W_unlimitedStamina = 1; // Allow unlimited sprinting, jumping, etc. (0 = no, 1 = yes) - this also removes energy drinks from the mission A3W_bleedingTime = 60; // Time in seconds for which to allow revive after a critical injury (minimum 10 seconds) // ATM settings A3W_atmEnabled = 1; -A3W_atmMaxBalance = 300000; // Maximum amount of money that can be stored in a bank account (recommended: 1 million) -A3W_atmTransferFee = 10; // Fee in percent charged to players for money transfers to other players (0 to 50) +A3W_atmMaxBalance = 300000; // Maximum amount of money that can be stored in a bank account (recommended: 1 million) +A3W_atmTransferFee = 10; // Fee in percent charged to players for money transfers to other players (0 to 50) A3W_atmTransferAllTeams = 0; // Allow money transfers between players of all teams/sides (0 = same team only, 1 = all teams) A3W_atmEditorPlacedOnly = 0; // Only allow access via ATMs placed from the mission editor (0 = all ATMs from towns & editor allowed, 1 = ATMs from editor only) Note: Stratis has no town ATMs, only editor ones. A3W_atmMapIcons = 0; // Draw small icons on the map that indicate ATM locations (0 = no, 1 = yes) A3W_atmRemoveIfDisabled = 0; // Remove all ATMs from map if A3W_atmEnabled is set to 0 (0 = no, 1 = yes) A3W_healthTime = 60*5; //seconds till death -A3W_hungerTime = 80*60; //seconds till starving -A3W_thirstTime = 65*60; //seconds till dehydrated +A3W_hungerTime = 80*60; //seconds till starving +A3W_thirstTime = 65*60; //seconds till dehydrated // Persistence settings A3W_playerSaving = 1; // Save player data like position, health, inventory, etc. (0 = no, 1 = yes) @@ -61,7 +63,7 @@ A3W_warchestMoneySaving = 0; // Save warchest team money between server re A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts (0 = no, 1 = yes) A3W_objectLifetime = 7*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) A3W_cctvCameraSaving = 1; // Save cctv cameras between restarts (0 = no, 1 = yes) -A3W_mineSaving = 1; // Save mines between server restarts (0 = no, 1 = yes) +A3W_mineSaving = 1; // Save mines between server restarts (0 = no, 1 = yes) // List of mine ammo classes that can be saved A3W_saveable_mines_list = ["APERSTripMine_Wire_Ammo", "APERSBoundingMine_Range_Ammo", "APERSMine_Range_Ammo", "ATMine_Range_Ammo", "SLAMDirectionalMine_Wire_Ammo" ]; A3W_mineLifetime = 2*24; // Maximum lifetime in hours for mines across server restarts (0 = no time limit) @@ -77,10 +79,10 @@ PDB_AdminLogFileID = "A3W_"; // Admin log savefile prefix (change this in PDB_HackerLogFileID = "A3W_"; // Hacker log savefile prefix (change this in case you run multiple servers from the same folder) PDB_PlayersListFileID = "A3W_"; // PlayerList savefile prefix (change this in case you run multiple servers from the same folder) -A3W_vehicle_saveInterval = 1200; // Number of seconds between vehicle saves -A3W_object_saveInterval = 1200; // Number of seconds between object saves -A3W_player_saveInterval = 1200; // Number of seconds between player saves -A3W_playersList_saveInterval = 300; // Number of seconds between player list saves +A3W_vehicle_saveInterval = 1200; // Number of seconds between vehicle saves +A3W_object_saveInterval = 1200; // Number of seconds between object saves +A3W_player_saveInterval = 1200; // Number of seconds between player saves +A3W_playersList_saveInterval = 1200; // Number of seconds between player list saves A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "Plane", "UGV_01_base_F"]; // List of classes for vehicles that are saveable A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked upon restore @@ -119,5 +121,5 @@ A3W_mainMissionDelay = 5*60; // Time in seconds between Main Missions A3W_mainMissionTimeout = 60*60; // Time in seconds that a Main Mission will run for, unless completed A3W_sideMissionDelay = 5*60; // Time in seconds between Side Missions A3W_sideMissionTimeout = 60*60; // Time in seconds that a Side Mission will run for, unless completed -A3W_moneyMissionDelay = 10*60; // Time in seconds between Money Missions +A3W_moneyMissionDelay = 10*60; // Time in seconds between Money Missions A3W_moneyMissionTimeout = 60*60; // Time in seconds that a Money Mission will run for, unless completed From 432644c25c99cff42ca4843e354d16a60ea1b66d Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 9 Jul 2015 11:15:17 -0700 Subject: [PATCH 510/544] Block script injection exploit. Thanks AgentRev --- init.sqf | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/init.sqf b/init.sqf index 250bef0e7..f73cc4012 100644 --- a/init.sqf +++ b/init.sqf @@ -12,6 +12,11 @@ if(isServer)then{[] execVM 'run.sqf';}; enableSaving [false, false]; +// block script injection exploit +inGameUISetEventHandler ["PrevAction", ""]; +inGameUISetEventHandler ["Action", ""]; +inGameUISetEventHandler ["NextAction", ""]; + _descExtPath = str missionConfigFile; currMissionDir = compileFinal str (_descExtPath select [0, count _descExtPath - 15]); From dc307f0f8ca404bebdde8ec07c9037a3e53a2a09 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 9 Jul 2015 11:37:30 -0700 Subject: [PATCH 511/544] Default config tweak. --- server/default_config.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/server/default_config.sqf b/server/default_config.sqf index 6128b60d7..8e72ea399 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -15,8 +15,8 @@ A3W_moonLight = 1; // Moon light during night (0 = no, 1 = yes) A3W_teamPlayersMap = 1; // Show all friendly players on the map at all times, regardless of difficulty level (0 = no, 1 = yes) A3W_globalVoiceWarnTimer = 1; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) A3W_globalVoiceMaxWarns = 3; // Number of global voice warnings after which the player will be killed and crashed (0 = disabled) -A3W_antiHackUnitCheck = 1; // Detect players who spawn unauthorized AI units (0 = no, 1 = yes) - disable if you have custom unit scripts/mods like AI recruitment or ALiVE -A3W_antiHackCheck = 1; // Disable anti hack payload +A3W_antiHackUnitCheck = 1; // Detect players who spawn unauthorized AI units (0 = no, 1 = yes) - disable if you have custom unit scripts/mods like AI recruitment or ALiVE +A3W_antiHackCheck = 1; // Disable anti hack payload A3W_antiHackMinRecoil = 1.0; // Mininum recoil coefficient enforced by the antihack (recommended values: default = 1.0, TMR Mod = 0.5, VTS Weapon Resting = 0.25) (minimum: 0.02) A3W_townSpawnCooldown = 5*60; // Number of seconds to wait between each use of a spawn on friends in towns (0 = disabled) A3W_spawnBeaconCooldown = 15*60; // Number of seconds to wait between each use of an individual spawn beacon (0 = disabled) @@ -33,7 +33,7 @@ A3W_vehiclePurchaseCooldown = 45; // Number of seconds to wait before allowing // Player settings A3W_startingMoney = 1500; // Amount of money that players start with A3W_unlimitedStamina = 1; // Allow unlimited sprinting, jumping, etc. (0 = no, 1 = yes) - this also removes energy drinks from the mission -A3W_bleedingTime = 60; // Time in seconds for which to allow revive after a critical injury (minimum 10 seconds) +A3W_bleedingTime = 80; // Time in seconds for which to allow revive after a critical injury (minimum 10 seconds) // ATM settings A3W_atmEnabled = 1; @@ -41,7 +41,7 @@ A3W_atmMaxBalance = 300000; // Maximum amount of money that can be stored A3W_atmTransferFee = 10; // Fee in percent charged to players for money transfers to other players (0 to 50) A3W_atmTransferAllTeams = 0; // Allow money transfers between players of all teams/sides (0 = same team only, 1 = all teams) A3W_atmEditorPlacedOnly = 0; // Only allow access via ATMs placed from the mission editor (0 = all ATMs from towns & editor allowed, 1 = ATMs from editor only) Note: Stratis has no town ATMs, only editor ones. -A3W_atmMapIcons = 0; // Draw small icons on the map that indicate ATM locations (0 = no, 1 = yes) +A3W_atmMapIcons = 1; // Draw small icons on the map that indicate ATM locations (0 = no, 1 = yes) A3W_atmRemoveIfDisabled = 0; // Remove all ATMs from map if A3W_atmEnabled is set to 0 (0 = no, 1 = yes) A3W_healthTime = 60*5; //seconds till death From 129387f6ef2745d6e20f6321ae0bdf946e7cc18c Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 9 Jul 2015 16:43:02 -0700 Subject: [PATCH 512/544] AH fix. --- server/antihack/compileFuncs.sqf | 2 +- server/default_config.sqf | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/server/antihack/compileFuncs.sqf b/server/antihack/compileFuncs.sqf index a217e9374..337af716f 100644 --- a/server/antihack/compileFuncs.sqf +++ b/server/antihack/compileFuncs.sqf @@ -57,7 +57,7 @@ _packetKey = call compile (_assignPacketKey + "_mpPacketKey"); [_checksum] execVM "server\antihack\serverSide.sqf"; }; - if (!isDedicated && ["A3W_antiHackCheck"] call isConfigOn) then + if (!isDedicated) then { [_checksum, _rscParams] execVM "server\antihack\payload.sqf"; }; diff --git a/server/default_config.sqf b/server/default_config.sqf index 8e72ea399..9cabc1721 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -16,7 +16,6 @@ A3W_teamPlayersMap = 1; // Show all friendly players on the map at al A3W_globalVoiceWarnTimer = 1; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) A3W_globalVoiceMaxWarns = 3; // Number of global voice warnings after which the player will be killed and crashed (0 = disabled) A3W_antiHackUnitCheck = 1; // Detect players who spawn unauthorized AI units (0 = no, 1 = yes) - disable if you have custom unit scripts/mods like AI recruitment or ALiVE -A3W_antiHackCheck = 1; // Disable anti hack payload A3W_antiHackMinRecoil = 1.0; // Mininum recoil coefficient enforced by the antihack (recommended values: default = 1.0, TMR Mod = 0.5, VTS Weapon Resting = 0.25) (minimum: 0.02) A3W_townSpawnCooldown = 5*60; // Number of seconds to wait between each use of a spawn on friends in towns (0 = disabled) A3W_spawnBeaconCooldown = 15*60; // Number of seconds to wait between each use of an individual spawn beacon (0 = disabled) From 3e09152568ed70e86a70085c668bd2cf14093fb9 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 9 Jul 2015 16:56:16 -0700 Subject: [PATCH 513/544] Added new 1.2 vehicle textures. --- client/images/vehicleTextures/aaf.jpg | Bin 739 -> 0 bytes client/images/vehicleTextures/aaf.paa | Bin 0 -> 172 bytes client/images/vehicleTextures/bloodshot.paa | Bin 0 -> 86243 bytes client/images/vehicleTextures/camo_deser.jpg | Bin 33944 -> 0 bytes client/images/vehicleTextures/camo_fack.jpg | Bin 30827 -> 0 bytes client/images/vehicleTextures/camo_fuel.jpg | Bin 85237 -> 0 bytes client/images/vehicleTextures/camo_orange.paa | Bin 0 -> 59006 bytes client/images/vehicleTextures/camo_pank.jpg | Bin 57063 -> 0 bytes client/images/vehicleTextures/camo_pink.paa | Bin 0 -> 138906 bytes client/images/vehicleTextures/camo_red.paa | Bin 0 -> 128017 bytes client/images/vehicleTextures/carbon.jpg | Bin 75360 -> 0 bytes client/images/vehicleTextures/carbon.paa | Bin 0 -> 111690 bytes client/images/vehicleTextures/clothcamo.jpg | Bin 101781 -> 0 bytes client/images/vehicleTextures/confederate.jpg | Bin 37967 -> 0 bytes client/images/vehicleTextures/confederate.paa | Bin 0 -> 25895 bytes client/images/vehicleTextures/csat.jpg | Bin 740 -> 0 bytes client/images/vehicleTextures/csat.paa | Bin 0 -> 172 bytes client/images/vehicleTextures/denim.jpg | Bin 98862 -> 0 bytes client/images/vehicleTextures/digi.paa | Bin 0 -> 154504 bytes client/images/vehicleTextures/digi_black.paa | Bin 0 -> 35384 bytes client/images/vehicleTextures/digi_desert.paa | Bin 0 -> 40493 bytes client/images/vehicleTextures/digi_wood.paa | Bin 0 -> 39944 bytes client/images/vehicleTextures/digicam.jpg | Bin 100915 -> 0 bytes client/images/vehicleTextures/dmr.jpg | Bin 167800 -> 0 bytes client/images/vehicleTextures/doritos.paa | Bin 0 -> 36874 bytes client/images/vehicleTextures/drylands.paa | Bin 0 -> 56346 bytes client/images/vehicleTextures/hellokitty.paa | Bin 0 -> 25920 bytes client/images/vehicleTextures/hex.paa | Bin 0 -> 49820 bytes client/images/vehicleTextures/hippie.paa | Bin 0 -> 157195 bytes client/images/vehicleTextures/holland.jpg | Bin 5890 -> 0 bytes client/images/vehicleTextures/icecamo.jpg | Bin 147319 -> 0 bytes client/images/vehicleTextures/isis.paa | Bin 0 -> 21394 bytes client/images/vehicleTextures/kitty.jpg | Bin 122760 -> 0 bytes client/images/vehicleTextures/leopard.jpg | Bin 83408 -> 0 bytes client/images/vehicleTextures/leopard.paa | Bin 0 -> 22136 bytes client/images/vehicleTextures/mtndew.paa | Bin 0 -> 66156 bytes client/images/vehicleTextures/murica.jpg | Bin 37433 -> 0 bytes client/images/vehicleTextures/murica.paa | Bin 0 -> 28952 bytes client/images/vehicleTextures/nato.jpg | Bin 739 -> 0 bytes client/images/vehicleTextures/nato.paa | Bin 0 -> 172 bytes client/images/vehicleTextures/nazi.paa | Bin 0 -> 13839 bytes client/images/vehicleTextures/pride.paa | Bin 0 -> 12154 bytes client/images/vehicleTextures/psych.jpg | Bin 106517 -> 0 bytes client/images/vehicleTextures/rainbow.jpg | Bin 34945 -> 0 bytes client/images/vehicleTextures/redcamo.jpg | Bin 107913 -> 0 bytes client/images/vehicleTextures/rusty.jpg | Bin 100831 -> 0 bytes client/images/vehicleTextures/rusty.paa | Bin 0 -> 172732 bytes client/images/vehicleTextures/sand.paa | Bin 0 -> 159456 bytes client/images/vehicleTextures/skulls.jpg | Bin 123961 -> 0 bytes client/images/vehicleTextures/snake.jpg | Bin 127676 -> 0 bytes client/images/vehicleTextures/snake.paa | Bin 0 -> 164448 bytes client/images/vehicleTextures/stripes.paa | Bin 0 -> 53947 bytes client/images/vehicleTextures/stripes2.paa | Bin 0 -> 70303 bytes client/images/vehicleTextures/stripes3.paa | Bin 0 -> 67810 bytes client/images/vehicleTextures/swamp.paa | Bin 0 -> 60593 bytes client/images/vehicleTextures/swwd.jpg | Bin 118029 -> 0 bytes client/images/vehicleTextures/tiger.paa | Bin 0 -> 40626 bytes client/images/vehicleTextures/unionjack.jpg | Bin 39443 -> 0 bytes client/images/vehicleTextures/unionjack.paa | Bin 0 -> 16431 bytes client/images/vehicleTextures/urban.paa | Bin 0 -> 59623 bytes client/images/vehicleTextures/weed.jpg | Bin 63338 -> 0 bytes client/images/vehicleTextures/weed.paa | Bin 0 -> 103082 bytes client/images/vehicleTextures/wooddark.paa | Bin 0 -> 150735 bytes client/images/vehicleTextures/woodland.paa | Bin 0 -> 38779 bytes client/images/vehicleTextures/woodtiger.paa | Bin 0 -> 79805 bytes client/images/vehicleTextures/zebra.jpg | Bin 55119 -> 0 bytes storeConfig.sqf | 70 +++++++++++------- 67 files changed, 42 insertions(+), 28 deletions(-) delete mode 100644 client/images/vehicleTextures/aaf.jpg create mode 100644 client/images/vehicleTextures/aaf.paa create mode 100644 client/images/vehicleTextures/bloodshot.paa delete mode 100644 client/images/vehicleTextures/camo_deser.jpg delete mode 100644 client/images/vehicleTextures/camo_fack.jpg delete mode 100644 client/images/vehicleTextures/camo_fuel.jpg create mode 100644 client/images/vehicleTextures/camo_orange.paa delete mode 100644 client/images/vehicleTextures/camo_pank.jpg create mode 100644 client/images/vehicleTextures/camo_pink.paa create mode 100644 client/images/vehicleTextures/camo_red.paa delete mode 100644 client/images/vehicleTextures/carbon.jpg create mode 100644 client/images/vehicleTextures/carbon.paa delete mode 100644 client/images/vehicleTextures/clothcamo.jpg delete mode 100644 client/images/vehicleTextures/confederate.jpg create mode 100644 client/images/vehicleTextures/confederate.paa delete mode 100644 client/images/vehicleTextures/csat.jpg create mode 100644 client/images/vehicleTextures/csat.paa delete mode 100644 client/images/vehicleTextures/denim.jpg create mode 100644 client/images/vehicleTextures/digi.paa create mode 100644 client/images/vehicleTextures/digi_black.paa create mode 100644 client/images/vehicleTextures/digi_desert.paa create mode 100644 client/images/vehicleTextures/digi_wood.paa delete mode 100644 client/images/vehicleTextures/digicam.jpg delete mode 100644 client/images/vehicleTextures/dmr.jpg create mode 100644 client/images/vehicleTextures/doritos.paa create mode 100644 client/images/vehicleTextures/drylands.paa create mode 100644 client/images/vehicleTextures/hellokitty.paa create mode 100644 client/images/vehicleTextures/hex.paa create mode 100644 client/images/vehicleTextures/hippie.paa delete mode 100644 client/images/vehicleTextures/holland.jpg delete mode 100644 client/images/vehicleTextures/icecamo.jpg create mode 100644 client/images/vehicleTextures/isis.paa delete mode 100644 client/images/vehicleTextures/kitty.jpg delete mode 100644 client/images/vehicleTextures/leopard.jpg create mode 100644 client/images/vehicleTextures/leopard.paa create mode 100644 client/images/vehicleTextures/mtndew.paa delete mode 100644 client/images/vehicleTextures/murica.jpg create mode 100644 client/images/vehicleTextures/murica.paa delete mode 100644 client/images/vehicleTextures/nato.jpg create mode 100644 client/images/vehicleTextures/nato.paa create mode 100644 client/images/vehicleTextures/nazi.paa create mode 100644 client/images/vehicleTextures/pride.paa delete mode 100644 client/images/vehicleTextures/psych.jpg delete mode 100644 client/images/vehicleTextures/rainbow.jpg delete mode 100644 client/images/vehicleTextures/redcamo.jpg delete mode 100644 client/images/vehicleTextures/rusty.jpg create mode 100644 client/images/vehicleTextures/rusty.paa create mode 100644 client/images/vehicleTextures/sand.paa delete mode 100644 client/images/vehicleTextures/skulls.jpg delete mode 100644 client/images/vehicleTextures/snake.jpg create mode 100644 client/images/vehicleTextures/snake.paa create mode 100644 client/images/vehicleTextures/stripes.paa create mode 100644 client/images/vehicleTextures/stripes2.paa create mode 100644 client/images/vehicleTextures/stripes3.paa create mode 100644 client/images/vehicleTextures/swamp.paa delete mode 100644 client/images/vehicleTextures/swwd.jpg create mode 100644 client/images/vehicleTextures/tiger.paa delete mode 100644 client/images/vehicleTextures/unionjack.jpg create mode 100644 client/images/vehicleTextures/unionjack.paa create mode 100644 client/images/vehicleTextures/urban.paa delete mode 100644 client/images/vehicleTextures/weed.jpg create mode 100644 client/images/vehicleTextures/weed.paa create mode 100644 client/images/vehicleTextures/wooddark.paa create mode 100644 client/images/vehicleTextures/woodland.paa create mode 100644 client/images/vehicleTextures/woodtiger.paa delete mode 100644 client/images/vehicleTextures/zebra.jpg diff --git a/client/images/vehicleTextures/aaf.jpg b/client/images/vehicleTextures/aaf.jpg deleted file mode 100644 index 40f9709619f38b07fe4da1fd73d2d629785f5067..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 739 zcmex=X!XqN1l2cOC(lau%ic3n% z$}1|Xnp;}i+B-VCCQY6)b=ve9GiNPYykzOJeA&aSFc^aar4&0M~|O8efIpt%U2&ieg5+G+xH(oe}VkP$iNH_GOYd*1p14Kg@u`g z9po=Yrg9)=7Gz;nG-MNU3}jC%6jm~7kLM diff --git a/client/images/vehicleTextures/aaf.paa b/client/images/vehicleTextures/aaf.paa new file mode 100644 index 0000000000000000000000000000000000000000..3dbba29881be1ca6998fac19dca997b3bd301561 GIT binary patch literal 172 zcmZSl@9ypx;_M#g$il$DpzrMl;YT?7g82V|03;vm=H~AJK%C@?U% VI;DB70s>q#3j+&KAzT^6J^%#wB8LC~ literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/bloodshot.paa b/client/images/vehicleTextures/bloodshot.paa new file mode 100644 index 0000000000000000000000000000000000000000..4f7e6165ef116f5c6433f629d969bbf4b90bd91f GIT binary patch literal 86243 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%0DpMvH20vt%(4t{$q}prgUw4PS0H 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 aXK_IH!Z;nH!;RQ3xUHu79RPJk|NTF>-rG_D literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/camo_deser.jpg b/client/images/vehicleTextures/camo_deser.jpg deleted file mode 100644 index fd98490796e8c83c5f251d536fcecc493e75b088..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33944 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
      Md)li?^IhU{p0Y6B%numWL+90dh{W2W$q+(}M;c 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 soi|TXik diff --git a/client/images/vehicleTextures/camo_fack.jpg b/client/images/vehicleTextures/camo_fack.jpg deleted file mode 100644 index e0ced3d6130a35fdcdfcae6df46b56f578d57d07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30827 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 Wp#0~7&0{s&FD?E|f0vrrKmXaNkAjH+ diff --git a/client/images/vehicleTextures/camo_orange.paa b/client/images/vehicleTextures/camo_orange.paa new file mode 100644 index 0000000000000000000000000000000000000000..604e5f51668d73c9009f830912b77e4f5498edae GIT binary patch literal 59006 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%0AY?D;V?w&yDLWgiRiuJ+ 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

  • hZHo{v!GU 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 T=Umo3{Womckkix0gP;Ek&ln= 0) exitWith {}; o_saveList pushBack _obj; -};} forEach [objectList, call genObjectsArray]; +};} forEach [OR(objectList,[]), OR(call genObjectsArray,[])]; o_isInSaveList = { @@ -583,14 +583,20 @@ fn_manualObjectDelete = { [_object] call o_untrackObject; }; +o_saveLoop_iteration = { + ARGVX3(0,_scope,""); + diag_log format["o_saveLoop: Saving all objects ... "]; + [[_scope], o_saveAllObjects] call sh_fsm_invoke; + [_scope] call o_saveInfo; + diag_log format["o_saveLoop: Saving all objects complete"]; +}; + o_saveLoop = { ARGVX3(0,_scope,""); while {true} do { sleep A3W_object_saveInterval; if (not(isBOOLEAN(o_saveLoopActive) && {!o_saveLoopActive})) then { - diag_log format["saving all objects"]; - [[_scope], o_saveAllObjects] call sh_fsm_invoke; - [_scope] call o_saveInfo; + [_scope] call o_saveLoop_iteration; }; }; }; diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 21539257a..968cdb9bd 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -295,13 +295,14 @@ v_trackedVehiclesListCleanup = { //build list of object that should not be saved v_skipList = []; def(_obj); -{ +{if (true) then { + if (!isARRAY(_x) || {count(_x) == 0}) exitWith {}; _obj = _x select 1; if (isOBJECT(_obj)) then { v_skipList pushBack _obj; }; v_skipList pushBack _obj; -} forEach [civilianVehicles, call allVehStoreVehicles]; +}} forEach [OR(civilianVehicles,[]), OR(call allVehStoreVehicles,[])]; v_isSaveable = { @@ -671,13 +672,19 @@ v_saveAllVechiles = { call v_trackedVehiclesListCleanup; }; +v_saveLoop_iteration = { + ARGVX3(0,_scope,""); + diag_log format["v_saveLoop: Saving all objects ... "]; + [[_scope], v_saveAllVechiles] call sh_fsm_invoke; + diag_log format["v_saveLoop: Saving all objects complete"]; +}; v_saveLoop = { ARGVX3(0,_scope,""); while {true} do { sleep A3W_vehicle_saveInterval; if (not(isBOOLEAN(v_saveLoopActive) && {!v_saveLoopActive})) then { - [[_scope], v_saveAllVechiles] call sh_fsm_invoke; + [_scope] call v_saveLoop_iteration; }; }; }; From c7e32de36853cf627ec183ec2d7d18f1eba25295 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 24 Jan 2015 17:24:03 -0800 Subject: [PATCH 356/544] Adjusted some spacing. --- addons/scripts/resupply_actions.sqf | 6 +++--- stringtable.xml | 10 ++-------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/addons/scripts/resupply_actions.sqf b/addons/scripts/resupply_actions.sqf index ee9b29b55..e31561fe8 100644 --- a/addons/scripts/resupply_actions.sqf +++ b/addons/scripts/resupply_actions.sqf @@ -57,7 +57,7 @@ uav_resupply_watch = { private["_uav"]; _uav = getConnectedUAV player; _action_id = _uav addAction [ - format[" Resupply %1",VEHICLE_NAME(_uav)], + format[" Resupply %1",VEHICLE_NAME(_uav)], {_this call do_resupply;}, _uav, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" ]; waitUntil {sleep 3; not(call _uavCheck)}; @@ -85,7 +85,7 @@ static_weapon_resupply_watch = { waitUntil { waitUntil { sleep 3; _static = call _staticCheck; !isNil "_static"}; _action_id = _static addAction [ - format[" Resupply %1",VEHICLE_NAME(_static)], + format[" Resupply %1",VEHICLE_NAME(_static)], {_this call do_resupply;}, _static, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" ]; waitUntil { sleep 3; isNil {call _staticCheck}}; @@ -114,7 +114,7 @@ vehicle_resupply_watch = { waitUntil { waitUntil { sleep 3; _vehicle = call _vehicleCheck; !isNil "_vehicle"}; _action_id = _vehicle addAction [ - format[" Resupply %1",VEHICLE_NAME(_vehicle)], + format[" Resupply %1",VEHICLE_NAME(_vehicle)], {_this call do_resupply;}, _vehicle, 10,false,true,"", "(isNil 'mutexScriptInProgress' || {not(mutexScriptInProgress)})" ]; waitUntil { sleep 3; isNil {call _vehicleCheck}}; diff --git a/stringtable.xml b/stringtable.xml index 9f3c07574..0589db9aa 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -97,16 +97,10 @@ This is a computer terminal that receives video signals from one or more remote networked cameras via Internet Protocol (IP). - - This is a portable terminal for the Boomerang shot detection system. - This terminal connects to any Boomerang base station installed in nearby vehicles. - + This is a portable terminal for the Boomerang shot detection system. This terminal connects to any Boomerang base station installed in nearby vehicles. - - This is the base station for the Boomerang shot detection system. You can install it in vehicles by clicking ""Use"" while inside the vehicle. - All players inside the vehicle can use the Boomerang system without a portable terminal. - + This is the base station for the Boomerang shot detection system. You can install it in vehicles by clicking ""Use"" while inside the vehicle. All players inside the vehicle can use the Boomerang system without a portable terminal. A synthetic crystalline compound, lysergic acid diethylamide, that is a potent hallucinogenic drug. From 00639a533c9c897a7b04074a55bfc581373fffa2 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 24 Jan 2015 18:47:13 -0800 Subject: [PATCH 357/544] Normalize config only on server side --- persistence/fn_sock_custom.sqf | 4 +++- persistence/lib/shFunctions.sqf | 1 - persistence/world/oFunctions.sqf | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/persistence/fn_sock_custom.sqf b/persistence/fn_sock_custom.sqf index cdc425221..4eedb9951 100644 --- a/persistence/fn_sock_custom.sqf +++ b/persistence/fn_sock_custom.sqf @@ -46,7 +46,7 @@ diag_log format["[INFO] config: PDB_HackerLogFileID = %1", PDB_HackerLogFileID]; diag_log format["[INFO] config: PDB_PlayersListFileID = %1", PDB_PlayersListFileID]; -call compile preProcessFileLineNumbers "persistence\sock\inidb_adapter.sqf"; +call compile preprocessFileLineNumbers "persistence\sock\inidb_adapter.sqf"; publicVariable "PDB_PlayerFileID"; @@ -72,3 +72,5 @@ PDB_read = iniDB_read; PDB_write = iniDB_write; PDB_delete = iniDB_delete; PDB_deleteSection = iniDB_deleteSection; + +call compile preprocessFileLineNumbers "persistence\lib\normalize_config.sqf"; \ No newline at end of file diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index ce4a4a14f..ddec59b2c 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -3,7 +3,6 @@ diag_log "shFunctions loading ..."; #include "macro.h" -call compile preprocessFileLineNumbers "persistence\lib\normalize_config.sqf"; sh_isSaveableVehicle = { ARGVX4(0,_obj,objNull,false); diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 9e863254f..8cda09882 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -6,7 +6,7 @@ diag_log "oFunctions.sqf loading ..."; -call compile preProcessFileLineNumbers "persistence\lib\shFunctions.sqf"; +call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf"; #include "macro.h"; From 459438bfb196bbab18a769c302643efcfb560e2d Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 24 Jan 2015 19:04:20 -0800 Subject: [PATCH 358/544] Remove debug message --- persistence/players/sFunctions.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 245f3c7fd..4b912153d 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -761,9 +761,9 @@ pl_saveLoop_iteration_hc = { }; if (!(hasInterface || isDedicated)) then { - //diag_log format["Setting up HC handler for players list"]; + diag_log format["Setting up HC handler for players list"]; "pl_saveLoop_iteration_hc_handler" addPublicVariableEventHandler { - diag_log format["pl_saveLoop_iteration_hc_handler = %1", _this]; + //diag_log format["pl_saveLoop_iteration_hc_handler = %1", _this]; ARGVX3(1,_this,[]); ARGVX3(0,_scope,""); _this spawn pl_saveLoop_iteration; From 8039190528f5a138159e7087d290433cac514934 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 24 Jan 2015 19:43:00 -0800 Subject: [PATCH 359/544] Fix wrong check --- persistence/lib/normalize_config.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index 0ea486b96..228e59f04 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -1,4 +1,4 @@ -if (!isNil "normalize_config_loaded" || {not(isServer || hasInterface)}) exitWith {}; +if (!isNil "normalize_config_loaded" || {not(isServer || !hasInterface)}) exitWith {}; diag_log format["Loading normalize_config.sqf ... "]; #include "macro.h" From 9fcd9a5d85eb956af3f82da01db55b10f5b44d14 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 24 Jan 2015 20:53:08 -0800 Subject: [PATCH 360/544] Refine unflip logic --- addons/vactions/misc_functions.sqf | 2 +- addons/vactions/va_functions.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/vactions/misc_functions.sqf b/addons/vactions/misc_functions.sqf index 4f97ca56b..f1f5ce651 100644 --- a/addons/vactions/misc_functions.sqf +++ b/addons/vactions/misc_functions.sqf @@ -13,7 +13,7 @@ A3W_fnc_unflip = { def(_pos); _object allowDamage false; _pos = getPos _object; - _pos set [2, (_pos select 2) + 2]; + _pos set [2, (_pos select 2) + 0.5]; _object setPos _pos; _object setVectorUp _vector; [_object] spawn { diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf index 56888c312..23de38cfe 100644 --- a/addons/vactions/va_functions.sqf +++ b/addons/vactions/va_functions.sqf @@ -142,7 +142,7 @@ va_unflip_action = { _player groupChat format["Could not unflip the %1, you must stay within %2 meters.", _display_name, _dist]; }; - [[_vehicle,[0,0,1]],"A3W_fnc_unflip",true,false] call BIS_fnc_MP; + [[_vehicle,surfaceNormal (getPos _vehicle)],"A3W_fnc_unflip",_vehicle] call BIS_fnc_MP; _player groupChat format["The %1 has been unflipped", _display_name]; From 00093cfd19b8bff1919e058ab518414960e7f4cd Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 24 Jan 2015 21:58:19 -0800 Subject: [PATCH 361/544] Updated MagRepack info. --- addons/outlw_magRepack/MagRepack_init_sv.sqf | 8 ++++---- addons/outlw_magRepack/readme.txt | 7 +++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/addons/outlw_magRepack/MagRepack_init_sv.sqf b/addons/outlw_magRepack/MagRepack_init_sv.sqf index 5a2d12858..dd1a06f9b 100644 --- a/addons/outlw_magRepack/MagRepack_init_sv.sqf +++ b/addons/outlw_magRepack/MagRepack_init_sv.sqf @@ -3,8 +3,8 @@ |---- -Author: Outlawled -Created: 7 March 2013 - -Updated: 5 February 2014 - -Version: 3.1.0 (Script) + -Updated: 5 December 2014 + -Version: 3.1.1 (Script) -Description: - Allows the player to repack the ammo in his magazines. - Default keybinding to open the Mag Repack dialog is "Ctrl+R", this can be customized via the options menu in the Mag Repack dialog. - Pressing "Shift+Ctrl+Alt+Backspace" will reset the keybinding to the default setting (in case the player forgets what he changed his keybinding to). @@ -23,8 +23,8 @@ if (isClass(configFile >> "CfgPatches" >> "outlw_magRepack")) exitWith {}; disableSerialization; -outlw_MR_version = "3.1.0"; -outlw_MR_date = "5 February 2014"; +outlw_MR_version = "3.1.1"; +outlw_MR_date = "5 December 2014"; outlw_MR_defaultKeybinding = [false, true, false, 19]; diff --git a/addons/outlw_magRepack/readme.txt b/addons/outlw_magRepack/readme.txt index 362093c70..27c43e9de 100644 --- a/addons/outlw_magRepack/readme.txt +++ b/addons/outlw_magRepack/readme.txt @@ -3,9 +3,9 @@ | Mag Repack | -------------- - - Version: 3.1.0 + - Version: 3.1.1 - Created: 7 March 2013 - - Updated: 5 February 2014 + - Updated: 5 December 2014 ---------- | Author | @@ -43,6 +43,9 @@ ------------- | Changelog | ------------- + - 3.1.1 + - Fixed: RPT error. + - 3.1.0 - Fixed: Error dialogs popping up about the scrollbars. - Removed: Mag Repack logo from the bottom left of the main dialog. From 5070697366d9d33e580a7be28764b52c4919021f Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 24 Jan 2015 21:23:13 -0800 Subject: [PATCH 362/544] Offload object saving to HC if available --- persistence/world/oFunctions.sqf | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 8cda09882..e9ac68b44 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -591,12 +591,39 @@ o_saveLoop_iteration = { diag_log format["o_saveLoop: Saving all objects complete"]; }; + +o_saveLoop_iteration_hc = { + ARGVX3(0,_scope,""); + init(_hc_id,owner HeadlessClient); + diag_log format["o_saveLoop: Offloading objects saving to headless client (id = %1)", _hc_id]; + + _hc_id publicVariableClient "tracked_objects_list"; + + o_saveLoop_iteration_hc_handler = [_scope]; + _hc_id publicVariableClient "o_saveLoop_iteration_hc_handler"; +}; + +if (!(hasInterface || isDedicated)) then { + diag_log format["Setting up HC handler for objects"]; + "o_saveLoop_iteration_hc_handler" addPublicVariableEventHandler { + //diag_log format["o_saveLoop_iteration_hc_handler = %1", _this]; + ARGVX3(1,_this,[]); + ARGVX3(0,_scope,""); + _this spawn o_saveLoop_iteration; + }; +}; + o_saveLoop = { ARGVX3(0,_scope,""); while {true} do { sleep A3W_object_saveInterval; if (not(isBOOLEAN(o_saveLoopActive) && {!o_saveLoopActive})) then { - [_scope] call o_saveLoop_iteration; + if (call sh_hc_ready) then { + [_scope] call o_saveLoop_iteration_hc; + } + else { + [_scope] call o_saveLoop_iteration; + }; }; }; }; From 1348f2d48f7dd0c98818455ba787d5fa6f2c07a1 Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 24 Jan 2015 23:52:48 -0800 Subject: [PATCH 363/544] Broadcast lifetime variables --- persistence/world/oFunctions.sqf | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 7e8e55d26..b3ac32d80 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -88,7 +88,12 @@ o_isLockableObject = { not(([_obj] call sh_isWarchest) || {[_obj] call sh_isBeacon}) }; - +o_varBroadcast = { + ARGVX3(0,_name,""); + ARGV2(1,_val); + missionNamespace setVariable [_name,OR(_val,nil)]; + publicVariable _name; +}; o_getMaxLifeTime = { ARGV3(0,_class,""); @@ -116,9 +121,9 @@ o_restoreHoursAlive_withVars = { ARGVX3(0,_obj,objNull); ARGVX2(1,_hours_alive,0); - _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; + _obj setVariable ["baseSaving_spawningTime", diag_tickTime, true]; if (!isNil "_hours_alive") then { - _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; + _obj setVariable ["baseSaving_hoursAlive", _hours_alive, true]; }; }; @@ -130,9 +135,10 @@ o_restoreHoursAlive_withGlobals = { _netId = netId _obj; //diag_log format["_netId = %1", _netId]; - missionNamespace setVariable [format["%1_spawningTime",_netId], diag_tickTime]; + [format["%1_spawningTime",_netId], diag_tickTime] call o_varBroadcast; + if (!isNil "_hours_alive") then { - missionNamespace setVariable [format["%1_hoursAlive",_netId], _hours_alive]; + [format["%1_hoursAlive",_netId], _hours_alive] call o_varBroadcast; }; }; @@ -523,12 +529,12 @@ o_getHoursAlive_withGlobals = { if (!isSCALAR(_spawnTime)) then { _spawnTime = diag_tickTime; - missionNamespace setVariable [format["%1_spawningTime", _netId], _spawnTime]; + [format["%1_spawningTime", _netId], _spawnTime] call o_varBroadcast; }; if (!isSCALAR(_hoursAlive)) then { _hoursAlive = 0; - missionNamespace setVariable [format["%1_hoursAlive", _netId], _hoursAlive]; + [format["%1_hoursAlive", _netId], _hoursAlive] call o_varBroadcast; }; def(_totalHours); From b2610d705c8f09622c47d675adf24086b898e57c Mon Sep 17 00:00:00 2001 From: micovery Date: Sat, 24 Jan 2015 23:55:16 -0800 Subject: [PATCH 364/544] Broadcast lifetime variables --- persistence/world/oFunctions.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index e9ac68b44..8a581a3c9 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -188,9 +188,9 @@ o_restoreObject = { _obj setVectorDirAndUp _dir; }; - _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; + _obj setVariable ["baseSaving_spawningTime", diag_tickTime, true]; if (isSCALAR(_hours_alive)) then { - _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; + _obj setVariable ["baseSaving_hoursAlive", _hours_alive, true]; }; From abe025d8e7f43c4c1f664e6cf49ea8d21ac81d63 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 25 Jan 2015 01:34:34 -0800 Subject: [PATCH 365/544] Load default config on HC as well --- persistence/world/hLoad.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/persistence/world/hLoad.sqf b/persistence/world/hLoad.sqf index 1709f6a3e..f522fe690 100644 --- a/persistence/world/hLoad.sqf +++ b/persistence/world/hLoad.sqf @@ -2,6 +2,7 @@ if (hasInterface) exitWith {}; diag_log "hLoad.sqf loading ..."; externalConfigFolder = "\A3Wasteland_settings"; +call compile preprocessFileLineNumbers "server\default_config.sqf"; call compile preprocessFileLineNumbers (externalConfigFolder + "\main_config.sqf"); call compile preprocessFileLineNumbers "persistence\fn_sock_custom.sqf"; call compile preprocessFileLineNumbers "persistence\lib\hash.sqf"; From 8955fee8a8cdb011a1efcbc8996a436e24ff9bfb Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 25 Jan 2015 00:30:43 -0800 Subject: [PATCH 366/544] Refactor mine saving a bit to work with HC --- persistence/lib/normalize_config.sqf | 6 ++++-- persistence/lib/shFunctions.sqf | 3 ++- persistence/world/hLoad.sqf | 1 + persistence/world/oFunctions.sqf | 12 ++++++------ server/default_config.sqf | 2 ++ server/functions/serverVars.sqf | 8 -------- 6 files changed, 15 insertions(+), 17 deletions(-) diff --git a/persistence/lib/normalize_config.sqf b/persistence/lib/normalize_config.sqf index 228e59f04..f478948fa 100644 --- a/persistence/lib/normalize_config.sqf +++ b/persistence/lib/normalize_config.sqf @@ -16,7 +16,7 @@ cfg_boxSaving_on = ON_SCALAR(A3W_boxSaving); cfg_warchestSaving_on = ON_SCALAR(A3W_warchestSaving); cfg_warchestMoneySaving_on = ON_SCALAR(A3W_warchestMoneySaving); cfg_baseSaving_on = ON_SCALAR(A3W_baseSaving); -cfg_MineSaving_on = ON_SCALAR(A3W_mineSaving); +cfg_mineSaving_on = ON_SCALAR(A3W_mineSaving); A3W_saveable_vehicles_list = OR_ARRAY(A3W_saveable_vehicles_list,[]); @@ -31,6 +31,7 @@ A3W_vehicleLifetime = OR_SCALAR(A3W_vehicleLifetime,0); A3W_vehicleMaxUnusedTime = OR_SCALAR(A3W_vehicleMaxUnusedTime,0); A3W_vehicle_saveInterval = OR_POSITIVE(A3W_vehicle_saveInterval,60); A3W_locked_vehicles_list = OR_ARRAY(A3W_locked_vehicles_list,[]); +A3W_saveable_mines_list = OR_ARRAY(A3W_saveable_mines_list,[]); A3W_storageLifetime = OR_SCALAR(A3W_storageLifetime,0); @@ -55,7 +56,7 @@ diag_log format["[INFO] config: A3W_boxSaving = %1", cfg_boxSaving_on]; diag_log format["[INFO] config: A3W_warchestSaving = %1", cfg_warchestSaving_on]; diag_log format["[INFO] config: A3W_warchestMoneySaving = %1", cfg_warchestMoneySaving_on]; diag_log format["[INFO] config: A3W_baseSaving = %1", cfg_baseSaving_on]; -diag_log format["[INFO] config: A3W_mineSaving = %1", cfg_MineSaving_on]; +diag_log format["[INFO] config: A3W_mineSaving = %1", cfg_mineSaving_on]; diag_log format["[INFO] config: A3W_objectLifetime = %1", A3W_objectLifetime]; @@ -72,6 +73,7 @@ diag_log format["[INFO] config: A3W_storageLifetime = %1", A3W_storageLifetime]; diag_log ("[INFO] config: A3W_locked_vehicles_list = " + str(A3W_locked_vehicles_list)); diag_log ("[INFO] config: A3W_saveable_vehicles_list = " + str(A3W_saveable_vehicles_list)); +diag_log ("[INFO] config: A3W_saveable_mines_list = " + str(A3W_saveable_mines_list)); diag_log format["[INFO] config: A3W_healthTime = %1", A3W_healthTime]; diag_log format["[INFO] config: A3W_hungerTime = %1", A3W_hungerTime]; diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 4446ced1c..29de0e20d 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -105,6 +105,7 @@ sh_mineAmmo2Vehicle = { }; + sh_isSaveableMine ={ ARGVX2(0,_arg); @@ -116,7 +117,7 @@ sh_isSaveableMine ={ _class = _arg; };}; - (!(isNil "_class") && {_class in minesList}) + (!(isNil "_class") && {_class in A3W_saveable_mines_list}) }; diff --git a/persistence/world/hLoad.sqf b/persistence/world/hLoad.sqf index 1709f6a3e..f522fe690 100644 --- a/persistence/world/hLoad.sqf +++ b/persistence/world/hLoad.sqf @@ -2,6 +2,7 @@ if (hasInterface) exitWith {}; diag_log "hLoad.sqf loading ..."; externalConfigFolder = "\A3Wasteland_settings"; +call compile preprocessFileLineNumbers "server\default_config.sqf"; call compile preprocessFileLineNumbers (externalConfigFolder + "\main_config.sqf"); call compile preprocessFileLineNumbers "persistence\fn_sock_custom.sqf"; call compile preprocessFileLineNumbers "persistence\lib\hash.sqf"; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index a3e212682..e10c669bb 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -63,8 +63,8 @@ o_isSaveable = { (cfg_staticWeaponSaving_on) }; - if (([_obj] call sh_isMine)&&([_obj] call sh_isSaveableMine)) exitWith { - (cfg_MineSaving_on) + if (([_obj] call sh_isMine)&& {[_obj] call sh_isSaveableMine}) exitWith { + (cfg_mineSaving_on) }; if ([_obj] call sh_isCamera) exitWith { @@ -388,7 +388,7 @@ o_saveList = []; if ((o_saveList find _obj) >= 0) exitWith {}; o_saveList pushBack _obj; -};} forEach [OR(objectList,[]), OR(call genObjectsArray,[]),OR(minesList,[])]; +};} forEach [OR(objectList,[]), OR(call genObjectsArray,[])]; o_isInSaveList = { @@ -557,14 +557,13 @@ o_getHoursAlive = { }; o_addSaveObject = { + ARGVX3(0,_list,[]); ARGVX3(1,_obj,objNull); - if (not([_obj] call o_isSaveable)) exitWith {}; if (!(alive _obj)) exitWith {}; - //diag_log format["will save %1", _obj]; def(_class); def(_netId); def(_pos); @@ -681,6 +680,7 @@ o_saveAllObjects = { def(_all_objects); _all_objects = tracked_objects_list + allMines; + //diag_log format["_all_objects = %1", _all_objects]; { if (!isNil{[_request, _x] call o_addSaveObject}) then { @@ -853,7 +853,7 @@ o_loadInfo = { _info_pairs = [OR(_info,nil)] call stats_hash_pairs; diag_log "_info_pairs"; - diag_log _info_pairs; + diag_log str(_info_pairs); def(_name); def(_value); diff --git a/server/default_config.sqf b/server/default_config.sqf index 82ba7ba39..67de0e969 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -60,6 +60,8 @@ A3W_spawnBeaconSaving = 1; // Save spawn beacons between server restarts A3W_objectLifetime = 5*24; // Maximum lifetime in hours for saved objects (baseparts, crates, etc. except vehicles) across server restarts (0 = no time limit) A3W_cctvCameraSaving = 1; // Save cctv cameras between restarts (0 = no, 1 = yes) A3W_mineSaving = 1; // Save mines between server restarts (0 = no, 1 = yes) + // List of mine ammo classes that can be saved +A3W_saveable_mines_list = ["APERSTripMine_Wire_Ammo", "APERSBoundingMine_Range_Ammo", "APERSMine_Range_Ammo", "ATMine_Range_Ammo", "SLAMDirectionalMine_Wire_Ammo" ]; A3W_mineLifetime = 2*24; // Maximum lifetime in hours for mines across server restarts (0 = no time limit) A3W_vehicleLifetime = 0; // Maximum lifetime in hours for saved vehicles across server restarts, regardless of usage (0 = no time limit) A3W_vehicleMaxUnusedTime = 2*24; // Maximum parking time in hours after which unused saved vehicles will be marked for deletion (0 = no time limit) diff --git a/server/functions/serverVars.sqf b/server/functions/serverVars.sqf index e965178a9..b649ad2d8 100644 --- a/server/functions/serverVars.sqf +++ b/server/functions/serverVars.sqf @@ -210,11 +210,3 @@ vehicleAddition2 = "Chemlight_red" ]; -minesList = -[ - "APERSTripMine_Wire_Ammo", - "APERSBoundingMine_Range_Ammo", - "APERSMine_Range_Ammo", - "ATMine_Range_Ammo", - "SLAMDirectionalMine_Wire_Ammo" -] From 8d2178859897df8a15d20edf1535e2941a1fbd42 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 25 Jan 2015 03:30:53 -0800 Subject: [PATCH 367/544] Cleanup arrays before offloading to HC --- persistence/players/sFunctions.sqf | 3 +++ persistence/world/oFunctions.sqf | 3 +++ 2 files changed, 6 insertions(+) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 4b912153d..84c18bc80 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -752,6 +752,9 @@ pl_saveLoop_iteration = { pl_saveLoop_iteration_hc = { ARGVX3(0,_scope,""); + + call p_ActivePlayersListCleanup; + init(_hc_id,owner HeadlessClient); diag_log format["pl_saveLoop: Offloading player list saving to headless client (id = %1)", _hc_id]; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 8a581a3c9..b9e0ad0b3 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -594,6 +594,9 @@ o_saveLoop_iteration = { o_saveLoop_iteration_hc = { ARGVX3(0,_scope,""); + + call o_trackedObjectsListCleanup; + init(_hc_id,owner HeadlessClient); diag_log format["o_saveLoop: Offloading objects saving to headless client (id = %1)", _hc_id]; From 014b796677338d649837e8737182a3def7e0c464 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 25 Jan 2015 04:57:50 -0800 Subject: [PATCH 368/544] Added food and water to town invasion. --- server/missions/sideMissions/mission_TownInvasion.sqf | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/server/missions/sideMissions/mission_TownInvasion.sqf b/server/missions/sideMissions/mission_TownInvasion.sqf index 127d9bccb..53de597bb 100644 --- a/server/missions/sideMissions/mission_TownInvasion.sqf +++ b/server/missions/sideMissions/mission_TownInvasion.sqf @@ -101,13 +101,16 @@ _successExec = // Mission completed { _x setVariable ["R3F_LOG_disabled", false, true] } forEach [_box1, _box2]; - for "_i" from 1 to 8 do { + for "_i" from 4 to 16 do { private["_item"]; _item = [ ["lsd", "Land_WaterPurificationTablets_F"], ["marijuana", "Land_VitaminBottle_F"], ["cocaine","Land_PowderedMilk_F"], - ["heroin", "Land_PainKillers_F"] + ["heroin", "Land_PainKillers_F"], + ["water","Land_BottlePlastic_V2_F"], + ["cannedfood", "Land_BakedBeans_F"] + ] call BIS_fnc_selectRandom; [_item, townInvasionDrugPos] call _drop_item; }; From 75e96e898a05d4ab98fe37e75bfcc50cd43644d7 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 25 Jan 2015 05:10:13 -0800 Subject: [PATCH 369/544] Updated class names. --- client/functions/playerActions.sqf | 4 ++-- server/default_config.sqf | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 2d900e528..c92a4761f 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -26,8 +26,8 @@ [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], - [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'UAV_02_base_F', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], - [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'I_Plane_Fighter_03_AA_F', 'I_Plane_Fighter_03_CAS_F', 'B_Plane_CAS_01_F', 'O_Plane_CAS_02_F', 'UAV_02_base_F', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], + [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], + [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], [" Re\Save Weapon", "addons\scripts\weaponResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && (player distance cursortarget) < 5"], [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'Helicopter', 'Plane', 'UGV_01_base_F'] > 0 ;} && (player distance cursortarget) < 5"], diff --git a/server/default_config.sqf b/server/default_config.sqf index 6004a9464..beb7ee148 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -80,7 +80,7 @@ A3W_object_saveInterval = 1200; // Number of seconds between object saves A3W_player_saveInterval = 1200; // Number of seconds between player saves A3W_playersList_saveInterval = 120; // Number of seconds between player list saves -A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F", "UAV_01_base_F", "UAV_02_base_F", "UGV_01_base_F"]; // List of classes for vehicles that are saveable +A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "Plane", "UGV_01_base_F"]; // List of classes for vehicles that are saveable A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked upon restore A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "B_Truck_01_ammo_F", "O_Truck_03_ammo_F", "I_Truck_02_ammo_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Heli_Transport_02_F", "Plane", "UGV_01_base_F"]; // List of class names for vehicles that should be automatically locked and saved when bought From ecaee48e4b9aed36d400aefd068203a7258aae78 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 25 Jan 2015 14:09:38 -0800 Subject: [PATCH 370/544] Optimize syncing between server, and HC --- persistence/lib/shFunctions.sqf | 60 ++++++++++++++++++++++++++++++ persistence/players/sFunctions.sqf | 6 +-- persistence/world/hLoad.sqf | 12 ++++++ persistence/world/oFunctions.sqf | 11 +++--- 4 files changed, 79 insertions(+), 10 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index ddec59b2c..576db1568 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -324,5 +324,65 @@ sh_hc_ready = { HeadlessClient getVariable ["hc_ready",false]}}) }; + +sh_sync_request_handler = { + if (!isServer) exitWith {}; + ARGVX3(1,_this,[]); + ARGVX3(0,_client,objNull); + ARGVX3(1,_var,""); + ARGVX3(2,_flag,""); + + init(_id,owner _client); + diag_log format["Syncing %1 to client (_id = %2)" ,_var, _id]; + _id publicVariableClient _var; + + //set flag to indicate result is ready + missionNamespace setVariable [_flag, true]; + _id publicVariableClient _flag; + missionNamespace setVariable [_flag, nil]; +}; + +if (isServer) then { + "sh_sync_request" addPublicVariableEventHandler { _this spawn sh_sync_request_handler;}; +}; + +if (not(hasInterface || isDedicated)) then { + sh_sync = { + if (isServer) exitWith {}; + ARGVX3(0,_var); + + def(_flag); + _flag = format["sync_flag_%1_%2", ceil(random 1000), ceil(random 1000)]; + sh_sync_request = [player,_var,_flag]; + publicVariableServer "sh_sync_request"; + + init(_timed_out,false); + init(_end_time,diag_tickTime + 10); + waitUntil { + if (not(isNil{missionNamespace getVariable _flag})) exitWith {true}; + if (diag_tickTime > _end_time) exitWith { + _timed_out = true; + true + }; + uiSleep 0.5; + }; + + if (_timed_out) exitWith { + diag_log format["WARNING: Timeout occurred while waiting for value of variable %2", _var]; + false + }; + }; +}; + +sh_hc_forward = {_this spawn { + ARGVX3(0,_var,""); + if (not(hasInterface || isDedicated)) exitWith {}; + if (not(call sh_hc_ready)) exitWith {}; + init(_id, owner HeadlessClient); + + //diag_log format["Forwarding %1 to headless client (_id = %2)", _var, _id]; + _id publicVariableClient _var; +}}; + shFunctions_loaded = true; diag_log "shFunctions loading complete"; \ No newline at end of file diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index 84c18bc80..fba0c801c 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -562,7 +562,7 @@ fn_kickPlayerIfFlagged = { }; -active_players_list = []; +active_players_list = OR_ARRAY(active_players_list,[]); p_getActivePlayerIndex = { ARGVX4(0,_player,objNull,-1); @@ -614,6 +614,7 @@ p_ActivePlayersListCleanup = { //event handlers for when player spawns "trackMe" addPublicVariableEventHandler { + _this call sh_hc_forward; //diag_log format["%1 call trackMe", _this]; ARGVX3(1,_this,[]); [_this select 0] call p_trackPlayer; @@ -753,12 +754,9 @@ pl_saveLoop_iteration = { pl_saveLoop_iteration_hc = { ARGVX3(0,_scope,""); - call p_ActivePlayersListCleanup; - init(_hc_id,owner HeadlessClient); diag_log format["pl_saveLoop: Offloading player list saving to headless client (id = %1)", _hc_id]; - _hc_id publicVariableClient "active_players_list"; pl_saveLoop_iteration_hc_handler = [_scope]; _hc_id publicVariableClient "pl_saveLoop_iteration_hc_handler"; }; diff --git a/persistence/world/hLoad.sqf b/persistence/world/hLoad.sqf index f522fe690..583e9bdd4 100644 --- a/persistence/world/hLoad.sqf +++ b/persistence/world/hLoad.sqf @@ -1,5 +1,6 @@ if (hasInterface) exitWith {}; diag_log "hLoad.sqf loading ..."; +#include "macro.h" externalConfigFolder = "\A3Wasteland_settings"; call compile preprocessFileLineNumbers "server\default_config.sqf"; @@ -7,6 +8,17 @@ call compile preprocessFileLineNumbers (externalConfigFolder + "\main_config.sqf call compile preprocessFileLineNumbers "persistence\fn_sock_custom.sqf"; call compile preprocessFileLineNumbers "persistence\lib\hash.sqf"; call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf"; + + +def(_var); +{ + _var = _x; + diag_log format["Syncing variable %1 ...", _var]; + [_var] call sh_sync; + diag_log format["%1 = %2", _var, missionNamespace getVariable _var]; + diag_log format["Syncing variable %1 complete", _var]; +} forEach ["active_players_list", "tracked_objects_list"]; + call compile preprocessFileLineNumbers "persistence\players\sFunctions.sqf"; call compile preprocessFileLineNumbers "persistence\players\pFunctions.sqf"; call compile preprocessFileLineNumbers "persistence\world\vFunctions.sqf"; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index b9e0ad0b3..e16419c88 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -529,7 +529,7 @@ o_trackedObjectsListCleanup = { -tracked_objects_list = []; +tracked_objects_list = OR_ARRAY(tracked_objects_list,[]); o_getTrackedObjectIndex = { ARGVX4(0,_obj,objNull,-1); @@ -549,7 +549,7 @@ o_trackObject = { }; //event handlers for object tracking, and untracking -"trackObject" addPublicVariableEventHandler { _this call o_trackObject; }; +"trackObject" addPublicVariableEventHandler { _this call sh_hc_forward; _this call o_trackObject;}; o_untrackObject = { private["_index","_object"]; @@ -561,7 +561,7 @@ o_untrackObject = { tracked_objects_list deleteAt _index; }; -"untrackObject" addPublicVariableEventHandler { _this call o_untrackObject; }; +"untrackObject" addPublicVariableEventHandler { _this call sh_hc_forward; _this call o_untrackObject; }; fn_manualObjectSave = { ARGVX3(0,_netId,""); @@ -595,13 +595,10 @@ o_saveLoop_iteration = { o_saveLoop_iteration_hc = { ARGVX3(0,_scope,""); - call o_trackedObjectsListCleanup; init(_hc_id,owner HeadlessClient); diag_log format["o_saveLoop: Offloading objects saving to headless client (id = %1)", _hc_id]; - _hc_id publicVariableClient "tracked_objects_list"; - o_saveLoop_iteration_hc_handler = [_scope]; _hc_id publicVariableClient "o_saveLoop_iteration_hc_handler"; }; @@ -717,6 +714,8 @@ o_loadObjects = { }} forEach _objects; _objects = _objects - [objNull]; } forEach o_loadingOrderArray; + + ["tracked_objects_list"] call sh_hc_forward; //forward to headless client (if connected) diag_log format["A3Wasteland - Total database objects: %1 ", _total_objects]; diag_log format["A3Wasteland - Real restored objects: %1 ", _restored_objects]; From c7a7fdac81d021323112370a245c16e36eefb4e0 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 25 Jan 2015 15:34:21 -0800 Subject: [PATCH 371/544] Clean object cache also when offloading to HC --- persistence/players/sFunctions.sqf | 2 ++ persistence/world/oFunctions.sqf | 2 ++ 2 files changed, 4 insertions(+) diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index fba0c801c..ef7ed6653 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -759,6 +759,8 @@ pl_saveLoop_iteration_hc = { pl_saveLoop_iteration_hc_handler = [_scope]; _hc_id publicVariableClient "pl_saveLoop_iteration_hc_handler"; + + call p_ActivePlayersListCleanup; }; if (!(hasInterface || isDedicated)) then { diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index e16419c88..c49814206 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -601,6 +601,8 @@ o_saveLoop_iteration_hc = { o_saveLoop_iteration_hc_handler = [_scope]; _hc_id publicVariableClient "o_saveLoop_iteration_hc_handler"; + + call o_trackedObjectsListCleanup; }; if (!(hasInterface || isDedicated)) then { From c3a9b9871699985400470094c23c3afa7866e25f Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 25 Jan 2015 16:08:11 -0800 Subject: [PATCH 372/544] Revert UGV thermal. --- server/functions/vehicleSetup.sqf | 5 ----- 1 file changed, 5 deletions(-) diff --git a/server/functions/vehicleSetup.sqf b/server/functions/vehicleSetup.sqf index 65ed52104..13bfb28c1 100644 --- a/server/functions/vehicleSetup.sqf +++ b/server/functions/vehicleSetup.sqf @@ -122,11 +122,6 @@ switch (true) do // Add quadbike horn to karts _vehicle addWeaponTurret ["MiniCarHorn", [-1]]; }; - case ({_class isKindOf _x} count ["UAV_02_base_F", "UGV_01_base_F"] > 0): - { - // Add thermal and nv to uav and ugv - _vehicle disableTIEquipment false; - }; }; From 5b49cdcd4d5718ace08df58b4dc2f3084bbfb400 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 25 Jan 2015 16:29:13 -0800 Subject: [PATCH 373/544] Updated mission.sqm --- mission.sqm | 336 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 246 insertions(+), 90 deletions(-) diff --git a/mission.sqm b/mission.sqm index 029a90bc9..80fb9b5fb 100644 --- a/mission.sqm +++ b/mission.sqm @@ -72,6 +72,7 @@ class Mission "a3_characters_f_gamma", "a3_characters_f", "A3_Structures_F_EPC_Civ_Accessories" + "A3_Structures_F_EPA_Mil_Scrapyard" }; addOnsAuto[]= { @@ -87,6 +88,7 @@ class Mission "A3_Structures_F_Civ_Market", "A3_Structures_F_Civ_Camping", "A3_Structures_F_EPC_Civ_Accessories", + "A3_Structures_F_EPA_Mil_Scrapyard", "a3_map_altis" }; randomSeed=14957468; @@ -95,22 +97,23 @@ class Mission briefingName="A3Wasteland Altis v1.1"; // it would be great if you could keep "A3" in the name, like "ABC A3Wasteland" instead of "ABC Wasteland" :) overviewText="Wasteland survival sandbox by Team Wasteland - visit A3Wasteland.com for more details"; resistanceWest=0; - timeOfChanges=3e+038; - startWeather=0; - startWind=0; - forecastWeather=0; - forecastWind=0; - forecastWaves=0; + startWeather=0.10000001; + startWind=0.30000001; + startWaves=0.40000001; + forecastWeather=0.40000004; + forecastWind=0.69999999; + forecastWaves=0.89999998; + forecastLightnings=0.30000001; year=2035; month=6; hour=6; minute=0; - startFogDecay=0.001; - forecastFogDecay=0.001; + startFogDecay=0.0029333001; + forecastFogDecay=0.0039332998; }; class Groups { - items=51; + items=53; class Item0 { side="WEST"; @@ -2030,8 +2033,8 @@ class Mission items=1; class Item0 { - position[]={3971.4854,4.7541585,15072.055}; - azimut=190; + position[]={3579.5254,26.183741,10782.619}; + azimut=69; id=158; side="LOGIC"; vehicle="C_man_1_1_F"; @@ -2043,15 +2046,57 @@ class Mission }; }; }; + class Item51 + { + side="LOGIC"; + class Vehicles + { + items=1; + class Item0 + { + position[]={5862.0181,225.68094,20106.371}; + azimut=282; + id=159; + side="LOGIC"; + vehicle="C_man_1_1_F"; + leader=1; + skill=0.60000002; + text="VehStore6"; + init="[this] spawn A3W_fnc_setupStoreNPC"; + description="DO NOT MODIFY IN EDITOR"; + }; + }; + }; + class Item52 + { + side="LOGIC"; + class Vehicles + { + items=1; + class Item0 + { + position[]={12399.979,24.920925,15566.039}; + azimut=83; + id=160; + side="LOGIC"; + vehicle="C_man_1_1_F"; + leader=1; + skill=0.60000002; + text="GunStore5"; + init="[this] spawn A3W_fnc_setupStoreNPC"; + description="DO NOT MODIFY IN EDITOR"; + }; + }; + }; }; class Vehicles { - items=30; + items=35; class Item0 { position[]={5892.3325,225.05762,20124.521}; azimut=24.888161; - id=159; + id=161; side="EMPTY"; vehicle="Land_i_House_Big_01_V1_F"; skill=0.2; @@ -2062,7 +2107,7 @@ class Mission { position[]={5802.2612,223.31776,20114.979}; azimut=97.660759; - id=160; + id=162; side="EMPTY"; vehicle="Land_u_House_Small_02_V1_F"; skill=0.2; @@ -2073,7 +2118,7 @@ class Mission { position[]={5812.7163,223.88718,20112.508}; azimut=97.660759; - id=161; + id=163; side="EMPTY"; vehicle="Land_u_House_Small_02_V1_F"; skill=0.2; @@ -2083,7 +2128,7 @@ class Mission class Item3 { position[]={5904.832,225.58371,20186.275}; - id=162; + id=164; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -2094,7 +2139,7 @@ class Mission { position[]={5778.2402,221.67844,20113.643}; azimut=7.7879138; - id=163; + id=165; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -2105,7 +2150,7 @@ class Mission { position[]={5883.7109,227.44626,20088.664}; azimut=38.791935; - id=164; + id=166; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -2116,7 +2161,7 @@ class Mission { position[]={5941.0063,219.62125,20237.648}; azimut=-76.434235; - id=165; + id=167; side="EMPTY"; vehicle="Land_Cargo_Patrol_V1_F"; skill=0.2; @@ -2127,7 +2172,7 @@ class Mission { position[]={5853.6426,218.96228,20175.209}; azimut=85.118469; - id=166; + id=168; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -2138,7 +2183,7 @@ class Mission { position[]={5851.854,221.32671,20162.656}; azimut=124.47146; - id=167; + id=169; side="EMPTY"; vehicle="Land_Slum_House02_F"; skill=0.2; @@ -2149,7 +2194,7 @@ class Mission { position[]={5847.7378,222.46086,20154.539}; azimut=133.80367; - id=168; + id=170; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -2160,7 +2205,7 @@ class Mission { position[]={5840.5811,223.07314,20150.303}; azimut=153.61746; - id=169; + id=171; side="EMPTY"; vehicle="Land_Slum_House01_F"; skill=0.2; @@ -2171,7 +2216,7 @@ class Mission { position[]={5830.8071,222.7514,20148.615}; azimut=177.95645; - id=170; + id=172; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -2182,7 +2227,7 @@ class Mission { position[]={5838.062,217.12964,20181.893}; azimut=-37.911983; - id=171; + id=173; side="EMPTY"; vehicle="Land_Slum_House01_F"; skill=0.2; @@ -2193,7 +2238,7 @@ class Mission { position[]={5832.1758,217.55113,20175.316}; azimut=-46.636852; - id=172; + id=174; side="EMPTY"; vehicle="Land_Slum_House02_F"; skill=0.2; @@ -2204,7 +2249,7 @@ class Mission { position[]={5826.5269,218.02791,20169.475}; azimut=-46.636852; - id=173; + id=175; side="EMPTY"; vehicle="Land_Slum_House01_F"; skill=0.2; @@ -2215,7 +2260,7 @@ class Mission { position[]={5819.561,219.2971,20159.201}; azimut=-90.399368; - id=174; + id=176; side="EMPTY"; vehicle="Land_Slum_House03_F"; skill=0.2; @@ -2226,7 +2271,7 @@ class Mission { position[]={5841.7822,222.42061,20158.293}; azimut=-44.915901; - id=175; + id=177; side="EMPTY"; vehicle="Land_StallWater_F"; skill=0.2; @@ -2237,7 +2282,7 @@ class Mission { position[]={5833.0811,221.07756,20159.025}; azimut=-66.432838; - id=176; + id=178; side="EMPTY"; vehicle="Land_Cages_F"; skill=0.2; @@ -2247,7 +2292,7 @@ class Mission class Item18 { position[]={5843.8735,219.25572,20169.4}; - id=177; + id=179; side="EMPTY"; vehicle="Land_CratesShabby_F"; skill=0.2; @@ -2258,7 +2303,7 @@ class Mission { position[]={5837.647,220.00575,20164.465}; azimut=-44.915901; - id=178; + id=180; side="EMPTY"; vehicle="Land_MarketShelter_F"; skill=0.2; @@ -2269,7 +2314,7 @@ class Mission { position[]={5836.4023,222.51828,20154.047}; azimut=-174.08286; - id=179; + id=181; side="EMPTY"; vehicle="Land_Sacks_heap_F"; skill=0.2; @@ -2280,7 +2325,7 @@ class Mission { position[]={5841.7148,217.69827,20176.627}; azimut=-123.43818; - id=180; + id=182; side="EMPTY"; vehicle="Land_WoodenCart_F"; skill=0.2; @@ -2289,90 +2334,124 @@ class Mission }; class Item22 { - position[]={5838.0376,219.93082,20164.814}; - azimut=163.54198; - id=181; + position[]={24678.867,2.3929932,18970.639}; + id=183; side="EMPTY"; - vehicle="Campfire_burning_F"; - skill=0.2; - init="[this, true] call A3W_fnc_setupMissionObject"; - description="DO NOT MODIFY IN EDITOR"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; }; class Item23 { - position[]={5846.2808,218.43889,20175.215}; - azimut=-44.915901; - id=182; + position[]={17484.883,45.786415,16465.258}; + id=184; side="EMPTY"; - vehicle="Campfire_burning_F"; - skill=0.2; - init="[this, true] call A3W_fnc_setupMissionObject"; - description="DO NOT MODIFY IN EDITOR"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; }; class Item24 + { + position[]={14860.01,8.8866749,11057.159}; + id=185; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item25 + { + position[]={21318.879,5.5621166,10468.235}; + id=186; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item26 + { + position[]={5630.6445,204.18716,19540.102}; + id=187; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item27 + { + position[]={11725.468,54.069294,18284.35}; + id=188; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item28 + { + position[]={5947.2061,101.94163,12468.482}; + id=189; + side="EMPTY"; + vehicle="Land_Scrap_MRAP_01_F"; + skill=0.60000002; + }; + class Item29 { position[]={3574.9937,11.526847,12800.598}; azimut=302.65201; offsetY=0.15000001; - id=183; + id=190; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; init="[this] call A3W_fnc_setupMissionATM"; description="DO NOT MODIFY IN EDITOR"; }; - class Item25 + class Item30 { position[]={14492,18.768188,16383.846}; azimut=185.51801; - id=184; + id=191; side="EMPTY"; vehicle="Land_Atm_01_F"; skill=0.60000002; init="[this] call A3W_fnc_setupMissionATM"; description="DO NOT MODIFY IN EDITOR"; }; - class Item26 + class Item31 { position[]={25618.682,20.873209,21353.275}; azimut=136.1844; offsetY=0.15000001; - id=185; + id=192; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; init="[this] call A3W_fnc_setupMissionATM"; description="DO NOT MODIFY IN EDITOR"; }; - class Item27 + class Item32 { position[]={16774.646,18.403027,12594.591}; azimut=270.28101; offsetY=0.15000001; - id=186; + id=193; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; init="[this] call A3W_fnc_setupMissionATM"; description="DO NOT MODIFY IN EDITOR"; }; - class Item28 + class Item33 { position[]={9507.4814,118.30473,15937.552}; azimut=4.3656998; offsetY=0.15000001; - id=187; + id=194; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; init="[this] call A3W_fnc_setupMissionATM"; description="DO NOT MODIFY IN EDITOR"; }; - class Item29 + class Item34 { position[]={21647.465,14.035986,7676.2676}; azimut=230.96605; - id=188; + id=195; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; @@ -2382,7 +2461,7 @@ class Mission }; class Markers { - items=174; + items=184; class Item0 { position[]={3612.1487,12.11851,13020.892}; @@ -2623,7 +2702,7 @@ class Mission }; class Item34 { - position[]={5062.5967,70.270027,13039.418}; + position[]={7042.917,13.922895,11416.329}; name="Mission_1"; type="Empty"; colorName="ColorOrange"; @@ -2637,70 +2716,70 @@ class Mission }; class Item36 { - position[]={12863.644,85.280762,16739.199}; + position[]={12574.066,33.292294,16320.846}; name="Mission_3"; type="Empty"; colorName="ColorOrange"; }; class Item37 { - position[]={14719.545,17.91,16588.41}; + position[]={15903.801,45.815987,18170.334}; name="Mission_4"; type="Empty"; colorName="ColorOrange"; }; class Item38 { - position[]={20857.92,2.3399255,14654.278}; + position[]={23823.162,7.3760862,16418.084}; name="Mission_5"; type="Empty"; colorName="ColorOrange"; }; class Item39 { - position[]={22902.482,6.8000588,18832.326}; + position[]={19886.855,65.16983,17849.635}; name="Mission_7"; type="Empty"; colorName="ColorOrange"; }; class Item40 { - position[]={26832.408,27.07863,24353.201}; + position[]={26838.061,26.449696,24341.111}; name="Mission_8"; type="Empty"; colorName="ColorOrange"; }; class Item41 { - position[]={20944.896,25.394508,7337.4028}; + position[]={21197.471,18.571796,7365.332}; name="Mission_9"; type="Empty"; colorName="ColorOrange"; }; class Item42 { - position[]={10481.982,92.54425,8165.8809}; + position[]={12093.65,3.3626416,10467.896}; name="Mission_10"; type="Empty"; colorName="ColorOrange"; }; class Item43 { - position[]={2727.3538,15.386948,10029.145}; + position[]={3607.2749,15.698098,10276.05}; name="Mission_11"; type="Empty"; colorName="ColorOrange"; }; class Item44 { - position[]={9214.7344,16.21249,21595.523}; + position[]={9794.957,5.1698751,22320.566}; name="Mission_12"; type="Empty"; colorName="ColorOrange"; }; class Item45 { - position[]={3067.5686,30.175802,18451.545}; + position[]={2998.4082,32.631886,18508.988}; name="Mission_13"; type="Empty"; colorName="ColorOrange"; @@ -2714,42 +2793,42 @@ class Mission }; class Item47 { - position[]={14610.646,20.695858,23086.605}; + position[]={16806.289,6.3426394,21895.252}; name="Mission_15"; type="Empty"; colorName="ColorOrange"; }; class Item48 { - position[]={20120.457,15.311475,19884.57}; + position[]={20150.699,15.581096,19873.928}; name="Mission_16"; type="Empty"; colorName="ColorOrange"; }; class Item49 { - position[]={20723.074,29.782133,10239.525}; + position[]={21236.416,2.4247937,10639.023}; name="Mission_17"; type="Empty"; colorName="ColorOrange"; }; class Item50 { - position[]={14253.941,4.9646177,13012.583}; + position[]={16720.473,10.761951,13549.766}; name="Mission_18"; type="Empty"; colorName="ColorOrange"; }; class Item51 { - position[]={8368.5674,13.81883,10719.636}; + position[]={9187.7529,109.82971,11440.142}; name="Mission_19"; type="Empty"; colorName="ColorOrange"; }; class Item52 { - position[]={6170.2021,44.518726,16368.712}; + position[]={6171.6982,44.522717,16368.712}; name="Mission_20"; type="Empty"; colorName="ColorOrange"; @@ -3473,21 +3552,21 @@ class Mission }; class Item142 { - position[]={18295.152,-6.7252245,8136.5732}; + position[]={13664.722,-0.120299,11892.979}; name="SunkenMission_0"; type="Empty"; colorName="ColorWhite"; }; class Item143 { - position[]={16985.289,-0.27175087,13616.465}; + position[]={15421.785,-0.20875727,14276.165}; name="SunkenMission_1"; type="Empty"; colorName="ColorWhite"; }; class Item144 { - position[]={9866.0479,0.014741103,11111.971}; + position[]={13106.126,-0.24947838,9494.5898}; name="SunkenMission_2"; type="Empty"; colorName="ColorWhite"; @@ -3501,35 +3580,35 @@ class Mission }; class Item146 { - position[]={3505.4102,-0.023277842,11439.938}; + position[]={3000.5508,-0.29678684,13521.053}; name="SunkenMission_4"; type="Empty"; colorName="ColorWhite"; }; class Item147 { - position[]={3849.9155,0.00057628582,15028.444}; + position[]={2357.9688,0.1024858,19374.357}; name="SunkenMission_5"; type="Empty"; colorName="ColorWhite"; }; class Item148 { - position[]={5281.2344,0.23328479,22658.328}; + position[]={6276.0981,0.2718358,22660.088}; name="SunkenMission_6"; type="Empty"; colorName="ColorWhite"; }; class Item149 { - position[]={21207.197,0.20755874,20124.484}; + position[]={17603.389,-0.027867785,18805.65}; name="SunkenMission_7"; type="Empty"; colorName="ColorWhite"; }; class Item150 { - position[]={24573.881,-0.0090859979,16154.248}; + position[]={23156.707,-0.036080703,24039.277}; name="SunkenMission_8"; type="Empty"; colorName="ColorWhite"; @@ -3682,22 +3761,99 @@ class Mission }; class Item171 { - position[]={3968.136,3.2309315,15051.626}; - name="VehStore5_landSpawn"; + position[]={3630.4226,0,10890.602}; + name="VehStore5_seaSpawn"; type="Empty"; colorName="ColorBlack"; }; class Item172 { - position[]={4001.2522,6.2997766,15050.635}; + position[]={3568.3159,39.908432,10713.679}; name="VehStore5_heliSpawn"; type="Empty"; colorName="ColorBlack"; }; class Item173 { - position[]={3922.1943,0,15060.141}; - name="VehStore5_seaSpawn"; + position[]={3620.7668,26.371962,10751.382}; + name="VehStore5_landSpawn"; + type="Empty"; + colorName="ColorBlack"; + }; + class Item174 + { + position[]={5921.7031,224.43871,20139.104}; + name="VehStore6_heliSpawn"; + type="Empty"; + colorName="ColorBlack"; + }; + class Item175 + { + position[]={5861.2695,223.71884,20135.684}; + name="VehStore6_landSpawn"; + type="Empty"; + colorName="ColorBlack"; + }; + class Item176 + { + position[]={24673.639,2.5595996,18967.119}; + name="Sell_Vehicle_Pad_Icon"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item177 + { + position[]={17479.654,45.452381,16461.738}; + name="Sell_Vehicle_Pad_Icon_1"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item178 + { + position[]={14854.781,8.6214705,11053.64}; + name="Sell_Vehicle_Pad_Icon_2"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item179 + { + position[]={21313.65,5.7161169,10464.716}; + name="Sell_Vehicle_Pad_Icon_3"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item180 + { + position[]={5627.0688,204.00546,19542.371}; + name="Sell_Vehicle_Pad_Icon_4"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item181 + { + position[]={11720.239,54.827972,18280.83}; + name="Sell_Vehicle_Pad_Icon_5"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item182 + { + position[]={5941.9775,101.78477,12464.963}; + name="Sell_Vehicle_Pad_Icon_6"; + text="Sell Vehicle"; + type="mil_dot"; + colorName="ColorGreen"; + }; + class Item183 + { + position[]={12412.868,24.364281,15579.608}; + name="GunStore5_objSpawn"; type="Empty"; colorName="ColorBlack"; }; From 9eacd776be73aa2df502d1be267d7397359e89ea Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 25 Jan 2015 16:33:54 -0800 Subject: [PATCH 374/544] Updated mission.sqm --- mission.sqm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/mission.sqm b/mission.sqm index 80fb9b5fb..3b5f52db9 100644 --- a/mission.sqm +++ b/mission.sqm @@ -97,19 +97,18 @@ class Mission briefingName="A3Wasteland Altis v1.1"; // it would be great if you could keep "A3" in the name, like "ABC A3Wasteland" instead of "ABC Wasteland" :) overviewText="Wasteland survival sandbox by Team Wasteland - visit A3Wasteland.com for more details"; resistanceWest=0; - startWeather=0.10000001; - startWind=0.30000001; - startWaves=0.40000001; - forecastWeather=0.40000004; - forecastWind=0.69999999; - forecastWaves=0.89999998; - forecastLightnings=0.30000001; + timeOfChanges=3e+038; + startWeather=0; + startWind=0; + forecastWeather=0; + forecastWind=0; + forecastWaves=0; year=2035; month=6; hour=6; minute=0; - startFogDecay=0.0029333001; - forecastFogDecay=0.0039332998; + startFogDecay=0.001; + forecastFogDecay=0.001; }; class Groups { From c3d1bb9c183584ec34b1736085bea1e3bc982224 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 25 Jan 2015 17:42:53 -0800 Subject: [PATCH 375/544] Updated mission.sqm --- mission.sqm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mission.sqm b/mission.sqm index 3b5f52db9..c7446381c 100644 --- a/mission.sqm +++ b/mission.sqm @@ -71,7 +71,7 @@ class Mission "a3_characters_f_beta", "a3_characters_f_gamma", "a3_characters_f", - "A3_Structures_F_EPC_Civ_Accessories" + "A3_Structures_F_EPC_Civ_Accessories", "A3_Structures_F_EPA_Mil_Scrapyard" }; addOnsAuto[]= From acd4af0ccd3ddb55a4d64e0fe069c884af179fef Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 25 Jan 2015 16:58:08 -0800 Subject: [PATCH 376/544] Offload vehicle saving to HC if available --- persistence/lib/shFunctions.sqf | 10 +++- persistence/players/sFunctions.sqf | 7 ++- persistence/world/hLoad.sqf | 14 +++++- persistence/world/oFunctions.sqf | 10 +++- persistence/world/vFunctions.sqf | 77 +++++++++++++++++++++++------- 5 files changed, 93 insertions(+), 25 deletions(-) diff --git a/persistence/lib/shFunctions.sqf b/persistence/lib/shFunctions.sqf index 576db1568..8097b1d89 100644 --- a/persistence/lib/shFunctions.sqf +++ b/persistence/lib/shFunctions.sqf @@ -374,15 +374,21 @@ if (not(hasInterface || isDedicated)) then { }; }; -sh_hc_forward = {_this spawn { +sh_hc_forward = { + //diag_log format["%1 call sh_hc_forward", _this]; ARGVX3(0,_var,""); + ARGV2(1,_val); if (not(hasInterface || isDedicated)) exitWith {}; if (not(call sh_hc_ready)) exitWith {}; init(_id, owner HeadlessClient); + if (!isNil "_val") then { + missionNamespace setVariable [_var, _val]; + }; + //diag_log format["Forwarding %1 to headless client (_id = %2)", _var, _id]; _id publicVariableClient _var; -}}; +}; shFunctions_loaded = true; diag_log "shFunctions loading complete"; \ No newline at end of file diff --git a/persistence/players/sFunctions.sqf b/persistence/players/sFunctions.sqf index ef7ed6653..36949c119 100644 --- a/persistence/players/sFunctions.sqf +++ b/persistence/players/sFunctions.sqf @@ -578,6 +578,9 @@ p_trackPlayer = { _index = [_player] call p_getActivePlayerIndex; if (_index >= 0) exitWith {}; + //forward to HC + ["trackMe", _player] call sh_hc_forward; + //diag_log format["%1 is being added to the active list", _player]; active_players_list pushBack _player; }; @@ -589,6 +592,9 @@ p_untrackPlayer = { _index = [_player] call p_getActivePlayerIndex; if (_index < 0) exitWith {}; + //forward to HC + ["untrackMe", _player] call sh_hc_forward; + //diag_log format["%1 is being removed from the active list", _player]; active_players_list deleteAt _index; }; @@ -614,7 +620,6 @@ p_ActivePlayersListCleanup = { //event handlers for when player spawns "trackMe" addPublicVariableEventHandler { - _this call sh_hc_forward; //diag_log format["%1 call trackMe", _this]; ARGVX3(1,_this,[]); [_this select 0] call p_trackPlayer; diff --git a/persistence/world/hLoad.sqf b/persistence/world/hLoad.sqf index 583e9bdd4..6b3cce998 100644 --- a/persistence/world/hLoad.sqf +++ b/persistence/world/hLoad.sqf @@ -11,13 +11,23 @@ call compile preprocessFileLineNumbers "persistence\lib\shFunctions.sqf"; def(_var); +def(_val); { _var = _x; diag_log format["Syncing variable %1 ...", _var]; [_var] call sh_sync; - diag_log format["%1 = %2", _var, missionNamespace getVariable _var]; + _val = missionNamespace getVariable _var; + + if (isARRAY(_val)) then { + diag_log format["count(%1) = %2", _var, count(_val)]; + } + else { + diag_log format["%1 = %2", _var,OR(_val,nil)]; + }; + diag_log format["Syncing variable %1 complete", _var]; -} forEach ["active_players_list", "tracked_objects_list"]; + +} forEach ["active_players_list", "tracked_objects_list", "tracked_vehicles_list"]; call compile preprocessFileLineNumbers "persistence\players\sFunctions.sqf"; call compile preprocessFileLineNumbers "persistence\players\pFunctions.sqf"; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index c49814206..661c3c0bc 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -544,12 +544,15 @@ o_trackObject = { _index = [OR(_object,nil)] call o_getTrackedObjectIndex; if (_index >= 0) exitWith {}; + //forward to HC + ["trackObject", _object] call sh_hc_forward; + //diag_log format["%1 is being added to the tracked list", _object]; tracked_objects_list pushBack _object; }; //event handlers for object tracking, and untracking -"trackObject" addPublicVariableEventHandler { _this call sh_hc_forward; _this call o_trackObject;}; +"trackObject" addPublicVariableEventHandler { _this call o_trackObject;}; o_untrackObject = { private["_index","_object"]; @@ -557,11 +560,14 @@ o_untrackObject = { _index = [OR(_object,nil)] call o_getTrackedObjectIndex; if (_index < 0) exitWith {}; + //forward to HC + ["untrackObject", _object] call sh_hc_forward; + //diag_log format["%1 is being removed from the tracked list", _object]; tracked_objects_list deleteAt _index; }; -"untrackObject" addPublicVariableEventHandler { _this call sh_hc_forward; _this call o_untrackObject; }; +"untrackObject" addPublicVariableEventHandler { _this call o_untrackObject; }; fn_manualObjectSave = { ARGVX3(0,_netId,""); diff --git a/persistence/world/vFunctions.sqf b/persistence/world/vFunctions.sqf index 968cdb9bd..0d121717f 100644 --- a/persistence/world/vFunctions.sqf +++ b/persistence/world/vFunctions.sqf @@ -118,14 +118,14 @@ v_restoreVehicle = {_this spawn { _obj setVectorDirAndUp _dir; }; - _obj setVariable ["baseSaving_spawningTime", diag_tickTime]; + _obj setVariable ["baseSaving_spawningTime", diag_tickTime, true]; if (isSCALAR(_hours_alive)) then { - _obj setVariable ["baseSaving_hoursAlive", _hours_alive]; + _obj setVariable ["baseSaving_hoursAlive", _hours_alive, true]; }; - _obj setVariable ["vehicle_abandoned_time", diag_tickTime]; //the moment the vehicle is restored, consider it abandoned + _obj setVariable ["vehicle_abandoned_time", diag_tickTime, true]; //the moment the vehicle is restored, consider it abandoned if (isSCALAR(_hours_abandoned)) then { - _obj setVariable ["vehicle_abandoned_hours", _hours_abandoned]; + _obj setVariable ["vehicle_abandoned_hours", _hours_abandoned, true]; }; // disables thermal equipment on loaded vehicles, comment out if you want thermal @@ -226,7 +226,7 @@ v_restoreVehicle = {_this spawn { }};; -tracked_vehicles_list = []; +tracked_vehicles_list = OR_ARRAY(tracked_vehicles_list,[]); v_getTrackedVehicleIndex = { ARGVX4(0,_obj,objNull,-1); @@ -241,6 +241,9 @@ v_trackVehicle = { _index = [OR(_object,nil)] call v_getTrackedVehicleIndex; if (_index >= 0) exitWith {}; + //forward to HC + ["trackVehicle", _object] call sh_hc_forward; + //diag_log format["%1 is being added to the tracked list", _object]; tracked_vehicles_list pushBack _object; }; @@ -255,10 +258,16 @@ v_untrackVehicle = { _index = [OR(_object,nil)] call v_getTrackedVehicleIndex; if (_index < 0) exitWith {}; + //forward to HC + ["untrackVehicle", _object] call sh_hc_forward; + //diag_log format["%1 is being removed from the tracked list", _object]; tracked_vehicles_list deleteAt _index; }; +//event handlers for object tracking, and untracking +"untrackVehicle" addPublicVariableEventHandler { [_this select 1] call v_untrackVehicle;}; + fn_manualVehicleSave = { ARGVX2(0,_object); @@ -269,8 +278,8 @@ fn_manualVehicleSave = { if (!isOBJECT(_object)) exitWith {}; if (diag_tickTime - (_object getVariable ["vehSaving_lastSave", 0]) <= MANUAL_VEH_SAVE_COOLDOWN) exitWith {}; - _object setVariable ["vehSaving_lastUse", diag_tickTime]; - _object setVariable ["vehSaving_lastSave", diag_tickTime]; + _object setVariable ["vehSaving_lastUse", diag_tickTime, true]; + _object setVariable ["vehSaving_lastSave", diag_tickTime, true]; [_object] call v_trackVehicle; }; @@ -393,12 +402,12 @@ v_trackVehicleHoursAbandoned = { if (!isSCALAR(_abandonedTime)) then { _abandonedTime = diag_tickTime; - _obj setVariable ["vehicle_abandoned_time", _abandonedTime]; + _obj setVariable ["vehicle_abandoned_time", _abandonedTime, true]; }; if (!isSCALAR(_hoursAbandoned)) then { _hoursAbandoned = 0; - _obj setVariable ["vehicle_abandoned_hours", _hoursAbandoned]; + _obj setVariable ["vehicle_abandoned_hours", _hoursAbandoned, true]; }; @@ -599,13 +608,13 @@ v_GetIn_handler = { init(_uid,getPlayerUID _player); if ([_obj] call v_isVehicleVirgin) then { - _obj setVariable ["vehicle_first_user", _uid]; + _obj setVariable ["vehicle_first_user", _uid, true]; }; //diag_log format["%1 entered vehicle by %2", _obj, _player]; - _obj setVariable ["vehicle_abandoned_by", nil]; - _obj setVariable ["vehicle_abandoned_time", nil]; - _obj setVariable ["vehicle_abandoned_hours", nil]; + _obj setVariable ["vehicle_abandoned_by", nil, true]; + _obj setVariable ["vehicle_abandoned_time", nil, true]; + _obj setVariable ["vehicle_abandoned_hours", nil, true]; [_obj] call v_trackVehicle; }; @@ -621,14 +630,14 @@ v_GetOut_handler = { //in case the player was already inside the vehicle ... (the get-in handler did not catch it) if ([_obj] call v_isVehicleVirgin) then { - _obj setVariable ["vehicle_first_user", _uid]; + _obj setVariable ["vehicle_first_user", _uid, true]; }; if ([_obj] call v_isVehicleEmpty) then { //diag_log format["%1 left abandoned by %2", _obj, _player]; - _obj setVariable ["vehicle_abandoned_by", _uid]; - _obj setVariable ["vehicle_abandoned_time", diag_tickTime]; - _obj setVariable ["vehicle_abandoned_hours", nil]; //start counting the hours form 0 again + _obj setVariable ["vehicle_abandoned_by", _uid, true]; + _obj setVariable ["vehicle_abandoned_time", diag_tickTime, true]; + _obj setVariable ["vehicle_abandoned_hours", nil, true]; //start counting the hours form 0 again }; }; @@ -679,12 +688,41 @@ v_saveLoop_iteration = { diag_log format["v_saveLoop: Saving all objects complete"]; }; + +v_saveLoop_iteration_hc = { + ARGVX3(0,_scope,""); + + init(_hc_id,owner HeadlessClient); + diag_log format["v_saveLoop: Offloading vehicles saving to headless client (id = %1)", _hc_id]; + + v_saveLoop_iteration_hc_handler = [_scope]; + _hc_id publicVariableClient "v_saveLoop_iteration_hc_handler"; + + call v_trackedVehiclesListCleanup; +}; + +if (!(hasInterface || isDedicated)) then { + diag_log format["Setting up HC handler for objects"]; + "v_saveLoop_iteration_hc_handler" addPublicVariableEventHandler { + //diag_log format["v_saveLoop_iteration_hc_handler = %1", _this]; + ARGVX3(1,_this,[]); + ARGVX3(0,_scope,""); + _this spawn v_saveLoop_iteration; + }; +}; + + v_saveLoop = { ARGVX3(0,_scope,""); while {true} do { sleep A3W_vehicle_saveInterval; if (not(isBOOLEAN(v_saveLoopActive) && {!v_saveLoopActive})) then { - [_scope] call v_saveLoop_iteration; + if (call sh_hc_ready) then { + [_scope] call v_saveLoop_iteration_hc; + } + else { + [_scope] call v_saveLoop_iteration; + }; }; }; }; @@ -712,6 +750,9 @@ v_loadVehicles = { v_loadVehicles_complete = true; + ["tracked_vehicles_list"] call sh_hc_forward; //forward to headless client (if connected) + + (_vIds) }; From 580a9909e77a9fb3fb9f8193fb654710ecc391d3 Mon Sep 17 00:00:00 2001 From: micovery Date: Sun, 25 Jan 2015 23:26:50 -0800 Subject: [PATCH 377/544] Do not run 3rd party scripts on HC --- init.sqf | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/init.sqf b/init.sqf index 16c439530..7ae9f3dc9 100644 --- a/init.sqf +++ b/init.sqf @@ -68,8 +68,11 @@ if (isServer) then [] execVM "server\init.sqf"; }; -//init 3rd Party Scripts -[] execVM "addons\R3F_ARTY_AND_LOG\init.sqf"; -[] execVM "addons\proving_ground\init.sqf"; -[] execVM "addons\scripts\DynamicWeatherEffects.sqf"; -[] execVM "addons\JumpMF\init.sqf"; +//init 3rd Party Scripts (not supposed to run on HC) +if (hasInterface || isServer) then +{ + [] execVM "addons\R3F_ARTY_AND_LOG\init.sqf"; + [] execVM "addons\proving_ground\init.sqf"; + [] execVM "addons\scripts\DynamicWeatherEffects.sqf"; + [] execVM "addons\JumpMF\init.sqf"; +}; \ No newline at end of file From 95829619c20ce63d55d437e2373b823cbd53f165 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 26 Jan 2015 00:29:28 -0800 Subject: [PATCH 378/544] Redo of chem lights. --- client/functions/playerSetupGear.sqf | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/client/functions/playerSetupGear.sqf b/client/functions/playerSetupGear.sqf index ee627327e..226f0c733 100644 --- a/client/functions/playerSetupGear.sqf +++ b/client/functions/playerSetupGear.sqf @@ -41,9 +41,6 @@ _player addMagazine "9Rnd_45ACP_Mag"; _player addMagazine "9Rnd_45ACP_Mag"; _player addMagazine "9Rnd_45ACP_Mag"; _player addItem "FirstAidKit"; -_player addItem "Chemlight_green"; -_player addItem "Chemlight_red"; -_player addItem "Chemlight_blue"; _player selectWeapon "hgun_ACPC2_F"; switch (true) do @@ -64,6 +61,22 @@ switch (true) do }; }; +switch (side _player) do +{ + case west: + { + _player addItem "Chemlight_blue"; + }; + case east: + { + _player addItem "Chemlight_red"; + }; + case resistance: + { + _player addItem "Chemlight_green"; + }; +}; + if (_player == player) then { thirstLevel = 100; From c3eac2531cc00f931cf8e735a628d3c902334bb9 Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Mon, 26 Jan 2015 00:41:16 -0800 Subject: [PATCH 379/544] Update init.sqf --- init.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.sqf b/init.sqf index 6c699cc2f..3eb860c0c 100644 --- a/init.sqf +++ b/init.sqf @@ -75,7 +75,7 @@ if (isServer) then //init 3rd Party Scripts (not supposed to run on HC) if (hasInterface || isServer) then { - [] execVM "addons\vactions\functions.sqf"; + [] execVM "addons\vactions\functions.sqf"; [] execVM "addons\parking\functions.sqf"; [] execVM "addons\storage\functions.sqf"; [] execVM "addons\R3F_ARTY_AND_LOG\init.sqf"; From 489d955b4404943660a0024214029954ca15257b Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 5 Feb 2015 00:58:26 -0800 Subject: [PATCH 380/544] Updated configs. --- addons/vactions/config.sqf | 2 +- server/default_config.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/vactions/config.sqf b/addons/vactions/config.sqf index 48847549e..637102ecc 100644 --- a/addons/vactions/config.sqf +++ b/addons/vactions/config.sqf @@ -26,6 +26,6 @@ cfg_va_lock_sound_play = true; cfg_va_lock_from_inside = true; //List of classes for vehicles that can locked/unlocked (empty means all) -cfg_va_lock_actions_classes_list = ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Heli_Transport_02_F", "Plane", "UGV_01_base_F"]; +cfg_va_lock_actions_classes_list = ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Heli_Transport_02_F", "Plane", "UGV_01_base_F"]; diff --git a/server/default_config.sqf b/server/default_config.sqf index beb7ee148..fe8bb631e 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -9,7 +9,7 @@ // General settings A3W_startHour = 4; // In-game hour at mission start (0 to 23) -A3W_timeMultiplierDay = 2.4; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) +A3W_timeMultiplierDay = 2.1; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) A3W_timeMultiplierNight = 4.0; // Sets the speed of time between 8 PM and 5 AM A3W_moonLight = 1; // Moon light during night (0 = no, 1 = yes) A3W_teamPlayersMap = 1; // Show all friendly players on the map at all times, regardless of difficulty level (0 = no, 1 = yes) From 6d58143a976439430a39a5bfc2d8c9179ecc4f7f Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 5 Feb 2015 01:19:38 -0800 Subject: [PATCH 381/544] Changed some spelling. --- addons/storage/config.sqf | 2 +- description.ext | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/storage/config.sqf b/addons/storage/config.sqf index 822764be5..b850bcb0d 100644 --- a/addons/storage/config.sqf +++ b/addons/storage/config.sqf @@ -17,6 +17,6 @@ ps_markers_properties = ["ICON", "mil_dot", "ColorUNKNOWN", [1.2,1.2], "Storage" * Supply0, Supply1, Supply2, Supply3, Supply4, Supply5, Supply6, Supply7, Supply8, Supply9, Supply10, Supply20 * Supply30, Supply40, Supply50, Supply60, Supply70, Supply80, Supply90, Supply100, Supply110, Supply120, Supply130 * Supply140, Supply150, Supply160, Supply170, Supply180, Supply190, Supply200, Supply210, Supply220, Supply230, Supply240 - * Supply250, Supply300, Supply350, Supply380, Supply400, Supply420, Supply440, Supply450, Supply480, Suppy500 + * Supply250, Supply300, Supply350, Supply380, Supply400, Supply420, Supply440, Supply450, Supply480, Supply500 */ ps_container_class = "Supply500"; \ No newline at end of file diff --git a/description.ext b/description.ext index cf0e4381a..d51c50a8e 100644 --- a/description.ext +++ b/description.ext @@ -80,7 +80,7 @@ class CfgDebriefing { title = "Restarting"; subtitle = "Thank you for playing @ A3Armory"; - description = "Server will save the database and restart to increase performance. Please, give the server some time"; + description = "Server will save the database and restart to increase performance. Please, give the server some time before you join."; }; }; From eb74076f13342d764a60ad5a92a54632e7b62847 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 12 Feb 2015 22:29:09 -0800 Subject: [PATCH 382/544] Make sure allow damage is set to true on objects at restart. --- persistence/world/oFunctions.sqf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index f16c3586b..8bf74dce4 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -298,7 +298,12 @@ o_restoreObject = { _obj setDamage _damage; }; - _allowDamage = if(isSCALAR(_allowDamage) && {_allowDamage <= 0}) then { false } else { true }; + _allowDamage = true; + + if (_class isKindOf "Box_NATO_Wps_F" || _class isKindOf "Box_NATO_WpsSpecial_F" || _class isKindOf "Box_East_Wps_F" || _class isKindOf "Box_East_WpsSpecial_F" || _class isKindOf "Box_IND_Wps_F" || _class isKindOf "Box_IND_WpsSpecial_F") then { + _allowDamage = false; + }; + [_obj, _allowDamage] spawn { ARGVX3(0,_obj,objNull); ARGVX3(1,_allowDamage,false); From 2bdd23e3dfd8f2c67299fb2f2dd5eb0f3dbb73d3 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 12 Feb 2015 22:38:38 -0800 Subject: [PATCH 383/544] Team kill punish set to 1 kill. --- client/functions/playerSpawn.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/functions/playerSpawn.sqf b/client/functions/playerSpawn.sqf index 913f8507a..ca5b16955 100644 --- a/client/functions/playerSpawn.sqf +++ b/client/functions/playerSpawn.sqf @@ -12,7 +12,7 @@ playerSpawning = true; //Teamkiller Kick if (!isNil "pvar_teamKillList" && {playerSide in [BLUFOR,OPFOR]}) then { - if ([pvar_teamKillList, getPlayerUID player, 0] call fn_getFromPairs >= 2) exitWith + if ([pvar_teamKillList, getPlayerUID player, 0] call fn_getFromPairs >= 1) exitWith { player allowDamage false; [player, "AinjPpneMstpSnonWrflDnon"] call switchMoveGlobal; From 4781a1a20006764e9784621beddd905bc052f081 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 12 Feb 2015 22:41:38 -0800 Subject: [PATCH 384/544] Changed some prices. --- storeConfig.sqf | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/storeConfig.sqf b/storeConfig.sqf index a4f5cb9d4..15f57c0a5 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -83,12 +83,12 @@ launcherArray = compileFinal str [ ["RPG-42 Alamut", "launch_RPG32_F", 400], ["PCML", "launch_NLAW_F", 500], - ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 1000], - ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 1000], - ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 1000], - ["Titan MPRL AA (Desert)", "launch_Titan_F", 750], - ["Titan MPRL AA (Hex)", "launch_O_Titan_F", 750], - ["Titan MPRL AA (Digi)", "launch_I_Titan_F", 750] + ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 2000], + ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 2000], + ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 2000], + ["Titan MPRL AA (Desert)", "launch_Titan_F", 1750], + ["Titan MPRL AA (Hex)", "launch_O_Titan_F", 1750], + ["Titan MPRL AA (Digi)", "launch_I_Titan_F", 1750] ]; allGunStoreFirearms = compileFinal str (call pistolArray + call smgArray + call rifleArray + call lmgArray + call launcherArray); @@ -120,9 +120,9 @@ staticGunsArray = compileFinal str ["Mk32 GMG 20mm High tripod (NATO)", "B_GMG_01_high_F", 6000], ["Mk32 GMG 20mm High tripod (CSAT)", "O_GMG_01_high_F", 6000], ["Mk32 GMG 20mm High tripod (AAF)", "I_GMG_01_high_F", 6000], - ["Mk6 Mortar (NATO)", "B_Mortar_01_F", 15000], - ["Mk6 Mortar (CSAT)", "O_Mortar_01_F", 15000], - ["Mk6 Mortar (AAF)", "I_Mortar_01_F", 15000] + ["Mk6 Mortar (NATO)", "B_Mortar_01_F", 25000], + ["Mk6 Mortar (CSAT)", "O_Mortar_01_F", 25000], + ["Mk6 Mortar (AAF)", "I_Mortar_01_F", 25000] ]; throwputArray = compileFinal str @@ -180,9 +180,9 @@ ammoArray = compileFinal str ["RPG-42 Anti-Tank Rocket", "RPG32_F", 250], // Direct damage: high | Splash damage: low | Guidance: none ["RPG-42 High-Explosive Rocket", "RPG32_HE_F", 250], // Direct damage: medium | Splash damage: medium | Guidance: none ["PCML Anti-Tank Missile", "NLAW_F", 350], // Direct damage: very high | Splash damage: low | Guidance: laser, ground vehicles - ["Titan Anti-Tank Missile", "Titan_AT", 600], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles - ["Titan Anti-Personnel Missile", "Titan_AP", 450], // Direct damage: low | Splash damage: high | Guidance: mouse, laser - ["Titan Anti-Air Missile", "Titan_AA", 500], // Direct damage: low | Splash damage: medium | Guidance: aircraft + ["Titan Anti-Tank Missile", "Titan_AT", 750], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles + ["Titan Anti-Personnel Missile", "Titan_AP", 550], // Direct damage: low | Splash damage: high | Guidance: mouse, laser + ["Titan Anti-Air Missile", "Titan_AA", 700], // Direct damage: low | Splash damage: medium | Guidance: aircraft ["40mm HE Grenade Round", "1Rnd_HE_Grenade_shell", 125], ["40mm 3Rnd HE Grenades", "3Rnd_HE_Grenade_shell", 250], ["40mm Smoke Round (White)", "1Rnd_Smoke_Grenade_shell", 50], From 6bdce469a027c9e5329ca838c331b002283f1e04 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 12 Feb 2015 23:11:14 -0800 Subject: [PATCH 385/544] Fix for team kill tweak. --- client/functions/updateTeamKiller.sqf | 5 ----- stringtable.xml | 4 ++-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/client/functions/updateTeamKiller.sqf b/client/functions/updateTeamKiller.sqf index d6e0ece05..34305e7e6 100644 --- a/client/functions/updateTeamKiller.sqf +++ b/client/functions/updateTeamKiller.sqf @@ -6,11 +6,6 @@ // @file Author: [404] Deadbeat // @file Created: 20/11/2012 05:19 -if (_this < 2) exitWith -{ - call teamkillMessage; -}; - setPlayerRespawnTime 1e11; player setDamage 1; sleep 1; diff --git a/stringtable.xml b/stringtable.xml index 0589db9aa..c2375b4d0 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -22,10 +22,10 @@ - You have been punished for teamkilling twice during this server session. Your inventory has been wiped, and you are now locked to the Independent side. + You have been punished for teamkilling during this server session. Your inventory has been wiped, and you are now locked to the Independent side. - You are restricted to the Independent side, due to having done 2 or more teamkills during this server session. + You are restricted to the Independent side, due to a teamkill during this server session. You have played as %1 for too long and cannot switch to the other team. You can still play as Independent. (or if online, ask an admin to unlock you) From a6c4f53b83bc037d04dbacc70f1084d2a810c7bb Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 23 Feb 2015 09:47:36 -0800 Subject: [PATCH 386/544] Money limits and removed titan compact lock --- client/clientEvents/onKeyPress.sqf | 13 +++++++++++++ client/functions/clientCompile.sqf | 1 + client/functions/playerSpawn.sqf | 11 +++++++++++ client/init.sqf | 1 + persistence/world/oFunctions.sqf | 8 ++++++++ 5 files changed, 34 insertions(+) diff --git a/client/clientEvents/onKeyPress.sqf b/client/clientEvents/onKeyPress.sqf index 7840c3d76..4bd0f88a1 100644 --- a/client/clientEvents/onKeyPress.sqf +++ b/client/clientEvents/onKeyPress.sqf @@ -56,6 +56,19 @@ switch (true) do // ********** Action keys ********** +// Remove Titan compact lock +if (!_handled && (inputAction "LockTarget" > 0 || inputAction "LockTargets" > 0)) then { + private["_cweapon"]; + _cweapon = currentWeapon player; + if (_cweapon == "launch_Titan_short_F" || { + _cweapon == "launch_I_Titan_short_F" || { + _cweapon == "launch_O_Titan_short_F"}}) then { + player groupChat format["Locking with Titan launchers is disabled. You have to manually guide the misile by aiming."]; + player action ["WeaponOnBack", player]; + _handled = true; + }; +}; + // Parachute if (!_handled && _key in actionKeys "GetOver") then { diff --git a/client/functions/clientCompile.sqf b/client/functions/clientCompile.sqf index e596ea926..dac75d24c 100644 --- a/client/functions/clientCompile.sqf +++ b/client/functions/clientCompile.sqf @@ -15,6 +15,7 @@ onRespawn = "client\clientEvents\onRespawn.sqf" call mf_compile; onKilled = "client\clientEvents\onKilled.sqf" call mf_compile; onKeyPress = "client\clientEvents\onKeyPress.sqf" call mf_compile; onKeyRelease = "client\clientEvents\onKeyRelease.sqf" call mf_compile; +onMouseButtonDown = "client\clientEvents\onMouseButtonDown.sqf" call mf_compile; // Functions A3W_fnc_copilotTakeControl = "client\functions\copilotTakeControl.sqf" call mf_compile; diff --git a/client/functions/playerSpawn.sqf b/client/functions/playerSpawn.sqf index ca5b16955..40b9f4d29 100644 --- a/client/functions/playerSpawn.sqf +++ b/client/functions/playerSpawn.sqf @@ -103,3 +103,14 @@ player allowDamage true; playerSpawning = false; player setVariable ["playerSpawning", false, true]; + +private["_max_money"]; +_max_money = 250000; + +if (player getVariable ["bmoney", 0] > _max_money) then { + player setVariable ["bmoney", _max_money, true]; +}; + +if (player getVariable ["cmoney", 0] > _max_money) then { + player setVariable ["cmoney", _max_money, true]; +}; \ No newline at end of file diff --git a/client/init.sqf b/client/init.sqf index 2017aac86..c08fa25ce 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -117,6 +117,7 @@ if (count (["config_territory_markers", []] call getPublicVar) > 0) then waitUntil {!isNull findDisplay 46}; (findDisplay 46) displayAddEventHandler ["KeyDown", onKeyPress]; (findDisplay 46) displayAddEventHandler ["KeyUp", onKeyRelease]; +(findDisplay 46) displayAddEventHandler ["MouseButtonDown", onMouseButtonDown]; call compile preprocessFileLineNumbers "client\functions\setupClientPVars.sqf"; diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 8bf74dce4..526f18646 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -370,7 +370,15 @@ o_restoreObject = { if ([_obj] call sh_isUAV_UGV) then { createVehicleCrew _obj; }; + + //Remove money + private["_max_money"]; + _max_money = 1000000; + if (_obj getVariable ["cmoney", 0] > _max_money) then { + _obj setVariable ["cmoney", _max_money, true]; + }; + if (not([_obj] call sh_isMine)) exitWith { //don't put mines in the tracked objects list (we use allMines) //objects, warchests, and beacons tracked_objects_list pushBack _obj; From f07e4772f11b3d20d9bb293a3e7334886ec9b8d8 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 23 Feb 2015 09:53:26 -0800 Subject: [PATCH 387/544] Money limits and removed titan compact lock --- client/clientEvents/onMouseButtonDown.sqf | 34 +++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 client/clientEvents/onMouseButtonDown.sqf diff --git a/client/clientEvents/onMouseButtonDown.sqf b/client/clientEvents/onMouseButtonDown.sqf new file mode 100644 index 000000000..3e82bdb08 --- /dev/null +++ b/client/clientEvents/onMouseButtonDown.sqf @@ -0,0 +1,34 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Version: 1.0 +// @file Name: onMouseButtonDown.sqf +// @file Author: micovery, Gigatek +// @file Created: 23/2/2015 +// @file Args: + +private["_handled", "_display", "_button", "_x", "_y", "_shift", "_control"]; + +_handled = false; +_display = _this select 0; +_button = _this select 1; +_x = _this select 2; +_y = _this select 3; +_shift = _this select 4; +_control = _this select 5; + + +if (!_handled && (inputAction "LockTarget" > 0 || inputAction "LockTargets" > 0)) then { + private["_cweapon"]; + _cweapon = currentWeapon player; + if (_cweapon == "launch_Titan_short_F" || { + _cweapon == "launch_I_Titan_short_F" || { + _cweapon == "launch_O_Titan_short_F"}}) then { + player groupChat format["Locking with Titan launchers is disabled. You have to manually guide the misile by aiming."]; + player action ["WeaponOnBack", player]; + _handled = true; + }; +}; + + +_handled From 9428af80ec7b4dea596c358569ad5f169ebbac8d Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 23 Feb 2015 10:19:59 -0800 Subject: [PATCH 388/544] Tweaks --- client/clientEvents/onKeyPress.sqf | 1 - client/clientEvents/onMouseButtonDown.sqf | 5 ++--- storeConfig.sqf | 18 +++++++++--------- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/client/clientEvents/onKeyPress.sqf b/client/clientEvents/onKeyPress.sqf index 4bd0f88a1..22e575573 100644 --- a/client/clientEvents/onKeyPress.sqf +++ b/client/clientEvents/onKeyPress.sqf @@ -63,7 +63,6 @@ if (!_handled && (inputAction "LockTarget" > 0 || inputAction "LockTargets" > 0) if (_cweapon == "launch_Titan_short_F" || { _cweapon == "launch_I_Titan_short_F" || { _cweapon == "launch_O_Titan_short_F"}}) then { - player groupChat format["Locking with Titan launchers is disabled. You have to manually guide the misile by aiming."]; player action ["WeaponOnBack", player]; _handled = true; }; diff --git a/client/clientEvents/onMouseButtonDown.sqf b/client/clientEvents/onMouseButtonDown.sqf index 3e82bdb08..1cdbd0c8c 100644 --- a/client/clientEvents/onMouseButtonDown.sqf +++ b/client/clientEvents/onMouseButtonDown.sqf @@ -24,9 +24,8 @@ if (!_handled && (inputAction "LockTarget" > 0 || inputAction "LockTargets" > 0) if (_cweapon == "launch_Titan_short_F" || { _cweapon == "launch_I_Titan_short_F" || { _cweapon == "launch_O_Titan_short_F"}}) then { - player groupChat format["Locking with Titan launchers is disabled. You have to manually guide the misile by aiming."]; - player action ["WeaponOnBack", player]; - _handled = true; + player action ["WeaponOnBack", player]; + _handled = true; }; }; diff --git a/storeConfig.sqf b/storeConfig.sqf index 15f57c0a5..cf399e3d9 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -82,10 +82,10 @@ lmgArray = compileFinal str launcherArray = compileFinal str [ ["RPG-42 Alamut", "launch_RPG32_F", 400], - ["PCML", "launch_NLAW_F", 500], - ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 2000], - ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 2000], - ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 2000], + ["PCML", "launch_NLAW_F", 1000], + ["Titan MPRL Compact (Tan)", "launch_Titan_short_F", 1750], + ["Titan MPRL Compact (Brown)", "launch_O_Titan_short_F", 1750], + ["Titan MPRL Compact (Olive)", "launch_I_Titan_short_F", 1750], ["Titan MPRL AA (Desert)", "launch_Titan_F", 1750], ["Titan MPRL AA (Hex)", "launch_O_Titan_F", 1750], ["Titan MPRL AA (Digi)", "launch_I_Titan_F", 1750] @@ -177,11 +177,11 @@ ammoArray = compileFinal str [".408 7Rnd Cheetah Mag", "7Rnd_408_Mag", 100], ["12.7mm 5Rnd Mag", "5Rnd_127x108_Mag", 100], ["12.7mm 5Rnd Armor-Piercing Mag", "5Rnd_127x108_APDS_Mag", 150], - ["RPG-42 Anti-Tank Rocket", "RPG32_F", 250], // Direct damage: high | Splash damage: low | Guidance: none - ["RPG-42 High-Explosive Rocket", "RPG32_HE_F", 250], // Direct damage: medium | Splash damage: medium | Guidance: none - ["PCML Anti-Tank Missile", "NLAW_F", 350], // Direct damage: very high | Splash damage: low | Guidance: laser, ground vehicles - ["Titan Anti-Tank Missile", "Titan_AT", 750], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles - ["Titan Anti-Personnel Missile", "Titan_AP", 550], // Direct damage: low | Splash damage: high | Guidance: mouse, laser + ["RPG-42 Anti-Tank Rocket", "RPG32_F", 400], // Direct damage: high | Splash damage: low | Guidance: none + ["RPG-42 High-Explosive Rocket", "RPG32_HE_F", 350], // Direct damage: medium | Splash damage: medium | Guidance: none + ["PCML Anti-Tank Missile", "NLAW_F", 500], // Direct damage: very high | Splash damage: low | Guidance: laser, ground vehicles + ["Titan Anti-Tank Missile", "Titan_AT", 500], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles + ["Titan Anti-Personnel Missile", "Titan_AP", 450], // Direct damage: low | Splash damage: high | Guidance: mouse, laser ["Titan Anti-Air Missile", "Titan_AA", 700], // Direct damage: low | Splash damage: medium | Guidance: aircraft ["40mm HE Grenade Round", "1Rnd_HE_Grenade_shell", 125], ["40mm 3Rnd HE Grenades", "3Rnd_HE_Grenade_shell", 250], From e8e93959c960887cfa602df2328f4e84721b97ec Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 24 Feb 2015 10:00:22 -0800 Subject: [PATCH 389/544] Tweaks on Titan AT lock disable. --- client/clientEvents/onKeyPress.sqf | 2 +- client/clientEvents/onMouseButtonDown.sqf | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/client/clientEvents/onKeyPress.sqf b/client/clientEvents/onKeyPress.sqf index 22e575573..074ca1642 100644 --- a/client/clientEvents/onKeyPress.sqf +++ b/client/clientEvents/onKeyPress.sqf @@ -63,7 +63,7 @@ if (!_handled && (inputAction "LockTarget" > 0 || inputAction "LockTargets" > 0) if (_cweapon == "launch_Titan_short_F" || { _cweapon == "launch_I_Titan_short_F" || { _cweapon == "launch_O_Titan_short_F"}}) then { - player action ["WeaponOnBack", player]; + player groupChat format["Locking Disabled for Titan Compact AT"]; _handled = true; }; }; diff --git a/client/clientEvents/onMouseButtonDown.sqf b/client/clientEvents/onMouseButtonDown.sqf index 1cdbd0c8c..59e70f8c5 100644 --- a/client/clientEvents/onMouseButtonDown.sqf +++ b/client/clientEvents/onMouseButtonDown.sqf @@ -3,7 +3,7 @@ // ****************************************************************************************** // @file Version: 1.0 // @file Name: onMouseButtonDown.sqf -// @file Author: micovery, Gigatek +// @file Author: micovery // @file Created: 23/2/2015 // @file Args: @@ -19,15 +19,14 @@ _control = _this select 5; if (!_handled && (inputAction "LockTarget" > 0 || inputAction "LockTargets" > 0)) then { - private["_cweapon"]; - _cweapon = currentWeapon player; - if (_cweapon == "launch_Titan_short_F" || { - _cweapon == "launch_I_Titan_short_F" || { - _cweapon == "launch_O_Titan_short_F"}}) then { - player action ["WeaponOnBack", player]; - _handled = true; - }; + private["_cweapon"]; + _cweapon = currentWeapon player; + if (_cweapon == "launch_Titan_short_F" || { + _cweapon == "launch_I_Titan_short_F" || { + _cweapon == "launch_O_Titan_short_F"}}) then { + player groupChat format["Locking Disabled for Titan Compact AT"]; + _handled = true; + }; }; - _handled From d703b1a01afe2a1f07edaaa95be8fb146a3d614a Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 24 Feb 2015 10:05:38 -0800 Subject: [PATCH 390/544] Made pick lock only work with toolkit. --- client/functions/playerActions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index c2ec7fc0b..bcb0998c3 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -24,7 +24,7 @@ [" Salvage", "client\actions\salvage.sqf", [], 1.1, false, false, "", "!isNull cursorTarget && !alive cursorTarget && {cursorTarget isKindOf 'AllVehicles' && !(cursorTarget isKindOf 'Man') && player distance cursorTarget <= (sizeOf typeOf cursorTarget / 3) max 2}"], - [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], + [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && ('ToolKit' in (items player)) && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], From 5f82817867618c8fa9cfe32f1f5f98b82a332445 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 24 Feb 2015 10:14:07 -0800 Subject: [PATCH 391/544] Changed some spelling. --- client/clientEvents/onKeyPress.sqf | 2 +- client/clientEvents/onMouseButtonDown.sqf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/clientEvents/onKeyPress.sqf b/client/clientEvents/onKeyPress.sqf index 074ca1642..e7867be6e 100644 --- a/client/clientEvents/onKeyPress.sqf +++ b/client/clientEvents/onKeyPress.sqf @@ -63,7 +63,7 @@ if (!_handled && (inputAction "LockTarget" > 0 || inputAction "LockTargets" > 0) if (_cweapon == "launch_Titan_short_F" || { _cweapon == "launch_I_Titan_short_F" || { _cweapon == "launch_O_Titan_short_F"}}) then { - player groupChat format["Locking Disabled for Titan Compact AT"]; + player groupChat format["Lock Disabled for Titan Compact AT"]; _handled = true; }; }; diff --git a/client/clientEvents/onMouseButtonDown.sqf b/client/clientEvents/onMouseButtonDown.sqf index 59e70f8c5..f17ca1d38 100644 --- a/client/clientEvents/onMouseButtonDown.sqf +++ b/client/clientEvents/onMouseButtonDown.sqf @@ -24,7 +24,7 @@ if (!_handled && (inputAction "LockTarget" > 0 || inputAction "LockTargets" > 0) if (_cweapon == "launch_Titan_short_F" || { _cweapon == "launch_I_Titan_short_F" || { _cweapon == "launch_O_Titan_short_F"}}) then { - player groupChat format["Locking Disabled for Titan Compact AT"]; + player groupChat format["Lock Disabled for Titan Compact AT"]; _handled = true; }; }; From 22c599c6e2eb6b7d22ee34023d18186dd7f0f204 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 24 Feb 2015 15:59:10 -0800 Subject: [PATCH 392/544] Removed and replaced Titan AT compact with PCML on missions and ai. --- server/functions/fn_refillbox.sqf | 2 +- server/functions/fn_refilltruck.sqf | 2 +- .../factoryMethods/createUnits/customGroup.sqf | 14 +++++++------- .../factoryMethods/createUnits/customGroup2.sqf | 6 +++--- storeConfig.sqf | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/server/functions/fn_refillbox.sqf b/server/functions/fn_refillbox.sqf index 534803557..b153c556f 100644 --- a/server/functions/fn_refillbox.sqf +++ b/server/functions/fn_refillbox.sqf @@ -33,7 +33,7 @@ switch (_boxType) do _boxItems = [ // Item type, Item class(es), # of items, # of magazines per weapon - ["wep", ["launch_RPG32_F", "launch_NLAW_F", "launch_Titan_short_F"], RANDOM_BETWEEN(3,5), RANDOM_BETWEEN(1,2)], + ["wep", ["launch_RPG32_F", "launch_NLAW_F"], RANDOM_BETWEEN(3,5), RANDOM_BETWEEN(1,2)], ["wep", "launch_Titan_F", RANDOM_BETWEEN(1,2), RANDOM_BETWEEN(1,2)], ["mag", ["ClaymoreDirectionalMine_Remote_Mag", "SLAMDirectionalMine_Wire_Mag", "ATMine_Range_Mag", "DemoCharge_Remote_Mag", "SatchelCharge_Remote_Mag"], RANDOM_BETWEEN(3,8)] ]; diff --git a/server/functions/fn_refilltruck.sqf b/server/functions/fn_refilltruck.sqf index 746b3b2b0..e8a860141 100644 --- a/server/functions/fn_refilltruck.sqf +++ b/server/functions/fn_refilltruck.sqf @@ -31,7 +31,7 @@ _truckItems = ["wep", ["arifle_Mk20_GL_F", "arifle_TRG21_GL_F", "arifle_Katiba_GL_F", "arifle_MX_GL_F"], RANDOM_BETWEEN(2,5), RANDOM_BETWEEN(4,5)], ["mag", "1Rnd_HE_Grenade_shell", RANDOM_BETWEEN(5,10)], ["wep", ["srifle_GM6_SOS_F", "srifle_LRR_SOS_F"], RANDOM_BETWEEN(1,2), RANDOM_BETWEEN(4,6)], - ["wep", ["launch_RPG32_F", "launch_Titan_short_F"], RANDOM_BETWEEN(1,3), RANDOM_BETWEEN(1,2)], + ["wep", ["launch_RPG32_F", "launch_NLAW_F"], RANDOM_BETWEEN(1,3), RANDOM_BETWEEN(1,2)], ["mag", "HandGrenade", RANDOM_BETWEEN(0,5)], ["mag", ["APERSTripMine_Wire_Mag", "APERSBoundingMine_Range_Mag", "SLAMDirectionalMine_Wire_Mag", "ATMine_Range_Mag"], RANDOM_BETWEEN(2,6)] ]; diff --git a/server/missions/factoryMethods/createUnits/customGroup.sqf b/server/missions/factoryMethods/createUnits/customGroup.sqf index 36795bfa7..3d5201ef0 100644 --- a/server/missions/factoryMethods/createUnits/customGroup.sqf +++ b/server/missions/factoryMethods/createUnits/customGroup.sqf @@ -106,10 +106,10 @@ at_loadout = { _unit addMagazine "30Rnd_45ACP_Mag_SMG_01"; _unit addWeapon "SMG_01_Holo_pointer_snds_F"; _unit addBackpack "B_Carryall_oli"; - _unit addMagazine "Titan_AT"; - _unit addWeapon "launch_Titan_short_F"; - _unit addMagazine "Titan_AT"; - _unit addMagazine "Titan_AT"; + _unit addMagazine "NLAW_F"; + _unit addWeapon "launch_NLAW_F"; + _unit addMagazine "NLAW_F"; + _unit addMagazine "NLAW_F"; _unit addItem "NVGoggles"; _unit assignItem "NVGoggles"; }; @@ -125,9 +125,9 @@ leader_loadout = { _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; _unit addWeapon "arifle_Katiba_ARCO_pointer_F"; _unit addBackpack "B_Carryall_oli"; - _unit addMagazine "Titan_AT"; - _unit addWeapon "launch_Titan_short_F"; - _unit addMagazine "Titan_AT"; + _unit addMagazine "NLAW_F"; + _unit addWeapon "launch_NLAW_F"; + _unit addMagazine "NLAW_F"; _unit addItem "ItemGps"; _unit assignItem "ItemGps"; _unit addItem "ItemCompass"; diff --git a/server/missions/factoryMethods/createUnits/customGroup2.sqf b/server/missions/factoryMethods/createUnits/customGroup2.sqf index 476ea75f7..0cf963cc8 100644 --- a/server/missions/factoryMethods/createUnits/customGroup2.sqf +++ b/server/missions/factoryMethods/createUnits/customGroup2.sqf @@ -65,9 +65,9 @@ for "_i" from 1 to _nbUnits do _unit addMagazine "30Rnd_65x39_caseless_green_mag_Tracer"; _unit addWeapon "arifle_Katiba_ARCO_F"; _unit addBackpack "B_Carryall_oli"; - _unit addMagazine "Titan_AT"; - _unit addWeapon "launch_Titan_short_F"; - _unit addMagazine "Titan_AT"; + _unit addMagazine "NLAW_F"; + _unit addWeapon "launch_NLAW_F"; + _unit addMagazine "NLAW_F"; }; // Rifleman default diff --git a/storeConfig.sqf b/storeConfig.sqf index cf399e3d9..1afb960bb 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -182,7 +182,7 @@ ammoArray = compileFinal str ["PCML Anti-Tank Missile", "NLAW_F", 500], // Direct damage: very high | Splash damage: low | Guidance: laser, ground vehicles ["Titan Anti-Tank Missile", "Titan_AT", 500], // Direct damage: high | Splash damage: low | Guidance: mouse, laser, ground vehicles ["Titan Anti-Personnel Missile", "Titan_AP", 450], // Direct damage: low | Splash damage: high | Guidance: mouse, laser - ["Titan Anti-Air Missile", "Titan_AA", 700], // Direct damage: low | Splash damage: medium | Guidance: aircraft + ["Titan Anti-Air Missile", "Titan_AA", 600], // Direct damage: low | Splash damage: medium | Guidance: aircraft ["40mm HE Grenade Round", "1Rnd_HE_Grenade_shell", 125], ["40mm 3Rnd HE Grenades", "3Rnd_HE_Grenade_shell", 250], ["40mm Smoke Round (White)", "1Rnd_Smoke_Grenade_shell", 50], From c2393c0b07603746d4bca56f8d90d4d153661672 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 24 Feb 2015 16:01:32 -0800 Subject: [PATCH 393/544] Reduced money on sunken treasure. --- server/missions/moneyMissions/mission_SunkenTreasure.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/missions/moneyMissions/mission_SunkenTreasure.sqf b/server/missions/moneyMissions/mission_SunkenTreasure.sqf index 3062ccf76..d0738587a 100644 --- a/server/missions/moneyMissions/mission_SunkenTreasure.sqf +++ b/server/missions/moneyMissions/mission_SunkenTreasure.sqf @@ -54,7 +54,7 @@ _setupObjects = [_vehicle, _aiGroup] spawn checkMissionVehicleLock; _missionPicture = getText (configFile >> "CfgVehicles" >> _vehicleClass >> "picture"); - _missionHintText = format ["A treasure containing $40,000 and weapons is being recovered.
    If you want to capture it, you will need diving gear and an underwater weapon.", moneyMissionColor]; + _missionHintText = format ["A treasure containing $30,000 and weapons is being recovered.
    If you want to capture it, you will need diving gear and an underwater weapon.", moneyMissionColor]; }; _waitUntilMarkerPos = nil; @@ -78,7 +78,7 @@ _successExec = // Give the rewards { - _x setVariable ["cmoney", 4000, true]; + _x setVariable ["cmoney", 3000, true]; _x setVariable ["owner", "world", true]; } forEach _cashObjects; From 954145d48953794156064ac0744c808514424a97 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 24 Feb 2015 16:23:47 -0800 Subject: [PATCH 394/544] Increased static resupply price. --- addons/scripts/fn_resupplytruck.sqf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 0e76a6dc3..2b9436016 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -51,7 +51,7 @@ if (_vehicle == player) exitWith {}; private["_vehClass", "_price"]; //set up prices _vehClass = typeOf _vehicle; -_price = 3000; // price = 1000 for vehicles not found in vehicle store. (e.g. Static Weapons) +_price = 5000; // price = 1000 for vehicles not found in vehicle store. (e.g. Static Weapons) { if (_vehClass == _x select 1) then { @@ -113,7 +113,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { scopeName "fn_resupplyTruck"; private["_price"]; - _price = 3000; // price = 1000 for vehicles not found in vehicle store (e.g. static weapons) + _price = 5000; // price = 1000 for vehicles not found in vehicle store (e.g. static weapons) { if (_vehClass == _x select 1) then { _price = _x select 2; From 3bc76c767c9a16a0eb1d51b52c392fbe44729208 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 11 Mar 2015 12:47:54 -0700 Subject: [PATCH 395/544] Possible fix for exploding vehicles when a player first gets in and removed player map icons when not in a group. This will affect UAVs and UGVs. --- client/clientEvents/getInVehicle.sqf | 13 ++++++++++++- client/functions/drawPlayerMarkers.sqf | 8 +++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/client/clientEvents/getInVehicle.sqf b/client/clientEvents/getInVehicle.sqf index 6e5286689..bf7610dee 100644 --- a/client/clientEvents/getInVehicle.sqf +++ b/client/clientEvents/getInVehicle.sqf @@ -30,7 +30,18 @@ if (isNil {_veh getVariable "A3W_engineEH"}) then { _veh setVariable ["A3W_engineEH", _veh addEventHandler ["Engine", vehicleEngineEvent]]; }; - + +if (vehicle player != player) then { + [_veh] spawn { + _veh = _this select 0; + if (_veh getVariable ["allowDamage", true]) then { + _veh allowDamage false; + sleep 0.5; + _veh allowDamage true; + }; + }; +}; + if (_veh isKindOf "Offroad_01_repair_base_F" && isNil {_veh getVariable "A3W_serviceBeaconActions"}) then { _veh setVariable ["A3W_serviceBeaconActions", diff --git a/client/functions/drawPlayerMarkers.sqf b/client/functions/drawPlayerMarkers.sqf index cbb7f589a..34b757be2 100644 --- a/client/functions/drawPlayerMarkers.sqf +++ b/client/functions/drawPlayerMarkers.sqf @@ -3,12 +3,14 @@ // ****************************************************************************************** // @file Name: drawPlayerMarkers.sqf // @file Author: AgentRev +// Now only players in group should display on the map if (!hasInterface) exitWith {}; #define IS_FRIENDLY_PLAYER(UNIT) (isPlayer UNIT && {(group UNIT == group player || (!_isIndie && side group UNIT == playerSide))}) #define DEFAULT_ICON_POS(UNIT) (UNIT modelToWorld (UNIT selectionPosition "spine3")) #define MISSION_AI_FAR_DISTANCE 75 +#define IS_IN_GROUP(UNIT) (isPlayer UNIT && {(group UNIT == group player)}) disableSerialization; @@ -91,7 +93,7 @@ A3W_mapDraw_thread = [] spawn _uav = _x; _uavOwner = (uavControl _uav) select 0; - if (IS_FRIENDLY_PLAYER(_uavOwner) || (isNull _uavOwner && side _uav == playerSide)) then + if (IS_IN_GROUP(_uavOwner)) then { _icon = getText (configFile >> "CfgVehicles" >> typeOf _uav >> "icon"); if (_icon == "") then { _icon = "iconMan" }; @@ -111,7 +113,7 @@ A3W_mapDraw_thread = [] spawn { _newUnit = _x getVariable ["newRespawnedUnit", objNull]; - if (IS_FRIENDLY_PLAYER(_x) || (_newUnit getVariable ["playerSpawning", false] && IS_FRIENDLY_PLAYER(_newUnit))) then + if (IS_IN_GROUP(_x) || (_newUnit getVariable ["playerSpawning", false] && IS_IN_GROUP(_newUnit))) then { _veh = vehicle _x; _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_veh) } else { getPosASLVisual _x }; @@ -121,7 +123,7 @@ A3W_mapDraw_thread = [] spawn } forEach _allDeadMen; { - if (IS_FRIENDLY_PLAYER(_x) && !(_x getVariable ["playerSpawning", false])) then + if (IS_IN_GROUP(_x) && !(_x getVariable ["playerSpawning", false])) then { _veh = vehicle _x; From 1b5e6cff87086a0c9a34c3ca2132e979c083b675 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 11 Mar 2015 17:39:36 -0700 Subject: [PATCH 396/544] Fixed Huron not saving, locking, or working with R3F and removed UAV and UGV auto buy lock. --- addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 12 ++++++++---- client/functions/playerActions.sqf | 10 +++++----- server/default_config.sqf | 2 +- server/functions/spawnStoreObject.sqf | 8 +++++++- 4 files changed, 21 insertions(+), 11 deletions(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index 0ccc4574f..34ad9331a 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -113,7 +113,8 @@ R3F_LOG_CFG_objets_remorquablesH = "C_Heli_Light_01_civil_F", "I_Heli_Transport_02_F", "Heli_Transport_04_base_F", - "B_Heli_Transport_03_base_F", + "B_Heli_Transport_03_unarmed_F", + "B_Heli_Transport_03_F", "Plane" ]; @@ -129,7 +130,8 @@ R3F_LOG_CFG_objets_remorquablesALL = "Tank_F", "I_Heli_Transport_02_F", "Heli_Transport_04_base_F", - "B_Heli_Transport_03_base_F", + "B_Heli_Transport_03_unarmed_F", + "B_Heli_Transport_03_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", @@ -162,7 +164,8 @@ R3F_LOG_CFG_heliporteursH = [ "I_Heli_Transport_02_F", "Heli_Transport_04_base_F", - "B_Heli_Transport_03_base_F" + "B_Heli_Transport_03_unarmed_F", + "B_Heli_Transport_03_F" ]; /** @@ -234,7 +237,8 @@ R3F_LOG_CFG_transporteurs = ["I_Heli_light_03_base_F", 20], ["Heli_Transport_01_base_F", 25], ["Heli_Transport_02_base_F", 100], - ["B_Heli_Transport_03_base_F", 100], + ["B_Heli_Transport_03_unarmed_F", 100], + ["B_Heli_Transport_03_F", 100], ["Heli_Transport_04_base_F", 100], ["Heli_Attack_01_base_F", 10], ["Heli_Attack_02_base_F", 20] diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index bcb0998c3..9c71f9db4 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -24,12 +24,12 @@ [" Salvage", "client\actions\salvage.sqf", [], 1.1, false, false, "", "!isNull cursorTarget && !alive cursorTarget && {cursorTarget isKindOf 'AllVehicles' && !(cursorTarget isKindOf 'Man') && player distance cursorTarget <= (sizeOf typeOf cursorTarget / 3) max 2}"], - [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && ('ToolKit' in (items player)) && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], + [" Pick Lock", "addons\scripts\lockPick.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['LandVehicle', 'Ship', 'Air'] > 0 ;} && ('ToolKit' in (items player)) && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget >= 2 && cursorTarget distance player < 5"], - [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], - [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_base_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], - [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], - [" Re\Save Weapon", "addons\scripts\weaponResave.sqf", [cursorTarget], 1,false,false,"","!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && (player distance cursortarget) < 5"], + [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_unarmed_F', 'B_Heli_Transport_03_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], + [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_unarmed_F', 'B_Heli_Transport_03_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], + [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], + [" Re\Save Weapon", "addons\scripts\weaponResave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && (player distance cursortarget) < 5"], [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'Helicopter', 'Plane', 'UGV_01_base_F'] > 0 ;} && (player distance cursortarget) < 5"], ["[0]"] call getPushPlaneAction, diff --git a/server/default_config.sqf b/server/default_config.sqf index fe8bb631e..35c584021 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -82,7 +82,7 @@ A3W_playersList_saveInterval = 120; // Number of seconds between player list sav A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "Plane", "UGV_01_base_F"]; // List of classes for vehicles that are saveable A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked upon restore -A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "B_Truck_01_ammo_F", "O_Truck_03_ammo_F", "I_Truck_02_ammo_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Heli_Transport_02_F", "Plane", "UGV_01_base_F"]; // List of class names for vehicles that should be automatically locked and saved when bought +A3W_autosave_vehicles_list = ["B_MRAP_01_hmg_F", "B_MRAP_01_gmg_F", "O_MRAP_02_hmg_F", "O_MRAP_02_gmg_F", "I_MRAP_03_hmg_F", "I_MRAP_03_gmg_F", "B_Truck_01_ammo_F", "O_Truck_03_ammo_F", "I_Truck_02_ammo_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_unarmed_F", "B_Heli_Transport_03_F", "I_Heli_Transport_02_F", "I_Plane_Fighter_03_AA_F", "I_Plane_Fighter_03_CAS_F", "B_Plane_CAS_01_F", "O_Plane_CAS_02_F"]; // List of class names for vehicles that should be automatically locked and saved when bought // Spawning settings A3W_serverSpawning = 1; // Vehicle, object, and loot spawning (0 = no, 1 = yes) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index cad3e340c..7652ebcba 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -178,10 +178,16 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object setVelocity [0,0,0.01]; // _object spawn cleanVehicleWreck; + if ({_object isKindOf _x} count ["UAV_02_base_F", "UGV_01_base_F"] > 0) then { + _object setVariable ["A3W_purchasedVehicle", true]; + _object setVariable ["ownerUID", getPlayerUID _player, true]; + _object setVariable ["ownerN", name _player, true]; + }; + if ({_object isKindOf _x} count A3W_autosave_vehicles_list > 0) then { [[netId _object, 2], "A3W_fnc_setLockState", _object] call A3W_fnc_MP; // Lock _object setVariable ["objectLocked", true, true]; - _object setVariable ["R3F_LOG_disabled",true,true]; + _object setVariable ["R3F_LOG_disabled", true, true]; _object setVariable ["A3W_purchasedVehicle", true]; _object setVariable ["ownerUID", getPlayerUID _player, true]; _object setVariable ["ownerN", name _player, true]; From fd757d40ce4077d27548b45c54c714be7362cf2d Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 11 Mar 2015 17:49:30 -0700 Subject: [PATCH 397/544] Tweak for group only icons and add UAV quad copters to group restrictions. --- addons/UAV_Control/functions.sqf | 2 +- client/functions/drawPlayerMarkers.sqf | 373 +++++++++++++------------ 2 files changed, 191 insertions(+), 184 deletions(-) diff --git a/addons/UAV_Control/functions.sqf b/addons/UAV_Control/functions.sqf index 30ccd13ae..4595fe5a2 100644 --- a/addons/UAV_Control/functions.sqf +++ b/addons/UAV_Control/functions.sqf @@ -27,7 +27,7 @@ uav_control_check_access = { _player = _this select 0; _uav = _this select 1; - if (_uav isKindOf "UAV_01_base_F") exitWith {}; //allow quad-rotors + //if (_uav isKindOf "UAV_01_base_F") exitWith {}; //allow quad-rotors private["_uid", "_owner_uid"]; _owner_uid = _uav getVariable ["ownerUID",""]; diff --git a/client/functions/drawPlayerMarkers.sqf b/client/functions/drawPlayerMarkers.sqf index 34b757be2..d530b7d56 100644 --- a/client/functions/drawPlayerMarkers.sqf +++ b/client/functions/drawPlayerMarkers.sqf @@ -1,217 +1,224 @@ // ****************************************************************************************** // * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * // ****************************************************************************************** -// @file Name: drawPlayerMarkers.sqf -// @file Author: AgentRev -// Now only players in group should display on the map - +// @file Name: drawPlayerMarkers.sqf +// @file Author: AgentRev +// Now only players in group should display on the map + if (!hasInterface) exitWith {}; - + #define IS_FRIENDLY_PLAYER(UNIT) (isPlayer UNIT && {(group UNIT == group player || (!_isIndie && side group UNIT == playerSide))}) #define DEFAULT_ICON_POS(UNIT) (UNIT modelToWorld (UNIT selectionPosition "spine3")) #define MISSION_AI_FAR_DISTANCE 75 #define IS_IN_GROUP(UNIT) (isPlayer UNIT && {(group UNIT == group player)}) - + disableSerialization; - + if (isNil "showPlayerNames") then { showPlayerNames = false }; - + A3W_mapDraw_arrIcons = []; A3W_mapDraw_arrLines = []; A3W_mapDraw_eventCode = { - _mapCtrl = _this select 0; - - { - _item = _x; - - // Dynamic size - { - if (count _item > _x) then - { - _val = _item select _x; - if (typeName _val == "CODE") then { _item set [_x, _this call _val] }; - }; - } forEach [3,4,8]; - - _mapCtrl drawIcon _item; - } forEach A3W_mapDraw_arrIcons; - - { _mapCtrl drawLine _x } forEach A3W_mapDraw_arrLines; + _mapCtrl = _this select 0; + + { + _item = _x; + + // Dynamic size + { + if (count _item > _x) then + { + _val = _item select _x; + if (typeName _val == "CODE") then { _item set [_x, _this call _val] }; + }; + } forEach [3,4,8]; + + _mapCtrl drawIcon _item; + } forEach A3W_mapDraw_arrIcons; + + { _mapCtrl drawLine _x } forEach A3W_mapDraw_arrLines; } call mf_compile; - + if (!isNil "A3W_mapDraw_thread") then { terminate A3W_mapDraw_thread }; A3W_mapDraw_thread = [] spawn { - scriptName "drawPlayerMarkers"; - - _showPlayers = ["A3W_teamPlayersMap"] call isConfigOn; - _missionAiDrawLines = ["A3W_missionFarAiDrawLines"] call isConfigOn; - _drawAtmIcons = ["A3W_atmMapIcons"] call isConfigOn; - _atmIcon = (call currMissionDir) + "client\icons\suatmm_icon.paa"; - _atmIconSize = {(0.4 / ctrlMapScale (_this select 0)) max 8 min 25}; - - waitUntil - { - _newArrayIcons = []; - - if (!isNil "A3W_atmArray" && _drawAtmIcons) then - { - _deadATMs = []; - - { - if (alive _x) then - { - _newArrayIcons pushBack [_atmIcon, [1,1,1,1], getPosATL _x, _atmIconSize, _atmIconSize, 0]; - } - else - { - _deadATMs pushback _x; - }; - } forEach A3W_atmArray; - - if (count _deadATMs > 0) then - { - _deadATMs spawn { A3W_atmArray = A3W_atmArray - _this }; - }; - }; - - if (_showPlayers) then - { - _isIndie = !(playerSide in [BLUFOR,OPFOR]); - _mapIconsEnabled = difficultyEnabled "map"; - - _allUAVs = allUnitsUAV; - _allDeadMen = allDeadMen; - _playableUnits = playableUnits; - - reverse _allUAVs; - reverse _allDeadMen; - reverse _playableUnits; - - { - _uav = _x; - _uavOwner = (uavControl _uav) select 0; - - if (IS_IN_GROUP(_uavOwner)) then - { - _icon = getText (configFile >> "CfgVehicles" >> typeOf _uav >> "icon"); - if (_icon == "") then { _icon = "iconMan" }; - - _color = if (group _uavOwner == group player) then { [0,1,0,1] } else { [1,1,1,1] }; - _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_uav) } else { getPosASLVisual _uav }; - - _newArrayIcons pushBack [_icon, _color, _pos, 24, 24, getDir _uav, "", 1]; // draw icon - - if (showPlayerNames) then - { - _newArrayIcons pushBack ["#(argb,1,1,1)color(0,0,0,0)", _color, _pos, 25, 25, 0, "[AI]", 2, 0.05, "PuristaMedium"]; // draw text - }; - }; - } forEach _allUAVs; - - { - _newUnit = _x getVariable ["newRespawnedUnit", objNull]; - - if (IS_IN_GROUP(_x) || (_newUnit getVariable ["playerSpawning", false] && IS_IN_GROUP(_newUnit))) then - { - _veh = vehicle _x; - _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_veh) } else { getPosASLVisual _x }; - - _newArrayIcons pushBack ["\A3\ui_f_curator\Data\CfgMarkers\kia_ca.paa", [0,0,0,0.6], _pos, 22, 22, 0]; // draw skull - }; - } forEach _allDeadMen; - - { - if (IS_IN_GROUP(_x) && !(_x getVariable ["playerSpawning", false])) then - { - _veh = vehicle _x; - - if ((crew _veh) select 0 == _x) then - { - _icon = getText (configFile >> "CfgVehicles" >> typeOf _veh >> "icon"); - if (_icon == "") then { _icon = "iconMan" }; - - _color = if (group _x == group player) then { [0,1,0,1] } else { [1,1,1,1] }; - _vehColor = if ({group _x == group player} count crew _veh > 0) then { [0,1,0,1] } else { _color }; // make vehicle green if group player in it - _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_veh) } else { getPosASLVisual _veh }; - _dir = if (_icon == "iconParachute") then { 0 } else { getDir _veh }; - - if (_veh == _x && _x getVariable ["FAR_isUnconscious", 0] == 1) then { _vehColor = [1,0.25,0,1] }; // make icon orange if awaiting revive - - _newArrayIcons pushBack [_icon, _vehColor, _pos, 24, 24, _dir, "", 1]; // draw icon - - if (_x != player && showPlayerNames) then - { - _newArrayIcons pushBack ["#(argb,1,1,1)color(0,0,0,0)", _color, _pos, 25, 25, 0, name _x, 2, 0.05, "PuristaMedium"]; // draw text - }; - }; - }; - } forEach _playableUnits; - - if (!_mapIconsEnabled) then - { - _veh = vehicle player; - _newArrayIcons pushBack ["\A3\ui_f\Data\IGUI\Cfg\IslandMap\iconplayer_ca.paa", [1,0,0,1], getPosASLVisual _veh, 26, 26, getDir _veh]; // draw player circle - }; - }; - - A3W_mapDraw_arrIcons = _newArrayIcons; - - _newArrayLines = []; - - if (_missionAiDrawLines) then - { - { - if (side _x == CIVILIAN) then - { - _markerPos = markerPos (_x getVariable ["A3W_missionMarkerName", ""]); - - if !(_markerPos isEqualTo [0,0,0]) then - { - _vehs = []; - - { - _veh = vehicle _x; - - if !(_veh in _vehs) then - { - if (alive _veh && _veh distance _markerPos > MISSION_AI_FAR_DISTANCE) then - { - _newArrayLines pushBack [_markerPos, getPosASLVisual _veh, [1,0,0,1]]; - }; - - _vehs pushBack _veh; - }; - } forEach units _x; - }; - }; - } forEach allGroups; - }; - - A3W_mapDraw_arrLines = _newArrayLines; - false - }; + scriptName "drawPlayerMarkers"; + + _showPlayers = ["A3W_teamPlayersMap"] call isConfigOn; + _missionAiDrawLines = ["A3W_missionFarAiDrawLines"] call isConfigOn; + _drawAtmIcons = ["A3W_atmMapIcons"] call isConfigOn; + _atmIcon = (call currMissionDir) + "client\icons\suatmm_icon.paa"; + _atmIconSize = {(0.4 / ctrlMapScale (_this select 0)) max 8 min 25}; + + waitUntil + { + _newArrayIcons = []; + + if (!isNil "A3W_atmArray" && _drawAtmIcons) then + { + _deadATMs = []; + + { + if (alive _x) then + { + _newArrayIcons pushBack [_atmIcon, [1,1,1,1], getPosATL _x, _atmIconSize, _atmIconSize, 0]; + } + else + { + _deadATMs pushback _x; + }; + } forEach A3W_atmArray; + + if (count _deadATMs > 0) then + { + _deadATMs spawn { A3W_atmArray = A3W_atmArray - _this }; + }; + }; + + if (_showPlayers) then + { + _isIndie = !(playerSide in [BLUFOR,OPFOR]); + _mapIconsEnabled = difficultyEnabled "map"; + + _allUAVs = allUnitsUAV; + _allDeadMen = allDeadMen; + _playableUnits = playableUnits; + + reverse _allUAVs; + reverse _allDeadMen; + reverse _playableUnits; + + { + _uav = _x; + _uavOwner = (uavControl _uav) select 0; + + if (IS_IN_GROUP(_uavOwner)) then + { + _icon = getText (configFile >> "CfgVehicles" >> typeOf _uav >> "icon"); + if (_icon == "") then { _icon = "iconMan" }; + + _color = if (group _uavOwner == group player) then { [0,1,0,1] } else { [1,1,1,1] }; + _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_uav) } else { getPosASLVisual _uav }; + + _newArrayIcons pushBack [_icon, _color, _pos, 24, 24, getDir _uav, "", 1]; // draw icon + + if (showPlayerNames) then + { + _newArrayIcons pushBack ["#(argb,1,1,1)color(0,0,0,0)", _color, _pos, 25, 25, 0, "[AI]", 2, 0.05, "PuristaMedium"]; // draw text + }; + }; + } forEach _allUAVs; + + { + _newUnit = _x getVariable ["newRespawnedUnit", objNull]; + + if (IS_IN_GROUP(_x) || (_newUnit getVariable ["playerSpawning", false] && IS_IN_GROUP(_newUnit))) then + { + _veh = vehicle _x; + _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_veh) } else { getPosASLVisual _x }; + + _newArrayIcons pushBack ["\A3\ui_f_curator\Data\CfgMarkers\kia_ca.paa", [0,0,0,0.6], _pos, 22, 22, 0]; // draw skull + }; + } forEach _allDeadMen; + + { + if (IS_IN_GROUP(_x) && !(_x getVariable ["playerSpawning", false])) then + { + _veh = vehicle _x; + + if ((crew _veh) select 0 == _x) then + { + _icon = getText (configFile >> "CfgVehicles" >> typeOf _veh >> "icon"); + if (_icon == "") then { _icon = "iconMan" }; + + _color = if (group _x == group player) then { [0,1,0,1] } else { [1,1,1,1] }; + _vehColor = if ({group _x == group player} count crew _veh > 0) then { [0,1,0,1] } else { _color }; // make vehicle green if group player in it + _pos = if (_mapIconsEnabled) then { DEFAULT_ICON_POS(_veh) } else { getPosASLVisual _veh }; + _dir = if (_icon == "iconParachute") then { 0 } else { getDir _veh }; + + if (_veh == _x && _x getVariable ["FAR_isUnconscious", 0] == 1) then { _vehColor = [1,0.25,0,1] }; // make icon orange if awaiting revive + + _newArrayIcons pushBack [_icon, _vehColor, _pos, 24, 24, _dir, "", 1]; // draw icon + + if (_x != player && showPlayerNames) then + { + _newArrayIcons pushBack ["#(argb,1,1,1)color(0,0,0,0)", _color, _pos, 25, 25, 0, name _x, 2, 0.05, "PuristaMedium"]; // draw text + }; + }; + }; + } forEach _playableUnits; + + if (!_mapIconsEnabled) then + { + _veh = vehicle player; + _newArrayIcons pushBack ["\A3\ui_f\Data\IGUI\Cfg\IslandMap\iconplayer_ca.paa", [1,0,0,1], getPosASLVisual _veh, 26, 26, getDir _veh]; // draw player circle + }; + }; + + A3W_mapDraw_arrIcons = _newArrayIcons; + + _newArrayLines = []; + + if (_missionAiDrawLines) then + { + { + if (side _x == CIVILIAN) then + { + _markerPos = markerPos (_x getVariable ["A3W_missionMarkerName", ""]); + + if !(_markerPos isEqualTo [0,0,0]) then + { + _vehs = []; + + { + _veh = vehicle _x; + + if !(_veh in _vehs) then + { + if (alive _veh && _veh distance _markerPos > MISSION_AI_FAR_DISTANCE) then + { + _newArrayLines pushBack [_markerPos, getPosASLVisual _veh, [1,0,0,1]]; + }; + + _vehs pushBack _veh; + }; + } forEach units _x; + }; + }; + } forEach allGroups; + }; + + A3W_mapDraw_arrLines = _newArrayLines; + false + }; }; - + A3W_scriptThreads pushBack A3W_mapDraw_thread; - + // Main map = findDisplay 12 displayCtrl 51 // GPS = (uiNamespace getVariable ["RscMiniMap", displayNull]) displayCtrl 101 // UAV Terminal = findDisplay 160 displayCtrl 51 - + private ["_display", "_mapCtrl"]; - + // Main map waitUntil {_display = findDisplay 12; !isNull _display}; _mapCtrl = _display displayCtrl 51; - + if (!isNil "A3W_mapDraw_mainMapEH") then { _mapCtrl ctrlRemoveEventHandler ["Draw", A3W_mapDraw_mainMapEH] }; A3W_mapDraw_mainMapEH = _mapCtrl ctrlAddEventHandler ["Draw", A3W_mapDraw_eventCode]; - + // GPS waitUntil {_display = uiNamespace getVariable ["RscMiniMap", displayNull]; !isNull _display}; _mapCtrl = _display displayCtrl 101; - + if (!isNil "A3W_mapDraw_gpsMapEH") then { _mapCtrl ctrlRemoveEventHandler ["Draw", A3W_mapDraw_gpsMapEH] }; A3W_mapDraw_gpsMapEH = _mapCtrl ctrlAddEventHandler ["Draw", A3W_mapDraw_eventCode]; + +//UAV +waitUntil {_display = findDisplay 160; !isNull _display}; +_mapCtrl = _display displayCtrl 51; + +//if (!isNil "A3W_mapDraw_mainMapEH") then { _mapCtrl ctrlRemoveEventHandler ["Draw", A3W_mapDraw_mainMapEH] }; +A3W_mapDraw_uavMapEH = _mapCtrl ctrlAddEventHandler ["Draw", A3W_mapDraw_eventCode]; \ No newline at end of file From 0003d18b15055d12255aa4dca7617887ebc1f8f4 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 11 Mar 2015 17:58:04 -0700 Subject: [PATCH 398/544] Tweak for Huron fix. --- addons/vactions/config.sqf | 2 +- client/systems/vehicleStore/applyVehicleTexture.sqf | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/vactions/config.sqf b/addons/vactions/config.sqf index 637102ecc..add881d4b 100644 --- a/addons/vactions/config.sqf +++ b/addons/vactions/config.sqf @@ -26,6 +26,6 @@ cfg_va_lock_sound_play = true; cfg_va_lock_from_inside = true; //List of classes for vehicles that can locked/unlocked (empty means all) -cfg_va_lock_actions_classes_list = ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_base_F", "I_Heli_Transport_02_F", "Plane", "UGV_01_base_F"]; +cfg_va_lock_actions_classes_list = ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "O_Heli_Light_02_unarmed_F", "I_Heli_light_03_unarmed_F", "B_Heli_Transport_01_F", "B_Heli_Transport_01_camo_F", "B_Heli_Light_01_armed_F", "O_Heli_Light_02_F", "O_Heli_Light_02_v2_F", "I_Heli_light_03_F", "B_Heli_Attack_01_F", "O_Heli_Attack_02_F", "O_Heli_Attack_02_black_F", "Heli_Transport_04_base_F", "B_Heli_Transport_03_unarmed_F", "B_Heli_Transport_03_F", "I_Heli_Transport_02_F", "Plane", "UGV_01_base_F"]; diff --git a/client/systems/vehicleStore/applyVehicleTexture.sqf b/client/systems/vehicleStore/applyVehicleTexture.sqf index b3daf01dd..b6882a84b 100644 --- a/client/systems/vehicleStore/applyVehicleTexture.sqf +++ b/client/systems/vehicleStore/applyVehicleTexture.sqf @@ -54,7 +54,8 @@ if (typeName _texture == "STRING") then case (_veh isKindOf "Heli_Transport_01_base_F"): { [0,1] }; case (_veh isKindOf "Heli_Transport_02_base_F"): { [0,1,2] }; - case (_veh isKindOf "B_Heli_Transport_03_base_F"): { [0,1] }; + case (_veh isKindOf "B_Heli_Transport_03_unarmed_F"): { [0,1] }; + case (_veh isKindOf "B_Heli_Transport_03_F"): { [0,1] }; case (_veh isKindOf "Heli_Transport_04_base_F"): { [0,1,2,3] }; case (_veh isKindOf "Heli_Attack_02_base_F"): { [0,1] }; From 61016a56e79a994337246371c223513d87e236a5 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 11 Mar 2015 18:06:07 -0700 Subject: [PATCH 399/544] Added DLC's for all players. Thanks BadVolt for the help today! --- client/functions/playerActions.sqf | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 9c71f9db4..2072af061 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -47,3 +47,12 @@ if !(288520 in getDLCs 1) then { [player, ["Get in as Driver", "client\actions\moveInDriver.sqf", [], 6, true, true, "", "cursorTarget isKindOf 'Kart_01_Base_F' && player distance cursorTarget < 3.4 && isNull driver cursorTarget"]] call fn_addManagedAction; }; + +// Morehehe... +if !(304380 in getDLCs 1) then +{ + [player, [" Get in as Pilot", "client\actions\moveInDriver.sqf", [], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_base_F') or (cursorTarget isKindOf 'Heli_Transport_04_base_F')) && player distance cursorTarget < 10 && isNull driver cursorTarget"]] call fn_addManagedAction; + [player, [" Get in as Copilot", "client\actions\moveInTurret.sqf", [0], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_base_F') or (cursorTarget isKindOf 'Heli_Transport_04_base_F')) && player distance cursorTarget < 10 && isNull (cursorTarget turretUnit [0])"]] call fn_addManagedAction; + [player, [" Get in as Left door gunner", "client\actions\moveInTurret.sqf", [1], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_base_F')) && player distance cursorTarget < 10 && isNull (cursorTarget turretUnit [1])"]] call fn_addManagedAction; + [player, [" Get in as Right door gunner", "client\actions\moveInTurret.sqf", [2], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_base_F')) && player distance cursorTarget < 10 && isNull (cursorTarget turretUnit [2])"]] call fn_addManagedAction; +}; \ No newline at end of file From f2d1e9cac2f508d590d70013dde50738fe8ee090 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 11 Mar 2015 18:13:35 -0700 Subject: [PATCH 400/544] Oops --- client/actions/moveInTurret.sqf | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 client/actions/moveInTurret.sqf diff --git a/client/actions/moveInTurret.sqf b/client/actions/moveInTurret.sqf new file mode 100644 index 000000000..e85054561 --- /dev/null +++ b/client/actions/moveInTurret.sqf @@ -0,0 +1,8 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Name: moveInTurret.sqf +// @file Author: BadVolt +_turret=_this select 3 select 0; + +player moveInTurret [cursorTarget,[_turret]]; From 4e3abbae6421a8031d2c487d226e10a118b6932f Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 11 Mar 2015 19:58:59 -0700 Subject: [PATCH 401/544] Huron fix for DLC hack. --- client/functions/playerActions.sqf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 2072af061..11044a52a 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -51,8 +51,8 @@ if !(288520 in getDLCs 1) then // Morehehe... if !(304380 in getDLCs 1) then { - [player, [" Get in as Pilot", "client\actions\moveInDriver.sqf", [], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_base_F') or (cursorTarget isKindOf 'Heli_Transport_04_base_F')) && player distance cursorTarget < 10 && isNull driver cursorTarget"]] call fn_addManagedAction; - [player, [" Get in as Copilot", "client\actions\moveInTurret.sqf", [0], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_base_F') or (cursorTarget isKindOf 'Heli_Transport_04_base_F')) && player distance cursorTarget < 10 && isNull (cursorTarget turretUnit [0])"]] call fn_addManagedAction; - [player, [" Get in as Left door gunner", "client\actions\moveInTurret.sqf", [1], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_base_F')) && player distance cursorTarget < 10 && isNull (cursorTarget turretUnit [1])"]] call fn_addManagedAction; - [player, [" Get in as Right door gunner", "client\actions\moveInTurret.sqf", [2], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_base_F')) && player distance cursorTarget < 10 && isNull (cursorTarget turretUnit [2])"]] call fn_addManagedAction; + [player, [" Get in as Pilot", "client\actions\moveInDriver.sqf", [], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_F') or (cursorTarget isKindOf 'B_Heli_Transport_03_unarmed_F') or (cursorTarget isKindOf 'Heli_Transport_04_base_F')) && player distance cursorTarget < 10 && isNull driver cursorTarget"]] call fn_addManagedAction; + [player, [" Get in as Copilot", "client\actions\moveInTurret.sqf", [0], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_F') or (cursorTarget isKindOf 'B_Heli_Transport_03_unarmed_F') or (cursorTarget isKindOf 'Heli_Transport_04_base_F')) && player distance cursorTarget < 10 && isNull (cursorTarget turretUnit [0])"]] call fn_addManagedAction; + [player, [" Get in as Left door gunner", "client\actions\moveInTurret.sqf", [1], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_F') or (cursorTarget isKindOf 'B_Heli_Transport_03_unarmed_F')) && player distance cursorTarget < 10 && isNull (cursorTarget turretUnit [1])"]] call fn_addManagedAction; + [player, [" Get in as Right door gunner", "client\actions\moveInTurret.sqf", [2], 6, true, true, "", "(locked cursorTarget != 2) && ((cursorTarget isKindOf 'B_Heli_Transport_03_F') or (cursorTarget isKindOf 'B_Heli_Transport_03_unarmed_F')) && player distance cursorTarget < 10 && isNull (cursorTarget turretUnit [2])"]] call fn_addManagedAction; }; \ No newline at end of file From 0a6c7b49cd19dfdcbad54387aac499244a3b6cd6 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 18 Mar 2015 06:19:49 -0700 Subject: [PATCH 402/544] Tweak for get in vehicle explosion fix. --- client/clientEvents/getInVehicle.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/clientEvents/getInVehicle.sqf b/client/clientEvents/getInVehicle.sqf index bf7610dee..44da8b009 100644 --- a/client/clientEvents/getInVehicle.sqf +++ b/client/clientEvents/getInVehicle.sqf @@ -36,7 +36,7 @@ if (vehicle player != player) then { _veh = _this select 0; if (_veh getVariable ["allowDamage", true]) then { _veh allowDamage false; - sleep 0.5; + sleep 2; _veh allowDamage true; }; }; From b3548ab93cbcf851fc323070c583ae0ed8f12546 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 24 Mar 2015 17:13:01 -0700 Subject: [PATCH 403/544] UAV resupply tweak. --- addons/scripts/fn_resupplytruck.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 2b9436016..1cefce822 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -314,7 +314,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { }; //_vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure - [[_vehicle,1],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; + //[[_vehicle,1],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; if (damage _vehicle > 0.001) then { call _checkAbortConditions; From a13b893ce83be38bc07cfb3dd8f0efe1b7e48a22 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 28 Mar 2015 16:39:22 -0700 Subject: [PATCH 404/544] ATM dupe kludge. Thanks Bl4ckcircle --- client/items/atm/deposit.sqf | 2 ++ client/items/atm/transfer.sqf | 2 ++ client/items/atm/withdraw.sqf | 2 ++ 3 files changed, 6 insertions(+) diff --git a/client/items/atm/deposit.sqf b/client/items/atm/deposit.sqf index 1463296cb..f93d480b3 100644 --- a/client/items/atm/deposit.sqf +++ b/client/items/atm/deposit.sqf @@ -46,3 +46,5 @@ _input ctrlSetText (_amount call fn_numToStr); pvar_processTransaction = ["atm", player, _amount]; publicVariableServer "pvar_processTransaction"; + +closeDialog 0; diff --git a/client/items/atm/transfer.sqf b/client/items/atm/transfer.sqf index 13a9ade45..f86c632bd 100644 --- a/client/items/atm/transfer.sqf +++ b/client/items/atm/transfer.sqf @@ -103,3 +103,5 @@ format [MSG_CONFIRM_LINE3, [_total] call fn_numbersText]; { if (!ctrlEnabled _x) then { _x ctrlEnable true } } forEach _controls; }; + +closeDialog 0; \ No newline at end of file diff --git a/client/items/atm/withdraw.sqf b/client/items/atm/withdraw.sqf index 87fd031b2..38f2b7921 100644 --- a/client/items/atm/withdraw.sqf +++ b/client/items/atm/withdraw.sqf @@ -29,3 +29,5 @@ if (player getVariable ["bmoney", 0] < _amount) exitWith pvar_processTransaction = ["atm", player, -_amount]; publicVariableServer "pvar_processTransaction"; + +closeDialog 0; \ No newline at end of file From 9653e76cd6c948114451fd29681407925ddd9ed6 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 28 Mar 2015 16:47:28 -0700 Subject: [PATCH 405/544] Revert 1.38 shake fix. --- client/init.sqf | 1 - 1 file changed, 1 deletion(-) diff --git a/client/init.sqf b/client/init.sqf index c08fa25ce..bc226339d 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -25,7 +25,6 @@ player setVariable ["respawnDialogActive", false, true]; groupManagmentActive = false; pvar_PlayerTeamKiller = objNull; doCancelAction = false; -enableCamShake false; //AJ Beacondetector BeaconScanInProgress = false; From 39f8f486f56ccef19e5f795e7d4db7be0479ea8b Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 28 Mar 2015 17:06:27 -0700 Subject: [PATCH 406/544] Fix Repack exploit on incapacitated. Thanks l0dac --- .../Scripts/MagRepack_Misc.sqf | 44 ++++++++++++------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/addons/outlw_magRepack/Scripts/MagRepack_Misc.sqf b/addons/outlw_magRepack/Scripts/MagRepack_Misc.sqf index 197b662b7..0d05b0c7d 100644 --- a/addons/outlw_magRepack/Scripts/MagRepack_Misc.sqf +++ b/addons/outlw_magRepack/Scripts/MagRepack_Misc.sqf @@ -1,4 +1,9 @@ +#define UNCONSCIOUS(UNIT) (UNIT getVariable ["FAR_isUnconscious", 0] == 1) +#define STABILIZED(UNIT) (UNIT getVariable ["FAR_isStabilized", 0] == 1) +#define DRAGGED_BY(UNIT) (UNIT getVariable ["FAR_draggedBy", objNull]) +#define DRAGGED(UNIT) (!isNull DRAGGED_BY(UNIT)) + outlw_MR_modifierCheck = { _shift = _this select 2; @@ -32,30 +37,37 @@ outlw_MR_modifierCheck = outlw_MR_keyDown = { _key = _this select 1; - - if (_key == outlw_MR_keybinding && {_this call outlw_MR_modifierCheck}) then + _unit = player; + if (UNCONSCIOUS(_unit) || STABILIZED(_unit) || DRAGGED(_unit)) then { - if (outlw_MR_canCreateDialog) then + false; + } + else + { + if (_key == outlw_MR_keybinding && {_this call outlw_MR_modifierCheck}) then { - call outlw_MR_createDialog; - true; + if (outlw_MR_canCreateDialog) then + { + call outlw_MR_createDialog; + true; + } + else + { + if (!outlw_MR_keybindingMenuActive) then + { + closeDialog 0; + true; + }; + }; } else - { - if (!outlw_MR_keybindingMenuActive) then + { + if (_key == 14 && {_this select 2} && {_this select 3} && {_this select 4} && {outlw_MR_canCreateDialog}) then { - closeDialog 0; + [outlw_MR_defaultKeybinding, true] call outlw_MR_applyKeybinding; true; }; }; - } - else - { - if (_key == 14 && {_this select 2} && {_this select 3} && {_this select 4} && {outlw_MR_canCreateDialog}) then - { - [outlw_MR_defaultKeybinding, true] call outlw_MR_applyKeybinding; - true; - }; }; }; From a3c59824c481e728709b52fbeb2299086700fb68 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 28 Mar 2015 18:36:26 -0700 Subject: [PATCH 407/544] Added sell vehicle to vehicle stores. Thanks CRE4MPIE --- addons/scripts/sellVehicle.sqf | 128 ------------------------- client/systems/selling/sellVehicle.sqf | 82 ++++++++++++++++ server/functions/setupStoreNPC.sqf | 1 + 3 files changed, 83 insertions(+), 128 deletions(-) delete mode 100644 addons/scripts/sellVehicle.sqf create mode 100644 client/systems/selling/sellVehicle.sqf diff --git a/addons/scripts/sellVehicle.sqf b/addons/scripts/sellVehicle.sqf deleted file mode 100644 index ab6bee017..000000000 --- a/addons/scripts/sellVehicle.sqf +++ /dev/null @@ -1,128 +0,0 @@ -// @file Version: 1.0 -// @file Name: sellVehicle.sqf -// @file Author: Wiking, AgentRev edited by Gigatek -// @file Created: 27/07/2014 13:04 - -// Selling of vehicle wrecks - -#define GET_ONE_TENTH_PRICE(PRICE) ((ceil (((PRICE) / 2) / 5)) * 5) - -// Check if mutex lock is active. -if (mutexScriptInProgress) exitWith -{ - ["You are already performing another action.", 5] call mf_notify_client; -}; - -private ["_vehicle", "_vehClass", "_checks", "_firstCheck", "_time", "_money", "_success"]; - -_vehicle = cursorTarget; -_vehClass = typeOf _vehicle; - -if (isNull _vehicle) exitWith {}; - -_checks = -{ - private ["_progress", "_object", "_failed", "_text"]; - _progress = _this select 0; - _object = _this select 1; - _failed = true; - - switch (true) do - { - case (!alive player): { _text = "" }; - case (vehicle player != player): { _text = "Sell Failed! You can't do that in a vehicle." }; - case (((player distance _object) - ((sizeOf typeOf _object / 3) max 4)) > 2): {_text = "Sell Failed! You are too far away from the vehicle."}; - case (isNull _object): { _text = "The vehicle no longer exists" }; - case (!alive _object || {alive _x} count crew _object > 0 && !(_vehClass isKindOf "UGV_01_base_F") && !(_vehClass isKindOf "UAV_02_base_F")): { _text = "Sell Failed! You are not allowed to sell this vehicle." }; - case (!isNull (_object getVariable ["R3F_LOG_est_deplace_par", objNull])): { _text = "Sell Failed! Somebody moved the vehicle." }; - case (!isNull (_object getVariable ["R3F_LOG_est_transporte_par", objNull])): { _text = "Sell Failed! Somebody loaded or towed the vehicle." }; - case (doCancelAction): { doCancelAction = false; _text = "Sell Cancelled!" }; - default - { - _failed = false; - _text = format ["Vehicle Sell %1%2 Complete", floor (_progress * 100), "%"]; - }; - }; - - [_failed, _text]; -}; - -_firstCheck = [0, _vehicle] call _checks; - -if (_firstCheck select 0) exitWith -{ - [_firstCheck select 1, 5] call mf_notify_client; -}; - -mutexScriptInProgress = true; - -// Salvage time and default money reward according to vehicle type -switch (true) do -{ - case (_vehClass isKindOf "Plane_Base_F"): // Planes (UAV_02 is not in Plane_Base_F) - { - _time = 30; - _money = 10000; - }; - case (_vehClass isKindOf "Tank"): // Tanks & IFVs - { - _time = 30; - _money = 10000; - }; - case (_vehClass isKindOf "Helicopter_Base_F" && !(_vehClass isKindOf "UAV_01_base_F")): // Helicopters (except UAV_01) - { - _time = 25; - _money = 5000; - }; - case (_vehClass isKindOf "Wheeled_APC_F"): // Wheeled APCs - { - _time = 20; - _money = 5000; - }; - case (_vehClass isKindOf "Truck_F" && !(_vehClass isKindOf "Van_01_base_F")): // Trucks (except Vans) - { - _time = 20; - _money = 1000; - }; - case ({_vehClass isKindOf _x} count ["MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "UAV_02_base_F"] > 0): // MRAPs and UAV_02 - { - _time = 15; - _money = 2000; - }; - case (_vehClass isKindOf "Boat_Armed_01_base_F"): // Speedboats - { - _time = 10; - _money = 500; - }; - case ({_vehClass isKindOf _x} count ["Quadbike_01_base_F", "Kart_01_Base_F", "Rubber_duck_base_F", "UAV_01_base_F"] > 0): // Quadbikes, karts, rubber boats, UAV_01 - { - _time = 3; - _money = 100; - }; - default // Everything else - { - _time = 5; - _money = 500; - }; -}; - -// Final money reward is decided from vehicle store price -{ - if (_x select 1 == _vehClass) exitWith - { - _money = GET_ONE_TENTH_PRICE(_x select 2); - }; -} forEach call allVehStoreVehicles; - -mutexScriptInProgress = true; - -_success = [_time, format ["AinvPknlMstpSlayW%1Dnon_medic", [player, true] call getMoveWeapon], _checks, [_vehicle]] call a3w_actions_start; - -mutexScriptInProgress = false; - -if (_success) then -{ - deleteVehicle _vehicle; - player setVariable ["cmoney", (player getVariable ["cmoney", 0]) + _money, true]; - [format ["You have obtained $%1 from vehicle sell.", [_money] call fn_numbersText], 5] call mf_notify_client; -}; diff --git a/client/systems/selling/sellVehicle.sqf b/client/systems/selling/sellVehicle.sqf new file mode 100644 index 000000000..a621428c5 --- /dev/null +++ b/client/systems/selling/sellVehicle.sqf @@ -0,0 +1,82 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Name: sellVehicle.sqf +// @file Author: AgentRev +// @file edited: CRE4MPIE +// @credits to: Cael817, lodac, Wiking + + +#include "sellIncludesStart.sqf"; + +storeSellingHandle = _this spawn +{ +#define CHOPSHOP_PRICE_RELATIONSHIP 2 +#define VEHICLE_MAX_SELLING_DISTANCE 50 + +private ["_vehicle","_type", "_price", "_confirmMsg", "_playerMoney", "_text"]; + +_storeNPC = _this select 0; +_vehicle = objectFromNetId (player getVariable ["lastVehicleRidden", ""]); +_type = typeOf _vehicle; +_playerMoney = player getVariable "cmoney"; +_price = 1500; +_objClass = typeOf _vehicle; +_objName = getText (configFile >> "CfgVehicles" >> _objClass >> "displayName"); + + if (isNull _vehicle) exitWith + { + playSound "FD_CP_Not_Clear_F"; + ["Your previous vehicle does not exist anymore.", "Error"] call BIS_fnc_guiMessage; + }; + + if (_vehicle distance _storeNPC > VEHICLE_MAX_SELLING_DISTANCE) exitWith + { + playSound "FD_CP_Not_Clear_F"; + [format [' The "%1" is further away than %2m from the store.', _objname, VEHICLE_MAX_SELLING_DISTANCE], "Error"] call BIS_fnc_guiMessage; + }; + +{ + if (_type == _x select 1) then + { + _price = _x select 2; + _price = _price / CHOPSHOP_PRICE_RELATIONSHIP; + }; + +} forEach (call allVehStoreVehicles); + + if (!isNil "_price") then + { + // Add total sell value to confirm message + _confirmMsg = format ["Selling the %1 will give you $%2
    ", _objName, _price]; + _confirmMsg = _confirmMsg + format ["
    1 x %1", _objName]; + + // Display confirm message + if ([parseText _confirmMsg, "Confirm", "Sell", true] call BIS_fnc_guiMessage) then + { + + sleep (1 + (random 4)); + + if (_vehicle distance _storeNPC > VEHICLE_MAX_SELLING_DISTANCE) exitWith + { + playSound "FD_CP_Not_Clear_F"; + [format ['The %1 has already been sold!', _objname, VEHICLE_MAX_SELLING_DISTANCE], "Error"] call BIS_fnc_guiMessage; + }; + + deleteVehicle _vehicle; + + player setVariable["cmoney",(player getVariable "cmoney")+_price,true]; + [format ['The %1 has been sold!', _objname, VEHICLE_MAX_SELLING_DISTANCE], "Thank You"] call BIS_fnc_guiMessage; + + if (["A3W_playerSaving"] call isConfigOn) then + { + [] spawn fn_savePlayerData; + }; + }; + } else { + hint parseText "An unknown error occurred.
    Cancelled."; + playSound "FD_CP_Not_Clear_F"; + }; +}; + +#include "sellIncludesEnd.sqf"; diff --git a/server/functions/setupStoreNPC.sqf b/server/functions/setupStoreNPC.sqf index 22ca243c7..77b2a3a31 100644 --- a/server/functions/setupStoreNPC.sqf +++ b/server/functions/setupStoreNPC.sqf @@ -52,6 +52,7 @@ if (hasInterface) then _npc addAction [" Sell crate", "client\systems\selling\sellCrateItems.sqf", [false, false, true], 0.99, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_CRATE_CONDITION]; _npc addAction [" Sell contents", "client\systems\selling\sellCrateItems.sqf", [], 0.98, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_CONTENTS_CONDITION]; _npc addAction [" Sell last vehicle contents", "client\systems\selling\sellVehicleItems.sqf", [], 0.97, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_VEH_CONTENTS_CONDITION]; + _npc addAction [" Sell last vehicle", "client\systems\selling\sellVehicle.sqf", [], 0.97, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_VEH_CONTENTS_CONDITION]; }; if (isServer) then From 41b41026d437f0414ef37b57f67bd73355ea9fad Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 28 Mar 2015 19:11:19 -0700 Subject: [PATCH 408/544] Removed old sell vehicle points. --- mission.sqm | 142 ++++++---------------------------------------------- 1 file changed, 14 insertions(+), 128 deletions(-) diff --git a/mission.sqm b/mission.sqm index c7446381c..f6a9ac155 100644 --- a/mission.sqm +++ b/mission.sqm @@ -86,15 +86,13 @@ class Mission "A3_Structures_F_Mil_Cargo", "A3_Structures_F_Households_Slum", "A3_Structures_F_Civ_Market", - "A3_Structures_F_Civ_Camping", "A3_Structures_F_EPC_Civ_Accessories", - "A3_Structures_F_EPA_Mil_Scrapyard", "a3_map_altis" }; randomSeed=14957468; class Intel { - briefingName="A3Wasteland Altis v1.1"; // it would be great if you could keep "A3" in the name, like "ABC A3Wasteland" instead of "ABC Wasteland" :) + briefingName="A3Wasteland Altis v1.1"; overviewText="Wasteland survival sandbox by Team Wasteland - visit A3Wasteland.com for more details"; resistanceWest=0; timeOfChanges=3e+038; @@ -2090,7 +2088,7 @@ class Mission }; class Vehicles { - items=35; + items=28; class Item0 { position[]={5892.3325,225.05762,20124.521}; @@ -2332,125 +2330,69 @@ class Mission description="DO NOT MODIFY IN EDITOR"; }; class Item22 - { - position[]={24678.867,2.3929932,18970.639}; - id=183; - side="EMPTY"; - vehicle="Land_Scrap_MRAP_01_F"; - skill=0.60000002; - }; - class Item23 - { - position[]={17484.883,45.786415,16465.258}; - id=184; - side="EMPTY"; - vehicle="Land_Scrap_MRAP_01_F"; - skill=0.60000002; - }; - class Item24 - { - position[]={14860.01,8.8866749,11057.159}; - id=185; - side="EMPTY"; - vehicle="Land_Scrap_MRAP_01_F"; - skill=0.60000002; - }; - class Item25 - { - position[]={21318.879,5.5621166,10468.235}; - id=186; - side="EMPTY"; - vehicle="Land_Scrap_MRAP_01_F"; - skill=0.60000002; - }; - class Item26 - { - position[]={5630.6445,204.18716,19540.102}; - id=187; - side="EMPTY"; - vehicle="Land_Scrap_MRAP_01_F"; - skill=0.60000002; - }; - class Item27 - { - position[]={11725.468,54.069294,18284.35}; - id=188; - side="EMPTY"; - vehicle="Land_Scrap_MRAP_01_F"; - skill=0.60000002; - }; - class Item28 - { - position[]={5947.2061,101.94163,12468.482}; - id=189; - side="EMPTY"; - vehicle="Land_Scrap_MRAP_01_F"; - skill=0.60000002; - }; - class Item29 { position[]={3574.9937,11.526847,12800.598}; azimut=302.65201; offsetY=0.15000001; - id=190; + id=183; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; init="[this] call A3W_fnc_setupMissionATM"; description="DO NOT MODIFY IN EDITOR"; }; - class Item30 + class Item23 { position[]={14492,18.768188,16383.846}; azimut=185.51801; - id=191; + id=184; side="EMPTY"; vehicle="Land_Atm_01_F"; skill=0.60000002; init="[this] call A3W_fnc_setupMissionATM"; description="DO NOT MODIFY IN EDITOR"; }; - class Item31 + class Item24 { position[]={25618.682,20.873209,21353.275}; azimut=136.1844; offsetY=0.15000001; - id=192; + id=185; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; init="[this] call A3W_fnc_setupMissionATM"; description="DO NOT MODIFY IN EDITOR"; }; - class Item32 + class Item25 { position[]={16774.646,18.403027,12594.591}; azimut=270.28101; offsetY=0.15000001; - id=193; + id=186; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; init="[this] call A3W_fnc_setupMissionATM"; description="DO NOT MODIFY IN EDITOR"; }; - class Item33 + class Item26 { position[]={9507.4814,118.30473,15937.552}; azimut=4.3656998; offsetY=0.15000001; - id=194; + id=187; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; init="[this] call A3W_fnc_setupMissionATM"; description="DO NOT MODIFY IN EDITOR"; }; - class Item34 + class Item27 { position[]={21647.465,14.035986,7676.2676}; azimut=230.96605; - id=195; + id=188; side="EMPTY"; vehicle="Land_Atm_02_F"; skill=0.60000002; @@ -2460,7 +2402,7 @@ class Mission }; class Markers { - items=184; + items=177; class Item0 { position[]={3612.1487,12.11851,13020.892}; @@ -3794,62 +3736,6 @@ class Mission colorName="ColorBlack"; }; class Item176 - { - position[]={24673.639,2.5595996,18967.119}; - name="Sell_Vehicle_Pad_Icon"; - text="Sell Vehicle"; - type="mil_dot"; - colorName="ColorGreen"; - }; - class Item177 - { - position[]={17479.654,45.452381,16461.738}; - name="Sell_Vehicle_Pad_Icon_1"; - text="Sell Vehicle"; - type="mil_dot"; - colorName="ColorGreen"; - }; - class Item178 - { - position[]={14854.781,8.6214705,11053.64}; - name="Sell_Vehicle_Pad_Icon_2"; - text="Sell Vehicle"; - type="mil_dot"; - colorName="ColorGreen"; - }; - class Item179 - { - position[]={21313.65,5.7161169,10464.716}; - name="Sell_Vehicle_Pad_Icon_3"; - text="Sell Vehicle"; - type="mil_dot"; - colorName="ColorGreen"; - }; - class Item180 - { - position[]={5627.0688,204.00546,19542.371}; - name="Sell_Vehicle_Pad_Icon_4"; - text="Sell Vehicle"; - type="mil_dot"; - colorName="ColorGreen"; - }; - class Item181 - { - position[]={11720.239,54.827972,18280.83}; - name="Sell_Vehicle_Pad_Icon_5"; - text="Sell Vehicle"; - type="mil_dot"; - colorName="ColorGreen"; - }; - class Item182 - { - position[]={5941.9775,101.78477,12464.963}; - name="Sell_Vehicle_Pad_Icon_6"; - text="Sell Vehicle"; - type="mil_dot"; - colorName="ColorGreen"; - }; - class Item183 { position[]={12412.868,24.364281,15579.608}; name="GunStore5_objSpawn"; From 8b9d9ca3b4ce9c8fd38aed82dee0408d56b5d050 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 29 Mar 2015 03:14:48 -0700 Subject: [PATCH 409/544] Improved resupply. --- addons/scripts/fn_resupplytruck.sqf | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/addons/scripts/fn_resupplytruck.sqf b/addons/scripts/fn_resupplytruck.sqf index 1cefce822..1e6844287 100644 --- a/addons/scripts/fn_resupplytruck.sqf +++ b/addons/scripts/fn_resupplytruck.sqf @@ -51,14 +51,14 @@ if (_vehicle == player) exitWith {}; private["_vehClass", "_price"]; //set up prices _vehClass = typeOf _vehicle; -_price = 5000; // price = 1000 for vehicles not found in vehicle store. (e.g. Static Weapons) +_price = 1000; // price = 1000 for vehicles not found in vehicle store. (e.g. Static Weapons) { if (_vehClass == _x select 1) then { _price = _x select 2; _price = round (_price / PRICE_RELATIONSHIP); }; -} forEach (call allVehStoreVehicles); +} forEach (call allVehStoreVehicles + call staticGunsArray); private["_service_cancelled"]; _service_cancelled = false; @@ -113,13 +113,13 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { scopeName "fn_resupplyTruck"; private["_price"]; - _price = 5000; // price = 1000 for vehicles not found in vehicle store (e.g. static weapons) + _price = 1000; // price = 1000 for vehicles not found in vehicle store (e.g. static weapons) { if (_vehClass == _x select 1) then { _price = _x select 2; _price = round (_price / PRICE_RELATIONSHIP); }; - } forEach (call allVehStoreVehicles); + } forEach (call allVehStoreVehicles + call staticGunsArray); private["_titleText"]; _titleText = { @@ -185,7 +185,7 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { } else { private["_msg"]; - _msg = format["It will cost you %1 to resupply the %2. Do you want to proceed?", _price, getText ((configFile >> "CfgVehicles" >> (typeOf _vehicle)) >> "displayName")]; + _msg = format["It will cost you $%1 to resupply the %2. Do you want to proceed?", _price, getText ((configFile >> "CfgVehicles" >> (typeOf _vehicle)) >> "displayName")]; if (not([_msg, "Vehicle Resupply", true,true] call BIS_fnc_guiMessage)) then { mutexScriptInProgress = false; breakOut "fn_resupplyTruck"; @@ -304,18 +304,20 @@ _resupplyThread = [_vehicle, _is_uav, _is_static] spawn { } forEach _turretMagPairs; } forEach _turretsArray; + _vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure + //[[_vehicle,1],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; + switch (true) do { case ({_vehicle isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0): { _vehicle removeMagazineTurret ["6Rnd_LG_scalpel",[0]]; + _vehicle removeMagazineTurret ["2Rnd_LG_scalpel",[0]]; + _vehicle removeMagazineTurret ["2Rnd_LG_scalpel",[0]]; _vehicle addMagazineTurret ["2Rnd_LG_scalpel",[0]]; }; }; - //_vehicle setVehicleAmmoDef 1; // Full ammo reset just to be sure - //[[_vehicle,1],"A3W_fnc_setVehicleAmmoDef",_vehicle,false] call BIS_fnc_MP; - if (damage _vehicle > 0.001) then { call _checkAbortConditions; while {damage _vehicle > 0.001} do { From f3721bab68179e4e182e3060ecb279dcd2056047 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 29 Mar 2015 16:11:47 -0700 Subject: [PATCH 410/544] Tweaked main config and put max ATM money to $300,000. --- client/functions/playerSpawn.sqf | 2 +- server/default_config.sqf | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/client/functions/playerSpawn.sqf b/client/functions/playerSpawn.sqf index 40b9f4d29..8e8d633b8 100644 --- a/client/functions/playerSpawn.sqf +++ b/client/functions/playerSpawn.sqf @@ -105,7 +105,7 @@ playerSpawning = false; player setVariable ["playerSpawning", false, true]; private["_max_money"]; -_max_money = 250000; +_max_money = 300000; if (player getVariable ["bmoney", 0] > _max_money) then { player setVariable ["bmoney", _max_money, true]; diff --git a/server/default_config.sqf b/server/default_config.sqf index 35c584021..67e7844a2 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -9,7 +9,7 @@ // General settings A3W_startHour = 4; // In-game hour at mission start (0 to 23) -A3W_timeMultiplierDay = 2.1; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) +A3W_timeMultiplierDay = 2.0; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) A3W_timeMultiplierNight = 4.0; // Sets the speed of time between 8 PM and 5 AM A3W_moonLight = 1; // Moon light during night (0 = no, 1 = yes) A3W_teamPlayersMap = 1; // Show all friendly players on the map at all times, regardless of difficulty level (0 = no, 1 = yes) @@ -32,7 +32,7 @@ A3W_bleedingTime = 60; // Time in seconds for which to allow revive // ATM settings A3W_atmEnabled = 1; -A3W_atmMaxBalance = 250000; // Maximum amount of money that can be stored in a bank account (recommended: 1 million) +A3W_atmMaxBalance = 300000; // Maximum amount of money that can be stored in a bank account (recommended: 1 million) A3W_atmTransferFee = 10; // Fee in percent charged to players for money transfers to other players (0 to 50) A3W_atmTransferAllTeams = 0; // Allow money transfers between players of all teams/sides (0 = same team only, 1 = all teams) A3W_atmEditorPlacedOnly = 0; // Only allow access via ATMs placed from the mission editor (0 = all ATMs from towns & editor allowed, 1 = ATMs from editor only) Note: Stratis has no town ATMs, only editor ones. @@ -78,7 +78,7 @@ PDB_PlayersListFileID = "A3W_"; // PlayerList savefile prefix (change this in A3W_vehicle_saveInterval = 1200; // Number of seconds between vehicle saves A3W_object_saveInterval = 1200; // Number of seconds between object saves A3W_player_saveInterval = 1200; // Number of seconds between player saves -A3W_playersList_saveInterval = 120; // Number of seconds between player list saves +A3W_playersList_saveInterval = 300; // Number of seconds between player list saves A3W_saveable_vehicles_list = ["StaticWeapon", "C_Kart_01_F", "Quadbike_01_base_F", "Hatchback_01_base_F", "SUV_01_base_F", "Offroad_01_base_F", "Van_01_base_F", "MRAP_01_base_F", "MRAP_02_base_F", "MRAP_03_base_F", "Truck_01_base_F", "Truck_02_base_F", "Truck_03_base_F", "Wheeled_APC_F", "Tank_F", "Rubber_duck_base_F", "SDV_01_base_F", "Boat_Civil_01_base_F", "Boat_Armed_01_base_F", "Helicopter_Base_F", "Plane", "UGV_01_base_F"]; // List of classes for vehicles that are saveable A3W_locked_vehicles_list = []; // List of class names for vehicles that should be automatically locked upon restore @@ -109,7 +109,7 @@ A3W_payrollAmount = 400; // Amount of money rewarded per territory on // Mission settings A3W_serverMissions = 1; // Enable server missions (0 = no, 1 = yes) A3W_missionsDifficulty = 0; // Missions difficulty (0 = normal, 1 = hard) -A3W_missionsQuantity = 4; // Number of missions running at the same time (0 to 6) +A3W_missionsQuantity = 5; // Number of missions running at the same time (0 to 6) A3W_missionFarAiDrawLines = 1; // Draw small red lines on the map from mission markers to individual units & vehicles which are further away than 75m from the objective (0 = no, 1 = yes) A3W_heliPatrolMissions = 1; // Enable missions involving flying helicopters piloted by AI (0 = no, 1 = yes) A3W_underWaterMissions = 1; // Enable underwater missions which require diving gear (0 = no, 1 = yes) @@ -117,5 +117,5 @@ A3W_mainMissionDelay = 5*60; // Time in seconds between Main Missions A3W_mainMissionTimeout = 60*60; // Time in seconds that a Main Mission will run for, unless completed A3W_sideMissionDelay = 5*60; // Time in seconds between Side Missions A3W_sideMissionTimeout = 60*60; // Time in seconds that a Side Mission will run for, unless completed -A3W_moneyMissionDelay = 5*60; // Time in seconds between Money Missions +A3W_moneyMissionDelay = 10*60; // Time in seconds between Money Missions A3W_moneyMissionTimeout = 60*60; // Time in seconds that a Money Mission will run for, unless completed From 3dacf2b19aa629daeb7ab39bafe7c6a74c67d8c9 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 7 Apr 2015 12:07:27 -0700 Subject: [PATCH 411/544] Merge clean up. --- .../server/world/fn_isObjectSaveable.sqf | 19 ---- server/functions/spawnStoreObject.sqf | 99 +++++-------------- 2 files changed, 26 insertions(+), 92 deletions(-) delete mode 100644 persistence/server/world/fn_isObjectSaveable.sqf diff --git a/persistence/server/world/fn_isObjectSaveable.sqf b/persistence/server/world/fn_isObjectSaveable.sqf deleted file mode 100644 index 0adff0461..000000000 --- a/persistence/server/world/fn_isObjectSaveable.sqf +++ /dev/null @@ -1,19 +0,0 @@ -// ****************************************************************************************** -// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * -// ****************************************************************************************** -// @file Name: fn_isObjectSaveable.sqf -// @file Author: AgentRev - -private ["_obj", "_class"]; -_obj = _this; -_class = typeOf _obj; - -#include "functions.sqf" - -(alive _obj && -{((_obj getVariable ["objectLocked", false] || {!isNil {_obj getVariable "A3W_objectID"} && _savingMethod == "extDB"}) && - {(_baseSavingOn && {_class call _isSaveable}) || - (_boxSavingOn && {_class call _isBox}) || - (_staticWeaponSavingOn && {_class call _isStaticWeapon})}) || -{_warchestSavingOn && {_obj call _isWarchest}} || -{_beaconSavingOn && {_obj call _isBeacon}}}) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index 35c49589d..bbd74036a 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -129,7 +129,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _objectID = netId _object; _object setVariable ["A3W_purchasedStoreObject", true]; - [_object] call v_trackVehicle; + [_object] call v_trackVehicle; if (getNumber (configFile >> "CfgVehicles" >> _class >> "isUav") > 0) then { @@ -162,25 +162,29 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore breakOut "spawnStoreObject"; }; -<<<<<<< HEAD - // Spawn remaining calls to speed up delivery confirmation - [_object, _safePos, _marker, _player] spawn - { - _object = _this select 0; - _safePos = _this select 1; - _marker = _this select 2; - _player = _this select 3; -======= if (_object isKindOf "AllVehicles" && !(_object isKindOf "StaticWeapon")) then { _object setPosATL [_safePos select 0, _safePos select 1, 0.05]; _object setVelocity [0,0,0.01]; // _object spawn cleanVehicleWreck; - _object setVariable ["A3W_purchasedVehicle", true, true]; + + if ({_object isKindOf _x} count ["UAV_02_base_F", "UGV_01_base_F"] > 0) then { + _object setVariable ["A3W_purchasedVehicle", true]; + _object setVariable ["ownerUID", getPlayerUID _player, true]; + _object setVariable ["ownerN", name _player, true]; + }; + + if ({_object isKindOf _x} count A3W_autosave_vehicles_list > 0) then { + [[netId _object, 2], "A3W_fnc_setLockState", _object] call A3W_fnc_MP; // Lock + _object setVariable ["objectLocked", true, true]; + _object setVariable ["R3F_LOG_disabled", true, true]; + _object setVariable ["A3W_purchasedVehicle", true]; + _object setVariable ["ownerUID", getPlayerUID _player, true]; + _object setVariable ["ownerN", name _player, true]; + }; }; _object setDir (if (_object isKindOf "Plane") then { markerDir _marker } else { random 360 }); ->>>>>>> ArmA3_Wasteland.Altis/Development_main _isDamageable = !(_object isKindOf "ReammoBox_F"); // ({_object isKindOf _x} count ["AllVehicles", "Lamps_base_F", "Cargo_Patrol_base_F", "Cargo_Tower_base_F"] > 0); @@ -192,62 +196,18 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore { case ({_object isKindOf _x} count ["Box_NATO_AmmoVeh_F", "Box_East_AmmoVeh_F", "Box_IND_AmmoVeh_F"] > 0): { -<<<<<<< HEAD - _object setPosATL [_safePos select 0, _safePos select 1, 0.05]; - _object setVelocity [0,0,0.01]; - // _object spawn cleanVehicleWreck; - - if ({_object isKindOf _x} count ["UAV_02_base_F", "UGV_01_base_F"] > 0) then { - _object setVariable ["A3W_purchasedVehicle", true]; - _object setVariable ["ownerUID", getPlayerUID _player, true]; - _object setVariable ["ownerN", name _player, true]; - }; - - if ({_object isKindOf _x} count A3W_autosave_vehicles_list > 0) then { - [[netId _object, 2], "A3W_fnc_setLockState", _object] call A3W_fnc_MP; // Lock - _object setVariable ["objectLocked", true, true]; - _object setVariable ["R3F_LOG_disabled", true, true]; - _object setVariable ["A3W_purchasedVehicle", true]; - _object setVariable ["ownerUID", getPlayerUID _player, true]; - _object setVariable ["ownerN", name _player, true]; - }; - -======= - _object setAmmoCargo 5; ->>>>>>> ArmA3_Wasteland.Altis/Development_main + _object setAmmoCargo 0; }; case (_object isKindOf "O_Heli_Transport_04_ammo_F"): { - _object setAmmoCargo 10; + _object setAmmoCargo 0; }; case ({_object isKindOf _x} count ["B_Truck_01_ammo_F", "O_Truck_02_Ammo_F", "O_Truck_03_ammo_F", "I_Truck_02_ammo_F"] > 0): { -<<<<<<< HEAD - case ({_object isKindOf _x} count ["Box_NATO_AmmoVeh_F", "Box_East_AmmoVeh_F", "Box_IND_AmmoVeh_F"] > 0): - { - _object setAmmoCargo 5; - }; - - case (_object isKindOf "O_Heli_Transport_04_ammo_F"): - { - _object setAmmoCargo 0; - }; - - case ({_object isKindOf _x} count ["B_Truck_01_ammo_F", "O_Truck_02_Ammo_F", "O_Truck_03_ammo_F", "I_Truck_02_ammo_F"] > 0): - { - _object setAmmoCargo 0; - }; - - case ({_object isKindOf _x} count ["C_Van_01_fuel_F", "I_G_Van_01_fuel_F", "O_Heli_Transport_04_fuel_F"] > 0): - { - _object setFuelCargo 10; - }; -======= - _object setAmmoCargo 25; + _object setAmmoCargo 0; }; ->>>>>>> ArmA3_Wasteland.Altis/Development_main case ({_object isKindOf _x} count ["C_Van_01_fuel_F", "I_G_Van_01_fuel_F", "O_Heli_Transport_04_fuel_F"] > 0): { @@ -264,29 +224,22 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object setRepairCargo 5; }; -<<<<<<< HEAD - case ({_object isKindOf _x} count ["B_Truck_01_Repair_F", "O_Truck_02_box_F", "O_Truck_03_repair_F", "I_Truck_02_box_F"] > 0): - { - _object setRepairCargo 25; - }; - - case ({_object isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0): - { - _object removeMagazineTurret ["6Rnd_LG_scalpel",[0]]; - _object addMagazineTurret ["2Rnd_LG_scalpel",[0]]; - }; -======= case (_object isKindOf "O_Heli_Transport_04_repair_F"): { _object setRepairCargo 10; ->>>>>>> ArmA3_Wasteland.Altis/Development_main }; case ({_object isKindOf _x} count ["B_Truck_01_Repair_F", "O_Truck_02_box_F", "O_Truck_03_repair_F", "I_Truck_02_box_F"] > 0): { _object setRepairCargo 25; }; - }; + + case ({_object isKindOf _x} count ["B_UAV_02_F", "O_UAV_02_F", "I_UAV_02_F"] > 0): + { + _object removeMagazineTurret ["6Rnd_LG_scalpel",[0]]; + _object addMagazineTurret ["2Rnd_LG_scalpel",[0]]; + }; + }; if (_object getVariable ["A3W_purchasedVehicle", false] && !isNil "fn_manualVehicleSave") then { From 9fb1ad3d3ba6772ab8d291d2f7a8eaa65feb4044 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 7 Apr 2015 12:13:02 -0700 Subject: [PATCH 412/544] lil fix. --- server/functions/spawnStoreObject.sqf | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index bbd74036a..f7095425b 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -168,19 +168,19 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object setVelocity [0,0,0.01]; // _object spawn cleanVehicleWreck; - if ({_object isKindOf _x} count ["UAV_02_base_F", "UGV_01_base_F"] > 0) then { + if ({_object isKindOf _x} count ["UAV_02_base_F", "UGV_01_base_F"] > 0) then { _object setVariable ["A3W_purchasedVehicle", true]; _object setVariable ["ownerUID", getPlayerUID _player, true]; _object setVariable ["ownerN", name _player, true]; }; if ({_object isKindOf _x} count A3W_autosave_vehicles_list > 0) then { - [[netId _object, 2], "A3W_fnc_setLockState", _object] call A3W_fnc_MP; // Lock - _object setVariable ["objectLocked", true, true]; - _object setVariable ["R3F_LOG_disabled", true, true]; - _object setVariable ["A3W_purchasedVehicle", true]; - _object setVariable ["ownerUID", getPlayerUID _player, true]; - _object setVariable ["ownerN", name _player, true]; + [[netId _object, 2], "A3W_fnc_setLockState", _object] call A3W_fnc_MP; // Lock + _object setVariable ["objectLocked", true, true]; + _object setVariable ["R3F_LOG_disabled", true, true]; + _object setVariable ["A3W_purchasedVehicle", true]; + _object setVariable ["ownerUID", getPlayerUID _player, true]; + _object setVariable ["ownerN", name _player, true]; }; }; @@ -239,7 +239,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object removeMagazineTurret ["6Rnd_LG_scalpel",[0]]; _object addMagazineTurret ["2Rnd_LG_scalpel",[0]]; }; - }; + }; if (_object getVariable ["A3W_purchasedVehicle", false] && !isNil "fn_manualVehicleSave") then { From 2323d60a23ab051e0d34f75b98b036d141c7e8bc Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 7 Apr 2015 18:17:00 -0700 Subject: [PATCH 413/544] lil fix. --- .../R3F_LOG/objet_deplacable/objectLockStateMachine.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf index bf916eac5..764d3156f 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf @@ -41,7 +41,8 @@ switch (_lockState) do case (vehicle player != player): { _text = "Action failed! You can't do this in a vehicle" }; case (!isNull (_object getVariable ["R3F_LOG_est_transporte_par", objNull])): { _text = "Action failed! Somebody moved the object" }; case (_object getVariable ["objectLocked", false]): { _text = "Somebody else locked it before you" }; - default + case (count (nearestObjects [player, ["Land_Cashdesk_F"], 50]) > 0): { _text = "You are not allowed to lock objects within 50m of shops"}; + default { _failed = false; _text = format ["Locking %1%2 complete", floor (_progress * 100), "%"]; From a00f17a1a86862f5a4de3a23184752aae9454bbe Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 7 Apr 2015 18:24:05 -0700 Subject: [PATCH 414/544] Added 50m object lock block to stores. --- .../R3F_LOG/objet_deplacable/objectLockStateMachine.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf index 764d3156f..4ceae9818 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/objet_deplacable/objectLockStateMachine.sqf @@ -42,7 +42,7 @@ switch (_lockState) do case (!isNull (_object getVariable ["R3F_LOG_est_transporte_par", objNull])): { _text = "Action failed! Somebody moved the object" }; case (_object getVariable ["objectLocked", false]): { _text = "Somebody else locked it before you" }; case (count (nearestObjects [player, ["Land_Cashdesk_F"], 50]) > 0): { _text = "You are not allowed to lock objects within 50m of shops"}; - default + default { _failed = false; _text = format ["Locking %1%2 complete", floor (_progress * 100), "%"]; From f7853366e1b9b1c0916da0f388ddd39249761f9d Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 7 Apr 2015 19:10:34 -0700 Subject: [PATCH 415/544] Main config tweak. --- server/default_config.sqf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/default_config.sqf b/server/default_config.sqf index 67e7844a2..8f09a5423 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -16,7 +16,7 @@ A3W_teamPlayersMap = 1; // Show all friendly players on the map at al A3W_globalVoiceWarnTimer = 1; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) A3W_globalVoiceMaxWarns = 3; // Number of global voice warnings after which the player will be killed and crashed (0 = disabled) A3W_antiHackMinRecoil = 1.0; // Mininum recoil coefficient enforced by the antihack (recommended values: default = 1.0, TMR Mod = 0.5, VTS Weapon Resting = 0.25) (minimum: 0.02) -A3W_spawnBeaconCooldown = 5*60; // Number of seconds to wait between each use of an individual spawn beacon (0 = disabled) +A3W_spawnBeaconCooldown = 15*60; // Number of seconds to wait between each use of an individual spawn beacon (0 = disabled) A3W_spawnBeaconSpawnHeight = 1500; // Altitude in meters at which players will spawn when using spawn beacons (0 = ground/sea) // Store settings @@ -43,7 +43,6 @@ A3W_healthTime = 60*5; //seconds till death A3W_hungerTime = 80*60; //seconds till starving A3W_thirstTime = 65*60; //seconds till dehydrated - // Persistence settings A3W_playerSaving = 1; // Save player data like position, health, inventory, etc. (0 = no, 1 = yes) A3W_moneySaving = 1; // If playerSaving = 1, save player money amount (0 = no, 1 = yes) From ba6de9ccdf462d3f92be4e4ac660e2732ee4dcd0 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 8 Apr 2015 15:00:18 -0700 Subject: [PATCH 416/544] Marksmen update! Thank You LouDnl --- client/functions/weaponDisassembledEvent.sqf | 2 +- server/functions/splitWeaponItems.sqf | 12 +- storeConfig.sqf | 137 +++++++++++++++++-- 3 files changed, 136 insertions(+), 15 deletions(-) diff --git a/client/functions/weaponDisassembledEvent.sqf b/client/functions/weaponDisassembledEvent.sqf index 2918bedf4..512e7acf9 100644 --- a/client/functions/weaponDisassembledEvent.sqf +++ b/client/functions/weaponDisassembledEvent.sqf @@ -8,7 +8,7 @@ _unit = _this select 0; _bag1 = _this select 1; _bag2 = _this select 2; -if (_bag1 isKindOf "B_UAV_01_backpack_F") exitWith {}; +if (_bag1 isKindOf "B_UAV_01_backpack_F" || _bag1 isKindOf "B_Static_Designator_01_weapon_F" || _bag1 isKindOf "B_Static_Designator_02_weapon_F") exitWith {}; _currBag = unitBackpack _unit; diff --git a/server/functions/splitWeaponItems.sqf b/server/functions/splitWeaponItems.sqf index c558a1683..56d3a85d1 100644 --- a/server/functions/splitWeaponItems.sqf +++ b/server/functions/splitWeaponItems.sqf @@ -22,7 +22,17 @@ for "_i" from 1 to 3 do }; }; -for "_i" from 4 to (count _array - 1) do +for "_i" from 5 to (count _array - 1) do +{ + _item = _array select _i; + + if (_item != "") then + { + _items pushBack _item; + }; +}; + +for "_i" from 4 to (count _array - 2) do { _mag = _array select _i; diff --git a/storeConfig.sqf b/storeConfig.sqf index 1afb960bb..df712d022 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -62,10 +62,25 @@ rifleArray = compileFinal str ["MXM Rifle", "arifle_MXM_F", 300], ["MXM Rifle (Black)", "arifle_MXM_Black_F", 325], ["DMR Rifle", "srifle_DMR_01_F", 375], + ["Mk14 7.62 mm (Camo)", "srifle_DMR_06_camo_F", 450], // DLC Sniper Rifle + ["Mk14 7.62 mm (Olive)", "srifle_DMR_06_olive_F", 450], // DLC Sniper Rifle ["Mk18 ABR Rifle", "srifle_EBR_F", 450], - + ["Mk-1 EMR 7.62 mm (Black)", "srifle_DMR_03_F", 450], // DLC Sniper Rifle + ["Mk-1 EMR 7.62 mm (Camo)", "srifle_DMR_03_multicam_F", 500], // DLC Sniper Rifle + ["Mk-1 EMR 7.62 mm (Khaki)", "srifle_DMR_03_khaki_F", 500], // DLC Sniper Rifle + ["Mk-1 EMR 7.62 mm (Sand)", "srifle_DMR_03_tan_F", 500], // DLC Sniper Rifle + ["Mk-1 EMR 7.62 mm (Woodland)", "srifle_DMR_03_woodland_F", 500], // DLC Sniper Rifle + // Sniper Rifles - ["M320 LRR Sniper", "srifle_LRR_SOS_F", 1500], + ["Cyrus 9.3 mm (Black)", "srifle_DMR_05_blk_F", 1000], // DLC Sniper Rifle + ["Cyrus 9.3 mm (Hex)", "srifle_DMR_05_hex_F", 1050], // DLC Sniper Rifle + ["Cyrus 9.3 mm (Tan)", "srifle_DMR_05_tan_f", 1050], // DLC Sniper Rifle + ["ASP-1 Kir 12.7 mm (Black)", "srifle_DMR_04_F", 1350], // DLC Sniper Rifle + ["ASP-1 Kir 12.7 mm (Tan)", "srifle_DMR_04_Tan_F", 1400], // DLC Sniper Rifle + ["MAR-10 .338 (Black)", "srifle_DMR_02_F", 1500], // DLC Sniper Rifle + ["MAR-10 .338 (Camo)", "srifle_DMR_02_camo_F", 1550], // DLC Sniper Rifle + ["MAR-10 .338 (Sand)", "srifle_DMR_02_sniper_F", 1550], // DLC Sniper Rifle + ["M320 LRR Sniper", "srifle_LRR_SOS_F", 1550], ["M320 LRR Sniper (Camo)", "srifle_LRR_camo_SOS_F", 1650], ["GM6 Lynx Sniper", "srifle_GM6_SOS_F", 2000], ["GM6 Lynx Sniper (camo)", "srifle_GM6_camo_SOS_F", 2150] @@ -76,7 +91,14 @@ lmgArray = compileFinal str ["MX SW LMG", "arifle_MX_SW_F", 300], ["MX SW LMG (Black)", "arifle_MX_SW_Black_F", 325], ["Mk200 LMG", "LMG_Mk200_F", 375], - ["Zafir LMG", "LMG_Zafir_F", 450] + ["Zafir LMG", "LMG_Zafir_F", 450], + + //DLC LMG + ["SPMG .338 (Black)", "MMG_02_black_F", 500], + ["SPMG .338 (MTP)", "MMG_02_camo_F", 500], + ["SPMG .338 (Sand)", "MMG_02_sand_F", 500], + ["Navid 9.3 mm (Hex)", "MMG_01_hex_F", 550], + ["Navid 9.3 mm (Tan)", "MMG_01_tan_F", 550] ]; launcherArray = compileFinal str @@ -120,9 +142,9 @@ staticGunsArray = compileFinal str ["Mk32 GMG 20mm High tripod (NATO)", "B_GMG_01_high_F", 6000], ["Mk32 GMG 20mm High tripod (CSAT)", "O_GMG_01_high_F", 6000], ["Mk32 GMG 20mm High tripod (AAF)", "I_GMG_01_high_F", 6000], - ["Mk6 Mortar (NATO)", "B_Mortar_01_F", 25000], - ["Mk6 Mortar (CSAT)", "O_Mortar_01_F", 25000], - ["Mk6 Mortar (AAF)", "I_Mortar_01_F", 25000] + ["Mk6 Mortar (NATO)", "B_Mortar_01_F", 30000], + ["Mk6 Mortar (CSAT)", "O_Mortar_01_F", 30000], + ["Mk6 Mortar (AAF)", "I_Mortar_01_F", 30000] ]; throwputArray = compileFinal str @@ -170,11 +192,16 @@ ammoArray = compileFinal str ["6.5mm 100Rnd Tracer (Red) Belt Case", "100Rnd_65x39_caseless_mag_Tracer", 50], ["6.5mm 200Rnd Belt Case", "200Rnd_65x39_cased_Box", 150], ["6.5mm 200Rnd Tracer (Yellow) Belt Case", "200Rnd_65x39_cased_Box_Tracer", 125], - ["7.62mm 10Rnd Mag", "10Rnd_762x51_Mag", 15], + ["7.62mm 10Rnd Mag", "10Rnd_762x54_Mag", 20], ["7.62mm 20Rnd Mag", "20Rnd_762x51_Mag", 25], ["7.62mm 150Rnd Box", "150Rnd_762x51_Box", 150], ["7.62mm 150Rnd Tracer (Green) Box", "150Rnd_762x51_Box_Tracer", 125], + [".338 LM 10Rnd Mag", "10Rnd_338_Mag", 150], //DLC Ammo + [".338 NM 130Rnd Belt", "130Rnd_338_Mag", 300], //DLC Ammo [".408 7Rnd Cheetah Mag", "7Rnd_408_Mag", 100], + ["9.3mm 10Rnd Mag", "10Rnd_93x64_DMR_05_Mag", 50], //DLC Ammo + ["9.3mm 150Rnd Belt", "150Rnd_93x64_Mag", 250], //DLC Ammo + ["12.7mm 10Rnd Mag", "10Rnd_127x54_Mag", 175], //DLC Ammo ["12.7mm 5Rnd Mag", "5Rnd_127x108_Mag", 100], ["12.7mm 5Rnd Armor-Piercing Mag", "5Rnd_127x108_APDS_Mag", 150], ["RPG-42 Anti-Tank Rocket", "RPG32_F", 400], // Direct damage: high | Splash damage: low | Guidance: none @@ -221,6 +248,19 @@ accessoriesArray = compileFinal str ["Suppressor 6.5mm", "muzzle_snds_H", 100, "item"], ["Suppressor 6.5mm LMG", "muzzle_snds_H_MG", 125, "item"], ["Suppressor 7.62mm", "muzzle_snds_B", 125, "item"], + ["Suppressor .338 Black", "muzzle_snds_338_black", 150, "item"], // DLC Item + ["Suppressor .338 Green", "muzzle_snds_338_green", 175, "item"], // DLC Item + ["Suppressor .338 Sand", "muzzle_snds_338_sand", 175, "item"], // DLC Item + ["Suppressor 9.3mm Black", "muzzle_snds_93mmg", 175, "item"], // DLC Item + ["Suppressor 9.3mm Tan", "muzzle_snds_93mmg_tan", 175, "item"], // DLC Item + ["Bipod (Black) (NATO)", "bipod_01_F_blk", 500, "item"], // DLC Item + ["Bipod (Black) (CSAT)", "bipod_02_F_blk", 500, "item"], // DLC Item + ["Bipod (Black) (AAF)", "bipod_03_F_blk", 500, "item"], // DLC Item + ["Bipod (MTP) (NATO)", "bipod_01_F_mtp", 500, "item"], // DLC Item + ["Bipod (Hex) (CSAT)", "bipod_02_F_hex", 500, "item"], // DLC Item + ["Bipod (Olive) (AAF)", "bipod_03_F_oli", 500, "item"], // DLC Item + ["Bipod (Sand) (NATO)", "bipod_01_F_snd", 500, "item"], // DLC Item + ["Bipod (Tan) (CSAT)", "bipod_02_F_tan", 500, "item"], // DLC Item ["Flashlight", "acc_flashlight", 25, "item"], ["IR Laser Pointer", "acc_pointer_IR", 25, "item"], ["Yorris Sight (Zubr Revolver)", "optic_Yorris", 50, "item"], @@ -236,6 +276,13 @@ accessoriesArray = compileFinal str ["DMS", "optic_DMS", 175, "item"], ["LRPS", "optic_LRPS", 175, "item"], ["SOS", "optic_SOS", 200, "item"], + ["AMS (Black)", "optic_AMS", 300, "item"], // DLC Item + ["AMS (Khaki)", "optic_AMS_khk", 300, "item"], // DLC Item + ["AMS (Sand)", "optic_AMS_snd", 300, "item"], // DLC Item + ["Kahlia (Black)", "optic_KHS_blk", 400, "item"], // DLC Item + ["Kahlia (Hex)", "optic_KHS_hex", 400, "item"], // DLC Item + ["Kahlia (Old)", "optic_KHS_old", 400, "item"], // DLC Item + ["Kahlia (Tan)", "optic_KHS_tan", 400, "item"], // DLC Item ["NVS", "optic_NVS", 500, "item"], ["TWS", "optic_tws", 5000, "item"], ["TWS MG", "optic_tws_mg", 6000, "item"], @@ -402,6 +449,15 @@ uniformArray = compileFinal str ["Guerilla Smocks 5", "U_IG_Guerilla3_1", 25, "uni"], ["Guerilla Smocks 6", "U_IG_Guerilla3_2", 25, "uni"], ["Guerilla Smocks 7", "U_IG_leader", 25, "uni"], + ["Full Ghillie (Arid) (NATO)", "U_B_FullGhillie_ard", 2500, "uni"], //DLC Uniform + ["Full Ghillie (Arid) (CSAT)", "U_O_FullGhillie_ard", 2500, "uni"], //DLC Uniform + ["Full Ghillie (Arid) (AAF)", "U_I_FullGhillie_ard", 2500, "uni"], //DLC Uniform + ["Full Ghillie (Lush) (NATO)", "U_B_FullGhillie_lsh", 2500, "uni"], //DLC Uniform + ["Full Ghillie (Lush) (CSAT)", "U_O_FullGhillie_lsh", 2500, "uni"], //DLC Uniform + ["Full Ghillie (Lush) (AAF)", "U_I_FullGhillie_lsh", 2500, "uni"], //DLC Uniform + ["Full Ghillie (Semi-Arid) (NATO)", "U_B_FullGhillie_sard", 2500, "uni"], //DLC Uniform + ["Full Ghillie (Semi-Arid) (CSAT)", "U_O_FullGhillie_sard", 2500, "uni"], //DLC Uniform + ["Full Ghillie (Semi-Arid) (AAF)", "U_I_FullGhillie_sard", 2500, "uni"], //DLC Uniform /*["Worker Coveralls", "U_C_WorkerCoveralls", 25, "uni"], // can only be worn by civilian units ["T-Shirt (Blue)", "U_C_Poor_1", 25, "uni"], ["Polo (Red/white)", "U_C_Poloshirt_redwhite", 25, "uni"], @@ -437,9 +493,12 @@ vestArray = compileFinal str ["Carrier Lite (Black)", "V_PlateCarrier1_blk", -1, "vest"], ["Carrier Rig (Green)", "V_PlateCarrier3_rgr", -1, "vest"], ["Carrier GL Rig (Green)", "V_PlateCarrierGL_rgr", -1, "vest"], + ["Carrier GL Rig (Black)", "V_PlateCarrierGL_blk", -1, "vest"], // DLC Vest + ["Carrier GL Rig (MTP)", "V_PlateCarrierGL_mtp", -1, "vest"], // DLC Vest ["GA Carrier Lite (Digi)", "V_PlateCarrierIA1_dgtl", -1, "vest"], ["GA Carrier Rig (Digi)", "V_PlateCarrierIA2_dgtl", -1, "vest"], ["GA Carrier GL Rig (Digi)", "V_PlateCarrierIAGL_dgtl", -1, "vest"], + ["GA Carrier GL Rig (Olive)", "V_PlateCarrierIAGL_oli", -1, "vest"], // DLC Vest ["LBV Harness", "V_HarnessO_brn", -1, "vest"], ["LBV Harness (Gray)", "V_HarnessO_gry", -1, "vest"], ["LBV Grenadier Harness", "V_HarnessOGL_brn", -1, "vest"], @@ -460,7 +519,15 @@ vestArray = compileFinal str ["Tactical Vest (Camo)", "V_TacVest_camo", -1, "vest"], ["Tactical Vest (Khaki)", "V_TacVest_khk", -1, "vest"], ["Tactical Vest (Olive)", "V_TacVest_oli", -1, "vest"], - ["Raven Night Vest", "V_TacVestIR_blk", -1, "vest"] + ["Tactical Vest (Police)", "V_TacVest_blk_POLICE", -1, "vest"], + ["Tactical Vest (Stavrou)", "V_I_G_resistanceLeader_F", -1, "vest"], + ["Raven Night Vest", "V_TacVestIR_blk", -1, "vest"], + ["CTRG Plate Carrier Rig Mk.1 (Light)", "V_PlateCarrierL_CTRG", -1, "vest"], + ["CTRG Plate Carrier Rig Mk.2 (Heavy)", "V_PlateCarrierH_CTRG", -1, "vest"], + ["Carrier Special Rig (Green)", "V_PlateCarrierSpec_rgr", -1, "vest"], + ["Carrier Special Rig (Black)", "V_PlateCarrierSpec_blk", -1, "vest"], // DLC Vest + ["Carrier Special Rig (MTP)", "V_PlateCarrierSpec_mtp", -1, "vest"], // DLC Vest + ["Press Vest", "V_Press_F", -1, "vest"] ]; backpackArray = compileFinal str @@ -474,7 +541,9 @@ backpackArray = compileFinal str ["Field Pack (Black)", "B_FieldPack_blk", 200, "backpack"], ["Field Pack (Coyote)", "B_FieldPack_cbr", 200, "backpack"], + ["Field Pack (Hex)", "B_FieldPack_ocamo", 200, "backpack"], ["Field Pack (Khaki)", "B_FieldPack_khk", 200, "backpack"], + ["Field Pack (Olive)", "B_FieldPack_oli", 200, "backpack"], ["Field Pack (Urban)", "B_FieldPack_oucamo", 200, "backpack"], ["Kitbag (Coyote)", "B_Kitbag_cbr", 350, "backpack"], @@ -487,6 +556,8 @@ backpackArray = compileFinal str ["Bergen (MTP)", "B_Bergen_mcamo", 350, "backpack"], ["Bergen (Sage)", "B_Bergen_sgg", 350, "backpack"], + ["Carryall (Coyote)", "B_Carryall_cbr", 500, "backpack"], + ["Carryall (Hex)", "B_Carryall_ocamo", 500, "backpack"], ["Carryall (Khaki)", "B_Carryall_khk", 500, "backpack"], ["Carryall (MTP)", "B_Carryall_mcamo", 500, "backpack"], ["Carryall (Olive)", "B_Carryall_oli", 500, "backpack"], @@ -495,6 +566,8 @@ backpackArray = compileFinal str genItemArray = compileFinal str [ + ["Remote Designator Bag (NATO)", "B_Static_Designator_01_weapon_F", 2000, "backpack"], + ["Remote Designator Bag (CSAT)", "O_Static_Designator_02_weapon_F", 2000, "backpack"], ["Quadrotor UAV (NATO)", "B_UAV_01_backpack_F", 500, "backpack"], ["Quadrotor UAV (CSAT)", "O_UAV_01_backpack_F", 500, "backpack"], ["Quadrotor UAV (AAF)", "I_UAV_01_backpack_F", 500, "backpack"], @@ -506,15 +579,53 @@ genItemArray = compileFinal str ["Medikit", "Medikit", 150, "item"], ["Toolkit", "ToolKit", 150, "item"], ["Mine Detector", "MineDetector", 100, "item"], - ["NV Goggles", "NVGoggles", 100, "nvg"], - ["Diving Goggles", "G_Diving", 100, "gogg"], + ["NV Goggles Brown", "NVGoggles", 500, "nvg"], + ["NV Goggles Black", "NVGoggles_OPFOR", 500, "nvg"], + ["NV Goggles Green", "NVGoggles_INDEP", 500, "nvg"], ["Binoculars", "Binocular", 50, "binoc"], ["Rangefinder", "Rangefinder", 150, "binoc"], ["Laser Designator", "Laserdesignator", 1000, "binoc"], ["Chemlight (Blue)", "Chemlight_blue", 25, "mag"], ["Chemlight (Green)", "Chemlight_green", 25, "mag"], ["Chemlight (Yellow)", "Chemlight_yellow", 25, "mag"], - ["Chemlight (Red)", "Chemlight_red", 25, "mag"] + ["Chemlight (Red)", "Chemlight_red", 25, "mag"], + ["Aviator Glasses", "G_Aviator", 25, "gogg"], + ["Diving Goggles", "G_Diving", 100, "gogg"], + ["Balaclava (Black)", "G_Balaclava_blk", 100, "gogg"], + ["Balaclava (Olive)", "G_Balaclava_oli", 100, "gogg"], + ["Balaclava (Combat Goggles)", "G_Balaclava_combat", 100, "gogg"], + ["Balaclava (Low Profile Goggles)", "G_Balaclava_lowprofile", 100, "gogg"], + ["Bandanna (Aviator)", "G_Bandanna_aviator", 100, "gogg"], + ["Bandanna (Beast)", "G_Bandanna_beast", 100, "gogg"], + ["Bandanna (Black)", "G_Bandanna_blk", 100, "gogg"], + ["Bandanna (Khaki)", "G_Bandanna_khk", 100, "gogg"], + ["Bandanna (Olive)", "G_Bandanna_oli", 100, "gogg"], + ["Bandanna (Shades)", "G_Bandanna_shades", 100, "gogg"], + ["Bandanna (Sport)", "G_Bandanna_sport", 100, "gogg"], + ["Bandanna (Tan)", "G_Bandanna_tan", 100, "gogg"], + ["Combat Goggles", "G_Combat", 100, "gogg"], + ["VR Goggles", "G_Goggles_VR", 100, "gogg"], + ["Ladies Shades (ICE)", "G_Lady_Blue", 100, "gogg"], + ["Ladies Shades (Sea)", "G_Lady_Dark", 100, "gogg"], + ["Ladies Shades (Iridium)", "G_Lady_Mirror", 100, "gogg"], + ["Ladies Shades (Fire)", "G_Lady_Red", 100, "gogg"], + ["Low Profile Goggles", "G_Lowprofile", 100, "gogg"], + ["Shades (Black)", "G_Shades_Black", 100, "gogg"], + ["Shades (Blue)", "G_Shades_Blue", 100, "gogg"], + ["Shades (Green)", "G_Shades_Green", 100, "gogg"], + ["Shades (Red)", "G_Shades_Red", 100, "gogg"], + ["Spectacle Glasses", "G_Spectacles", 100, "gogg"], + ["Tinted Spectacles", "G_Spectacles_Tinted", 100, "gogg"], + ["Sport Shades (Vulcan)", "G_Sport_Blackred", 100, "gogg"], + ["Sport Shades (Shadow)", "G_Sport_BlackWhite", 100, "gogg"], + ["Sport Shades (Poison)", "G_Sport_Blackyellow", 100, "gogg"], + ["Sport Shades (Style)", "G_Sport_Checkered", 100, "gogg"], + ["Sport Shades (Yetti)", "G_Sport_Greenblack", 100, "gogg"], + ["Sport Shades (Fire)", "G_Sport_Red", 100, "gogg"], + ["Square Spectacles", "G_Squares", 100, "gogg"], + ["Square Shades", "G_Squares_Tinted", 100, "gogg"], + ["Tactical Shades", "G_Tactical_Black", 100, "gogg"], + ["Tactical Glasses", "G_Tactical_Clear", 100, "gogg"] ]; allStoreMagazines = compileFinal str (call ammoArray + call throwputArray + call genItemArray); @@ -865,9 +976,9 @@ customPlayerItems = compileFinal str ["Repair Kit", "repairkit", localize "STR_WL_ShopDescriptions_RepairKit", "client\icons\briefcase.paa", 500, 250], ["Jerry Can (Full)", "jerrycanfull", localize "STR_WL_ShopDescriptions_fuelFull", "client\icons\jerrycan.paa", 150, 75], ["Jerry Can (Empty)", "jerrycanempty", localize "STR_WL_ShopDescriptions_fuelEmpty", "client\icons\jerrycan.paa", 50, 25], - ["Spawn Beacon", "spawnbeacon", localize "STR_WL_ShopDescriptions_spawnBeacon", "client\icons\spawnbeacon.paa", 1500, 750], - //["Camo Net", "camonet", localize "STR_WL_ShopDescriptions_Camo", "client\icons\camonet.paa", 200, 100], ["Syphon Hose", "syphonhose", localize "STR_WL_ShopDescriptions_SyphonHose", "client\icons\syphonhose.paa", 200, 100], + ["Camo Net", "camonet", localize "STR_WL_ShopDescriptions_Camo", "client\icons\camonet.paa", 500, 100], + ["Spawn Beacon", "spawnbeacon", localize "STR_WL_ShopDescriptions_spawnBeacon", "client\icons\spawnbeacon.paa", 1500, 750], //["Energy Drink", "energydrink", localize "STR_WL_ShopDescriptions_Energy_Drink", "client\icons\energydrink.paa", 100, 50], //["Warchest", "warchest", localize "STR_WL_ShopDescriptions_Warchest", "client\icons\warchest.paa", 1000, 500], From 6fb1941440b2fe313d3dae9dd49186b6a3576bdf Mon Sep 17 00:00:00 2001 From: Gigatek Date: Thu, 9 Apr 2015 02:10:40 -0700 Subject: [PATCH 417/544] Revert of improved spawning to prevent bugs. --- init.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init.sqf b/init.sqf index 3eb860c0c..44f924b51 100644 --- a/init.sqf +++ b/init.sqf @@ -29,7 +29,7 @@ if (isNull player) then { X_JIP = true }; A3W_scriptThreads = []; [DEBUG] call compile preprocessFileLineNumbers "globalCompile.sqf"; -[] spawn compile preprocessFileLineNumbers "addons\spawn\functions.sqf"; +//[] spawn compile preprocessFileLineNumbers "addons\spawn\functions.sqf"; //init Wasteland Core [] execVM "config.sqf"; From 23e24414e362ce5ce6d6c069fc11d3ca05b8d651 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 11 Apr 2015 21:06:47 -0700 Subject: [PATCH 418/544] Tweak for get in vehicle explosion fix. --- client/clientEvents/getInVehicle.sqf | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/client/clientEvents/getInVehicle.sqf b/client/clientEvents/getInVehicle.sqf index 44da8b009..522850d97 100644 --- a/client/clientEvents/getInVehicle.sqf +++ b/client/clientEvents/getInVehicle.sqf @@ -32,14 +32,18 @@ if (isNil {_veh getVariable "A3W_engineEH"}) then }; if (vehicle player != player) then { - [_veh] spawn { - _veh = _this select 0; - if (_veh getVariable ["allowDamage", true]) then { - _veh allowDamage false; - sleep 2; - _veh allowDamage true; - }; - }; + [_veh] spawn { + _veh = _this select 0; + if (_veh getVariable ["allowDamage", true]) then { + _veh allowDamage false; + _pos = getPos _veh; + _pos set [2,0.1]; + _veh setPos _pos; + _veh enableSimulation true; + sleep 5; + _veh allowDamage true; + }; + }; }; if (_veh isKindOf "Offroad_01_repair_base_F" && isNil {_veh getVariable "A3W_serviceBeaconActions"}) then From 34410d5c932509d305af56362e7a43e786e48ffe Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 11 Apr 2015 21:15:49 -0700 Subject: [PATCH 419/544] Zafir LMG ammo fix. --- addons/Lootspawner/LSlootLists.sqf | 4 ++-- storeConfig.sqf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/Lootspawner/LSlootLists.sqf b/addons/Lootspawner/LSlootLists.sqf index 5456e91b0..3612a3c69 100644 --- a/addons/Lootspawner/LSlootLists.sqf +++ b/addons/Lootspawner/LSlootLists.sqf @@ -110,8 +110,8 @@ lootMagazine_list = [ "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer", - "150Rnd_762x51_Box", - "150Rnd_762x51_Box_Tracer", + "150Rnd_762x54_Box", + "150Rnd_762x54_Box_Tracer", //"16Rnd_9x21_Mag", "1Rnd_HE_Grenade_shell", "1Rnd_Smoke_Grenade_shell", diff --git a/storeConfig.sqf b/storeConfig.sqf index df712d022..e01e1fe91 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -194,8 +194,8 @@ ammoArray = compileFinal str ["6.5mm 200Rnd Tracer (Yellow) Belt Case", "200Rnd_65x39_cased_Box_Tracer", 125], ["7.62mm 10Rnd Mag", "10Rnd_762x54_Mag", 20], ["7.62mm 20Rnd Mag", "20Rnd_762x51_Mag", 25], - ["7.62mm 150Rnd Box", "150Rnd_762x51_Box", 150], - ["7.62mm 150Rnd Tracer (Green) Box", "150Rnd_762x51_Box_Tracer", 125], + ["7.62mm 150Rnd Box", "150Rnd_762x54_Box", 125], + ["7.62mm 150Rnd Tracer (Green) Box", "150Rnd_762x54_Box_Tracer", 150], [".338 LM 10Rnd Mag", "10Rnd_338_Mag", 150], //DLC Ammo [".338 NM 130Rnd Belt", "130Rnd_338_Mag", 300], //DLC Ammo [".408 7Rnd Cheetah Mag", "7Rnd_408_Mag", 100], From ebe470ad4f290c28fe190232666fa63e211cd5c3 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 11 Apr 2015 23:04:34 -0700 Subject: [PATCH 420/544] Vehicle store fix. Thanks BIS :( --- mapConfig/storeOwners.sqf | 6 +++--- mission.sqm | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mapConfig/storeOwners.sqf b/mapConfig/storeOwners.sqf index 7216e0fde..83f73df4f 100644 --- a/mapConfig/storeOwners.sqf +++ b/mapConfig/storeOwners.sqf @@ -25,9 +25,9 @@ storeOwnerConfig = compileFinal str // Buttons you can disable: "Land", "Armored", "Tanks", "Helicopters", "Boats", "Planes" ["VehStore1", 1, 75, []], ["VehStore2", 6, 45, ["Boats"]], - ["VehStore3", 4, 250, ["Boats"]], - ["VehStore4", 5, 155, ["Boats"]], - ["VehStore5", 3, 20, ["Planes"]], + ["VehStore3", -1, 329, ["Boats"]], + ["VehStore4", -1, 225, ["Boats"]], + ["VehStore5", 1, 69, ["Planes"]], ["VehStore6", 4, 282, ["Boats", "Planes"]] ]; diff --git a/mission.sqm b/mission.sqm index f6a9ac155..ae7f2bf42 100644 --- a/mission.sqm +++ b/mission.sqm @@ -1988,8 +1988,8 @@ class Mission items=1; class Item0 { - position[]={20761.709,28.229145,7264.2515}; - azimut=250; + position[]={20766.475,28.245422,7259.875}; + azimut=329; id=156; side="LOGIC"; vehicle="C_man_1_1_F"; @@ -2009,8 +2009,8 @@ class Mission items=1; class Item0 { - position[]={14482.604,18.864084,16330.667}; - azimut=155; + position[]={14491.723,18.845406,16333.188}; + azimut=225; id=157; side="LOGIC"; vehicle="C_man_1_1_F"; @@ -2030,7 +2030,7 @@ class Mission items=1; class Item0 { - position[]={3579.5254,26.183741,10782.619}; + position[]={3578.8682,26.270664,10781.252}; azimut=69; id=158; side="LOGIC"; From 6ab7aa184d1b90f64051e9b6f67adf7713bcf57e Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 11 Apr 2015 23:29:21 -0700 Subject: [PATCH 421/544] Removed "Air" from A3W_fnc_setupAntiExplode. --- client/init.sqf | 3 +-- server/functions/vehicleSetup.sqf | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/client/init.sqf b/client/init.sqf index bc226339d..124f493b7 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -148,7 +148,7 @@ A3W_scriptThreads pushBack execVM "addons\Lootspawner\LSclientScan.sqf"; call compile preprocessFileLineNumbers "client\functions\generateAtmArray.sqf"; [] execVM "client\functions\drawPlayerMarkers.sqf"; -// update player's spawn beaoon +// update player's spawn beacon { if (_x getVariable ["ownerUID",""] == getPlayerUID player) then { @@ -157,7 +157,6 @@ call compile preprocessFileLineNumbers "client\functions\generateAtmArray.sqf"; }; } forEach pvar_spawn_beacons; -{ _x call A3W_fnc_setupAntiExplode } forEach allMissionObjects "Air"; { _x call A3W_fnc_setupAntiExplode } forEach allMissionObjects "UGV_01_base_F"; { diff --git a/server/functions/vehicleSetup.sqf b/server/functions/vehicleSetup.sqf index 13bfb28c1..9ff025ce9 100644 --- a/server/functions/vehicleSetup.sqf +++ b/server/functions/vehicleSetup.sqf @@ -67,7 +67,7 @@ _vehicle addEventHandler ["Killed", }; }]; -if ({_class isKindOf _x} count ["Air","UGV_01_base_F"] > 0) then +if (_class isKindOf "UGV_01_base_F") then { [netId _vehicle, "A3W_fnc_setupAntiExplode", true] call A3W_fnc_MP; }; From 1d62dc3bf9a26ec1f63003689e594cdc2ff31e1c Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 11 Apr 2015 23:54:51 -0700 Subject: [PATCH 422/544] Removed UGV from A3W_fnc_setupAntiExplode. --- client/init.sqf | 2 +- server/functions/vehicleSetup.sqf | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/client/init.sqf b/client/init.sqf index 124f493b7..6b651640b 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -157,7 +157,7 @@ call compile preprocessFileLineNumbers "client\functions\generateAtmArray.sqf"; }; } forEach pvar_spawn_beacons; -{ _x call A3W_fnc_setupAntiExplode } forEach allMissionObjects "UGV_01_base_F"; +//{ _x call A3W_fnc_setupAntiExplode } forEach allMissionObjects "UGV_01_base_F"; { { diff --git a/server/functions/vehicleSetup.sqf b/server/functions/vehicleSetup.sqf index 9ff025ce9..b17579da4 100644 --- a/server/functions/vehicleSetup.sqf +++ b/server/functions/vehicleSetup.sqf @@ -67,10 +67,10 @@ _vehicle addEventHandler ["Killed", }; }]; -if (_class isKindOf "UGV_01_base_F") then +/*if (_class isKindOf "UGV_01_base_F") then { [netId _vehicle, "A3W_fnc_setupAntiExplode", true] call A3W_fnc_MP; -}; +};*/ // Vehicle customization switch (true) do From 292723bffe0d92ce6db7cd95a77c0906ef6d9476 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 12 Apr 2015 19:28:38 -0700 Subject: [PATCH 423/544] Revert and tweak of A3W_fnc_setupAntiExplode. --- addons/UAV_Control/functions.sqf | 21 +-------------------- client/clientEvents/getInVehicle.sqf | 17 +---------------- client/init.sqf | 4 +++- server/functions/vehicleSetup.sqf | 4 ++-- 4 files changed, 7 insertions(+), 39 deletions(-) diff --git a/addons/UAV_Control/functions.sqf b/addons/UAV_Control/functions.sqf index 4595fe5a2..7ee351ff6 100644 --- a/addons/UAV_Control/functions.sqf +++ b/addons/UAV_Control/functions.sqf @@ -52,23 +52,4 @@ uav_control_loop = { }; }; - -uav_damage_check_hack = { - private["_uav1", "_uav2", "_pos"]; - while {true} do { - - waitUntil { sleep 0.1; _uav1 = getConnectedUAV player; (!isNull _uav1 && {local driver(_uav1)})}; - if (isTouchingGround _uav1) then { - _uav1 allowDamage false; //hack to prevent UAVs from blowing up - _pos = getPos _uav1; - _pos set [2,0.3]; - _uav1 setPos _pos; - _uav1 enableSimulation true; - _uav1 spawn { sleep 5; _this allowDamage true;}; - }; - waitUntil { sleep 0.1; _uav2 = getConnectedUAV player; (isNull _uav2 || {_uav1 != _uav2})}; - }; -}; - -[] spawn uav_damage_check_hack; -[] spawn uav_control_loop; +[] spawn uav_control_loop; \ No newline at end of file diff --git a/client/clientEvents/getInVehicle.sqf b/client/clientEvents/getInVehicle.sqf index 522850d97..6e5286689 100644 --- a/client/clientEvents/getInVehicle.sqf +++ b/client/clientEvents/getInVehicle.sqf @@ -30,22 +30,7 @@ if (isNil {_veh getVariable "A3W_engineEH"}) then { _veh setVariable ["A3W_engineEH", _veh addEventHandler ["Engine", vehicleEngineEvent]]; }; - -if (vehicle player != player) then { - [_veh] spawn { - _veh = _this select 0; - if (_veh getVariable ["allowDamage", true]) then { - _veh allowDamage false; - _pos = getPos _veh; - _pos set [2,0.1]; - _veh setPos _pos; - _veh enableSimulation true; - sleep 5; - _veh allowDamage true; - }; - }; -}; - + if (_veh isKindOf "Offroad_01_repair_base_F" && isNil {_veh getVariable "A3W_serviceBeaconActions"}) then { _veh setVariable ["A3W_serviceBeaconActions", diff --git a/client/init.sqf b/client/init.sqf index 6b651640b..814065f5d 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -157,7 +157,9 @@ call compile preprocessFileLineNumbers "client\functions\generateAtmArray.sqf"; }; } forEach pvar_spawn_beacons; -//{ _x call A3W_fnc_setupAntiExplode } forEach allMissionObjects "UGV_01_base_F"; +{ _x call A3W_fnc_setupAntiExplode } forEach allMissionObjects "LandVehicle"; +{ _x call A3W_fnc_setupAntiExplode } forEach allMissionObjects "Ship"; +{ _x call A3W_fnc_setupAntiExplode } forEach allMissionObjects "Air"; { { diff --git a/server/functions/vehicleSetup.sqf b/server/functions/vehicleSetup.sqf index b17579da4..3fe9cbfd1 100644 --- a/server/functions/vehicleSetup.sqf +++ b/server/functions/vehicleSetup.sqf @@ -67,10 +67,10 @@ _vehicle addEventHandler ["Killed", }; }]; -/*if (_class isKindOf "UGV_01_base_F") then +if ({_class isKindOf _x} count ["LandVehicle", "Ship", "Air"] > 0) then { [netId _vehicle, "A3W_fnc_setupAntiExplode", true] call A3W_fnc_MP; -};*/ +}; // Vehicle customization switch (true) do From 2ded43398796955f4e9f2bc24226cb0a96e113f1 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 12 Apr 2015 19:31:57 -0700 Subject: [PATCH 424/544] Oops --- client/functions/fn_setupAntiExplode.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/functions/fn_setupAntiExplode.sqf b/client/functions/fn_setupAntiExplode.sqf index e42836e55..951d16285 100644 --- a/client/functions/fn_setupAntiExplode.sqf +++ b/client/functions/fn_setupAntiExplode.sqf @@ -27,7 +27,7 @@ if (isNil "A3W_antiExplodeLocalEH") then if (_local && {(isTouchingGround _veh || (getPos _veh) select 2 < 0.1) && vectorMagnitude velocity _veh < 1}) then { _pos = getPosWorld _veh; - _pos set [2, (_pos select 2) + 0.1]; // might need to be increased if it doesn't work all the time + _pos set [2, (_pos select 2) + 0.2]; // might need to be increased if it doesn't work all the time _veh setPosWorld _pos; }; } call mf_compile; From 1afb0f5ebaf9cf529d48a9ced389ac7d0ab307b5 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 12 Apr 2015 21:58:15 -0700 Subject: [PATCH 425/544] Manual merge to avoid conflicts. Thank you AgentRev! --- addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 2 + briefing.sqf | 19 ++- client/functions/getItemInfo.sqf | 4 + client/functions/uniformConverter.sqf | 3 + client/functions/weaponDisassembledEvent.sqf | 2 +- .../systems/generalStore/populateGenStore.sqf | 21 ++- client/systems/gunStore/populateGunStore.sqf | 2 +- mission.sqm | 2 +- server/functions/boxSpawning.sqf | 6 +- server/functions/fn_refillbox.sqf | 4 +- server/functions/fn_refilltruck.sqf | 4 +- server/functions/processTransaction.sqf | 10 ++ server/functions/setupStoreNPC.sqf | 5 +- server/functions/splitWeaponItems.sqf | 19 +-- storeConfig.sqf | 160 +++++++++--------- stringtable.xml | 2 +- 16 files changed, 151 insertions(+), 114 deletions(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index 34ad9331a..180f3ae55 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -247,6 +247,8 @@ R3F_LOG_CFG_transporteurs = R3F_LOG_CFG_objets_transportables = [ + ["Static_Designator_01_base_F", 2], + ["Static_Designator_02_base_F", 2], ["StaticWeapon", 5], ["Box_NATO_AmmoVeh_F", 10], ["B_supplyCrate_F", 5], diff --git a/briefing.sqf b/briefing.sqf index 6df2340ab..632bcf51e 100644 --- a/briefing.sqf +++ b/briefing.sqf @@ -2,7 +2,7 @@ // * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * // ****************************************************************************************** // @file Name: briefing.sqf -// + if (!hasInterface) exitWith {}; waitUntil {!isNull player}; @@ -11,6 +11,23 @@ player createDiarySubject ["infos", "Infos and Help"]; player createDiarySubject ["changelog", "Changelog"]; player createDiarySubject ["credits", "Credits"]; +player createDiaryRecord ["changelog", +[ +"v1.1b", +" +
    [Added] Marksmen DLC content +
    [Added] Prevent usage of commander camera +
    [Added] Emergency eject hotkey (Ctrl + " + actionKeysNames "GetOut" + ") +
    [Added] Restricted UAV connection to owner's group +
    [Changed] Improved purchased vehicle setup time +
    [Changed] Admins can now use global voice chat +
    [Changed] Updated antihack +
    [Fixed] Corpses not being ejected from vehicles +
    [Fixed] Thermal imaging not working for UAVs +
    [Fixed] Various minor bugfixes and optimizations +" +]]; + player createDiaryRecord ["changelog", [ "v1.1", diff --git a/client/functions/getItemInfo.sqf b/client/functions/getItemInfo.sqf index 72ea7cd15..db4656c66 100644 --- a/client/functions/getItemInfo.sqf +++ b/client/functions/getItemInfo.sqf @@ -131,6 +131,10 @@ if (!isNil "_itemEntry") then //_name = getText (_weapon >> "displayName") + " UAV"; _description = "Remote-controlled quadcopter to spy on your neighbors, pre-packaged in a backpack.
    UAV Terminal sold separately. Ages 8+"; }; + case (["_Static_Designator_", _itemType] call fn_findString != -1): + { + _description = "Remote-controlled laser designator.
    UAV Terminal sold separately."; + }; default { //_name = _itemText; diff --git a/client/functions/uniformConverter.sqf b/client/functions/uniformConverter.sqf index f4913a80b..d575e474c 100644 --- a/client/functions/uniformConverter.sqf +++ b/client/functions/uniformConverter.sqf @@ -20,6 +20,9 @@ if !(_unit isUniformAllowed _uniform) then [ ["U_B_CombatUniform_mcam", "U_O_CombatUniform_ocamo", "U_I_CombatUniform"], ["U_B_GhillieSuit", "U_O_GhillieSuit", "U_I_GhillieSuit"], + ["U_B_FullGhillie_ard", "U_O_FullGhillie_ard", "U_I_FullGhillie_ard"], + ["U_B_FullGhillie_lsh", "U_O_FullGhillie_lsh", "U_I_FullGhillie_lsh"], + ["U_B_FullGhillie_sard", "U_O_FullGhillie_sard", "U_I_FullGhillie_sard"], ["U_B_Wetsuit", "U_O_Wetsuit", "U_I_Wetsuit"], ["U_B_PilotCoveralls", "U_O_PilotCoveralls", "U_I_PilotCoveralls"], ["U_BG_Guerilla1_1", "U_OG_Guerilla1_1", "U_IG_Guerilla1_1"], diff --git a/client/functions/weaponDisassembledEvent.sqf b/client/functions/weaponDisassembledEvent.sqf index 512e7acf9..77f097cb6 100644 --- a/client/functions/weaponDisassembledEvent.sqf +++ b/client/functions/weaponDisassembledEvent.sqf @@ -8,7 +8,7 @@ _unit = _this select 0; _bag1 = _this select 1; _bag2 = _this select 2; -if (_bag1 isKindOf "B_UAV_01_backpack_F" || _bag1 isKindOf "B_Static_Designator_01_weapon_F" || _bag1 isKindOf "B_Static_Designator_02_weapon_F") exitWith {}; +if ({_bag1 isKindOf _x} count ["B_UAV_01_backpack_F", "B_Static_Designator_01_weapon_F", "O_Static_Designator_02_weapon_F"] > 0) exitWith {}; _currBag = unitBackpack _unit; diff --git a/client/systems/generalStore/populateGenStore.sqf b/client/systems/generalStore/populateGenStore.sqf index 2edff6e40..275bed6e4 100644 --- a/client/systems/generalStore/populateGenStore.sqf +++ b/client/systems/generalStore/populateGenStore.sqf @@ -108,17 +108,24 @@ _playerSideNum = switch (playerSide) do { case "CfgVehicles": { - _sideCfg = _parentCfg >> _weaponClass >> "side"; - - if (isNumber _sideCfg) then { - _side = getNumber _sideCfg; + _sideCfg = call _x; - if (_side in [0,1,2] && {_side != _playerSideNum}) then + if (isNumber _sideCfg) then { - _showItem = false; + _side = getNumber _sideCfg; + + if (_side in [0,1,2] && {_side != _playerSideNum}) then + { + _showItem = false; + }; }; - }; + } + forEach + [ + { _parentCfg >> _weaponClass >> "side" }, + { configFile >> "CfgVehicles" >> getText (_parentCfg >> _weaponClass >> "assembleInfo" >> "assembleTo") >> "side" } + ]; }; case "CfgWeapons": { diff --git a/client/systems/gunStore/populateGunStore.sqf b/client/systems/gunStore/populateGunStore.sqf index 0c588f105..dd0c1d6bd 100644 --- a/client/systems/gunStore/populateGunStore.sqf +++ b/client/systems/gunStore/populateGunStore.sqf @@ -121,7 +121,7 @@ else _picture = getText (_weapon >> "picture"); // Show scope on sniper rifle pictures - if (["_SOS_F", _weaponClass] call fn_findString != -1) then + if ([["_SOS_F", "_LRPS_F"], _weaponClass] call fn_findString != -1) then { private ["_picArr", "_picLen"]; _picArr = toArray _picture; diff --git a/mission.sqm b/mission.sqm index ae7f2bf42..8ab3e8727 100644 --- a/mission.sqm +++ b/mission.sqm @@ -92,7 +92,7 @@ class Mission randomSeed=14957468; class Intel { - briefingName="A3Wasteland Altis v1.1"; + briefingName="A3Wasteland Altis v1.1b"; overviewText="Wasteland survival sandbox by Team Wasteland - visit A3Wasteland.com for more details"; resistanceWest=0; timeOfChanges=3e+038; diff --git a/server/functions/boxSpawning.sqf b/server/functions/boxSpawning.sqf index 0b025536b..ef485ea61 100644 --- a/server/functions/boxSpawning.sqf +++ b/server/functions/boxSpawning.sqf @@ -97,7 +97,7 @@ _boxList = _boxItems = [ ["wep", "arifle_MXM_DMS_F", 1, 8], - ["wep", "srifle_LRR_SOS_F", 1, 8] + ["wep", "srifle_LRR_LRPS_F", 1, 8] ]; }; case (_box isKindOf "Box_East_WpsSpecial_F"): @@ -105,7 +105,7 @@ _boxList = _boxItems = [ ["wep", "srifle_DMR_01_DMS_F", 1, 8], - ["wep", "srifle_GM6_SOS_F", 1, 8] + ["wep", "srifle_GM6_LRPS_F", 1, 8] ]; }; case (_box isKindOf "Box_IND_WpsSpecial_F"): @@ -113,7 +113,7 @@ _boxList = _boxItems = [ ["wep", "srifle_EBR_DMS_F", 1, 8], - ["wep", "srifle_GM6_SOS_F", 1, 8] + ["wep", "srifle_GM6_LRPS_F", 1, 8] ]; }; default { _boxItems = [] }; diff --git a/server/functions/fn_refillbox.sqf b/server/functions/fn_refillbox.sqf index b153c556f..dffe9e431 100644 --- a/server/functions/fn_refillbox.sqf +++ b/server/functions/fn_refillbox.sqf @@ -33,7 +33,7 @@ switch (_boxType) do _boxItems = [ // Item type, Item class(es), # of items, # of magazines per weapon - ["wep", ["launch_RPG32_F", "launch_NLAW_F"], RANDOM_BETWEEN(3,5), RANDOM_BETWEEN(1,2)], + ["wep", ["launch_RPG32_F", "launch_NLAW_F", "launch_Titan_short_F"], RANDOM_BETWEEN(3,5), RANDOM_BETWEEN(1,2)], ["wep", "launch_Titan_F", RANDOM_BETWEEN(1,2), RANDOM_BETWEEN(1,2)], ["mag", ["ClaymoreDirectionalMine_Remote_Mag", "SLAMDirectionalMine_Wire_Mag", "ATMine_Range_Mag", "DemoCharge_Remote_Mag", "SatchelCharge_Remote_Mag"], RANDOM_BETWEEN(3,8)] ]; @@ -63,7 +63,7 @@ switch (_boxType) do _boxItems = [ // Item type, Item class(es), # of items, # of magazines per weapon - ["wep", ["srifle_LRR_SOS_F", "srifle_LRR_camo_SOS_F", "srifle_GM6_SOS_F", "srifle_GM6_camo_SOS_F"], RANDOM_BETWEEN(1,3), RANDOM_BETWEEN(4,6)], + ["wep", ["srifle_LRR_LRPS_F", "srifle_LRR_camo_LRPS_F", "srifle_GM6_LRPS_F", "srifle_GM6_camo_LRPS_F"], RANDOM_BETWEEN(1,3), RANDOM_BETWEEN(4,6)], ["wep", ["srifle_EBR_F", "srifle_DMR_01_F"], RANDOM_BETWEEN(1,3), RANDOM_BETWEEN(4,6)], ["wep", ["Binocular", "Rangefinder"], RANDOM_BETWEEN(1,3)], ["itm", "optic_DMS", RANDOM_BETWEEN(1,2)] diff --git a/server/functions/fn_refilltruck.sqf b/server/functions/fn_refilltruck.sqf index e8a860141..22b2b373b 100644 --- a/server/functions/fn_refilltruck.sqf +++ b/server/functions/fn_refilltruck.sqf @@ -30,8 +30,8 @@ _truckItems = ["wep", ["SMG_01_F", "SMG_02_F"], RANDOM_BETWEEN(1,2), RANDOM_BETWEEN(3,5)], ["wep", ["arifle_Mk20_GL_F", "arifle_TRG21_GL_F", "arifle_Katiba_GL_F", "arifle_MX_GL_F"], RANDOM_BETWEEN(2,5), RANDOM_BETWEEN(4,5)], ["mag", "1Rnd_HE_Grenade_shell", RANDOM_BETWEEN(5,10)], - ["wep", ["srifle_GM6_SOS_F", "srifle_LRR_SOS_F"], RANDOM_BETWEEN(1,2), RANDOM_BETWEEN(4,6)], - ["wep", ["launch_RPG32_F", "launch_NLAW_F"], RANDOM_BETWEEN(1,3), RANDOM_BETWEEN(1,2)], + ["wep", ["srifle_GM6_LRPS_F", "srifle_LRR_LRPS_F"], RANDOM_BETWEEN(1,2), RANDOM_BETWEEN(4,6)], + ["wep", ["launch_RPG32_F", "launch_Titan_short_F"], RANDOM_BETWEEN(1,3), RANDOM_BETWEEN(1,2)], ["mag", "HandGrenade", RANDOM_BETWEEN(0,5)], ["mag", ["APERSTripMine_Wire_Mag", "APERSBoundingMine_Range_Mag", "SLAMDirectionalMine_Wire_Mag", "ATMine_Range_Mag"], RANDOM_BETWEEN(2,6)] ]; diff --git a/server/functions/processTransaction.sqf b/server/functions/processTransaction.sqf index fc3c4f523..79307b33c 100644 --- a/server/functions/processTransaction.sqf +++ b/server/functions/processTransaction.sqf @@ -36,6 +36,11 @@ switch (toLower _type) do missionNamespace setVariable [_var, _balance + _amount]; publicVariable _var; + if (!isNil "fn_saveWarchestMoney") then + { + [] spawn fn_saveWarchestMoney; + }; + if (!local _player) then { _player setVariable ["cmoney", (_player getVariable ["cmoney", 0]) - _amount, false]; // do NOT set to true, this is only a temporary server-side change @@ -68,6 +73,11 @@ switch (toLower _type) do _crate setVariable ["cmoney", _balance + _amount, true]; + if (!isNil "fn_manualObjectSave") then + { + _crate spawn fn_manualObjectSave; + }; + if (!local _player) then { _player setVariable ["cmoney", (_player getVariable ["cmoney", 0]) - _amount, false]; // do NOT set to true, this is only a temporary server-side change diff --git a/server/functions/setupStoreNPC.sqf b/server/functions/setupStoreNPC.sqf index 77b2a3a31..b2647c628 100644 --- a/server/functions/setupStoreNPC.sqf +++ b/server/functions/setupStoreNPC.sqf @@ -52,12 +52,11 @@ if (hasInterface) then _npc addAction [" Sell crate", "client\systems\selling\sellCrateItems.sqf", [false, false, true], 0.99, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_CRATE_CONDITION]; _npc addAction [" Sell contents", "client\systems\selling\sellCrateItems.sqf", [], 0.98, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_CONTENTS_CONDITION]; _npc addAction [" Sell last vehicle contents", "client\systems\selling\sellVehicleItems.sqf", [], 0.97, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_VEH_CONTENTS_CONDITION]; - _npc addAction [" Sell last vehicle", "client\systems\selling\sellVehicle.sqf", [], 0.97, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_VEH_CONTENTS_CONDITION]; }; if (isServer) then { - _building = nearestBuilding _npc; + _building = (_npc modelToWorld [0,0,0]) nearestObject "House"; // nearestBuilding _npc; has been acting weird since A3 v1.42 _npc setVariable ["storeNPC_nearestBuilding", netId _building, true]; _facesCfg = configFile >> "CfgFaces" >> "Man_A3"; @@ -97,7 +96,7 @@ else if (isNil "_building" || {isNull _building}) then { - _building = nearestBuilding _npc; + _building = (_npc modelToWorld [0,0,0]) nearestObject "House"; // nearestBuilding _npc; }; _building allowDamage true; diff --git a/server/functions/splitWeaponItems.sqf b/server/functions/splitWeaponItems.sqf index 56d3a85d1..246016f50 100644 --- a/server/functions/splitWeaponItems.sqf +++ b/server/functions/splitWeaponItems.sqf @@ -12,6 +12,7 @@ _weapon = _array select 0; _items = []; _mags = []; +// attachments for "_i" from 1 to 3 do { _item = _array select _i; @@ -22,16 +23,7 @@ for "_i" from 1 to 3 do }; }; -for "_i" from 5 to (count _array - 1) do -{ - _item = _array select _i; - - if (_item != "") then - { - _items pushBack _item; - }; -}; - +// mags for "_i" from 4 to (count _array - 2) do { _mag = _array select _i; @@ -42,4 +34,11 @@ for "_i" from 4 to (count _array - 2) do }; }; +// bipod +_item = _array select (count _array - 1); +if (_item != "") then +{ + _items pushBack _item; +}; + [_weapon, _items, _mags] diff --git a/storeConfig.sqf b/storeConfig.sqf index e01e1fe91..2c8835d1d 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -62,43 +62,44 @@ rifleArray = compileFinal str ["MXM Rifle", "arifle_MXM_F", 300], ["MXM Rifle (Black)", "arifle_MXM_Black_F", 325], ["DMR Rifle", "srifle_DMR_01_F", 375], - ["Mk14 7.62 mm (Camo)", "srifle_DMR_06_camo_F", 450], // DLC Sniper Rifle - ["Mk14 7.62 mm (Olive)", "srifle_DMR_06_olive_F", 450], // DLC Sniper Rifle ["Mk18 ABR Rifle", "srifle_EBR_F", 450], - ["Mk-1 EMR 7.62 mm (Black)", "srifle_DMR_03_F", 450], // DLC Sniper Rifle - ["Mk-1 EMR 7.62 mm (Camo)", "srifle_DMR_03_multicam_F", 500], // DLC Sniper Rifle - ["Mk-1 EMR 7.62 mm (Khaki)", "srifle_DMR_03_khaki_F", 500], // DLC Sniper Rifle - ["Mk-1 EMR 7.62 mm (Sand)", "srifle_DMR_03_tan_F", 500], // DLC Sniper Rifle - ["Mk-1 EMR 7.62 mm (Woodland)", "srifle_DMR_03_woodland_F", 500], // DLC Sniper Rifle + // DLC + ["Mk14 Rifle (Camo) [DLC]", "srifle_DMR_06_camo_F", 450], + ["Mk14 Rifle (Olive) [DLC]", "srifle_DMR_06_olive_F", 450], + ["Mk-I EMR Rifle [DLC]", "srifle_DMR_03_F", 500], + ["Mk-I EMR Rifle (Camo) [DLC]", "srifle_DMR_03_multicam_F", 550], + ["Mk-I EMR Rifle (Khaki) [DLC]", "srifle_DMR_03_khaki_F", 550], + ["Mk-I EMR Rifle (Sand) [DLC]", "srifle_DMR_03_tan_F", 550], + ["Mk-I EMR Rifle (Woodland) [DLC]", "srifle_DMR_03_woodland_F", 550], + ["MAR-10 Rifle [DLC]", "srifle_DMR_02_F", 950], + ["MAR-10 Rifle (Camo) [DLC]", "srifle_DMR_02_camo_F", 1000], + ["MAR-10 Rifle (Sand) [DLC]", "srifle_DMR_02_sniper_F", 1000], + ["Cyrus Rifle [DLC]", "srifle_DMR_05_blk_F", 1000], + ["Cyrus Rifle (Hex) [DLC]", "srifle_DMR_05_hex_F", 1050], + ["Cyrus Rifle (Tan) [DLC]", "srifle_DMR_05_tan_f", 1050], + // Sniper Rifles - ["Cyrus 9.3 mm (Black)", "srifle_DMR_05_blk_F", 1000], // DLC Sniper Rifle - ["Cyrus 9.3 mm (Hex)", "srifle_DMR_05_hex_F", 1050], // DLC Sniper Rifle - ["Cyrus 9.3 mm (Tan)", "srifle_DMR_05_tan_f", 1050], // DLC Sniper Rifle - ["ASP-1 Kir 12.7 mm (Black)", "srifle_DMR_04_F", 1350], // DLC Sniper Rifle - ["ASP-1 Kir 12.7 mm (Tan)", "srifle_DMR_04_Tan_F", 1400], // DLC Sniper Rifle - ["MAR-10 .338 (Black)", "srifle_DMR_02_F", 1500], // DLC Sniper Rifle - ["MAR-10 .338 (Camo)", "srifle_DMR_02_camo_F", 1550], // DLC Sniper Rifle - ["MAR-10 .338 (Sand)", "srifle_DMR_02_sniper_F", 1550], // DLC Sniper Rifle - ["M320 LRR Sniper", "srifle_LRR_SOS_F", 1550], - ["M320 LRR Sniper (Camo)", "srifle_LRR_camo_SOS_F", 1650], - ["GM6 Lynx Sniper", "srifle_GM6_SOS_F", 2000], - ["GM6 Lynx Sniper (camo)", "srifle_GM6_camo_SOS_F", 2150] + ["M320 LRR Sniper", "srifle_LRR_LRPS_F", 1600], + ["M320 LRR Sniper (Camo)", "srifle_LRR_camo_LRPS_F", 1700], + ["GM6 Lynx Sniper", "srifle_GM6_LRPS_F", 1900], + ["GM6 Lynx Sniper (Camo)", "srifle_GM6_camo_LRPS_F", 2000], + + ["ASP-1 Kir Rifle [DLC]", "srifle_DMR_04_F", 2000], + ["ASP-1 Kir Rifle (Tan) [DLC]", "srifle_DMR_04_tan_F", 2100] ]; lmgArray = compileFinal str [ ["MX SW LMG", "arifle_MX_SW_F", 300], ["MX SW LMG (Black)", "arifle_MX_SW_Black_F", 325], - ["Mk200 LMG", "LMG_Mk200_F", 375], - ["Zafir LMG", "LMG_Zafir_F", 450], - - //DLC LMG - ["SPMG .338 (Black)", "MMG_02_black_F", 500], - ["SPMG .338 (MTP)", "MMG_02_camo_F", 500], - ["SPMG .338 (Sand)", "MMG_02_sand_F", 500], - ["Navid 9.3 mm (Hex)", "MMG_01_hex_F", 550], - ["Navid 9.3 mm (Tan)", "MMG_01_tan_F", 550] + ["Mk200 LMG", "LMG_Mk200_F", 400], + ["Zafir LMG", "LMG_Zafir_F", 500], + ["Navid MMG (Tan) [DLC]", "MMG_01_tan_F", 750], + ["Navid MMG (Hex) [DLC]", "MMG_01_hex_F", 750], + ["SPMG MMG (Sand) [DLC]", "MMG_02_sand_F", 750], + ["SPMG MMG (MTP) [DLC]", "MMG_02_camo_F", 750], + ["SPMG MMG (Black) [DLC]", "MMG_02_black_F", 800] ]; launcherArray = compileFinal str @@ -196,14 +197,14 @@ ammoArray = compileFinal str ["7.62mm 20Rnd Mag", "20Rnd_762x51_Mag", 25], ["7.62mm 150Rnd Box", "150Rnd_762x54_Box", 125], ["7.62mm 150Rnd Tracer (Green) Box", "150Rnd_762x54_Box_Tracer", 150], - [".338 LM 10Rnd Mag", "10Rnd_338_Mag", 150], //DLC Ammo - [".338 NM 130Rnd Belt", "130Rnd_338_Mag", 300], //DLC Ammo + [".338 LM 10Rnd Mag", "10Rnd_338_Mag", 125], + [".338 NM 130Rnd Belt", "130Rnd_338_Mag", 250], + ["9.3mm 10Rnd Mag", "10Rnd_93x64_DMR_05_Mag", 150], + ["9.3mm 150Rnd Belt", "150Rnd_93x64_Mag", 250], [".408 7Rnd Cheetah Mag", "7Rnd_408_Mag", 100], - ["9.3mm 10Rnd Mag", "10Rnd_93x64_DMR_05_Mag", 50], //DLC Ammo - ["9.3mm 150Rnd Belt", "150Rnd_93x64_Mag", 250], //DLC Ammo - ["12.7mm 10Rnd Mag", "10Rnd_127x54_Mag", 175], //DLC Ammo ["12.7mm 5Rnd Mag", "5Rnd_127x108_Mag", 100], ["12.7mm 5Rnd Armor-Piercing Mag", "5Rnd_127x108_APDS_Mag", 150], + ["12.7mm 10Rnd Subsonic Mag", "10Rnd_127x54_Mag", 175], ["RPG-42 Anti-Tank Rocket", "RPG32_F", 400], // Direct damage: high | Splash damage: low | Guidance: none ["RPG-42 High-Explosive Rocket", "RPG32_HE_F", 350], // Direct damage: medium | Splash damage: medium | Guidance: none ["PCML Anti-Tank Missile", "NLAW_F", 500], // Direct damage: very high | Splash damage: low | Guidance: laser, ground vehicles @@ -248,19 +249,19 @@ accessoriesArray = compileFinal str ["Suppressor 6.5mm", "muzzle_snds_H", 100, "item"], ["Suppressor 6.5mm LMG", "muzzle_snds_H_MG", 125, "item"], ["Suppressor 7.62mm", "muzzle_snds_B", 125, "item"], - ["Suppressor .338 Black", "muzzle_snds_338_black", 150, "item"], // DLC Item - ["Suppressor .338 Green", "muzzle_snds_338_green", 175, "item"], // DLC Item - ["Suppressor .338 Sand", "muzzle_snds_338_sand", 175, "item"], // DLC Item - ["Suppressor 9.3mm Black", "muzzle_snds_93mmg", 175, "item"], // DLC Item - ["Suppressor 9.3mm Tan", "muzzle_snds_93mmg_tan", 175, "item"], // DLC Item - ["Bipod (Black) (NATO)", "bipod_01_F_blk", 500, "item"], // DLC Item - ["Bipod (Black) (CSAT)", "bipod_02_F_blk", 500, "item"], // DLC Item - ["Bipod (Black) (AAF)", "bipod_03_F_blk", 500, "item"], // DLC Item - ["Bipod (MTP) (NATO)", "bipod_01_F_mtp", 500, "item"], // DLC Item - ["Bipod (Hex) (CSAT)", "bipod_02_F_hex", 500, "item"], // DLC Item - ["Bipod (Olive) (AAF)", "bipod_03_F_oli", 500, "item"], // DLC Item - ["Bipod (Sand) (NATO)", "bipod_01_F_snd", 500, "item"], // DLC Item - ["Bipod (Tan) (CSAT)", "bipod_02_F_tan", 500, "item"], // DLC Item + ["Suppressor .338 [DLC]", "muzzle_snds_338_black", 150, "item"], + ["Suppressor .338 (Green) [DLC]", "muzzle_snds_338_green", 150, "item"], + ["Suppressor .338 (Sand) [DLC]", "muzzle_snds_338_sand", 175, "item"], + ["Suppressor 9.3mm [DLC]", "muzzle_snds_93mmg", 175, "item"], + ["Suppressor 9.3mm (Tan) [DLC]", "muzzle_snds_93mmg_tan", 175, "item"], + ["Bipod (NATO)", "bipod_01_F_blk", 250, "item"], + ["Bipod (CSAT)", "bipod_02_F_blk", 250, "item"], + ["Bipod (AAF)", "bipod_03_F_blk", 250, "item"], + ["Bipod (MTP)", "bipod_01_F_mtp", 250, "item"], + ["Bipod (Hex)", "bipod_02_F_hex", 250, "item"], + ["Bipod (Olive)", "bipod_03_F_oli", 250, "item"], + ["Bipod (Sand)", "bipod_01_F_snd", 250, "item"], + ["Bipod (Tan)", "bipod_02_F_tan", 250, "item"], ["Flashlight", "acc_flashlight", 25, "item"], ["IR Laser Pointer", "acc_pointer_IR", 25, "item"], ["Yorris Sight (Zubr Revolver)", "optic_Yorris", 50, "item"], @@ -273,16 +274,16 @@ accessoriesArray = compileFinal str ["MRCO", "optic_MRCO", 100, "item"], ["ARCO", "optic_Arco", 125, "item"], ["RCO", "optic_Hamr", 150, "item"], + ["MOS", "optic_SOS", 150, "item"], ["DMS", "optic_DMS", 175, "item"], - ["LRPS", "optic_LRPS", 175, "item"], - ["SOS", "optic_SOS", 200, "item"], - ["AMS (Black)", "optic_AMS", 300, "item"], // DLC Item - ["AMS (Khaki)", "optic_AMS_khk", 300, "item"], // DLC Item - ["AMS (Sand)", "optic_AMS_snd", 300, "item"], // DLC Item - ["Kahlia (Black)", "optic_KHS_blk", 400, "item"], // DLC Item - ["Kahlia (Hex)", "optic_KHS_hex", 400, "item"], // DLC Item - ["Kahlia (Old)", "optic_KHS_old", 400, "item"], // DLC Item - ["Kahlia (Tan)", "optic_KHS_tan", 400, "item"], // DLC Item + ["Kahlia [DLC]", "optic_KHS_blk", 200, "item"], + ["Kahlia (Hex) [DLC]", "optic_KHS_hex", 200, "item"], + ["Kahlia (Old) [DLC]", "optic_KHS_old", 200, "item"], + ["Kahlia (Tan) [DLC]", "optic_KHS_tan", 200, "item"], + ["AMS [DLC]", "optic_AMS", 250, "item"], + ["AMS (Khaki) [DLC]", "optic_AMS_khk", 250, "item"], + ["AMS (Sand) [DLC]", "optic_AMS_snd", 250, "item"], + ["LRPS", "optic_LRPS", 300, "item"], ["NVS", "optic_NVS", 500, "item"], ["TWS", "optic_tws", 5000, "item"], ["TWS MG", "optic_tws_mg", 6000, "item"], @@ -405,6 +406,15 @@ uniformArray = compileFinal str ["Ghillie Suit (NATO)", "U_B_GhillieSuit", 300, "uni"], ["Ghillie Suit (CSAT)", "U_O_GhillieSuit", 300, "uni"], ["Ghillie Suit (AAF)", "U_I_GhillieSuit", 300, "uni"], + ["Full Ghillie (Arid) (NATO)", "U_B_FullGhillie_ard", 2000, "uni"], + ["Full Ghillie (Arid) (CSAT)", "U_O_FullGhillie_ard", 2000, "uni"], + ["Full Ghillie (Arid) (AAF)", "U_I_FullGhillie_ard", 2000, "uni"], + ["Full Ghillie (Lush) (NATO)", "U_B_FullGhillie_lsh", 2000, "uni"], + ["Full Ghillie (Lush) (CSAT)", "U_O_FullGhillie_lsh", 2000, "uni"], + ["Full Ghillie (Lush) (AAF)", "U_I_FullGhillie_lsh", 2000, "uni"], + ["Full Ghillie (Semi-Arid) (NATO)", "U_B_FullGhillie_sard", 2000, "uni"], + ["Full Ghillie (Semi-Arid) (CSAT)", "U_O_FullGhillie_sard", 2000, "uni"], + ["Full Ghillie (Semi-Arid) (AAF)", "U_I_FullGhillie_sard", 2000, "uni"], ["Wetsuit (NATO)", "U_B_Wetsuit", 200, "uni"], ["Wetsuit (CSAT)", "U_O_Wetsuit", 200, "uni"], ["Wetsuit (AAF)", "U_I_Wetsuit", 200, "uni"], @@ -449,15 +459,6 @@ uniformArray = compileFinal str ["Guerilla Smocks 5", "U_IG_Guerilla3_1", 25, "uni"], ["Guerilla Smocks 6", "U_IG_Guerilla3_2", 25, "uni"], ["Guerilla Smocks 7", "U_IG_leader", 25, "uni"], - ["Full Ghillie (Arid) (NATO)", "U_B_FullGhillie_ard", 2500, "uni"], //DLC Uniform - ["Full Ghillie (Arid) (CSAT)", "U_O_FullGhillie_ard", 2500, "uni"], //DLC Uniform - ["Full Ghillie (Arid) (AAF)", "U_I_FullGhillie_ard", 2500, "uni"], //DLC Uniform - ["Full Ghillie (Lush) (NATO)", "U_B_FullGhillie_lsh", 2500, "uni"], //DLC Uniform - ["Full Ghillie (Lush) (CSAT)", "U_O_FullGhillie_lsh", 2500, "uni"], //DLC Uniform - ["Full Ghillie (Lush) (AAF)", "U_I_FullGhillie_lsh", 2500, "uni"], //DLC Uniform - ["Full Ghillie (Semi-Arid) (NATO)", "U_B_FullGhillie_sard", 2500, "uni"], //DLC Uniform - ["Full Ghillie (Semi-Arid) (CSAT)", "U_O_FullGhillie_sard", 2500, "uni"], //DLC Uniform - ["Full Ghillie (Semi-Arid) (AAF)", "U_I_FullGhillie_sard", 2500, "uni"], //DLC Uniform /*["Worker Coveralls", "U_C_WorkerCoveralls", 25, "uni"], // can only be worn by civilian units ["T-Shirt (Blue)", "U_C_Poor_1", 25, "uni"], ["Polo (Red/white)", "U_C_Poloshirt_redwhite", 25, "uni"], @@ -493,12 +494,15 @@ vestArray = compileFinal str ["Carrier Lite (Black)", "V_PlateCarrier1_blk", -1, "vest"], ["Carrier Rig (Green)", "V_PlateCarrier3_rgr", -1, "vest"], ["Carrier GL Rig (Green)", "V_PlateCarrierGL_rgr", -1, "vest"], - ["Carrier GL Rig (Black)", "V_PlateCarrierGL_blk", -1, "vest"], // DLC Vest - ["Carrier GL Rig (MTP)", "V_PlateCarrierGL_mtp", -1, "vest"], // DLC Vest + ["Carrier GL Rig (Black)", "V_PlateCarrierGL_blk", -1, "vest"], + ["Carrier GL Rig (MTP)", "V_PlateCarrierGL_mtp", -1, "vest"], + ["Carrier Special Rig (Green)", "V_PlateCarrierSpec_rgr", -1, "vest"], + ["Carrier Special Rig (Black)", "V_PlateCarrierSpec_blk", -1, "vest"], + ["Carrier Special Rig (MTP)", "V_PlateCarrierSpec_mtp", -1, "vest"], ["GA Carrier Lite (Digi)", "V_PlateCarrierIA1_dgtl", -1, "vest"], ["GA Carrier Rig (Digi)", "V_PlateCarrierIA2_dgtl", -1, "vest"], ["GA Carrier GL Rig (Digi)", "V_PlateCarrierIAGL_dgtl", -1, "vest"], - ["GA Carrier GL Rig (Olive)", "V_PlateCarrierIAGL_oli", -1, "vest"], // DLC Vest + ["GA Carrier GL Rig (Olive)", "V_PlateCarrierIAGL_oli", -1, "vest"], ["LBV Harness", "V_HarnessO_brn", -1, "vest"], ["LBV Harness (Gray)", "V_HarnessO_gry", -1, "vest"], ["LBV Grenadier Harness", "V_HarnessOGL_brn", -1, "vest"], @@ -519,14 +523,7 @@ vestArray = compileFinal str ["Tactical Vest (Camo)", "V_TacVest_camo", -1, "vest"], ["Tactical Vest (Khaki)", "V_TacVest_khk", -1, "vest"], ["Tactical Vest (Olive)", "V_TacVest_oli", -1, "vest"], - ["Tactical Vest (Police)", "V_TacVest_blk_POLICE", -1, "vest"], - ["Tactical Vest (Stavrou)", "V_I_G_resistanceLeader_F", -1, "vest"], ["Raven Night Vest", "V_TacVestIR_blk", -1, "vest"], - ["CTRG Plate Carrier Rig Mk.1 (Light)", "V_PlateCarrierL_CTRG", -1, "vest"], - ["CTRG Plate Carrier Rig Mk.2 (Heavy)", "V_PlateCarrierH_CTRG", -1, "vest"], - ["Carrier Special Rig (Green)", "V_PlateCarrierSpec_rgr", -1, "vest"], - ["Carrier Special Rig (Black)", "V_PlateCarrierSpec_blk", -1, "vest"], // DLC Vest - ["Carrier Special Rig (MTP)", "V_PlateCarrierSpec_mtp", -1, "vest"], // DLC Vest ["Press Vest", "V_Press_F", -1, "vest"] ]; @@ -566,22 +563,21 @@ backpackArray = compileFinal str genItemArray = compileFinal str [ - ["Remote Designator Bag (NATO)", "B_Static_Designator_01_weapon_F", 2000, "backpack"], - ["Remote Designator Bag (CSAT)", "O_Static_Designator_02_weapon_F", 2000, "backpack"], - ["Quadrotor UAV (NATO)", "B_UAV_01_backpack_F", 500, "backpack"], - ["Quadrotor UAV (CSAT)", "O_UAV_01_backpack_F", 500, "backpack"], - ["Quadrotor UAV (AAF)", "I_UAV_01_backpack_F", 500, "backpack"], ["UAV Terminal (NATO)", "B_UavTerminal", 150, "gps"], ["UAV Terminal (CSAT)", "O_UavTerminal", 150, "gps"], ["UAV Terminal (AAF)", "I_UavTerminal", 150, "gps"], + ["Quadrotor UAV (NATO)", "B_UAV_01_backpack_F", 500, "backpack"], + ["Quadrotor UAV (CSAT)", "O_UAV_01_backpack_F", 500, "backpack"], + ["Quadrotor UAV (AAF)", "I_UAV_01_backpack_F", 500, "backpack"], + ["Remote Designator Bag (NATO) [DLC]", "B_Static_Designator_01_weapon_F", 1000, "backpack"], + ["Remote Designator Bag (CSAT) [DLC]", "O_Static_Designator_02_weapon_F", 1000, "backpack"], ["GPS", "ItemGPS", 100, "gps"], ["First Aid Kit", "FirstAidKit", 25, "item"], ["Medikit", "Medikit", 150, "item"], ["Toolkit", "ToolKit", 150, "item"], ["Mine Detector", "MineDetector", 100, "item"], - ["NV Goggles Brown", "NVGoggles", 500, "nvg"], - ["NV Goggles Black", "NVGoggles_OPFOR", 500, "nvg"], - ["NV Goggles Green", "NVGoggles_INDEP", 500, "nvg"], + ["NV Goggles", "NVGoggles", 100, "nvg"], + ["Diving Goggles", "G_Diving", 100, "gogg"], ["Binoculars", "Binocular", 50, "binoc"], ["Rangefinder", "Rangefinder", 150, "binoc"], ["Laser Designator", "Laserdesignator", 1000, "binoc"], diff --git a/stringtable.xml b/stringtable.xml index c2375b4d0..67981a13d 100644 --- a/stringtable.xml +++ b/stringtable.xml @@ -33,7 +33,7 @@
    - <t color='#FF8000' size='2.5' >A3Wasteland Altis v1.1 </t> + <t color='#FF8000' size='2.5' >A3Wasteland Altis v1.1b </t> <t color='#FFFFFF' size='1.5' >* You are in <img size="1.5" image="%1"/> <t color="%2">%3</t> team.<br/>* Attacking or stealing from other %4 players is <t color="#FF1111">FORBIDDEN</t><br/>* <t color="#FF1111">NO VOICE IN GLOBAL</t><br/>* You can find the Server Rules in the map menu.<br/>* Server restarts are done at the admin's discretion.<br/>* You will be locked to your team after 3 minutes.</t> From 2afc03ba0c952800eb3bb4a32a01de1c33d05a3a Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 12 Apr 2015 22:18:57 -0700 Subject: [PATCH 426/544] Merge fixes and minor fix attempt for player gear being reset after relogging. Thank you AgentRev! --- client/CfgFunctions.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 client/CfgFunctions.hpp diff --git a/client/CfgFunctions.hpp b/client/CfgFunctions.hpp new file mode 100644 index 000000000..fb1062206 --- /dev/null +++ b/client/CfgFunctions.hpp @@ -0,0 +1,10 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Name: CfgFunctions.hpp +// @file Author: AgentRev + +class ClientDir +{ + class postInit {postInit = 1; file = "client\postInit.sqf";}; +}; From b151ed970393a270614755d6a1d19261fcc954d6 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sun, 12 Apr 2015 22:19:41 -0700 Subject: [PATCH 427/544] Merge fixes and minor fix attempt for player gear being reset after relogging. Thank you AgentRev! --- client/postInit.sqf | 11 +++++++++++ description.ext | 1 + init.sqf | 1 - server/functions/fn_refillbox.sqf | 2 +- server/functions/fn_refilltruck.sqf | 2 +- server/functions/setupStoreNPC.sqf | 1 + 6 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 client/postInit.sqf diff --git a/client/postInit.sqf b/client/postInit.sqf new file mode 100644 index 000000000..bdc86f493 --- /dev/null +++ b/client/postInit.sqf @@ -0,0 +1,11 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2015 A3Wasteland.com * +// ****************************************************************************************** +// @file Name: postInit.sqf +// @file Author: AgentRev + +if (hasInterface) then +{ + waitUntil {!isNull player}; + player setVariable ["playerSpawning", true, true]; +}; diff --git a/description.ext b/description.ext index d51c50a8e..51cb927c4 100644 --- a/description.ext +++ b/description.ext @@ -89,6 +89,7 @@ class CfgFunctions #include "addons\taw_vd\CfgFunctions.hpp" class A3W { + #include "client\CfgFunctions.hpp" #include "server\CfgFunctions.hpp" }; }; diff --git a/init.sqf b/init.sqf index 44f924b51..b50de4b71 100644 --- a/init.sqf +++ b/init.sqf @@ -50,7 +50,6 @@ if (!isDedicated) then // Reset group & side [player] joinSilent createGroup playerSide; - player setVariable ["playerSpawning", true, true]; execVM "client\init.sqf"; } diff --git a/server/functions/fn_refillbox.sqf b/server/functions/fn_refillbox.sqf index dffe9e431..6d2cad619 100644 --- a/server/functions/fn_refillbox.sqf +++ b/server/functions/fn_refillbox.sqf @@ -33,7 +33,7 @@ switch (_boxType) do _boxItems = [ // Item type, Item class(es), # of items, # of magazines per weapon - ["wep", ["launch_RPG32_F", "launch_NLAW_F", "launch_Titan_short_F"], RANDOM_BETWEEN(3,5), RANDOM_BETWEEN(1,2)], + ["wep", ["launch_RPG32_F", "launch_NLAW_F"], RANDOM_BETWEEN(3,5), RANDOM_BETWEEN(1,2)], ["wep", "launch_Titan_F", RANDOM_BETWEEN(1,2), RANDOM_BETWEEN(1,2)], ["mag", ["ClaymoreDirectionalMine_Remote_Mag", "SLAMDirectionalMine_Wire_Mag", "ATMine_Range_Mag", "DemoCharge_Remote_Mag", "SatchelCharge_Remote_Mag"], RANDOM_BETWEEN(3,8)] ]; diff --git a/server/functions/fn_refilltruck.sqf b/server/functions/fn_refilltruck.sqf index 22b2b373b..ee13b0d08 100644 --- a/server/functions/fn_refilltruck.sqf +++ b/server/functions/fn_refilltruck.sqf @@ -31,7 +31,7 @@ _truckItems = ["wep", ["arifle_Mk20_GL_F", "arifle_TRG21_GL_F", "arifle_Katiba_GL_F", "arifle_MX_GL_F"], RANDOM_BETWEEN(2,5), RANDOM_BETWEEN(4,5)], ["mag", "1Rnd_HE_Grenade_shell", RANDOM_BETWEEN(5,10)], ["wep", ["srifle_GM6_LRPS_F", "srifle_LRR_LRPS_F"], RANDOM_BETWEEN(1,2), RANDOM_BETWEEN(4,6)], - ["wep", ["launch_RPG32_F", "launch_Titan_short_F"], RANDOM_BETWEEN(1,3), RANDOM_BETWEEN(1,2)], + ["wep", ["launch_RPG32_F", "launch_NLAW_F"], RANDOM_BETWEEN(1,3), RANDOM_BETWEEN(1,2)], ["mag", "HandGrenade", RANDOM_BETWEEN(0,5)], ["mag", ["APERSTripMine_Wire_Mag", "APERSBoundingMine_Range_Mag", "SLAMDirectionalMine_Wire_Mag", "ATMine_Range_Mag"], RANDOM_BETWEEN(2,6)] ]; diff --git a/server/functions/setupStoreNPC.sqf b/server/functions/setupStoreNPC.sqf index b2647c628..a7d2c4974 100644 --- a/server/functions/setupStoreNPC.sqf +++ b/server/functions/setupStoreNPC.sqf @@ -52,6 +52,7 @@ if (hasInterface) then _npc addAction [" Sell crate", "client\systems\selling\sellCrateItems.sqf", [false, false, true], 0.99, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_CRATE_CONDITION]; _npc addAction [" Sell contents", "client\systems\selling\sellCrateItems.sqf", [], 0.98, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_CONTENTS_CONDITION]; _npc addAction [" Sell last vehicle contents", "client\systems\selling\sellVehicleItems.sqf", [], 0.97, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_VEH_CONTENTS_CONDITION]; + _npc addAction [" Sell last vehicle", "client\systems\selling\sellVehicle.sqf", [], 0.97, false, true, "", STORE_ACTION_CONDITION + " && " + SELL_VEH_CONTENTS_CONDITION]; }; if (isServer) then From ebd69da76511e4ac0ea282d1920936eba907546e Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 20 Apr 2015 11:26:06 -0700 Subject: [PATCH 428/544] Optimized UAV addon --- addons/UAV_Control/config.sqf | 1 - addons/UAV_Control/functions.sqf | 67 ++++++++++---------------------- 2 files changed, 20 insertions(+), 48 deletions(-) delete mode 100644 addons/UAV_Control/config.sqf diff --git a/addons/UAV_Control/config.sqf b/addons/UAV_Control/config.sqf deleted file mode 100644 index 53952cf14..000000000 --- a/addons/UAV_Control/config.sqf +++ /dev/null @@ -1 +0,0 @@ -uav_control_permission = "group"; // Scope for who is able to access the UAV controls ("owner", "group", "side") \ No newline at end of file diff --git a/addons/UAV_Control/functions.sqf b/addons/UAV_Control/functions.sqf index 7ee351ff6..f51c9c946 100644 --- a/addons/UAV_Control/functions.sqf +++ b/addons/UAV_Control/functions.sqf @@ -1,55 +1,28 @@ -call compile preprocessFileLineNumbers "addons\UAV_Control\config.sqf"; +// @file Name: functions.sqf +// @file Author: IvanMMM, micovery, AgentRev -uav_control_get_group_uids = { - private["_player"]; - _player = _this select 0; +private ["_perm", "_uav"]; +_perm = ["A3W_uavControl", "side"] call getPublicVar; - private["_group_uids"]; - _group_uids = [getPlayerUID _player]; - {if (true) then { - private["_member"]; - _member = _x; - if (isNil "_member" || { typeName _member != typeName objNull || {isNull _member}}) exitWith {}; +if (_perm == "side") exitWith {}; - private["_member_uid"]; - _member_uid = getPlayerUID _member; - if (isNil "_member_uid" || { typeName _member_uid != typeName "" || {_member_uid == ""}}) exitWith {}; +while {true} do +{ + waitUntil {sleep 0.1; _uav = getConnectedUAV player; !isNull _uav}; - _group_uids pushBack _member_uid; - };} forEach (units (group _player)); + // ignore quadcopters and remote designators + if ({_uav isKindOf _x} count [] == 0) then + { + _ownerUID = _uav getVariable ["ownerUID", ""]; - (_group_uids) -}; - - -uav_control_check_access = { - private["_player", "_uav"]; - _player = _this select 0; - _uav = _this select 1; - - //if (_uav isKindOf "UAV_01_base_F") exitWith {}; //allow quad-rotors - - private["_uid", "_owner_uid"]; - _owner_uid = _uav getVariable ["ownerUID",""]; - _uid = getPlayerUID _player; + if (_ownerUID == "") exitWith {}; // UAV not owned by anyone + if (getPlayerUID player == _ownerUID) exitWith {}; + if (_perm == "group" && {{getPlayerUID _x == _ownerUID} count units player > 0}) exitWith {}; - if (_owner_uid == "" || {_uid == ""}) exitWith {}; //UAV not owned by anyone ... + player connectTerminalToUAV objNull; + playSound "FD_CP_Not_Clear_F"; + ["You are not allowed to connect to this unmanned vehicle.", 5] call mf_notify_client; + }; - if (uav_control_permission == "owner" && {_uid == _owner_uid}) exitWith {}; - if (uav_control_permission == "group" && {_owner_uid in ([_player] call uav_control_get_group_uids)}) exitWith {}; - if (uav_control_permission == "side") exitWith {}; //this is the default enforced by the game - - _player connectTerminalToUAV objNull; - ["You can't control this UAV. It doesn't belong to you", 5] call mf_notify_client; -}; - -uav_control_loop = { - private["_uav1", "_uav2"]; - while {true} do { - waitUntil { sleep 0.1; _uav1 = getConnectedUAV player; !(isNull _uav1)}; - [player, _uav1] call uav_control_check_access; - waitUntil { sleep 0.1; _uav2 = getConnectedUAV player; (isNull _uav2 || {_uav1 != _uav2})}; - }; + waitUntil {sleep 0.1; _uav != getConnectedUAV player}; }; - -[] spawn uav_control_loop; \ No newline at end of file From c70ce8e719cd310d4366901d2ca4d51c5c7fa7f7 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Mon, 20 Apr 2015 12:56:19 -0700 Subject: [PATCH 429/544] Removed static laser from save and tweaked store config. --- addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf | 2 -- client/functions/playerActions.sqf | 4 ++-- storeConfig.sqf | 7 +++---- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf index 180f3ae55..34ad9331a 100644 --- a/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf +++ b/addons/R3F_ARTY_AND_LOG/R3F_LOG/config.sqf @@ -247,8 +247,6 @@ R3F_LOG_CFG_transporteurs = R3F_LOG_CFG_objets_transportables = [ - ["Static_Designator_01_base_F", 2], - ["Static_Designator_02_base_F", 2], ["StaticWeapon", 5], ["Box_NATO_AmmoVeh_F", 10], ["B_supplyCrate_F", 5], diff --git a/client/functions/playerActions.sqf b/client/functions/playerActions.sqf index 11044a52a..69829b667 100644 --- a/client/functions/playerActions.sqf +++ b/client/functions/playerActions.sqf @@ -28,8 +28,8 @@ [" Save Vehicle", "addons\scripts\vehicleSave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_unarmed_F', 'B_Heli_Transport_03_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && locked cursorTarget != 2 && cursorTarget distance player < 5"], [" Re\Save Vehicle", "addons\scripts\vehicleResave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'B_Heli_Light_01_F', 'B_Heli_Light_01_armed_F', 'C_Heli_Light_01_civil_F', 'O_Heli_Light_02_unarmed_F', 'I_Heli_light_03_unarmed_F', 'B_Heli_Transport_01_F', 'B_Heli_Transport_01_camo_F', 'O_Heli_Light_02_F', 'I_Heli_light_03_F', 'B_Heli_Attack_01_F', 'O_Heli_Attack_02_F', 'O_Heli_Light_02_v2_F', 'O_Heli_Attack_02_black_F', 'I_Heli_Transport_02_F', 'Heli_Transport_04_base_F', 'B_Heli_Transport_03_unarmed_F', 'B_Heli_Transport_03_F', 'Plane', 'UGV_01_base_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && cursorTarget distance player < 5"], - [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], - [" Re\Save Weapon", "addons\scripts\weaponResave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && (player distance cursortarget) < 5"], + [" Save Weapon", "addons\scripts\weaponSave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['B_static_AT_F', 'O_static_AT_F', 'I_static_AT_F', 'B_static_AA_F', 'O_static_AA_F', 'I_static_AA_F', 'B_HMG_01_F', 'O_HMG_01_F', 'I_HMG_01_F', 'B_HMG_01_high_F', 'O_HMG_01_high_F', 'I_HMG_01_high_F', 'B_GMG_01_F', 'O_GMG_01_F', 'I_GMG_01_F', 'B_GMG_01_high_F', 'O_GMG_01_high_F', 'I_GMG_01_high_F', 'B_Mortar_01_F', 'O_Mortar_01_F', 'I_Mortar_01_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] != getPlayerUID player && (player distance cursortarget) < 5"], + [" Re\Save Weapon", "addons\scripts\weaponResave.sqf", [cursorTarget], 1, false, false, "", "!isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['B_static_AT_F', 'O_static_AT_F', 'I_static_AT_F', 'B_static_AA_F', 'O_static_AA_F', 'I_static_AA_F', 'B_HMG_01_F', 'O_HMG_01_F', 'I_HMG_01_F', 'B_HMG_01_high_F', 'O_HMG_01_high_F', 'I_HMG_01_high_F', 'B_GMG_01_F', 'O_GMG_01_F', 'I_GMG_01_F', 'B_GMG_01_high_F', 'O_GMG_01_high_F', 'I_GMG_01_high_F', 'B_Mortar_01_F', 'O_Mortar_01_F', 'I_Mortar_01_F'] > 0 ;} && cursorTarget getVariable ['ownerUID',''] == getPlayerUID player && (player distance cursortarget) < 5"], [" Sell Vehicle", "addons\scripts\sellVehicle.sqf", [], 51, false, false, "", "(vehicle player == player) && count nearestObjects [player, ['Land_Scrap_MRAP_01_F'], 15] > 0 && !isNull cursorTarget && alive cursorTarget && {{ cursorTarget isKindOf _x } count ['StaticWeapon', 'C_Kart_01_F', 'Quadbike_01_base_F', 'Hatchback_01_base_F', 'SUV_01_base_F', 'Offroad_01_base_F', 'Van_01_base_F', 'MRAP_01_base_F', 'MRAP_02_base_F', 'MRAP_03_base_F', 'Truck_01_base_F', 'Truck_02_base_F', 'Truck_03_base_F', 'Wheeled_APC_F', 'Tank_F', 'Rubber_duck_base_F', 'SDV_01_base_F', 'Boat_Civil_01_base_F', 'Boat_Armed_01_base_F', 'Helicopter', 'Plane', 'UGV_01_base_F'] > 0 ;} && (player distance cursortarget) < 5"], ["[0]"] call getPushPlaneAction, diff --git a/storeConfig.sqf b/storeConfig.sqf index 20b48d820..4bae934cd 100644 --- a/storeConfig.sqf +++ b/storeConfig.sqf @@ -82,11 +82,10 @@ rifleArray = compileFinal str // Sniper Rifles ["M320 LRR Sniper", "srifle_LRR_LRPS_F", 1600], ["M320 LRR Sniper (Camo)", "srifle_LRR_camo_LRPS_F", 1700], + ["ASP-1 Kir Rifle [DLC]", "srifle_DMR_04_F", 1700], + ["ASP-1 Kir Rifle (Tan) [DLC]", "srifle_DMR_04_tan_F", 1800], ["GM6 Lynx Sniper", "srifle_GM6_LRPS_F", 1900], - ["GM6 Lynx Sniper (Camo)", "srifle_GM6_camo_LRPS_F", 2000], - - ["ASP-1 Kir Rifle [DLC]", "srifle_DMR_04_F", 2000], - ["ASP-1 Kir Rifle (Tan) [DLC]", "srifle_DMR_04_tan_F", 2100] + ["GM6 Lynx Sniper (Camo)", "srifle_GM6_camo_LRPS_F", 2000] ]; lmgArray = compileFinal str From c929b972f2499a79cdaf00625a08503ed1231d58 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 24 Apr 2015 21:50:13 -0700 Subject: [PATCH 430/544] Revert of UAV addon. --- addons/UAV_Control/config.sqf | 1 + addons/UAV_Control/functions.sqf | 67 ++++++++++++++++++++++---------- 2 files changed, 48 insertions(+), 20 deletions(-) create mode 100644 addons/UAV_Control/config.sqf diff --git a/addons/UAV_Control/config.sqf b/addons/UAV_Control/config.sqf new file mode 100644 index 000000000..53952cf14 --- /dev/null +++ b/addons/UAV_Control/config.sqf @@ -0,0 +1 @@ +uav_control_permission = "group"; // Scope for who is able to access the UAV controls ("owner", "group", "side") \ No newline at end of file diff --git a/addons/UAV_Control/functions.sqf b/addons/UAV_Control/functions.sqf index f51c9c946..7ee351ff6 100644 --- a/addons/UAV_Control/functions.sqf +++ b/addons/UAV_Control/functions.sqf @@ -1,28 +1,55 @@ -// @file Name: functions.sqf -// @file Author: IvanMMM, micovery, AgentRev +call compile preprocessFileLineNumbers "addons\UAV_Control\config.sqf"; -private ["_perm", "_uav"]; -_perm = ["A3W_uavControl", "side"] call getPublicVar; +uav_control_get_group_uids = { + private["_player"]; + _player = _this select 0; -if (_perm == "side") exitWith {}; + private["_group_uids"]; + _group_uids = [getPlayerUID _player]; + {if (true) then { + private["_member"]; + _member = _x; + if (isNil "_member" || { typeName _member != typeName objNull || {isNull _member}}) exitWith {}; -while {true} do -{ - waitUntil {sleep 0.1; _uav = getConnectedUAV player; !isNull _uav}; + private["_member_uid"]; + _member_uid = getPlayerUID _member; + if (isNil "_member_uid" || { typeName _member_uid != typeName "" || {_member_uid == ""}}) exitWith {}; - // ignore quadcopters and remote designators - if ({_uav isKindOf _x} count [] == 0) then - { - _ownerUID = _uav getVariable ["ownerUID", ""]; + _group_uids pushBack _member_uid; + };} forEach (units (group _player)); - if (_ownerUID == "") exitWith {}; // UAV not owned by anyone - if (getPlayerUID player == _ownerUID) exitWith {}; - if (_perm == "group" && {{getPlayerUID _x == _ownerUID} count units player > 0}) exitWith {}; + (_group_uids) +}; + + +uav_control_check_access = { + private["_player", "_uav"]; + _player = _this select 0; + _uav = _this select 1; + + //if (_uav isKindOf "UAV_01_base_F") exitWith {}; //allow quad-rotors + + private["_uid", "_owner_uid"]; + _owner_uid = _uav getVariable ["ownerUID",""]; + _uid = getPlayerUID _player; - player connectTerminalToUAV objNull; - playSound "FD_CP_Not_Clear_F"; - ["You are not allowed to connect to this unmanned vehicle.", 5] call mf_notify_client; - }; + if (_owner_uid == "" || {_uid == ""}) exitWith {}; //UAV not owned by anyone ... - waitUntil {sleep 0.1; _uav != getConnectedUAV player}; + if (uav_control_permission == "owner" && {_uid == _owner_uid}) exitWith {}; + if (uav_control_permission == "group" && {_owner_uid in ([_player] call uav_control_get_group_uids)}) exitWith {}; + if (uav_control_permission == "side") exitWith {}; //this is the default enforced by the game + + _player connectTerminalToUAV objNull; + ["You can't control this UAV. It doesn't belong to you", 5] call mf_notify_client; +}; + +uav_control_loop = { + private["_uav1", "_uav2"]; + while {true} do { + waitUntil { sleep 0.1; _uav1 = getConnectedUAV player; !(isNull _uav1)}; + [player, _uav1] call uav_control_check_access; + waitUntil { sleep 0.1; _uav2 = getConnectedUAV player; (isNull _uav2 || {_uav1 != _uav2})}; + }; }; + +[] spawn uav_control_loop; \ No newline at end of file From 0a4be0f92bcd3433294b0ebf144198d70331d655 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 25 Apr 2015 17:29:35 -0700 Subject: [PATCH 431/544] Vehicles bought from stores are now indestructible for 60 seconds and fixed ammo crate allowdamage. --- persistence/world/oFunctions.sqf | 2 +- server/functions/spawnStoreObject.sqf | 22 +++++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/persistence/world/oFunctions.sqf b/persistence/world/oFunctions.sqf index 526f18646..505c9c4dd 100644 --- a/persistence/world/oFunctions.sqf +++ b/persistence/world/oFunctions.sqf @@ -300,7 +300,7 @@ o_restoreObject = { _allowDamage = true; - if (_class isKindOf "Box_NATO_Wps_F" || _class isKindOf "Box_NATO_WpsSpecial_F" || _class isKindOf "Box_East_Wps_F" || _class isKindOf "Box_East_WpsSpecial_F" || _class isKindOf "Box_IND_Wps_F" || _class isKindOf "Box_IND_WpsSpecial_F") then { + if (_class isKindOf "Box_NATO_Wps_F" || _class isKindOf "Box_NATO_WpsSpecial_F" || _class isKindOf "Box_East_Wps_F" || _class isKindOf "Box_East_WpsSpecial_F" || _class isKindOf "Box_IND_Wps_F" || _class isKindOf "Box_IND_WpsSpecial_F" || _class isKindOf "Box_NATO_Ammo_F") then { _allowDamage = false; }; diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index f7095425b..c4195fe12 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -129,7 +129,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _objectID = netId _object; _object setVariable ["A3W_purchasedStoreObject", true]; - [_object] call v_trackVehicle; + [_object] call v_trackVehicle; if (getNumber (configFile >> "CfgVehicles" >> _class >> "isUav") > 0) then { @@ -166,7 +166,8 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore { _object setPosATL [_safePos select 0, _safePos select 1, 0.05]; _object setVelocity [0,0,0.01]; - // _object spawn cleanVehicleWreck; + //_object spawn cleanVehicleWreck; + //_object setVariable ["A3W_purchasedVehicle", true, true]; if ({_object isKindOf _x} count ["UAV_02_base_F", "UGV_01_base_F"] > 0) then { _object setVariable ["A3W_purchasedVehicle", true]; @@ -186,11 +187,11 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object setDir (if (_object isKindOf "Plane") then { markerDir _marker } else { random 360 }); - _isDamageable = !(_object isKindOf "ReammoBox_F"); // ({_object isKindOf _x} count ["AllVehicles", "Lamps_base_F", "Cargo_Patrol_base_F", "Cargo_Tower_base_F"] > 0); + //_isDamageable = !(_object isKindOf "ReammoBox_F"); // ({_object isKindOf _x} count ["AllVehicles", "Lamps_base_F", "Cargo_Patrol_base_F", "Cargo_Tower_base_F"] > 0); [_object, false] call vehicleSetup; - _object allowDamage _isDamageable; - _object setVariable ["allowDamage", _isDamageable]; + //_object allowDamage _isDamageable; + //_object setVariable ["allowDamage", _isDamageable]; switch (true) do { @@ -239,12 +240,23 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore _object removeMagazineTurret ["6Rnd_LG_scalpel",[0]]; _object addMagazineTurret ["2Rnd_LG_scalpel",[0]]; }; + + case (_object isKindOf "Box_NATO_Ammo_F"): + { + _object allowDamage false; + }; }; if (_object getVariable ["A3W_purchasedVehicle", false] && !isNil "fn_manualVehicleSave") then { _object call fn_manualVehicleSave; }; + + if (_object isKindOf "AllVehicles") then + { + _object allowDamage false; + _object spawn { sleep 60; _this allowDamage true;}; + }; }; }; }; From 5aec5468194202c076a5fe58497fc124cb91338e Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 25 Apr 2015 17:42:36 -0700 Subject: [PATCH 432/544] Fix for 1.38 "No entry" bug --- addons/outlw_magRepack/Configs/defines.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/addons/outlw_magRepack/Configs/defines.hpp b/addons/outlw_magRepack/Configs/defines.hpp index 9a9f08316..4ad309a54 100644 --- a/addons/outlw_magRepack/Configs/defines.hpp +++ b/addons/outlw_magRepack/Configs/defines.hpp @@ -321,6 +321,14 @@ class outlw_MR_RscButtonMenu 0.09, 1 }; + font = "PuristaMedium"; + + class AttributesImage + { + font = "PuristaMedium"; + color = "#E5E5E5"; + align = "left"; + }; }; class outlw_MR_RscControlsGroup { From 04cc101c168c84183530c3724087d4f40c251efa Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 5 May 2015 21:41:03 -0700 Subject: [PATCH 433/544] Fix for no font error for parking. --- addons/parking/list_simple_menu.hpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/addons/parking/list_simple_menu.hpp b/addons/parking/list_simple_menu.hpp index 1ad7d473e..6aa50726c 100644 --- a/addons/parking/list_simple_menu.hpp +++ b/addons/parking/list_simple_menu.hpp @@ -22,6 +22,7 @@ class list_simple_menu { x = -10; y = -10; w = 0.05; h = 0.05; style = ST_CENTER; + font = "PuristaBold"; SizeEX = 0.03; colorBackground[] = GUI_BCG_RGB; text = "list_simple"; @@ -39,6 +40,8 @@ class list_simple_menu { idc = list_simple_menu_submit_button_idc; x = -10; y = -10; w = 0.05; h = 0.05; + font = "PuristaBold"; + SizeEX = 0.03; text = "Select"; }; @@ -46,6 +49,8 @@ class list_simple_menu { idc = list_simple_menu_close_button_idc; x = -10; y = -10; w = 0.05; h = 0.05; + font = "PuristaBold"; + SizeEX = 0.03; text = "Close"; action = "closedialog 0;"; }; From 6a3d7bbeebf51595d1700b1aeed757278a339022 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Tue, 5 May 2015 21:45:24 -0700 Subject: [PATCH 434/544] JTS messenger 1.2 update. --- addons/JTS_PM/Functions.sqf | 2 +- addons/JTS_PM/PM_Compact.hpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/addons/JTS_PM/Functions.sqf b/addons/JTS_PM/Functions.sqf index 414359b2c..2a951053d 100644 --- a/addons/JTS_PM/Functions.sqf +++ b/addons/JTS_PM/Functions.sqf @@ -211,4 +211,4 @@ JTS_FNC_PM_DELETE = JTS_PM_ARRAY = JTS_PM_ARRAY - [[_Subject,_Data]]; {[] spawn _x} foreach [JTS_FNC_PM,JTS_FNC_PM_ENABLED,JTS_FNC_STATUS] }; -}; \ No newline at end of file +}; diff --git a/addons/JTS_PM/PM_Compact.hpp b/addons/JTS_PM/PM_Compact.hpp index df72b40a2..1dd94c966 100644 --- a/addons/JTS_PM/PM_Compact.hpp +++ b/addons/JTS_PM/PM_Compact.hpp @@ -36,6 +36,7 @@ class JTS_RscButton style = "0x02 + 0xC0"; default = 0; shadow = 0; + font = JTS_FontM_PM; animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; @@ -141,8 +142,8 @@ class JTS_PMText style = JTS_ST_LEFT_PM; colorText[] = {1,1,1,1}; colorBackground[] = {0, 0, 0, 0}; - font = JTS_FontM_PM; - sizeEx = 0.03; + font = "PuristaBold"; + sizeEx = 0.04; }; class JTS_PMlite: JTS_PMText From 6795c33a63536d4dd04767a015e229bc255c6efc Mon Sep 17 00:00:00 2001 From: Gigatek Date: Wed, 6 May 2015 05:21:59 -0700 Subject: [PATCH 435/544] Added kill to FAR revive. --- addons/far_revive/FAR_handleAction.sqf | 5 +++++ addons/far_revive/FAR_revive_funcs.sqf | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/addons/far_revive/FAR_handleAction.sqf b/addons/far_revive/FAR_handleAction.sqf index 8e5ca9580..a4d0dfb82 100644 --- a/addons/far_revive/FAR_handleAction.sqf +++ b/addons/far_revive/FAR_handleAction.sqf @@ -36,4 +36,9 @@ switch (toLower _action) do { [] spawn FAR_Release; }; + + case "action_kill": + { + [cursorTarget] spawn FAR_Kill; + }; }; diff --git a/addons/far_revive/FAR_revive_funcs.sqf b/addons/far_revive/FAR_revive_funcs.sqf index 83395dc87..1ec93b3e2 100644 --- a/addons/far_revive/FAR_revive_funcs.sqf +++ b/addons/far_revive/FAR_revive_funcs.sqf @@ -15,7 +15,8 @@ FAR_Player_Actions = [ ["" + "Revive" + "", "addons\FAR_revive\FAR_handleAction.sqf", ["action_revive"], 100, true, true, "", FAR_Check_Revive], ["" + "Stabilize" + "", "addons\FAR_revive\FAR_handleAction.sqf", ["action_stabilize"], 99, true, true, "", FAR_Check_Stabilize], - ["" + "Drag" + "", "addons\FAR_revive\FAR_handleAction.sqf", ["action_drag"], 98, true, true, "", FAR_Check_Dragging] + ["" + "Drag" + "", "addons\FAR_revive\FAR_handleAction.sqf", ["action_drag"], 98, true, true, "", FAR_Check_Dragging], + ["" + "Kill" + "", "addons\FAR_revive\FAR_handleAction.sqf", ["action_kill"], 97, true, true, "", FAR_Check_Dragging] ]; }; } @@ -283,6 +284,19 @@ FAR_Check_Revive = } call mf_compile; +//////////////////////////////////////////////// +// Kill Player Action +//////////////////////////////////////////////// +FAR_Kill = +{ + _target = _this select 0; + + call FAR_Check_Dragging; + _target allowDamage true; + _target setDamage 1; +} +call mf_compile; + //////////////////////////////////////////////// // Show Nearby Friendly Medics //////////////////////////////////////////////// From d756555203e77355542746a76d69e365392c54e3 Mon Sep 17 00:00:00 2001 From: Gigatek1 Date: Wed, 6 May 2015 05:23:58 -0700 Subject: [PATCH 436/544] Update FAR_revive_funcs.sqf Added kill to FAR revive. --- addons/far_revive/FAR_revive_funcs.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/far_revive/FAR_revive_funcs.sqf b/addons/far_revive/FAR_revive_funcs.sqf index 1ec93b3e2..3e91a7524 100644 --- a/addons/far_revive/FAR_revive_funcs.sqf +++ b/addons/far_revive/FAR_revive_funcs.sqf @@ -289,7 +289,7 @@ call mf_compile; //////////////////////////////////////////////// FAR_Kill = { - _target = _this select 0; + _target = _this select 0; call FAR_Check_Dragging; _target allowDamage true; From 3d3892ad23dd9d5ac18cb2763822aa42d07f622e Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 13:59:04 -0700 Subject: [PATCH 437/544] Added 20 more mission locations. --- mission.sqm | 142 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 141 insertions(+), 1 deletion(-) diff --git a/mission.sqm b/mission.sqm index 8ab3e8727..282fb6563 100644 --- a/mission.sqm +++ b/mission.sqm @@ -2402,7 +2402,7 @@ class Mission }; class Markers { - items=177; + items=197; class Item0 { position[]={3612.1487,12.11851,13020.892}; @@ -3742,6 +3742,146 @@ class Mission type="Empty"; colorName="ColorBlack"; }; + class Item177 + { + position[]={11709.138,54.848961,18224.15}; + name="Mission_21"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item178 + { + position[]={18755.395,208.82076,10202.748}; + name="Mission_22"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item179 + { + position[]={19436.357,23.452351,14351.174}; + name="Mission_23"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item180 + { + position[]={16657.51,16.230467,12689.979}; + name="Mission_24"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item181 + { + position[]={11327.046,138.86478,8257.0918}; + name="Mission_25"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item182 + { + position[]={8454.9404,96.900978,25174.967}; + name="Mission_26"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item183 + { + position[]={8196.7402,74.394363,22541.352}; + name="Mission_27"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item184 + { + position[]={12363.744,77.006287,21894.768}; + name="Mission_28"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item185 + { + position[]={16155.725,33.545872,19367.801}; + name="Mission_29"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item186 + { + position[]={20955.344,15.493174,19268.236}; + name="Mission_30"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item187 + { + position[]={22472.322,18.29957,20019.885}; + name="Mission_31"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item188 + { + position[]={22614.143,20.432728,21617.762}; + name="Mission_32"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item189 + { + position[]={25432.072,9.7850418,20345.178}; + name="Mission_33"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item190 + { + position[]={28192.398,28.236439,25684.068}; + name="Mission_34"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item191 + { + position[]={27495.762,18.622601,21483.043}; + name="Mission_35"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item192 + { + position[]={3814.7158,189.58923,21497.254}; + name="Mission_36"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item193 + { + position[]={2312.7026,74.332687,22269.027}; + name="Mission_37"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item194 + { + position[]={3814.9829,13.853227,17497.141}; + name="Mission_38"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item195 + { + position[]={12820.76,46.35466,19690.66}; + name="Mission_39"; + type="Empty"; + colorName="ColorOrange"; + }; + class Item196 + { + position[]={14096.81,19.359612,18465.543}; + name="Mission_40"; + type="Empty"; + colorName="ColorOrange"; + }; }; }; class Intro From b30b6eeee0546d6eb614a489e4fc4ae3e4e3d728 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 14:27:52 -0700 Subject: [PATCH 438/544] Added one more convoy route. --- mapConfig/convoys/LandConvoy_4.sqf | 40 +++++++++++++++++++++++++++ mapConfig/convoys/landConvoysList.sqf | 3 +- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 mapConfig/convoys/LandConvoy_4.sqf diff --git a/mapConfig/convoys/LandConvoy_4.sqf b/mapConfig/convoys/LandConvoy_4.sqf new file mode 100644 index 000000000..0de055cd1 --- /dev/null +++ b/mapConfig/convoys/LandConvoy_4.sqf @@ -0,0 +1,40 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Version: 1.0 +// @file Name: LandConvoy_4.sqf +// @file Author: [GoT] JoSchaap, [404] Del1te, AgentRev +// @file Created: 13/02/2014 22:52 + +// starting positions for this route +_starts = +[ + [5332.31, 14514.9], + [5303.78, 14508.5], + [5286.03, 14504.3] +]; + +// starting directions in which the vehicles are spawned on this route +_startDirs = +[ + 80, + 80, + 80 +]; + +// the route +_waypoints = +[ + [7214.75, 16080.1], + [8832.21, 15784.5], + [11234.9, 15708.3], + [13729.2, 16122.9], + [16011.3, 17400.2], + [17773.6, 17830.3], + [19453, 16555], + [20850.9, 16745.7], + [22364.8, 18489.3], + [25288.5, 21014.9], + [26339, 21848.2], + [26800.6, 23079.9] +]; diff --git a/mapConfig/convoys/landConvoysList.sqf b/mapConfig/convoys/landConvoysList.sqf index b42e8566c..ba926acb6 100644 --- a/mapConfig/convoys/landConvoysList.sqf +++ b/mapConfig/convoys/landConvoysList.sqf @@ -7,5 +7,6 @@ [ "LandConvoy_1", "LandConvoy_2", - "LandConvoy_3" + "LandConvoy_3", + "LandConvoy_4" ] From cedc58c73495e9883919046cf8622cb162d9bdb6 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 15:31:39 -0700 Subject: [PATCH 439/544] Added 3 more missions. Thanks LouDnl --- mapConfig/convoys/PatrolConvoy_1.sqf | 74 +++++++ mapConfig/convoys/PatrolConvoy_2.sqf | 92 +++++++++ mapConfig/convoys/PatrolConvoy_3.sqf | 50 +++++ mapConfig/convoys/patrolConvoysList.sqf | 11 + .../moneyMissions/mission_militaryPatrol.sqf | 190 ++++++++++++++++++ server/missions/setupMissionArrays.sqf | 14 +- .../sideMissions/mission_Smugglers.sqf | 147 ++++++++++++++ .../sideMissions/mission_drugsRunners.sqf | 162 +++++++++++++++ 8 files changed, 737 insertions(+), 3 deletions(-) create mode 100644 mapConfig/convoys/PatrolConvoy_1.sqf create mode 100644 mapConfig/convoys/PatrolConvoy_2.sqf create mode 100644 mapConfig/convoys/PatrolConvoy_3.sqf create mode 100644 mapConfig/convoys/patrolConvoysList.sqf create mode 100644 server/missions/moneyMissions/mission_militaryPatrol.sqf create mode 100644 server/missions/sideMissions/mission_Smugglers.sqf create mode 100644 server/missions/sideMissions/mission_drugsRunners.sqf diff --git a/mapConfig/convoys/PatrolConvoy_1.sqf b/mapConfig/convoys/PatrolConvoy_1.sqf new file mode 100644 index 000000000..767c2863d --- /dev/null +++ b/mapConfig/convoys/PatrolConvoy_1.sqf @@ -0,0 +1,74 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Version: 1.0 +// @file Name: PatrolConvoy_1.sqf +// @file Author: [GoT] JoSchaap, [404] Del1te, AgentRev, LouD +// @file Created: 13/02/2014 22:52 + +// starting positions for this route +_starts = +[ + [14877.2, 16706.5], + [14882.9, 16712.7], + [14896.1, 16713.4], + [14889.5, 16718.3], + [14883.1, 16701.4], + [14890, 16707] +]; + +// starting directions in which the vehicles are spawned on this route +_startDirs = +[ + -133, + -133, + -133, + -133, + -133, + -133 +]; + +// the route +_waypoints = +[ + [14574.4, 16388.7], + [14233.3, 16407.1], + [14108.7, 16246.8], + [14037.4, 15784.8], + [14271.9, 15620.1], + [14939.5, 16285.5], + [15671.1, 17047.1], + [15260.5, 17465.7], + [14919.1, 17124.3], + [14981.6, 16809], + [14877.2, 16706.5], + [14574.4, 16388.7], + [14233.3, 16407.1], + [14108.7, 16246.8], + [14037.4, 15784.8], + [14271.9, 15620.1], + [14939.5, 16285.5], + [15671.1, 17047.1], + [15260.5, 17465.7], + [14919.1, 17124.3], + [14877.2, 16706.5], + [14574.4, 16388.7], + [14233.3, 16407.1], + [14108.7, 16246.8], + [14037.4, 15784.8], + [14271.9, 15620.1], + [14939.5, 16285.5], + [15671.1, 17047.1], + [15260.5, 17465.7], + [14919.1, 17124.3], + [14877.2, 16706.5], + [14574.4, 16388.7], + [14233.3, 16407.1], + [14108.7, 16246.8], + [14037.4, 15784.8], + [14271.9, 15620.1], + [14939.5, 16285.5], + [15671.1, 17047.1], + [15260.5, 17465.7], + [14919.1, 17124.3] +]; diff --git a/mapConfig/convoys/PatrolConvoy_2.sqf b/mapConfig/convoys/PatrolConvoy_2.sqf new file mode 100644 index 000000000..66d126319 --- /dev/null +++ b/mapConfig/convoys/PatrolConvoy_2.sqf @@ -0,0 +1,92 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Version: 1.0 +// @file Name: PatrolConvoy_2.sqf +// @file Author: [GoT] JoSchaap, [404] Del1te, AgentRev, LouD +// @file Created: 13/02/2014 22:52 + +// starting positions for this route +_starts = +[ + [23053.191, 18927.045], + [23053.338, 18960.719], + [23053.492, 18995.898], + [23053.729, 19023.67], + [23053.99, 19055.588], + [23054.023, 19086.568] +]; + +// starting directions in which the vehicles are spawned on this route +_startDirs = +[ + 180, + 180, + 180, + 180, + 180, + 180 +]; + +// the route +_waypoints = +[ + [23052.715, 18896.807], // Start + [22980.904, 18788.453], + [22844.98, 18673.688], + [22642.373, 18566.609], + [22645.943, 18267.176], + [22819.709, 18025.094], + [22940.01, 17760.738], + [23021.699, 17423.609], + [23060.313, 17242.42], + [23256.354, 17267.666], + [23459.822, 17245.389], + [23719.725, 17188.953], + [23926.002, 17141.758], + [24058.502, 17117.305], + [24092.619, 17387.422], + [24146.076, 17593.846], + [24187.984, 17754.559], + [24194.572, 17932.385], + [24201.158, 18129.969], + [24311.807, 18359.166], + [24471.191, 18621.291], + [24613.455, 18830.732], + [24521.252, 19008.557], + [24247.268, 19050.705], + [24014.119, 19202.189], + [23825.76, 19291.76], + [23584.709, 19312.836], + [23339.707, 19240.391], + [23092.068, 19078.375], // End + [23052.715, 18896.807], // Start + [22980.904, 18788.453], + [22844.98, 18673.688], + [22642.373, 18566.609], + [22645.943, 18267.176], + [22819.709, 18025.094], + [22940.01, 17760.738], + [23021.699, 17423.609], + [23060.313, 17242.42], + [23256.354, 17267.666], + [23459.822, 17245.389], + [23719.725, 17188.953], + [23926.002, 17141.758], + [24058.502, 17117.305], + [24092.619, 17387.422], + [24146.076, 17593.846], + [24187.984, 17754.559], + [24194.572, 17932.385], + [24201.158, 18129.969], + [24311.807, 18359.166], + [24471.191, 18621.291], + [24613.455, 18830.732], + [24521.252, 19008.557], + [24247.268, 19050.705], + [24014.119, 19202.189], + [23825.76, 19291.76], + [23584.709, 19312.836], + [23339.707, 19240.391], + [23092.068, 19078.375] // End +]; diff --git a/mapConfig/convoys/PatrolConvoy_3.sqf b/mapConfig/convoys/PatrolConvoy_3.sqf new file mode 100644 index 000000000..d03443f68 --- /dev/null +++ b/mapConfig/convoys/PatrolConvoy_3.sqf @@ -0,0 +1,50 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Version: 1.0 +// @file Name: PatrolConvoy_3.sqf +// @file Author: [GoT] JoSchaap, [404] Del1te, AgentRev, LouD +// @file Created: 13/02/2014 22:52 + +// starting positions for this route +_starts = +[ + [20652.281, 7428.186], + [20668.684, 7427.2319], + [20653.197, 7440.0566], + [20654.041, 7451.8452], + [20654.156, 7454.0552], + [20668.67, 7455.4678] +]; + +// starting directions in which the vehicles are spawned on this route +_startDirs = +[ + -177.79, + -177.79, + -177.79, + -177.79, + -177.79, + -177.79 +]; + +// the route +_waypoints = +[ + [20699.121, 7210.6572], // Start + [21162.006, 7549.5776], + [21076.135, 7150.3789], + [20850.945, 7290.8384], + [20707.076, 7198.145], + [20804.32, 6798.9497], + [21528.789, 7584.2671], + [20561.502, 7927.7402], // End + [20699.121, 7210.6572], // Start + [21162.006, 7549.5776], + [21076.135, 7150.3789], + [20850.945, 7290.8384], + [20707.076, 7198.145], + [20804.32, 6798.9497], + [21528.789, 7584.2671], + [20561.502, 7927.7402] // End +]; diff --git a/mapConfig/convoys/patrolConvoysList.sqf b/mapConfig/convoys/patrolConvoysList.sqf new file mode 100644 index 000000000..fcc2d46ae --- /dev/null +++ b/mapConfig/convoys/patrolConvoysList.sqf @@ -0,0 +1,11 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Name: patrolConvoysList.sqf +// @file Author: AgentRev, LouD + +[ + "PatrolConvoy_1", + "PatrolConvoy_2", + "PatrolConvoy_3" +] diff --git a/server/missions/moneyMissions/mission_militaryPatrol.sqf b/server/missions/moneyMissions/mission_militaryPatrol.sqf new file mode 100644 index 000000000..03f243710 --- /dev/null +++ b/server/missions/moneyMissions/mission_militaryPatrol.sqf @@ -0,0 +1,190 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Name: mission_mapPatrol.sqf +// @file Author: JoSchaap, AgentRev, LouD + +if (!isServer) exitwith {}; +#include "moneyMissionDefines.sqf"; + +private ["_convoyVeh","_veh1","_veh2","_veh3","_veh4","_veh5","_veh6","_createVehicle1","_createVehicle2","_createVehicle3","_vehicles", "_leader", "_speedMode", "_waypoint", "_vehicleName", "_numWaypoints", "_cash", "_box1", "_box2", "_box3"]; + +_setupVars = +{ + _missionType = "Military Patrol"; + _locationsArray = PatrolConvoyPaths; +}; + +_setupObjects = +{ + private ["_starts", "_startDirs", "_waypoints"]; + call compile preprocessFileLineNumbers format ["mapConfig\convoys\%1.sqf", _missionLocation]; + + // Pick the vehicles for the patrol. Only one set at the moment. Will add more later. + _convoyVeh = + [ + ["I_G_Offroad_01_F","O_MBT_02_cannon_F","I_MRAP_03_F","O_APC_Tracked_02_AA_F","I_MBT_03_cannon_F","I_G_Offroad_01_F"], + ["I_G_Offroad_01_F","O_MBT_02_cannon_F","I_MRAP_03_F","O_APC_Tracked_02_AA_F","I_MBT_03_cannon_F","I_G_Offroad_01_F"] + ] call BIS_fnc_selectRandom; + + _veh1 = _convoyVeh select 0; + _veh2 = _convoyVeh select 1; + _veh3 = _convoyVeh select 2; + _veh4 = _convoyVeh select 3; + _veh5 = _convoyVeh select 4; + _veh6 = _convoyVeh select 5; + + _createVehicle1 = { + private ["_type","_position","_direction","_vehicle","_soldier"]; + + _type = _this select 0; + _position = _this select 1; + _direction = _this select 2; + + _vehicle = createVehicle [_type, _position, [], 0, "None"]; + [_vehicle] call vehicleSetup; + + _vehicle setDir _direction; + _aiGroup addVehicle _vehicle; + + _soldier = [_aiGroup, _position] call createRandomSoldier; + _soldier moveInDriver _vehicle; + _soldier = [_aiGroup, _position] call createRandomSoldier; + _soldier moveInCommander _vehicle; + _soldier = [_aiGroup, _position] call createRandomSoldier; + _soldier moveInCargo [_vehicle, 0]; + _vehicle setVehicleLock "UNLOCKED"; // force vehicles to be unlocked + _vehicle setVariable ["R3F_LOG_disabled", false, true]; // force vehicles to be unlocked + _vehicle + }; + + _createVehicle2 = { + private ["_type","_position","_direction","_vehicle","_soldier"]; + + _type = _this select 0; + _position = _this select 1; + _direction = _this select 2; + + _vehicle = createVehicle [_type, _position, [], 0, "None"]; + [_vehicle] call vehicleSetup; + + _vehicle setDir _direction; + _aiGroup addVehicle _vehicle; + + _soldier = [_aiGroup, _position] call createRandomSoldier; + _soldier moveInDriver _vehicle; + _soldier = [_aiGroup, _position] call createRandomSoldier; + _soldier moveInCommander _vehicle; + _soldier = [_aiGroup, _position] call createRandomSoldier; + _soldier moveInGunner _vehicle; + _vehicle setVehicleLock "UNLOCKED"; // force vehicles to be unlocked + _vehicle setVariable ["R3F_LOG_disabled", false, true]; // force vehicles to be unlocked + _vehicle + }; + + _createVehicle3 = { + private ["_type","_position","_direction","_vehicle","_soldier"]; + + _type = _this select 0; + _position = _this select 1; + _direction = _this select 2; + + _vehicle = createVehicle [_type, _position, [], 0, "None"]; + [_vehicle] call vehicleSetup; + + _vehicle setDir _direction; + _aiGroup addVehicle _vehicle; + + _soldier = [_aiGroup, _position] call createRandomSoldier; + _soldier moveInDriver _vehicle; + _soldier = [_aiGroup, _position] call createRandomSoldier; + _soldier moveInCargo [_vehicle, 0]; + _vehicle setVehicleLock "UNLOCKED"; // force vehicles to be unlocked + _vehicle setVariable ["R3F_LOG_disabled", false, true]; // force vehicles to be unlocked + _vehicle + }; + + _aiGroup = createGroup CIVILIAN; + + _vehicles = + [ + [_veh1, _starts select 0, _startDirs select 0] call _createVehicle3, + [_veh2, _starts select 1, _startDirs select 1] call _createVehicle2, + [_veh3, _starts select 2, _startDirs select 2] call _createVehicle1, + [_veh4, _starts select 3, _startDirs select 3] call _createVehicle2, + [_veh5, _starts select 4, _startDirs select 4] call _createVehicle2, + [_veh6, _starts select 5, _startDirs select 5] call _createVehicle3 + ]; + + _leader = effectiveCommander (_vehicles select 0); + _aiGroup selectLeader _leader; + _leader setRank "LIEUTENANT"; + + _aiGroup setCombatMode "GREEN"; // units will defend themselves + _aiGroup setBehaviour "SAFE"; // units feel safe until they spot an enemy or get into contact + _aiGroup setFormation "STAG COLUMN"; + + _speedMode = if (missionDifficultyHard) then { "NORMAL" } else { "LIMITED" }; + _aiGroup setSpeedMode _speedMode; + + { + _waypoint = _aiGroup addWaypoint [_x, 0]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointCompletionRadius 50; + _waypoint setWaypointCombatMode "GREEN"; + _waypoint setWaypointBehaviour "SAFE"; // safe is the best behaviour to make AI follow roads, as soon as they spot an enemy or go into combat they WILL leave the road for cover though! + _waypoint setWaypointFormation "FILE"; + _waypoint setWaypointSpeed _speedMode; + } forEach _waypoints; + + _missionPos = getPosATL leader _aiGroup; + + _missionPicture = getText (configFile >> "CfgVehicles" >> _veh4 >> "picture"); + _vehicleName = getText (configFile >> "CfgVehicles" >> _veh2 >> "displayName"); + _vehicleName2 = getText (configFile >> "CfgVehicles" >> _veh4 >> "displayName"); + _vehicleName3 = getText (configFile >> "CfgVehicles" >> _veh5 >> "displayName"); + + _missionHintText = format ["A convoy containing at least a %1, a %2 and a %3 is patrolling a high value location! Stop the patrol and capture the goods and money!", _vehicleName, _vehicleName2, _vehicleName3, moneyMissionColor]; + + _numWaypoints = count waypoints _aiGroup; +}; + +_waitUntilMarkerPos = {getPosATL _leader}; +_waitUntilExec = nil; +_waitUntilCondition = {currentWaypoint _aiGroup >= _numWaypoints}; + +_failedExec = nil; + +// _vehicles are automatically deleted or unlocked in missionProcessor depending on the outcome + +_successExec = +{ + // Mission completed + + for "_x" from 1 to 10 do + { + _cash = "Land_Money_F" createVehicle markerPos _marker; + _cash setPos ((markerPos _marker) vectorAdd ([[2 + random 2,0,0], random 360] call BIS_fnc_rotateVector2D)); + _cash setDir random 360; + _cash setVariable["cmoney",7500,true]; + _cash setVariable["owner","world",true]; + }; + + _box1 = "Box_East_Wps_F" createVehicle getMarkerPos _marker; + [_box1,"mission_USLaunchers"] call fn_refillbox; + _box1 allowDamage false; + + _box2 = "Box_NATO_Wps_F" createVehicle getMarkerPos _marker; + [_box2,"mission_USSpecial2"] call fn_refillbox; + _box2 allowDamage false; + + _box3 = "Box_NATO_Support_F" createVehicle getMarkerPos _marker; + [_box3,"mission_Main_A3snipers"] call fn_refillbox; + _box3 allowDamage false; + + { _x setVariable ["R3F_LOG_disabled", false, true] } forEach [_box1, _box2, _box3]; + + _successHintMessage = "The patrol has been stopped, the money, crates and vehicles are yours to take."; +}; + +_this call moneyMissionProcessor; \ No newline at end of file diff --git a/server/missions/setupMissionArrays.sqf b/server/missions/setupMissionArrays.sqf index b22fbbe07..cea1ae380 100644 --- a/server/missions/setupMissionArrays.sqf +++ b/server/missions/setupMissionArrays.sqf @@ -28,14 +28,17 @@ SideMissions = ["mission_TownInvasion", 2], //["mission_AirWreck", 1.5], //["mission_WepCache", 1.5], - ["mission_Outpost", 2], - ["mission_Truck", 0.5] + ["mission_Outpost", 1.5], + ["mission_Truck", 0.5], + ["mission_Smugglers", 2], + ["mission_drugsRunners", 1] ]; MoneyMissions = [ ["mission_MoneyShipment", 1], - ["mission_SunkenTreasure", 0.5] + ["mission_SunkenTreasure", 0.5], + ["mission_militaryPatrol", 1] ]; MainMissions = [MainMissions, [["A3W_heliPatrolMissions", ["mission_Coastal_Convoy", "mission_HostileHeliFormation"]], ["A3W_underWaterMissions", ["mission_ArmedDiversquad"]]]] call removeDisabledMissions; @@ -71,3 +74,8 @@ CoastalConvoyPaths = []; { CoastalConvoyPaths pushBack [_x, false]; } forEach (call compile preprocessFileLineNumbers "mapConfig\convoys\coastalConvoysList.sqf"); + +PatrolConvoyPaths = []; +{ + PatrolConvoyPaths pushBack [_x, false]; +} forEach (call compile preprocessFileLineNumbers "mapConfig\convoys\patrolConvoysList.sqf"); diff --git a/server/missions/sideMissions/mission_Smugglers.sqf b/server/missions/sideMissions/mission_Smugglers.sqf new file mode 100644 index 000000000..0fd3e77ac --- /dev/null +++ b/server/missions/sideMissions/mission_Smugglers.sqf @@ -0,0 +1,147 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Name: mission_Smugglers.sqf +// @file Author: JoSchaap, AgentRev, LouD + +if (!isServer) exitwith {}; +#include "sideMissionDefines.sqf"; + +private ["_positions", "_smugglerVeh", "_vehicle1", "_vehicle2", "_boxes1", "_currBox1", "_randomBox", "_box1", "_boxes2", "_currBox2", "_box2", "_cashrandomizera", "_cashamountrandomizera", "_cashpilerandomizera", "_casha", "_cashamounta", "_cashpilea", "_cashrandomizerb", "_cashamountrandomizerb", "_cashpilerandomizerb", "_cashb", "_cashamountb", "_cashpileb", "_cash1", "_cash2", "_drop_item", "_drugpilerandomizer", "_drugpile"]; + +_setupVars = +{ + _missionType = "Weapon Smugglers"; + + _locationsArray = MissionSpawnMarkers; +}; + +_setupObjects = +{ + _missionPos = markerPos _missionLocation; + _smugglerVeh = ["B_MRAP_01_hmg_F","O_MRAP_02_hmg_F","I_MRAP_03_hmg_F"] call BIS_fnc_selectRandom; + + _vehicle1 = [_smugglerVeh,[(_missionPos select 0) - 5, (_missionPos select 1) + 10,0],0.5,1,0,"NONE"] call createMissionVehicle; + _vehicle1 setVariable [call vChecksum, true, false]; + _vehicle1 setFuel 1; + _vehicle1 setVehicleLock "UNLOCKED"; + _vehicle1 setVariable ["R3F_LOG_disabled", false, true]; + + _vehicle2 = [_smugglerVeh,[(_missionPos select 0) - 5, (_missionPos select 1) - 10,0],0.5,1,0,"NONE"] call createMissionVehicle; + _vehicle2 setVariable [call vChecksum, true, false]; + _vehicle2 setFuel 1; + _vehicle2 setVehicleLock "UNLOCKED"; + _vehicle2 setVariable ["R3F_LOG_disabled", false, true]; + + _boxes1 = ["Box_FIA_Support_F","Box_FIA_Wps_F","Box_FIA_Ammo_F"]; + _currBox1 = _boxes1 call BIS_fnc_selectRandom; + _randomBox = ["mission_USLaunchers","mission_USSpecial","mission_Main_A3snipers"] call BIS_fnc_selectRandom; + _box1 = createVehicle [_currBox1,[(_missionPos select 0), (_missionPos select 1),0],[], 0, "NONE"]; + [_box1, _randomBox] call fn_refillbox; + + _boxes2 = ["Box_FIA_Support_F","Box_FIA_Wps_F","Box_FIA_Ammo_F"]; + _currBox2 = _boxes2 call BIS_fnc_selectRandom; + _box2 = createVehicle [_currBox2,[(_missionPos select 0) - 5, (_missionPos select 1) - 8,0],[], 0, "NONE"]; + _box2 allowDamage false; + _box2 setVariable ["R3F_LOG_disabled", true, true]; + + _aiGroup = createGroup CIVILIAN; + [_aiGroup,_missionPos] spawn createsmugglerGroup; + + _aiGroup setCombatMode "RED"; + _aiGroup setBehaviour "COMBAT"; + + _missionPicture = getText (configFile >> "CfgVehicles" >> _smugglerVeh >> "picture"); + + _missionHintText = format ["A group of weapon smugglers have been spotted. Stop the weapon deal and take their weapons and money.", sideMissionColor]; +}; + +_waitUntilMarkerPos = nil; +_waitUntilExec = nil; +_waitUntilCondition = nil; + +_failedExec = +{ + // Mission failed + { deleteVehicle _x } forEach [_box1, _box2, _vehicle1, _vehicle2]; +}; + +_drop_item = +{ + private["_item", "_pos"]; + _item = _this select 0; + _pos = _this select 1; + + if (isNil "_item" || {typeName _item != typeName [] || {count(_item) != 2}}) exitWith {}; + if (isNil "_pos" || {typeName _pos != typeName [] || {count(_pos) != 3}}) exitWith {}; + + private["_id", "_class"]; + _id = _item select 0; + _class = _item select 1; + + private["_obj"]; + _obj = createVehicle [_class, _pos, [], 5, "None"]; + _obj setPos ([_pos, [[2 + random 3,0,0], random 360] call BIS_fnc_rotateVector2D] call BIS_fnc_vectorAdd); + _obj setVariable ["mf_item_id", _id, true]; +}; + +_successExec = +{ + // Mission completed + { _x setVariable ["R3F_LOG_disabled", false, true] } forEach [_box1, _box2]; + { _x setVariable ["A3W_missionVehicle", true] } forEach [_vehicle1, _vehicle2]; + + //Random fake - real money + _cashrandomizera = ["money","cmoney","money","cmoney"]; + _cashamountrandomizera = [1000,1500,2000,2500,3000,3500,4000,4500,5000]; + _cashpilerandomizera = [3,5]; + + _casha = _cashrandomizera call BIS_fnc_SelectRandom; + _cashamounta = _cashamountrandomizera call BIS_fnc_SelectRandom; + _cashpilea = _cashpilerandomizera call BIS_fnc_SelectRandom; + + for "_i" from 1 to _cashpilea do + { + _cash1 = createVehicle ["Land_Money_F",[(_lastPos select 0), (_lastPos select 1) - 5,0],[], 0, "NONE"]; + _cash1 setPos ([_lastPos, [[2 + random 3,0,0], random 360] call BIS_fnc_rotateVector2D] call BIS_fnc_vectorAdd); + _cash1 setDir random 360; + _cash1 setVariable [_casha, _cashamounta, true]; + _cash1 setVariable ["owner", "world", true]; + }; + + _cashrandomizerb = ["money","cmoney","money","cmoney"]; + _cashamountrandomizerb = [1000,1500,2000,2500,3000,3500,4000,4500,5000]; + _cashpilerandomizerb = [3,5]; + + _cashb = _cashrandomizerb call BIS_fnc_SelectRandom; + _cashamountb = _cashamountrandomizerb call BIS_fnc_SelectRandom; + _cashpileb = _cashpilerandomizerb call BIS_fnc_SelectRandom; + + for "_i" from 1 to _cashpileb do + { + _cash2 = createVehicle ["Land_Money_F",[(_lastPos select 0), (_lastPos select 1) - 5,0],[], 0, "NONE"]; + _cash2 setPos ([_lastPos, [[2 + random 3,0,0], random 360] call BIS_fnc_rotateVector2D] call BIS_fnc_vectorAdd); + _cash2 setDir random 360; + _cash2 setVariable [_cashb, _cashamountb, true]; + _cash2 setVariable ["owner", "world", true]; + }; + + _drugpilerandomizer = [4,8]; + _drugpile = _drugpilerandomizer call BIS_fnc_SelectRandom; + + for "_i" from 1 to _drugpile do + { + private["_item"]; + _item = [ + ["lsd", "Land_WaterPurificationTablets_F"], + ["marijuana", "Land_VitaminBottle_F"], + ["cocaine","Land_PowderedMilk_F"], + ["heroin", "Land_PainKillers_F"] + ] call BIS_fnc_selectRandom; + [_item, _lastPos] call _drop_item; + }; + + _successHintMessage = format ["The smugglers are dead, the weapons, drugs and money are yours!"]; +}; + +_this call sideMissionProcessor; diff --git a/server/missions/sideMissions/mission_drugsRunners.sqf b/server/missions/sideMissions/mission_drugsRunners.sqf new file mode 100644 index 000000000..08c243886 --- /dev/null +++ b/server/missions/sideMissions/mission_drugsRunners.sqf @@ -0,0 +1,162 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +// @file Version: 2.1 +// @file Name: mission_drugsRunners.sqf +// @file Author: JoSchaap / routes by Del1te - (original idea by Sanjo), AgentRev, LouD +// @file Created: 31/08/2013 18:19 + +if (!isServer) exitwith {}; +#include "sideMissionDefines.sqf"; + +private ["_convoyVeh", "_veh1", "_veh2", "_createVehicle", "_vehicles", "_leader", "_speedMode", "_waypoint", "_vehicleName", "_numWaypoints", "_drop_item", "_drugpilerandomizer", "_drugpile"]; + +_setupVars = +{ + _missionType = "Drugs Runners"; + _locationsArray = nil; +}; + +_setupObjects = +{ + _town = (call cityList) call BIS_fnc_selectRandom; + _missionPos = markerPos (_town select 0); + + // pick the vehicles for the convoy + _convoyVeh = if (missionDifficultyHard) then + { + ["C_Hatchback_01_sport_F"] + } + else + { + ["C_Hatchback_01_sport_F"] + }; + + _veh1 = _convoyVeh select 0; + + _createVehicle = + { + private ["_type", "_position", "_direction", "_vehicle", "_soldier"]; + + _type = _this select 0; + _position = _this select 1; + _direction = _this select 2; + + _vehicle = createVehicle [_type, _position, [], 0, "None"]; + _vehicle setVariable ["R3F_LOG_disabled", true, true]; + [_vehicle] call vehicleSetup; + + _vehicle setDir _direction; + _aiGroup addVehicle _vehicle; + + _soldier = [_aiGroup, _position] call createRandomSoldier; + _soldier moveInDriver _vehicle; + + _soldier = [_aiGroup, _position] call createRandomSoldier; + _soldier moveInCargo [_vehicle, 0]; + + switch (true) do + { + case (_type isKindOf "C_Hatchback_01_sport_F"): + { + [_vehicle, "#(rgb,1,1,1)color(0.01,0.01,0.01,1)", [0]] call applyVehicleTexture; // Apply black color + }; + }; + + [_vehicle, _aiGroup] spawn checkMissionVehicleLock; + + _vehicle + }; + + _aiGroup = createGroup CIVILIAN; + + _pos = getMarkerPos (_town select 0); + _rad = _town select 1; + _vehiclePos = [_pos,5,_rad,5,0,0,0] call findSafePos; + + _vehicles = + [ + [_veh1, _vehiclePos, 0] call _createVehicle + ]; + + _leader = effectiveCommander (_vehicles select 0); + _aiGroup selectLeader _leader; + + _aiGroup setCombatMode "GREEN"; // units will never fire + _aiGroup setBehaviour "CARELESS"; // nits will try to stay on roads, not caring about finding any cover + _aiGroup setFormation "STAG COLUMN"; + + _speedMode = if (missionDifficultyHard) then { "FULL" } else { "FULL" }; + + _aiGroup setSpeedMode _speedMode; + + // behaviour on waypoints + { + _waypoint = _aiGroup addWaypoint [markerPos (_x select 0), 0]; + _waypoint setWaypointType "MOVE"; + _waypoint setWaypointCompletionRadius 50; + _waypoint setWaypointCombatMode "GREEN"; + _waypoint setWaypointBehaviour "CARELESS"; + _waypoint setWaypointFormation "STAG COLUMN"; + _waypoint setWaypointSpeed _speedMode; + } forEach ((call cityList) call BIS_fnc_arrayShuffle); + + _missionPos = getPosATL leader _aiGroup; + + _missionPicture = getText (configFile >> "CfgVehicles" >> _veh1 >> "picture"); + _vehicleName = getText (configFile >> "CfgVehicles" >> _veh1 >> "displayName"); + + _missionHintText = format ["Drugrunners driving a %1 are moving drugs around Altis. Stop them quickly!", _vehicleName, sideMissionColor]; + + _numWaypoints = count waypoints _aiGroup; +}; + +_waitUntilMarkerPos = {getPosATL _leader}; +_waitUntilExec = nil; +_waitUntilCondition = {currentWaypoint _aiGroup >= _numWaypoints}; + +_failedExec = nil; + +// _vehicles are automatically deleted or unlocked in missionProcessor depending on the outcome + +_drop_item = +{ + private["_item", "_pos"]; + _item = _this select 0; + _pos = _this select 1; + + if (isNil "_item" || {typeName _item != typeName [] || {count(_item) != 2}}) exitWith {}; + if (isNil "_pos" || {typeName _pos != typeName [] || {count(_pos) != 3}}) exitWith {}; + + private["_id", "_class"]; + _id = _item select 0; + _class = _item select 1; + + private["_obj"]; + _obj = createVehicle [_class, _pos, [], 5, "None"]; + _obj setPos ([_pos, [[2 + random 3,0,0], random 360] call BIS_fnc_rotateVector2D] call BIS_fnc_vectorAdd); + _obj setVariable ["mf_item_id", _id, true]; +}; + +_successExec = +{ + // Mission completed + _drugpilerandomizer = [4,8,12]; + _drugpile = _drugpilerandomizer call BIS_fnc_SelectRandom; + + for "_i" from 1 to _drugpile do + { + private["_item"]; + _item = [ + ["lsd", "Land_WaterPurificationTablets_F"], + ["marijuana", "Land_VitaminBottle_F"], + ["cocaine","Land_PowderedMilk_F"], + ["heroin", "Land_PainKillers_F"] + ] call BIS_fnc_selectRandom; + [_item, _lastPos] call _drop_item; + }; + + _successHintMessage = "You have stopped the drugrunners! The drugs are yours to take!"; +}; + +_this call sideMissionProcessor; From cdaf63c824773f88fac32e5476646fe594939247 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 15:46:34 -0700 Subject: [PATCH 440/544] Quick fix for pull AI option on Darters. Thanks LouDnl --- addons/vactions/va_functions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/vactions/va_functions.sqf b/addons/vactions/va_functions.sqf index 903fd0c51..f441b443d 100644 --- a/addons/vactions/va_functions.sqf +++ b/addons/vactions/va_functions.sqf @@ -78,7 +78,7 @@ va_pull_player_action_available = { if (not(alive _player)) exitWith {false}; - if (not(isPlayer _target) && {_vehicle isKindOf "UAV_02_base_F" || {_vehicle isKindOf "UGV_01_base_F"}}) exitWith {false}; + if (not(isPlayer _target) && {_vehicle isKindOf "UAV_02_base_F" || {_vehicle isKindOf "UGV_01_base_F" || {_vehicle isKindOf "UAV_01_base_F"}}}) exitWith {false}; if (cursorTarget != _vehicle) exitWith {false}; if (not(locked _vehicle < 2)) exitWith {false}; if (not([_target, _vehicle] call va_player_inside)) exitWith {false}; From b0fd6dcf2eebd1873ad59dc2cc7d761092b757a0 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 16:10:01 -0700 Subject: [PATCH 441/544] Temporary fix for bunny invasion. Thanks LouDnl --- client/init.sqf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/client/init.sqf b/client/init.sqf index 814065f5d..fbab71cfd 100644 --- a/client/init.sqf +++ b/client/init.sqf @@ -39,6 +39,8 @@ waitUntil {time > 0.1}; removeAllWeapons player; player switchMove ""; +enableEnvironment false; // Temporary fix for client side FPS problems. Disables all wildlife and environment sounds + // initialize actions and inventory "client\actions" call mf_init; "client\inventory" call mf_init; From 83e96805db7e029caa3a25609ab8cefed9e3aa4d Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 16:43:18 -0700 Subject: [PATCH 442/544] Added max spawn beacon and delete beacon. Thanks LouDnl --- client/functions/clientCompile.sqf | 1 + client/items/beacon/deleteBeacon.sqf | 31 ++++++++++++++++++++++++++++ client/items/beacon/deploy.sqf | 19 +++++++++++++++-- server/default_config.sqf | 1 + server/init.sqf | 4 +++- 5 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 client/items/beacon/deleteBeacon.sqf diff --git a/client/functions/clientCompile.sqf b/client/functions/clientCompile.sqf index dac75d24c..a2bb064be 100644 --- a/client/functions/clientCompile.sqf +++ b/client/functions/clientCompile.sqf @@ -54,6 +54,7 @@ unitHandleDamage = "client\functions\unitHandleDamage.sqf" call mf_compile; updateTerritoryMarkers = "territory\client\updateTerritoryMarkers.sqf" call mf_compile; vehicleSideCfg = "client\functions\vehicleSideCfg.sqf" call mf_compile; weaponDisassembledEvent = "client\functions\weaponDisassembledEvent.sqf" call mf_compile; +deleteBeacon = "client\items\beacon\deleteBeacon.sqf" call mf_compile; // Player details and actions loadPlayerMenu = "client\systems\playerMenu\init.sqf" call mf_compile; diff --git a/client/items/beacon/deleteBeacon.sqf b/client/items/beacon/deleteBeacon.sqf new file mode 100644 index 000000000..b7f24fa7e --- /dev/null +++ b/client/items/beacon/deleteBeacon.sqf @@ -0,0 +1,31 @@ +// ****************************************************************************************** +// * This project is licensed under the GNU Affero GPL v3. Copyright © 2014 A3Wasteland.com * +// ****************************************************************************************** +//@file Version: 1.0 +//@file Name: deleteBeacon.sqf +//@file Author: LouD/Apoc +//@file Description: Delete a Spawn Beacon + +_MaxSpawnbeacons = ceil (["A3W_maxSpawnBeacons", 5] call getPublicVar); +#define MAX_BEACONS format ["You cannot deploy more then %1 spawnbeacons.", [_MaxSpawnbeacons]] +_confirmMsg = MAX_BEACONS + format ["
    Press delete to remove a random spawnbeacon."]; + +_beacons = []; +{ + if (_x getVariable ["ownerUID",""] == getPlayerUID player) then + { + _beacons pushBack _x; + }; +} forEach pvar_spawn_beacons; + +// Display confirm message +if ([parseText _confirmMsg, "DELETE BEACON", "Delete", true] call BIS_fnc_guiMessage) then +{ + _oldBeacon = _beacons select 0; + + pvar_spawn_beacons = pvar_spawn_beacons - [_oldBeacon]; + publicVariable "pvar_spawn_beacons"; + pvar_manualObjectDelete = [netId _oldBeacon, _oldBeacon getVariable "A3W_objectID"]; + publicVariableServer "pvar_manualObjectDelete"; + deleteVehicle _oldBeacon; +}; \ No newline at end of file diff --git a/client/items/beacon/deploy.sqf b/client/items/beacon/deploy.sqf index 27eedd8a4..0343e32e2 100644 --- a/client/items/beacon/deploy.sqf +++ b/client/items/beacon/deploy.sqf @@ -11,7 +11,22 @@ #define ANIM "AinvPknlMstpSlayWrflDnon_medic" #define ERR_CANCELLED "Action Cancelled" #define ERR_IN_VEHICLE "Action Failed! You can't do this in a vehicle" -private ["_hasFailed", "_success","_pos","_uid","_beacon"]; +#define MAX_BEACONS format ["You cannot deploy more then %1 spawnbeacons", [_MaxSpawnbeacons]] +_MaxSpawnbeacons = ceil (["A3W_maxSpawnBeacons", 5] call getPublicVar); + +private ["_hasFailed", "_success","_pos","_uid","_beacon","_beacons","_ownedBeacons"]; + +_beacons = []; +{ + if (_x getVariable ["ownerUID",""] == getPlayerUID player) then + { + _beacons pushBack _x; + }; +} forEach pvar_spawn_beacons; + +_ownedBeacons = count _beacons; + + _hasFailed = { private ["_progress", "_failed", "_text"]; _progress = _this select 0; @@ -20,6 +35,7 @@ _hasFailed = { case (!alive player): {}; case (doCancelAction) :{doCancelAction = false; _text = ERR_CANCELLED;}; case (vehicle player != player): {_text = ERR_IN_VEHICLE}; + case (_ownedBeacons >= _MaxSpawnbeacons): {_text = MAX_BEACONS; player spawn deleteBeacon}; default { _text = format["Spawn Beacon %1%2 Deployed", round(_progress*100), "%"]; _failed = false; @@ -57,4 +73,3 @@ if (_success) then { ["You placed the Spawn Beacon successfully!", 5] call mf_notify_client; }; _success; - diff --git a/server/default_config.sqf b/server/default_config.sqf index b0c4d86b3..ca3ec3944 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -18,6 +18,7 @@ A3W_globalVoiceMaxWarns = 3; // Number of global voice warnings after whic A3W_antiHackMinRecoil = 1.0; // Mininum recoil coefficient enforced by the antihack (recommended values: default = 1.0, TMR Mod = 0.5, VTS Weapon Resting = 0.25) (minimum: 0.02) A3W_spawnBeaconCooldown = 15*60; // Number of seconds to wait between each use of an individual spawn beacon (0 = disabled) A3W_spawnBeaconSpawnHeight = 1500; // Altitude in meters at which players will spawn when using spawn beacons (0 = ground/sea) +A3W_maxSpawnBeacons = 5; // Maxmimum number of spawn beacons (0 = disabled) A3W_uavControl = "group"; // Restrict connection to UAVs based on ownership ("owner", "group", "side") // Store settings diff --git a/server/init.sqf b/server/init.sqf index fb7c8f2be..b652bf118 100644 --- a/server/init.sqf +++ b/server/init.sqf @@ -116,7 +116,9 @@ forEach "A3W_atmTransferAllTeams", "A3W_atmEditorPlacedOnly", "A3W_atmMapIcons", - "A3W_atmRemoveIfDisabled" + "A3W_atmRemoveIfDisabled", + "A3W_uavControl", + "A3W_maxSpawnBeacons" ]; ["A3W_join", "onPlayerConnected", { [_id, _uid, _name] spawn fn_onPlayerConnected }] call BIS_fnc_addStackedEventHandler; From b654c74e1712fe67623b2e60d7ee6210d4c4390e Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 16:51:18 -0700 Subject: [PATCH 443/544] Tentative fix for unflip vehicle. Thanks LouDnl --- addons/vactions/misc_functions.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/vactions/misc_functions.sqf b/addons/vactions/misc_functions.sqf index f1f5ce651..e7041c90f 100644 --- a/addons/vactions/misc_functions.sqf +++ b/addons/vactions/misc_functions.sqf @@ -13,7 +13,7 @@ A3W_fnc_unflip = { def(_pos); _object allowDamage false; _pos = getPos _object; - _pos set [2, (_pos select 2) + 0.5]; + _pos set [2, (_pos select 2) + 1.5]; _object setPos _pos; _object setVectorUp _vector; [_object] spawn { From 1d91797657a5267b36edfac1e4784a60068adb14 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 16:56:26 -0700 Subject: [PATCH 444/544] Add fix for cctv camera's not lockable. Thanks LouDnl --- addons/cctv/cctv_functions.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/cctv/cctv_functions.sqf b/addons/cctv/cctv_functions.sqf index beb2e1f1a..8389f7f71 100644 --- a/addons/cctv/cctv_functions.sqf +++ b/addons/cctv/cctv_functions.sqf @@ -320,7 +320,8 @@ cctv_camera_use = { _camera setVariable ["camera_name", _camera_name, true]; _camera setVariable ["camera_owner_type", _owner_type, true]; _camera setVariable ["camera_owner_value", _owner_value, true]; - + _camera setVariable ["R3F_LOG_disabled", false, true]; // Added for locking and saving. + [_player, _owner_type] call cctv_enforce_limits; cctv_cameras pushBack _camera; publicVariable "cctv_cameras"; From 837efff60f95aec32e739a496e4937c102ea579a Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 17:29:36 -0700 Subject: [PATCH 445/544] Added cool down for town spawns. Thanks LouDnl --- client/functions/spawnInTown.sqf | 2 + .../playerMenu/dialog/loadRespawnDialog.sqf | 43 +++++++++++++++++-- server/default_config.sqf | 5 ++- server/init.sqf | 3 +- 4 files changed, 47 insertions(+), 6 deletions(-) diff --git a/client/functions/spawnInTown.sqf b/client/functions/spawnInTown.sqf index 7be774f16..c228ddd19 100644 --- a/client/functions/spawnInTown.sqf +++ b/client/functions/spawnInTown.sqf @@ -27,6 +27,8 @@ _preload = [_this, 1, false, [false]] call BIS_fnc_param; }; } forEach (call cityList); +player setVariable [_townName, diag_tickTime]; + respawnDialogActive = false; player setVariable ["respawnDialogActive", false, true]; diff --git a/client/systems/playerMenu/dialog/loadRespawnDialog.sqf b/client/systems/playerMenu/dialog/loadRespawnDialog.sqf index b5a67291d..7f66d5d21 100644 --- a/client/systems/playerMenu/dialog/loadRespawnDialog.sqf +++ b/client/systems/playerMenu/dialog/loadRespawnDialog.sqf @@ -13,6 +13,7 @@ #define DISABLE_ALL_BUTTONS format ["{ ctrlEnable [_x, false] } forEach %1;", [respawn_Random_Button, respawn_Spawn_Button, respawn_Locations_Type, respawn_Locations_List, respawn_Preload_Checkbox]] #define SPAWN_BEACON_COOLDOWN (["A3W_spawnBeaconCooldown", 5*60] call getPublicVar) #define BEACON_CHECK_RADIUS 250 +#define SPAWN_TOWN_COOLDOWN (["A3W_townSpawnCooldown", 5*60] call getPublicVar) disableSerialization; waitUntil {!isNil "bis_fnc_init" && {bis_fnc_init}}; @@ -36,6 +37,7 @@ _locList = _display displayCtrl respawn_Locations_List; _locMap = _display displayCtrl respawn_Locations_Map; _spawnBeaconCooldown = SPAWN_BEACON_COOLDOWN; +_townSpawnCooldown = SPAWN_TOWN_COOLDOWN; _side = switch (playerSide) do { @@ -240,14 +242,49 @@ _selLocChanged = { _isValid = true; _location call _getPlayersInfo; + + _text = ""; + + { + if (_x select 0 == _location) exitWith + { + _text = (_x select 2); + }; + } forEach (call cityList); - if (_enemyPlayers > _friendlyPlayers) then + _lastUseTown = player getVariable _text; + + if (!isNil "_lastUseTown") then { - _textStr = _textStr + "[Blocked by enemy] "; + _townSpawnCooldown = SPAWN_TOWN_COOLDOWN; + _remaining = _townSpawnCooldown - (diag_tickTime - _lastUseTown); + + if (_townSpawnCooldown > 0 && _remaining > 0) then + { + _textStr = _textStr + format ["[%1] ", _remaining call fn_formatTimer]; + } + else + { + if (_enemyPlayers > _friendlyPlayers) then + { + _textStr = _textStr + "[Blocked by enemy] "; + } + else + { + _spawnBtnEnabled = true; + }; + }; } else { - _spawnBtnEnabled = true; + if (_enemyPlayers > _friendlyPlayers) then + { + _textStr = _textStr + "[Blocked by enemy] "; + } + else + { + _spawnBtnEnabled = true; + }; }; }; }; diff --git a/server/default_config.sqf b/server/default_config.sqf index ca3ec3944..56ca4aef7 100644 --- a/server/default_config.sqf +++ b/server/default_config.sqf @@ -8,7 +8,7 @@ // This file is overriden by the external file "A3Wasteland_settings\main_config.sqf" if present // General settings -A3W_startHour = 4; // In-game hour at mission start (0 to 23) +A3W_startHour = 4; // In-game hour at mission start (0 to 23) A3W_timeMultiplierDay = 2.0; // Sets the speed of time between 5 AM and 8 PM (for example, 6.0 means 6 hours in-game will pass in 1 real hour) A3W_timeMultiplierNight = 4.0; // Sets the speed of time between 8 PM and 5 AM A3W_moonLight = 1; // Moon light during night (0 = no, 1 = yes) @@ -16,7 +16,8 @@ A3W_teamPlayersMap = 1; // Show all friendly players on the map at al A3W_globalVoiceWarnTimer = 1; // Number of seconds for which global voice chat must be active before triggering a warning (0 = disabled) A3W_globalVoiceMaxWarns = 3; // Number of global voice warnings after which the player will be killed and crashed (0 = disabled) A3W_antiHackMinRecoil = 1.0; // Mininum recoil coefficient enforced by the antihack (recommended values: default = 1.0, TMR Mod = 0.5, VTS Weapon Resting = 0.25) (minimum: 0.02) -A3W_spawnBeaconCooldown = 15*60; // Number of seconds to wait between each use of an individual spawn beacon (0 = disabled) +A3W_townSpawnCooldown = 5*60; // Number of seconds to wait between each use of a spawn on friends in towns (0 = disabled) +A3W_spawnBeaconCooldown = 15*60; // Number of seconds to wait between each use of an individual spawn beacon (0 = disabled) A3W_spawnBeaconSpawnHeight = 1500; // Altitude in meters at which players will spawn when using spawn beacons (0 = ground/sea) A3W_maxSpawnBeacons = 5; // Maxmimum number of spawn beacons (0 = disabled) A3W_uavControl = "group"; // Restrict connection to UAVs based on ownership ("owner", "group", "side") diff --git a/server/init.sqf b/server/init.sqf index b652bf118..36a2c3552 100644 --- a/server/init.sqf +++ b/server/init.sqf @@ -118,7 +118,8 @@ forEach "A3W_atmMapIcons", "A3W_atmRemoveIfDisabled", "A3W_uavControl", - "A3W_maxSpawnBeacons" + "A3W_maxSpawnBeacons", + "A3W_townSpawnCooldown" ]; ["A3W_join", "onPlayerConnected", { [_id, _uid, _name] spawn fn_onPlayerConnected }] call BIS_fnc_addStackedEventHandler; From 94f4b414bae99981643ab2d0d64cf43071f84af4 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 17:33:52 -0700 Subject: [PATCH 446/544] Remove UNCONSCIOUS players from friendly/enemy count. Thanks l0dac --- client/systems/playerMenu/dialog/loadRespawnDialog.sqf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/client/systems/playerMenu/dialog/loadRespawnDialog.sqf b/client/systems/playerMenu/dialog/loadRespawnDialog.sqf index 7f66d5d21..971e8a3b4 100644 --- a/client/systems/playerMenu/dialog/loadRespawnDialog.sqf +++ b/client/systems/playerMenu/dialog/loadRespawnDialog.sqf @@ -13,6 +13,7 @@ #define DISABLE_ALL_BUTTONS format ["{ ctrlEnable [_x, false] } forEach %1;", [respawn_Random_Button, respawn_Spawn_Button, respawn_Locations_Type, respawn_Locations_List, respawn_Preload_Checkbox]] #define SPAWN_BEACON_COOLDOWN (["A3W_spawnBeaconCooldown", 5*60] call getPublicVar) #define BEACON_CHECK_RADIUS 250 +#define UNCONSCIOUS(UNIT) (UNIT getVariable ["FAR_isUnconscious", 0] == 1) #define SPAWN_TOWN_COOLDOWN (["A3W_townSpawnCooldown", 5*60] call getPublicVar) disableSerialization; @@ -86,7 +87,7 @@ _setPlayersInfo = }; { - if (alive _x && {_x isKindOf "CAManBase"} && {_x distance _centerPos <= _maxRad}) then + if (alive _x && !UNCONSCIOUS(_x) && {_x isKindOf "CAManBase"} && {_x distance _centerPos <= _maxRad}) then { if (FRIENDLY_CONDITION) then { From 56353513fcd02ac30e3d624a7a8667926ca12c87 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 17:39:16 -0700 Subject: [PATCH 447/544] Another attempted fix for exploding vehicles. --- client/functions/fn_setupAntiExplode.sqf | 2 +- server/functions/spawnStoreObject.sqf | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/client/functions/fn_setupAntiExplode.sqf b/client/functions/fn_setupAntiExplode.sqf index 951d16285..cf275d83e 100644 --- a/client/functions/fn_setupAntiExplode.sqf +++ b/client/functions/fn_setupAntiExplode.sqf @@ -27,7 +27,7 @@ if (isNil "A3W_antiExplodeLocalEH") then if (_local && {(isTouchingGround _veh || (getPos _veh) select 2 < 0.1) && vectorMagnitude velocity _veh < 1}) then { _pos = getPosWorld _veh; - _pos set [2, (_pos select 2) + 0.2]; // might need to be increased if it doesn't work all the time + _pos set [2, (_pos select 2) + 0.3]; // might need to be increased if it doesn't work all the time _veh setPosWorld _pos; }; } call mf_compile; diff --git a/server/functions/spawnStoreObject.sqf b/server/functions/spawnStoreObject.sqf index c4195fe12..f69b260c3 100644 --- a/server/functions/spawnStoreObject.sqf +++ b/server/functions/spawnStoreObject.sqf @@ -250,13 +250,7 @@ if (_key != "" && isPlayer _player && {_isGenStore || _isGunStore || _isVehStore if (_object getVariable ["A3W_purchasedVehicle", false] && !isNil "fn_manualVehicleSave") then { _object call fn_manualVehicleSave; - }; - - if (_object isKindOf "AllVehicles") then - { - _object allowDamage false; - _object spawn { sleep 60; _this allowDamage true;}; - }; + }; }; }; }; From d9d8ea2e55d870d0d47e09b9e0aa4304c785de48 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 21:11:55 -0700 Subject: [PATCH 448/544] Fix for smuggler mission. --- server/missions/sideMissions/mission_Smugglers.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/missions/sideMissions/mission_Smugglers.sqf b/server/missions/sideMissions/mission_Smugglers.sqf index 0fd3e77ac..568847e22 100644 --- a/server/missions/sideMissions/mission_Smugglers.sqf +++ b/server/missions/sideMissions/mission_Smugglers.sqf @@ -46,7 +46,7 @@ _setupObjects = _box2 setVariable ["R3F_LOG_disabled", true, true]; _aiGroup = createGroup CIVILIAN; - [_aiGroup,_missionPos] spawn createsmugglerGroup; + [_aiGroup, _missionPos, _nbUnits] call createCustomGroup; _aiGroup setCombatMode "RED"; _aiGroup setBehaviour "COMBAT"; From c360c217b1c83d27f51811da1ce89ab03b87c141 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Fri, 15 May 2015 21:15:36 -0700 Subject: [PATCH 449/544] Updated to latest UAV_Control. --- addons/UAV_Control/config.sqf | 1 - addons/UAV_Control/functions.sqf | 67 ++++++++++---------------------- 2 files changed, 20 insertions(+), 48 deletions(-) delete mode 100644 addons/UAV_Control/config.sqf diff --git a/addons/UAV_Control/config.sqf b/addons/UAV_Control/config.sqf deleted file mode 100644 index 53952cf14..000000000 --- a/addons/UAV_Control/config.sqf +++ /dev/null @@ -1 +0,0 @@ -uav_control_permission = "group"; // Scope for who is able to access the UAV controls ("owner", "group", "side") \ No newline at end of file diff --git a/addons/UAV_Control/functions.sqf b/addons/UAV_Control/functions.sqf index 7ee351ff6..f5d8a9900 100644 --- a/addons/UAV_Control/functions.sqf +++ b/addons/UAV_Control/functions.sqf @@ -1,55 +1,28 @@ -call compile preprocessFileLineNumbers "addons\UAV_Control\config.sqf"; +// @file Name: functions.sqf +// @file Author: IvanMMM, micovery, AgentRev -uav_control_get_group_uids = { - private["_player"]; - _player = _this select 0; +private ["_perm", "_uav"]; +_perm = ["A3W_uavControl", "side"] call getPublicVar; - private["_group_uids"]; - _group_uids = [getPlayerUID _player]; - {if (true) then { - private["_member"]; - _member = _x; - if (isNil "_member" || { typeName _member != typeName objNull || {isNull _member}}) exitWith {}; +if (_perm == "side") exitWith {}; - private["_member_uid"]; - _member_uid = getPlayerUID _member; - if (isNil "_member_uid" || { typeName _member_uid != typeName "" || {_member_uid == ""}}) exitWith {}; +while {true} do +{ + waitUntil {sleep 0.1; _uav = getConnectedUAV player; !isNull _uav}; - _group_uids pushBack _member_uid; - };} forEach (units (group _player)); + // ignore quadcopters and remote designators + if ({_uav isKindOf _x} count ["StaticWeapon"] == 0) then + { + _ownerUID = _uav getVariable ["ownerUID", ""]; - (_group_uids) -}; - - -uav_control_check_access = { - private["_player", "_uav"]; - _player = _this select 0; - _uav = _this select 1; - - //if (_uav isKindOf "UAV_01_base_F") exitWith {}; //allow quad-rotors - - private["_uid", "_owner_uid"]; - _owner_uid = _uav getVariable ["ownerUID",""]; - _uid = getPlayerUID _player; + if (_ownerUID == "") exitWith {}; // UAV not owned by anyone + if (getPlayerUID player == _ownerUID) exitWith {}; + if (_perm == "group" && {{getPlayerUID _x == _ownerUID} count units player > 0}) exitWith {}; - if (_owner_uid == "" || {_uid == ""}) exitWith {}; //UAV not owned by anyone ... + player connectTerminalToUAV objNull; + playSound "FD_CP_Not_Clear_F"; + ["You are not allowed to connect to this unmanned vehicle.", 5] call mf_notify_client; + }; - if (uav_control_permission == "owner" && {_uid == _owner_uid}) exitWith {}; - if (uav_control_permission == "group" && {_owner_uid in ([_player] call uav_control_get_group_uids)}) exitWith {}; - if (uav_control_permission == "side") exitWith {}; //this is the default enforced by the game - - _player connectTerminalToUAV objNull; - ["You can't control this UAV. It doesn't belong to you", 5] call mf_notify_client; -}; - -uav_control_loop = { - private["_uav1", "_uav2"]; - while {true} do { - waitUntil { sleep 0.1; _uav1 = getConnectedUAV player; !(isNull _uav1)}; - [player, _uav1] call uav_control_check_access; - waitUntil { sleep 0.1; _uav2 = getConnectedUAV player; (isNull _uav2 || {_uav1 != _uav2})}; - }; + waitUntil {sleep 0.1; _uav != getConnectedUAV player}; }; - -[] spawn uav_control_loop; \ No newline at end of file From 936a556704bc9d20fe425444707a9ed59ff70538 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 16 May 2015 18:12:34 -0700 Subject: [PATCH 450/544] Enable spectator admin logging. --- client/systems/adminPanel/playerSelect.sqf | 1 + 1 file changed, 1 insertion(+) diff --git a/client/systems/adminPanel/playerSelect.sqf b/client/systems/adminPanel/playerSelect.sqf index 9f056ac14..e39f6deeb 100644 --- a/client/systems/adminPanel/playerSelect.sqf +++ b/client/systems/adminPanel/playerSelect.sqf @@ -51,6 +51,7 @@ if (_uid call isAdmin) then }; [player, _target] call camera_attach_to_target; + if (!isNil "notifyAdminMenu") then { ["spectate", name _target] spawn notifyAdminMenu }; player commandChat format ["Viewing %1.", name _target]; _spectateButton ctrlSetText "Spectating"; } else { From 5c6f210dfec1052e9067e3aeb37643b896d92e28 Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 16 May 2015 18:23:38 -0700 Subject: [PATCH 451/544] Placed enableEnvironment option in player menu. Thanks CRE4MPIE --- .../disableEnvironment/disableEnvironment.sqf | 17 +++++++++++++++++ .../playerMenu/dialog/player_settings.hpp | 10 +++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 addons/disableEnvironment/disableEnvironment.sqf diff --git a/addons/disableEnvironment/disableEnvironment.sqf b/addons/disableEnvironment/disableEnvironment.sqf new file mode 100644 index 000000000..259193fc6 --- /dev/null +++ b/addons/disableEnvironment/disableEnvironment.sqf @@ -0,0 +1,17 @@ +// @file Name: disableEnvinronment.sqf +// @file Author: CRE4MPIE + + +waitUntil {time > 0}; +if (soundVolume > 0.99) then + { + 0.5 fadeSound 0.98; + enableEnvironment true; + ["Environment effects Enabled.", 5] call mf_notify_client; + } + else + { + 0.5 fadeSound 1; + enableEnvironment false; + ["Environment effects Disabled.", 5] call mf_notify_client; + }; diff --git a/client/systems/playerMenu/dialog/player_settings.hpp b/client/systems/playerMenu/dialog/player_settings.hpp index d8300a474..6cbc2a93f 100644 --- a/client/systems/playerMenu/dialog/player_settings.hpp +++ b/client/systems/playerMenu/dialog/player_settings.hpp @@ -184,7 +184,15 @@ class playerSettings { w = 0.125; h = 0.033 * safezoneH; }; - /*class btnDistanceInsane : w_RscButton { + class btnDistanceEffects : w_RscButton { + idc = -1; + text = "Effects"; + onButtonClick = "[] execVM 'addons\disableEnvironment\disableEnvironment.sqf'"; + x = 0.02; y = 0.48; + w = 0.125; h = 0.033 * safezoneH; + }; + + /*class btnDistanceInsane : w_RscButton { text = "Insane"; onButtonClick = "setViewDistance 5000;"; x = 0.02; y = 0.60; From 5ac2b596d03cf17d012e7d25c5f8b77597cb302b Mon Sep 17 00:00:00 2001 From: Gigatek Date: Sat, 16 May 2015 23:10:29 -0700 Subject: [PATCH 452/544] Added more vehicle textures. Thanks CRE4MPIE and LouDnl --- client/images/vehicleTextures/camo_fuel.jpg | Bin 0 -> 85237 bytes client/images/vehicleTextures/camo_pank.jpg | Bin 0 -> 57063 bytes client/images/vehicleTextures/carbon.jpg | Bin 0 -> 75360 bytes client/images/vehicleTextures/clothcamo.jpg | Bin 0 -> 101781 bytes client/images/vehicleTextures/denim.jpg | Bin 0 -> 98862 bytes client/images/vehicleTextures/digicam.jpg | Bin 0 -> 100915 bytes client/images/vehicleTextures/dmr.jpg | Bin 0 -> 167800 bytes client/images/vehicleTextures/holland.jpg | Bin 0 -> 5890 bytes client/images/vehicleTextures/icecamo.jpg | Bin 0 -> 147319 bytes client/images/vehicleTextures/kitty.jpg | Bin 0 -> 122760 bytes client/images/vehicleTextures/leopard.jpg | Bin 0 -> 83408 bytes client/images/vehicleTextures/psych.jpg | Bin 0 -> 106517 bytes client/images/vehicleTextures/rainbow.jpg | Bin 0 -> 34945 bytes client/images/vehicleTextures/redcamo.jpg | Bin 0 -> 107913 bytes client/images/vehicleTextures/skulls.jpg | Bin 0 -> 123961 bytes client/images/vehicleTextures/snake.jpg | Bin 0 -> 127676 bytes client/images/vehicleTextures/swwd.jpg | Bin 0 -> 118029 bytes client/images/vehicleTextures/zebra.jpg | Bin 0 -> 55119 bytes storeConfig.sqf | 26 ++++++++++++++------ 19 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 client/images/vehicleTextures/camo_fuel.jpg create mode 100644 client/images/vehicleTextures/camo_pank.jpg create mode 100644 client/images/vehicleTextures/carbon.jpg create mode 100644 client/images/vehicleTextures/clothcamo.jpg create mode 100644 client/images/vehicleTextures/denim.jpg create mode 100644 client/images/vehicleTextures/digicam.jpg create mode 100644 client/images/vehicleTextures/dmr.jpg create mode 100644 client/images/vehicleTextures/holland.jpg create mode 100644 client/images/vehicleTextures/icecamo.jpg create mode 100644 client/images/vehicleTextures/kitty.jpg create mode 100644 client/images/vehicleTextures/leopard.jpg create mode 100644 client/images/vehicleTextures/psych.jpg create mode 100644 client/images/vehicleTextures/rainbow.jpg create mode 100644 client/images/vehicleTextures/redcamo.jpg create mode 100644 client/images/vehicleTextures/skulls.jpg create mode 100644 client/images/vehicleTextures/snake.jpg create mode 100644 client/images/vehicleTextures/swwd.jpg create mode 100644 client/images/vehicleTextures/zebra.jpg diff --git a/client/images/vehicleTextures/camo_fuel.jpg b/client/images/vehicleTextures/camo_fuel.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a46fd652a3555065a1c9a72899653e2531d968c4 GIT binary patch literal 85237 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 Wp#0~7&0{s&FD?E|f0vrrKmXaNkAjH+ literal 0 HcmV?d00001 diff --git a/client/images/vehicleTextures/camo_pank.jpg b/client/images/vehicleTextures/camo_pank.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a4655577ab529cf82d0cae2d01a28b16d344d22d GIT binary patch literal 57063 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 XL?ysK!_e; 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