mirror of
https://github.com/Bjanski/ExAd.git
synced 2024-08-30 16:52:14 +00:00
Compare commits
189 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
c50e5be955 | ||
|
cad1173871 | ||
|
76b7b794c9 | ||
|
8d7cb05ccc | ||
|
c4311287b7 | ||
|
23f8c101ec | ||
|
8c3a6f1aa6 | ||
|
69b839e263 | ||
|
d2bf0dfa40 | ||
|
415cb7247d | ||
|
423579c6aa | ||
|
fb43a8d6a6 | ||
|
4bad1d730e | ||
|
42084d68a7 | ||
|
c7369a668d | ||
|
747cd86da5 | ||
|
f6ba0fb660 | ||
|
a63a8924cb | ||
|
4375edb167 | ||
|
fc9ea59304 | ||
|
677b93c789 | ||
|
cd69bc1dcd | ||
|
c4039f1e63 | ||
|
c5817a75ec | ||
|
c10482f9ba | ||
|
e98f43ec83 | ||
|
31cccc44ac | ||
|
2fd2b3fb58 | ||
|
5895f69034 | ||
|
67b0efcc2c | ||
|
943d51131b | ||
|
281cebaa83 | ||
|
e416577f5f | ||
|
781206eab5 | ||
|
e27f50d1f8 | ||
|
6afcf5b07a | ||
|
bfaf4c1d46 | ||
|
d1508c6a56 | ||
|
f6fc9708c7 | ||
|
3ff3ad38e2 | ||
|
775a89c169 | ||
|
df2782ce1b | ||
|
024fcd3bab | ||
|
fc6a4bdc4d | ||
|
04d170f42e | ||
|
62f9055c6a | ||
|
29f8023759 | ||
|
e9bc7e922c | ||
|
1f1ad99825 | ||
|
8096c969a2 | ||
|
8c905b8b47 | ||
|
700487f832 | ||
|
7b23d55f6d | ||
|
86ead5defd | ||
|
1a122945c8 | ||
|
06a7b87978 | ||
|
b05f3ebd51 | ||
|
06b5f4e737 | ||
|
de75e480e9 | ||
|
c6d085ebe4 | ||
|
5348057ebb | ||
|
e34320e6b7 | ||
|
01a45904d2 | ||
|
ccdaaee941 | ||
|
814c80ed8e | ||
|
a4653c9db6 | ||
|
d1a1e831e7 | ||
|
7c34eea742 | ||
|
268662309f | ||
|
3fb6d18dd7 | ||
|
1b371ae88c | ||
|
af897d0503 | ||
|
d99ff6812d | ||
|
856674dd03 | ||
|
cc1f8cd4ab | ||
|
fa3591d939 | ||
|
c5a371edbd | ||
|
bc762b9877 | ||
|
8ffe82a541 | ||
|
ba9a79e72f | ||
|
81f6e6080e | ||
|
7bb0bfafcc | ||
|
b72a002c5b | ||
|
e43099adb1 | ||
|
9243234902 | ||
|
0356a93687 | ||
|
9e4a5ea638 | ||
|
de4d68996c | ||
|
f76ffbe618 | ||
|
23b4ab3632 | ||
|
f639dfea38 | ||
|
0b4afec1f1 | ||
|
621167afb9 | ||
|
ad8459e0ab | ||
|
f85c0cbfe2 | ||
|
429b35a197 | ||
|
0752e777d4 | ||
|
b1e7671662 | ||
|
10f3711659 | ||
|
a84b34b033 | ||
|
eee51e2fc1 | ||
|
92c5bf5bf5 | ||
|
fb7c47242e | ||
|
09e435e85e | ||
|
9d7696fbab | ||
|
978dc1b333 | ||
|
0df23647ef | ||
|
7c3efafb95 | ||
|
44506c6265 | ||
|
6e9c5cc1d9 | ||
|
e26c0a2426 | ||
|
8c81e31ca1 | ||
|
fc41f89e57 | ||
|
8cb2a778da | ||
|
ef5cdffcc5 | ||
|
eccaa71907 | ||
|
5baab224df | ||
|
242adfb2db | ||
|
24be1cfa8d | ||
|
48f8ffeafd | ||
|
7ca7a126df | ||
|
836746d60f | ||
|
b36d94d927 | ||
|
fe39bc6f76 | ||
|
e401fd6a9f | ||
|
99debcb7c4 | ||
|
696417c204 | ||
|
c4662b50d2 | ||
|
49ac41533b | ||
|
abb9cf13af | ||
|
5d139df2e2 | ||
|
e1e1f53caa | ||
|
9e78fcdf95 | ||
|
c15e45a53c | ||
|
f2374b242b | ||
|
1c6eca2b56 | ||
|
39a1fd8afb | ||
|
256de41c64 | ||
|
6edcf96df5 | ||
|
8f42005e84 | ||
|
8d5007f2b2 | ||
|
fe9923594f | ||
|
0887e49687 | ||
|
a59474586e | ||
|
fe3447ddbc | ||
|
ae880411ab | ||
|
c1320a9bc0 | ||
|
8c74dee46e | ||
|
f33422cdf1 | ||
|
c78d91099a | ||
|
8ef6f724bd | ||
|
0c81c048cf | ||
|
dd47fa0c02 | ||
|
eb12baf640 | ||
|
b3c2e7c8f1 | ||
|
f60fe7f5e8 | ||
|
8000b985db | ||
|
910cc04918 | ||
|
3896765c15 | ||
|
d113445fef | ||
|
27b0c0adcf | ||
|
3463f534da | ||
|
3a1dae36a7 | ||
|
dc9d3ae6ee | ||
|
e30a439a2a | ||
|
896efafdd6 | ||
|
abece6bad1 | ||
|
ae51823a1c | ||
|
82b9ccf8b9 | ||
|
2d19626711 | ||
|
091c30afc4 | ||
|
9efef8c383 | ||
|
4f6a833e6f | ||
|
60cc8b9c2d | ||
|
2fdf113f7b | ||
|
88a93cbcaa | ||
|
dfdeef9415 | ||
|
4adde68ad1 | ||
|
329383d33c | ||
|
db2722b77e | ||
|
a6421d561f | ||
|
fbea791206 | ||
|
6135d8967a | ||
|
051433f345 | ||
|
a4992d7afb | ||
|
40e3a95246 | ||
|
c017d42c6c | ||
|
6a9a1a8874 | ||
|
df832a5932 |
1
@ExileServer/addons/exad_dv/$PREFIX$
Normal file
1
@ExileServer/addons/exad_dv/$PREFIX$
Normal file
@ -0,0 +1 @@
|
|||||||
|
exad_dv
|
@ -0,0 +1,73 @@
|
|||||||
|
/*
|
||||||
|
fn_createMarker.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
params ["_vehObjNetId"];
|
||||||
|
|
||||||
|
_vehObj = objectFromNetId _vehObjNetId;
|
||||||
|
_vehClass = typeOf _vehObj;
|
||||||
|
_vehPos = getPosATL _vehObj;
|
||||||
|
|
||||||
|
moveOut (driver _vehObj);
|
||||||
|
_vehObj call ExileServer_system_vehicleSaveQueue_removeVehicle;
|
||||||
|
_vehObj call ExileServer_system_simulationMonitor_removeVehicle;
|
||||||
|
deleteVehicle _vehObj;
|
||||||
|
|
||||||
|
{
|
||||||
|
if(getText(missionConfigFile >> "CfgXM8" >> _x >> "vehicleClass") == _vehClass)exitWith{
|
||||||
|
|
||||||
|
_lootHolder = createVehicle ["LootWeaponHolder", _vehPos, [], 0, "CAN_COLLIDE"];
|
||||||
|
_lootHolder setDir (random 360);
|
||||||
|
_lootHolder setPosATL _vehPos;
|
||||||
|
|
||||||
|
{
|
||||||
|
_amount = if(count _x > 1)then{_x select 1}else{1};
|
||||||
|
if(_amount > 0)then{
|
||||||
|
_itemClassName = _x select 0;
|
||||||
|
_cargoType = _itemClassName call ExileClient_util_cargo_getType;
|
||||||
|
switch (_cargoType) do
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
{
|
||||||
|
if (_itemClassName isEqualTo "Exile_Item_MountainDupe") then
|
||||||
|
{
|
||||||
|
_lootHolder addMagazineCargoGlobal [_itemClassName, _amount];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_lootHolder addMagazineCargoGlobal [_itemClassName, _amount];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
case 3:
|
||||||
|
{
|
||||||
|
_lootHolder addBackpackCargoGlobal [_itemClassName, _amount];
|
||||||
|
};
|
||||||
|
case 2:
|
||||||
|
{
|
||||||
|
_lootHolder addWeaponCargoGlobal [_itemClassName, _amount];
|
||||||
|
};
|
||||||
|
default
|
||||||
|
{
|
||||||
|
_lootHolder addItemCargoGlobal [_itemClassName, _amount];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}forEach getArray(missionConfigFile >> "CfgXM8" >> _x >> "recipe");
|
||||||
|
};
|
||||||
|
}forEach ((missionConfigfile >> "CfgXM8") call BIS_fnc_getCfgSubClasses);
|
||||||
|
|
||||||
|
true
|
@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
fn_createMarker.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
params ["_playerNetId","_configClass","_player","_spawnPos","_spawnDir","_usePositionATL","_vehObj"];
|
||||||
|
|
||||||
|
_player = objectFromNetId _playerNetId;
|
||||||
|
|
||||||
|
_spawnPos = _player modelToWorld [0,2,0];
|
||||||
|
_spawnDir = direction _player;
|
||||||
|
_usePositionATL = true;
|
||||||
|
|
||||||
|
_vehicleClass = getText(missionConfigFile >> "CfgXM8" >> _configClass >> "vehicleClass");
|
||||||
|
|
||||||
|
_vehObj = [_vehicleClass, _spawnPos, _spawnDir, _usePositionATL] call ExileServer_object_vehicle_createNonPersistentVehicle;
|
||||||
|
|
||||||
|
if( getNumber(missionConfigFile >> "CfgXM8" >> _configClass >> "packable") > 0 ) then {
|
||||||
|
_vehObj setVariable ["ExAd_DV_Packable", true, true];
|
||||||
|
};
|
||||||
|
|
||||||
|
if( getNumber(missionConfigFile >> "CfgXM8" >> _configClass >> "autoCleanUp") > 0 ) then {
|
||||||
|
[_vehObj] spawn {
|
||||||
|
private ["_wait","_tick", "_vehObj","_driver"];
|
||||||
|
_wait = true;
|
||||||
|
_tick = 0;
|
||||||
|
_vehObj = [_this,0,objNull] call BIS_fnc_param;
|
||||||
|
|
||||||
|
while {_wait} do {
|
||||||
|
UISleep 1;
|
||||||
|
if(isNull _vehObj)exitWith{_wait = false};
|
||||||
|
|
||||||
|
_driver = driver _vehObj;
|
||||||
|
if(isNull _driver)then{
|
||||||
|
_tick = _tick + 1;
|
||||||
|
}else{
|
||||||
|
_tick = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
if(_tick >= ExAd_DV_DESPAWN_IDLE_TIME)exitWith{_wait = false};
|
||||||
|
};
|
||||||
|
|
||||||
|
moveOut (driver _vehObj);
|
||||||
|
_vehObj call ExileServer_system_vehicleSaveQueue_removeVehicle;
|
||||||
|
_vehObj call ExileServer_system_simulationMonitor_removeVehicle;
|
||||||
|
deleteVehicle _vehObj;
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
true
|
1
@ExileServer/addons/exad_dv/PboPrefix.txt
Normal file
1
@ExileServer/addons/exad_dv/PboPrefix.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
exad_dv
|
@ -17,7 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ExAd_Hacking {
|
class ExAd_DV {
|
||||||
requiredVersion = 0.1;
|
requiredVersion = 0.1;
|
||||||
requiredAddons[] = {"ExAd_Core"};
|
requiredAddons[] = {"ExAd_Core"};
|
||||||
};
|
};
|
||||||
@ -25,21 +25,21 @@ class CfgPatches {
|
|||||||
|
|
||||||
class CfgFunctions {
|
class CfgFunctions {
|
||||||
class ExAdServer {
|
class ExAdServer {
|
||||||
class Hacking {
|
class DV {
|
||||||
file = "exad_hacking\Functions";
|
file = "exad_dv\Functions";
|
||||||
class startHack {};
|
class spawnDeployableVehicle {};
|
||||||
class stopHack {};
|
class despawnDeployableVehicle {};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class CfgNetworkMessages
|
class CfgNetworkMessages
|
||||||
{
|
{
|
||||||
class startHack
|
class spawnDeployableVehicle
|
||||||
{
|
{
|
||||||
parameters[] = {"STRING","STRING"};
|
parameters[] = {"STRING","STRING"};
|
||||||
};
|
};
|
||||||
class stopHack
|
class despawnDeployableVehicle
|
||||||
{
|
{
|
||||||
parameters[] = {"STRING"};
|
parameters[] = {"STRING"};
|
||||||
};
|
};
|
@ -1 +0,0 @@
|
|||||||
exad_grinding
|
|
@ -1,39 +0,0 @@
|
|||||||
/*
|
|
||||||
fn_grindProgress.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_object","_databaseID"];
|
|
||||||
|
|
||||||
_object = objectFromNetId ([_this, 0, "",[""]] call BIS_fnc_param);
|
|
||||||
|
|
||||||
if(isNull _object)exitWith{false};
|
|
||||||
|
|
||||||
if((_object getVariable ["ExAd_Grinding_progress", 0]) >= ExAd_GRINDING_OBJECT_MAX)then{
|
|
||||||
_object setVariable ["ExileAccessCode", nil];
|
|
||||||
_object setVariable ["ExileIsLocked", nil, true];
|
|
||||||
|
|
||||||
_databaseID = _object getVariable ["ExileDatabaseID",0];
|
|
||||||
format ["addDoorLock:%1:%2","000000",_databaseID] call ExileServer_system_database_query_fireAndForget;
|
|
||||||
|
|
||||||
["Grinding", format["Grind successful: Territory ID - %1|Object ID - %2", _object setVariable ["ExileTerritoryID", -1], _object getVariable ["ExileDatabaseID",0]]] call ExAdServer_fnc_log;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
_object setVariable ["ExAd_Grinding_progress", (_object getVariable ["ExAd_Grinding_progress", 0]) + ExAd_GRINDING_PROGRESS, true];
|
|
||||||
|
|
||||||
true
|
|
@ -1 +0,0 @@
|
|||||||
exad_grinding
|
|
@ -1 +0,0 @@
|
|||||||
exad_hacking
|
|
@ -1,169 +0,0 @@
|
|||||||
/*
|
|
||||||
fn_startHack.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
private ["_object","_player","_laptops","_pos","_laptop"];
|
|
||||||
|
|
||||||
_object = objectFromNetId ([_this, 0, "",[""]] call BIS_fnc_param);
|
|
||||||
_player = objectFromNetId ([_this, 1, "",[""]] call BIS_fnc_param);
|
|
||||||
|
|
||||||
if(isNull _object || isNull _player)exitWith{false};
|
|
||||||
|
|
||||||
_flag = ((getPos _object) nearObjects ["Exile_Construction_Flag_Static", 150]) select 0;
|
|
||||||
|
|
||||||
if(ExAd_HACKING_PLAYER_ONLINE && !([_flag] call ExAdServer_fnc_territoryPlayerPresent))exitWith{
|
|
||||||
[STR_ExAd_HACKING_NOTI_NO_PLAYER_PRESENT ,0,0.6,2,0] remoteExec ["BIS_fnc_dynamicText",owner _player];
|
|
||||||
};
|
|
||||||
|
|
||||||
if(_flag getVariable ["ExAd_HACKS_SUCCEEDED",0] >= ExAd_HACKING_TERRITORY_MAX)exitWith{
|
|
||||||
[STR_ExAd_HACKING_NOTI_MAX_TERRITORY_HACKS_REACHED ,0,0.6,2,0] remoteExec ["BIS_fnc_dynamicText",owner _player];
|
|
||||||
};
|
|
||||||
|
|
||||||
_laptops = nearestObjects [getPos _object, ["Exile_Construction_Laptop_Static"], 200];
|
|
||||||
if(({(_x getVariable ["ExAd_HACKING_IN_PROGRESS", false])}count _laptops) >= 1)exitWith{
|
|
||||||
[STR_ExAd_HACKING_NOTI_TERRITORY_ONE_HACK,0,0.6,2,0] remoteExec ["BIS_fnc_dynamicText",owner _player];
|
|
||||||
false
|
|
||||||
};
|
|
||||||
|
|
||||||
if(isNil "ExAd_HACKS_IN_PROGRESS")then{
|
|
||||||
ExAd_HACKS_IN_PROGRESS = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
["Hacking", format["Hack started: Player - %1(%2)|Territory - %3|Hacks in motion - %4",name _player, getPlayerUID _player, _flag getVariable ["ExileTerritoryName", "Unknown"], ExAd_HACKS_IN_PROGRESS]] call ExAdServer_fnc_log;
|
|
||||||
|
|
||||||
_pos = _player modelToWorld [0, +0.5, 0];
|
|
||||||
_pos set [2,((getPosATL _player) select 2)];
|
|
||||||
|
|
||||||
_laptop = createVehicle ["Exile_Construction_Laptop_Static", _pos, [], 0, "CAN_COLLIDE"];
|
|
||||||
_laptop setDir ((direction _player) - 90);
|
|
||||||
|
|
||||||
_laptop setVariable ["ExAd_HACKING_IN_PROGRESS", true, true];
|
|
||||||
_laptop animate ["LaptopLidRotation", 1];
|
|
||||||
|
|
||||||
_player removeItem "Exile_Item_Laptop";
|
|
||||||
|
|
||||||
[_object, _player, _laptop, _flag] spawn {
|
|
||||||
params ["_object","_player","_laptop","_flag","_markers","_marker","_success","_ticks","_newSize","_destroy","_msg"];
|
|
||||||
UISleep 2;
|
|
||||||
|
|
||||||
(parseText (format["<t color='%1' size='%2' font='%3'>%4</t><br/><t color='%5' size='%6' font='%7'>%8</t>", ExAd_Hint_Title_Color, ExAd_Hint_Title_Size, ExAd_Hint_Title_Font,STR_ExAd_HACKING_HINT_TITLE, ExAd_Hint_Msg_Color, ExAd_Hint_Msg_Size, ExAd_Hint_Msg_Font, STR_ExAd_HACKING_HINT_HACK_START])) remoteExec ["hint", -2];
|
|
||||||
|
|
||||||
if(ExAd_HACKS_IN_PROGRESS >= ExAd_HACKING_ALLOWED_HACKS)exitWith{
|
|
||||||
_laptop setVariable ["ExAd_HACKING_IN_PROGRESS", false, true];
|
|
||||||
_laptop setDamage 1;
|
|
||||||
[format[STR_ExAd_HACKING_NOTI_MAX_SIM_HACKS],0,0.6,2,0] remoteExec ["BIS_fnc_dynamicText",owner _player];
|
|
||||||
false
|
|
||||||
};
|
|
||||||
|
|
||||||
ExAd_HACKS_IN_PROGRESS = ExAd_HACKS_IN_PROGRESS + 1;
|
|
||||||
|
|
||||||
_markers = [getPos _laptop, ExAd_HACKING_MARKER_COLOR, 200, str (netId _object), ExAd_HACKING_MARKER_TITLE,true] call ExAdServer_fnc_createMarker;
|
|
||||||
_marker = _markers select 0;
|
|
||||||
_success = false;
|
|
||||||
|
|
||||||
while {!(_laptop getVariable ["ExAd_HACK_INTERUPTED",false]) && _laptop getVariable ["ExAd_HACK", 0] <= ExAd_HACKING_MAX_TIME} do {
|
|
||||||
UISleep 1;
|
|
||||||
_ticks = (_laptop getVariable ["ExAd_HACK", 0]) + 1;
|
|
||||||
_laptop setVariable ["ExAd_HACK", _ticks];
|
|
||||||
|
|
||||||
if((_ticks % (ExAd_HACKING_MAX_TIME / 10)) == 0)then{
|
|
||||||
_newSize = ((getMarkerSize _marker) select 0) - 20;
|
|
||||||
_marker setMarkerSize [_newSize,_newSize];
|
|
||||||
};
|
|
||||||
|
|
||||||
if(_ticks >= ExAd_HACKING_MAX_TIME)exitWith{_success = true};
|
|
||||||
|
|
||||||
waitUntil{{(_x distance (getPosATL _laptop)) < ExAd_HACKING_MAX_DISTANCE}count playableUnits > 0};
|
|
||||||
};
|
|
||||||
|
|
||||||
_laptop setVariable ["ExAd_HACKING_IN_PROGRESS", false, true];
|
|
||||||
_laptop animate ["LaptopLidRotation", 0];
|
|
||||||
_destroy = false;
|
|
||||||
|
|
||||||
_msg = if(_success && ((random 1) > ExAd_HACKING_FAILED_HACK))then{
|
|
||||||
_flag setVariable ["ExAd_HACKS_SUCCEEDED", (_flag getVariable ["ExAd_HACKS_SUCCEEDED",0]) + 1];
|
|
||||||
if(_object isKindOf "Exile_Construction_Flag_Static")then{
|
|
||||||
if(!isClass(configFile >> "CfgPatches" >> "ExAd_VG"))then{
|
|
||||||
["startHack", "You are missing the ExAd_VG dependenci to run this function.", true] call ExAd_fnc_debugHandler;
|
|
||||||
"This server isn't using the ExAd Virtual Garage, tell the admins to get a grip!!"
|
|
||||||
}else{
|
|
||||||
private ["_vehList","_objId","_vehObj","_extDB2Message","_pos"];
|
|
||||||
_vehList = _object getVariable ["ExAdVGVeh", []];
|
|
||||||
if((count _vehList) > 0)then{
|
|
||||||
_objId = (_vehList call BIS_fnc_selectRandom) select 0;
|
|
||||||
{
|
|
||||||
if((_x select 0) isEqualTo _objId)exitWith{
|
|
||||||
_vehList deleteAt _forEachIndex;
|
|
||||||
}
|
|
||||||
}forEach _vehList;
|
|
||||||
_object setVariable ["ExAdVGVeh", _vehList, true];
|
|
||||||
|
|
||||||
_vehObj = _objId call ExileServer_object_vehicle_database_load;
|
|
||||||
_extDB2Message = ["loadVehFromVG", [_objId]] call ExileServer_util_extDB2_createMessage;
|
|
||||||
_extDB2Message call ExileServer_system_database_query_fireAndForget;
|
|
||||||
|
|
||||||
_pos = getPosATL _vehObj;
|
|
||||||
_pos set [2, (_pos select 2) + 0.1];
|
|
||||||
_vehObj setPosATL _pos;
|
|
||||||
_vehObj lock 0;
|
|
||||||
|
|
||||||
_displayName = getText(ConfigFile >> "CfgVehicles" >> typeOf _vehObj >> "displayName");
|
|
||||||
["Hacking", format["Hack Successful: Territory - %1| Virtual Garage - %2(%3)",_flag getVariable ["ExileTerritoryName", "Unknown"], _displayName, _objId]] call ExAdServer_fnc_log;
|
|
||||||
|
|
||||||
format[STR_ExAd_HACKING_NOTI_VG_SUCCESS, _displayName]
|
|
||||||
}else{
|
|
||||||
["Hacking", format["Hack Successful: Territory - %1| Virtual Garage - No Vehicle",_flag getVariable ["ExileTerritoryName", "Unknown"]]] call ExAdServer_fnc_log;
|
|
||||||
STR_ExAd_HACKING_NOTI_VG_NO_VEH
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
["Hacking", format["Hack Successful: Territory - %1| Safe(%2) opened",_flag getVariable ["ExileTerritoryName", "Unknown"], _object getVariable ["ExileDatabaseID", -1]]] call ExAdServer_fnc_log;
|
|
||||||
|
|
||||||
_object setVariable ["ExileIsLocked",0,true];
|
|
||||||
STR_ExAd_HACKING_NOTI_SAFE_SUCCESS
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
if(_laptop getVariable ["ExAd_HACK_INTERUPTED",false])then{
|
|
||||||
["Hacking", format["Hack Interupted: Territory - %1",_flag getVariable ["ExileTerritoryName", "Unknown"]]] call ExAdServer_fnc_log;
|
|
||||||
STR_ExAd_HACKING_NOTI_INTERUPTED
|
|
||||||
}else{
|
|
||||||
_destroy = true;
|
|
||||||
["Hacking", format["Hack Failed: Territory - %1",_flag getVariable ["ExileTerritoryName", "Unknown"]]] call ExAdServer_fnc_log;
|
|
||||||
STR_ExAd_HACKING_NOTI_FAILED
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
if(_destroy)then{
|
|
||||||
_laptop setDamage 1;
|
|
||||||
}else{
|
|
||||||
private ["_holderPos","_holder"];
|
|
||||||
_holderPos = getPosATL _laptop;
|
|
||||||
deleteVehicle _laptop;
|
|
||||||
_holder = createVehicle ["GroundWeaponHolder", _holderPos, [], 0, "CAN_COLLIDE"];
|
|
||||||
_holder addMagazineCargoGlobal ["Exile_Item_Laptop", 1];
|
|
||||||
};
|
|
||||||
|
|
||||||
{
|
|
||||||
if(((getPosATL _laptop) distance (getPosATL _x)) < ExAd_HACKING_MAX_DISTANCE)then{
|
|
||||||
[_msg,0,0.6,2,0] remoteExec ["BIS_fnc_dynamicText", owner _x]
|
|
||||||
}
|
|
||||||
}forEach playableUnits;
|
|
||||||
|
|
||||||
ExAd_HACKS_IN_PROGRESS = ExAd_HACKS_IN_PROGRESS - 1;
|
|
||||||
{deleteMarker _x}forEach _markers;
|
|
||||||
};
|
|
||||||
|
|
||||||
true
|
|
@ -1 +0,0 @@
|
|||||||
exad_hacking
|
|
@ -1 +0,0 @@
|
|||||||
exad_vg
|
|
@ -1,56 +0,0 @@
|
|||||||
/*
|
|
||||||
fn_VGLoad.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_objVehNetId","_objVeh","_flagNetId","_flag","_objVehId","_flagId","_data","_extDB2Message","_vehList"];
|
|
||||||
|
|
||||||
_objId = [_this,0,"",[""]] call BIS_fnc_param;
|
|
||||||
_flagNetId = [_this,1,"",[""]] call BIS_fnc_param;
|
|
||||||
_playerNetId = [_this,2,"",[""]] call BIS_fnc_param;
|
|
||||||
_flag = objectFromNetId _flagNetId;
|
|
||||||
_player = objectFromNetId _playerNetId;
|
|
||||||
_requestFrom = owner _player;
|
|
||||||
|
|
||||||
_proceed = false;
|
|
||||||
_vehList = _flag getVariable ["ExAdVGVeh", []];
|
|
||||||
|
|
||||||
{
|
|
||||||
if((format["%1",_x select 0]) isEqualTo _objId)exitWith{
|
|
||||||
_vehList deleteAt _forEachIndex;
|
|
||||||
_proceed = true;
|
|
||||||
}
|
|
||||||
}forEach _vehList;
|
|
||||||
|
|
||||||
if(!_proceed)exitWith{[_owner, "toastRequest", ["ErrorTitleAndText", ["ExAd - Virtual Garage", STR_ExAd_VG_NOTI_NOT_AVAILABLE]]] call ExileServer_system_network_send_to};
|
|
||||||
|
|
||||||
_flag setVariable ["ExAdVGVeh", _vehList, true];
|
|
||||||
|
|
||||||
_vehObj = (parseNumber _objId) call ExileServer_object_vehicle_database_load;
|
|
||||||
_extDB2Message = ["loadVehFromVG", [parseNumber _objId]] call ExileServer_util_extDB2_createMessage;
|
|
||||||
_extDB2Message call ExileServer_system_database_query_fireAndForget;
|
|
||||||
|
|
||||||
if(ExAd_VG_SHOW_ADVHINT)then{
|
|
||||||
[["advancedHint", ["VGLoad",[_vehObj getVariable["ExileAccessCode",""]]]], _requestFrom] call ExAdServer_fnc_clientDispatch;
|
|
||||||
};
|
|
||||||
|
|
||||||
_pos = getPosATL _vehObj;
|
|
||||||
_pos set [2, (_pos select 2) + 0.1];
|
|
||||||
_vehObj setPosATL _pos;
|
|
||||||
|
|
||||||
["VirtualGarage", format["Spawned: Player - %1(%2)|Vehicle - %3(%4)|",name _player, getPlayerUID _player, typeOf _vehObj, _objId]] call ExAdServer_fnc_log;
|
|
||||||
|
|
||||||
true
|
|
@ -1,66 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_objVehNetId","_objVeh","_flagNetId","_flag","_owner","_objVehId","_flagId","_data","_extDB2Message","_vehList"];
|
|
||||||
|
|
||||||
_objVehNetId = [_this,0,"",[""]] call BIS_fnc_param;
|
|
||||||
_objVeh = objectFromNetId _objVehNetId;
|
|
||||||
_flagNetId = [_this,1,"",[""]] call BIS_fnc_param;
|
|
||||||
_flag = objectFromNetId _flagNetId;
|
|
||||||
_owner = owner _objVeh;
|
|
||||||
_player = {if(owner _x == _owner)exitWith{_x}}forEach playableUnits;
|
|
||||||
|
|
||||||
if!(_objVeh getVariable ["ExileIsPersistent", false])exitWith{[_owner, "toastRequest", ["ErrorTitleAndText", ["ExAd - Virtual Garage", STR_ExAd_VG_NOTI_NOT_PERSISTENT]]] call ExileServer_system_network_send_to;false};
|
|
||||||
|
|
||||||
if!(_objVeh setOwner 2)exitWith{format["Get out of the vehicle before storing it."] remoteExec ["hint", _owner]; false};
|
|
||||||
|
|
||||||
if!(isNil "ExAd_VG_CLEAN_ON_STORE")then{
|
|
||||||
if(ExAd_VG_CLEAN_ON_STORE)then{
|
|
||||||
clearBackpackCargoGlobal _objVeh;
|
|
||||||
clearItemCargoGlobal _objVeh;
|
|
||||||
clearMagazineCargoGlobal _objVeh;
|
|
||||||
clearWeaponCargoGlobal _objVeh;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
_objVeh call ExileServer_object_vehicle_database_update;
|
|
||||||
|
|
||||||
_objVehId = _objVeh getVariable ["ExileDatabaseID",-1];
|
|
||||||
_flagId = _flag getVariable ["ExileDatabaseID", -1];
|
|
||||||
|
|
||||||
if(_objVehId > -1 && _flagId > -1)then{
|
|
||||||
["VirtualGarage", format["Store: Player - %1(%2)|Vehicle - %3(%4)|Reset gear - %5",name _player, getPlayerUID _player, typeOf _objVeh, _objVehId, str ExAd_VG_CLEAN_ON_STORE]] call ExAdServer_fnc_log;
|
|
||||||
|
|
||||||
_data = [_flagId, _objVehId];
|
|
||||||
|
|
||||||
_extDB2Message = ["loadVehToVG", _data] call ExileServer_util_extDB2_createMessage;
|
|
||||||
_extDB2Message call ExileServer_system_database_query_fireAndForget;
|
|
||||||
|
|
||||||
_objVeh call ExileServer_system_vehicleSaveQueue_removeVehicle;
|
|
||||||
_objVeh call ExileServer_system_simulationMonitor_removeVehicle;
|
|
||||||
deleteVehicle _objVeh;
|
|
||||||
|
|
||||||
_vehList = _flag getVariable ["ExAdVGVeh", []];
|
|
||||||
_vehList pushBack [_objVehId, typeOf _objVeh];
|
|
||||||
_flag setVariable ["ExAdVGVeh", _vehList, true];
|
|
||||||
|
|
||||||
if(ExAd_VG_SHOW_ADVHINT)then{
|
|
||||||
[["advancedHint", ["VGStore",[]]], _owner] call ExAdServer_fnc_clientDispatch;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
true
|
|
@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
fn_requestVGDetailInfo.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_objVehNetId","_objVeh","_flagNetId","_flag","_objVehId","_flagId","_data","_extDB2Message","_vehList"];
|
|
||||||
|
|
||||||
_objId = [_this,0,"",[""]] call BIS_fnc_param;
|
|
||||||
_flagNetId = [_this,1,"",[""]] call BIS_fnc_param;
|
|
||||||
_streamFriendlyUI = [_this,2,0,[0]] call BIS_fnc_param;
|
|
||||||
_playerNetId = [_this,3,"",[""]] call BIS_fnc_param;
|
|
||||||
_ctrl = [_this,4,-1,[0]] call BIS_fnc_param;
|
|
||||||
_flag = objectFromNetId _flagNetId;
|
|
||||||
_requestFrom = owner (objectFromNetId _playerNetId);
|
|
||||||
|
|
||||||
_data = format ["loadVehicle:%1", _objId] call ExileServer_system_database_query_selectSingle;
|
|
||||||
|
|
||||||
if(count _data > 0)then{
|
|
||||||
_displayName = getText(ConfigFile >> "CfgVehicles" >> (_data select 1) >> "displayName");
|
|
||||||
_pinCode = if(_streamFriendlyUI == 0)then{_data select 20}else{"XXXX"};
|
|
||||||
_fuel = _data select 5;
|
|
||||||
_damage = _data select 6;
|
|
||||||
_texture = _data select 21;
|
|
||||||
_items = _data select 17;
|
|
||||||
_magazines = _data select 18;
|
|
||||||
_weapons = _data select 19;
|
|
||||||
|
|
||||||
_text = format[STR_ExAd_VG_APP_DETAILS, "<br/>", _displayName, _pinCode, _fuel, _damage, _texture, _items, _magazines, _weapons];
|
|
||||||
|
|
||||||
[_text,_ctrl] remoteExec ["ExAd_fnc_loadVGDetailView", _requestFrom];
|
|
||||||
};
|
|
||||||
|
|
||||||
true
|
|
@ -1 +0,0 @@
|
|||||||
exad_vg
|
|
@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
config.cpp
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
class CfgPatches {
|
|
||||||
class ExAd_VG {
|
|
||||||
requiredVersion = 0.1;
|
|
||||||
requiredAddons[] = {"ExAd_Core"};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
class CfgFunctions {
|
|
||||||
class ExAdServer {
|
|
||||||
class VG {
|
|
||||||
file = "exad_vg\Functions";
|
|
||||||
class requestVGDetailInfo {};
|
|
||||||
class VGLoad {};
|
|
||||||
class VGStore {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
class CfgNetworkMessages
|
|
||||||
{
|
|
||||||
class VGStore
|
|
||||||
{
|
|
||||||
parameters[] = {"STRING","STRING","STRING"};
|
|
||||||
};
|
|
||||||
class VGLoad
|
|
||||||
{
|
|
||||||
parameters[] = {"STRING","STRING","STRING"};
|
|
||||||
};
|
|
||||||
class requestVGDetailInfo
|
|
||||||
{
|
|
||||||
parameters[] = {"STRING","STRING","SCALAR","STRING","SCALAR"};
|
|
||||||
};
|
|
||||||
};
|
|
38
@ExileServer/extDB/sql_custom (64-bit)/exile.ini
Normal file
38
@ExileServer/extDB/sql_custom (64-bit)/exile.ini
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
;1. Find following sections and replace the commented lines;
|
||||||
|
;This is the 64-Bit version of the exile.ini addons for ExAd just to make it easier for those who use 64-Bit servers.
|
||||||
|
|
||||||
|
[loadVehicleIdPage]
|
||||||
|
;SQL1_1 = SELECT id FROM vehicle LIMIT ?,?
|
||||||
|
SQL1_1 = SELECT id FROM vehicle WHERE deleted_at IS NULL AND territory_id IS NULL LIMIT ?,?
|
||||||
|
SQL1_INPUTS = 1,2
|
||||||
|
OUTPUT = 1
|
||||||
|
|
||||||
|
; Removes vehicles that were not used within ? days
|
||||||
|
[deleteOldVehicles]
|
||||||
|
;SQL1_1 = DELETE FROM vehicle WHERE deleted_at < DATE_SUB(NOW(), INTERVAL ? DAY)
|
||||||
|
SQL1_1 = DELETE FROM vehicle WHERE territory_id IS NULL AND deleted_at < DATE_SUB(NOW(), INTERVAL ? DAY)
|
||||||
|
SQL1_INPUTS = 1
|
||||||
|
|
||||||
|
; Marks for deletion vehicles that were not used within ? days
|
||||||
|
[markDeleteOldVehicles]
|
||||||
|
; SQL1_1 = UPDATE vehicle SET deleted_at = NOW() WHERE last_updated_at < DATE_SUB(NOW(), INTERVAL ? DAY)
|
||||||
|
SQL1_1 = UPDATE vehicle SET deleted_at = NOW() WHERE last_updated_at < DATE_SUB(NOW(), INTERVAL ? DAY) AND territory_id IS NULL
|
||||||
|
SQL1_INPUTS = 1
|
||||||
|
|
||||||
|
;2. Add all below in the end of the file.
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Virtual Garage related queries | ADDED BY [ExAd]Jan
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
[loadTerritoryVehicles]
|
||||||
|
SQL1_1 = SELECT id, class FROM vehicle WHERE territory_id = ?
|
||||||
|
SQL1_INPUTS = 1
|
||||||
|
OUTPUT = 1,2-STRING
|
||||||
|
|
||||||
|
[loadVehFromVG]
|
||||||
|
SQL1_1 = UPDATE vehicle SET territory_id = NULL WHERE id = ?
|
||||||
|
SQL1_INPUTS = 1
|
||||||
|
|
||||||
|
[loadVehToVG]
|
||||||
|
SQL1_1 = UPDATE vehicle SET territory_id = ? WHERE id = ?
|
||||||
|
SQL1_INPUTS = 1,2
|
@ -1,4 +1,4 @@
|
|||||||
;1. Find [loadVehicleIdPage] and replace the section with this;
|
;1. Find following sections and replace the commented lines;
|
||||||
|
|
||||||
[loadVehicleIdPage]
|
[loadVehicleIdPage]
|
||||||
;SQL1_1 = SELECT id FROM vehicle LIMIT ?,?
|
;SQL1_1 = SELECT id FROM vehicle LIMIT ?,?
|
||||||
@ -7,6 +7,20 @@ Number Of Inputs = 2
|
|||||||
SQL1_INPUTS = 1,2
|
SQL1_INPUTS = 1,2
|
||||||
OUTPUT = 1
|
OUTPUT = 1
|
||||||
|
|
||||||
|
; Removes vehicles that were not used within ? days
|
||||||
|
[deleteOldVehicles]
|
||||||
|
;SQL1_1 = DELETE FROM vehicle WHERE deleted_at < DATE_SUB(NOW(), INTERVAL ? DAY)
|
||||||
|
SQL1_1 = DELETE FROM vehicle WHERE territory_id IS NULL AND deleted_at < DATE_SUB(NOW(), INTERVAL ? DAY)
|
||||||
|
Number Of Inputs = 1
|
||||||
|
SQL1_INPUTS = 1
|
||||||
|
|
||||||
|
; Marks for deletion vehicles that were not used within ? days
|
||||||
|
[markDeleteOldVehicles]
|
||||||
|
; SQL1_1 = UPDATE vehicle SET deleted_at = NOW() WHERE last_updated_at < DATE_SUB(NOW(), INTERVAL ? DAY)
|
||||||
|
SQL1_1 = UPDATE vehicle SET deleted_at = NOW() WHERE last_updated_at < DATE_SUB(NOW(), INTERVAL ? DAY) AND territory_id IS NULL
|
||||||
|
Number Of Inputs = 1
|
||||||
|
SQL1_INPUTS = 1
|
||||||
|
|
||||||
;2. Add all below in the end of the file.
|
;2. Add all below in the end of the file.
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; Virtual Garage related queries | ADDED BY [ExAd]Jan
|
;; Virtual Garage related queries | ADDED BY [ExAd]Jan
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
eventHandler !="ExAd_ACTION_PARACHUTE_DETACH = (findDisplay 46) displayAddEventHandler ["KeyDown",{"
|
eventHandler !="ExAd_ACTION_PARACHUTE_DETACH = (findDisplay 46) displayAddEventHandler [\"KeyDown\",{"
|
||||||
compile !="call compile format[\"_messageParameters call ExAd_fnc_%1;\",_messageName]" !="call compile format['%1 = if(isLocalized \"%1\")then{localize \"%1\"}else{\"%3"
|
compile !="call compile format[\"_messageParameters call ExAd_fnc_%1;\",_messageName]" !="call compile format['%1 = if(isLocalized \"%1\")then{localize \"%1\"}else{\"%3"
|
||||||
createVehicle !="_parachuteObject = createVehicle [\"Steerable_Parachute_F\", getPosATL player, [], 0, \"CAN_COLLIDE\"]"
|
createVehicle !="_parachuteObject = createVehicle [\"Steerable_Parachute_F\", getPosATL player, [], 0, \"CAN_COLLIDE\"]"
|
||||||
addAction !="ExAd_ACTION_PARACHUTE = player addaction [format"
|
addAction !="ExAd_ACTION_PARACHUTE = player addaction [format"
|
||||||
|
38
CHANGELOG.md
38
CHANGELOG.md
@ -1,6 +1,44 @@
|
|||||||
#<img src="logo.png" alt="ExAd" width="200" />
|
#<img src="logo.png" alt="ExAd" width="200" />
|
||||||
# Changelog:
|
# Changelog:
|
||||||
|
|
||||||
|
## 160801 17:00 . v0.8.0
|
||||||
|
### Fixed
|
||||||
|
* "ExadClient\CfgFunctions.cpp" to work with StatsBar (Core)
|
||||||
|
* "ExadClient\RscTitles.cpp" to work with StatsBar (Core)
|
||||||
|
* Go Back button didn't show text when VG wasn't loaded in the package (Apps; Info, Journal)
|
||||||
|
* Loading before ExileClientLoadedIn was declared
|
||||||
|
|
||||||
|
### Added
|
||||||
|
* New plugin - StatsBar (StatsBar)
|
||||||
|
* New App to configure the StatsBar (XM8)
|
||||||
|
* New functions (XM8)
|
||||||
|
* Stringtable compability (StatsBar)
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
* removed all individual changelogs - took to much time to update.
|
||||||
|
|
||||||
|
## 1607330 11:00 . v0.7.11
|
||||||
|
### Fixed
|
||||||
|
* Modified fn_addApps. (XM8)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
* New App function , fn_createCombo (XM8)
|
||||||
|
|
||||||
|
## 160726 17:15 . v0.7.10
|
||||||
|
### Fixed
|
||||||
|
* Apply custom functions to "More" app buttons. (XM8)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
* New App, deploy vehicles (XM8)
|
||||||
|
|
||||||
|
## 160720 01:15 . v0.7.9
|
||||||
|
### Fixed
|
||||||
|
* Some design flaws in the Apps functions. (XM8)
|
||||||
|
* Added ExAd_Journal class to config.cpp (XM8)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
* New App, which is a tutorial app on YouTube (XM8)
|
||||||
|
|
||||||
## 160703 20:15 . v0.7.7
|
## 160703 20:15 . v0.7.7
|
||||||
###Fixed
|
###Fixed
|
||||||
* Made the ExAd system compatible with Exile 0.9.8 (All)
|
* Made the ExAd system compatible with Exile 0.9.8 (All)
|
||||||
|
37
README.md
37
README.md
@ -1,7 +1,15 @@
|
|||||||
#<img src="logo.png" alt="ExAd" width="200" />
|
<img src="logo.png" alt="ExAd" width="200" />
|
||||||
Exile Addons - originally small projects developed for the Arma Exile communities EXO and SP4R but now rewritten and collected here for public use.
|
|
||||||
|
|
||||||
I'll gradually add all features I built, encouragements always helps the project to stay alive a little longer :smirk: | [Donate here](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=jan%2ebabor%2e383%40gmail%2ecom&lc=GB&item_name=ExAd¤cy_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted)
|
# PLEASE STOP USING EXAD. It does not work in Exile V1.0.4. Although others have got it working, it's laggy and was built when Exile used a lot of hacky code to fix Arma. There are plenty standalone alternatives out there. - Monkeynutz
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[](https://dev.arma3.com/post/spotrep-00077) [](http://www.exilemod.com/topic/25026-104-pineapple/) [](http://bjanski.github.io/ExAd/)
|
||||||
|
|
||||||
|
Exile Addons by Janski - originally small projects developed for the Arma Exile communities EXO and SP4R but now rewritten and collected here for public use. Contributers to the code can be found in the "Contributers" section at the top of the Repo.
|
||||||
|
Repo now looked after and updated by [[GADD]](https://gamingatdeathsdoor.com)Monkeynutz.
|
||||||
|
|
||||||
|
Janski No longer works on ExAd but you can donate to him here to appreciate his work... :smirk: | [Donate here](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=jan%2ebabor%2e383%40gmail%2ecom&lc=GB&item_name=ExAd¤cy_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted)
|
||||||
|
|
||||||
## Installation & Examples
|
## Installation & Examples
|
||||||
Instructions for installation is found under [docs](https://github.com/Bjanski/ExAd/tree/master/docs).
|
Instructions for installation is found under [docs](https://github.com/Bjanski/ExAd/tree/master/docs).
|
||||||
@ -11,21 +19,28 @@ Below you can see what dependencies each plugin has.
|
|||||||
## Update Instructions
|
## Update Instructions
|
||||||
After you have installed the entire or parts of the ExAd Package you will easiest update by checking each subproject documentation folder to retrieve the changelog and update instructions.
|
After you have installed the entire or parts of the ExAd Package you will easiest update by checking each subproject documentation folder to retrieve the changelog and update instructions.
|
||||||
|
|
||||||
##Collection
|
## Collection
|
||||||
* Core
|
* Core
|
||||||
* Halo & Parachute
|
* Halo & Parachute
|
||||||
* Virtual Garage
|
* Virtual Garage
|
||||||
* Grinding
|
* Grinding
|
||||||
* Hacking
|
* Hacking
|
||||||
|
* StatsBar
|
||||||
|
* XM8
|
||||||
* Admin Events .. *Coming Soon*
|
* Admin Events .. *Coming Soon*
|
||||||
* VehicleUpgrade -- *Coming Soon*
|
* VehicleUpgrade -- *Coming Soon*
|
||||||
|
|
||||||
##Dependencies
|
## Dependencies
|
||||||
* Core
|
* Core
|
||||||
* [Exile](http://www.exilemod.com/downloads/)
|
* [Exile](http://www.exilemod.com/downloads/)
|
||||||
* Virtual Garage
|
* Virtual Garage
|
||||||
* Core
|
* Core
|
||||||
* XM8
|
* XM8
|
||||||
|
* XM8
|
||||||
|
* Core
|
||||||
|
* StatsBar
|
||||||
|
* Core
|
||||||
|
* XM8
|
||||||
* Admin Events
|
* Admin Events
|
||||||
* Core
|
* Core
|
||||||
* [Infistar](https://infistar.de/)
|
* [Infistar](https://infistar.de/)
|
||||||
@ -39,14 +54,16 @@ After you have installed the entire or parts of the ExAd Package you will easies
|
|||||||
* VehicleUpgrade
|
* VehicleUpgrade
|
||||||
* Core
|
* Core
|
||||||
|
|
||||||
##Contribute
|
## Contribute
|
||||||
Contributions are allways welcome, please read [Contribution Guidlines](CONTRIBUTING.md) first.
|
Contributions are allways welcome, please read [Contribution Guidlines](CONTRIBUTING.md) first.
|
||||||
|
|
||||||
All contributed code first needs to be rewieved and tested before pushed to master.
|
All contributed code first needs to be rewieved and tested before pushed to master.
|
||||||
|
|
||||||
##License
|
## License
|
||||||
Apache License
|
Apache License
|
||||||
|
|
||||||
##Contact
|
## Contact
|
||||||
For this project I only reply through my [Exile profile](http://www.exilemod.com/profile/7143-janski/)
|
Janski doesn't reply as much anymore as he is not in the ArmA scene. But here is his [Exile profile](http://www.exilemod.com/profile/7143-janski/)
|
||||||
If you want help with an issue, report a bug or maybe just request a new feature first make sure now one else have had the same issue by searching the [Issue Tracker](https://github.com/Bjanski/ExAd/issues) and the [Exile Forum](http://www.exilemod.com/).
|
Contact Monkeynutz Directly for a fast reply: [Monkey's Profile](http://www.exilemod.com/profile/61794-monkeynutz/)
|
||||||
|
|
||||||
|
If you want help with an issue, report a bug or maybe just request a new feature first make sure now one else have had the same issue by searching the [Issue Tracker](https://github.com/Bjanski/ExAd/issues) and the [Exile Forum](http://www.exilemod.com/topic/13865-exad-package-of-virtual-garagexm8statsbarhalo-parachuteadmin-eventshackinggrindingvehicle-upgrade/).
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
#Grinding
|
|
||||||
## Changelog:
|
|
||||||
|
|
||||||
### v0.7.7
|
|
||||||
####Fixed
|
|
||||||
* Made the ExAd system compatible with Exile 0.9.8
|
|
||||||
|
|
||||||
### v0.7.6
|
|
||||||
####Fixed
|
|
||||||
* The configuration file could be reed after the postInit script - IMPORTANT TO UPDATE ALL PLUGINS.
|
|
||||||
|
|
||||||
###Added
|
|
||||||
* Extra loggin functionality
|
|
||||||
* Added a lot of new custom UI Display texts - Check stringtabl.xml for new ones.
|
|
||||||
* Progress bar height customizable
|
|
||||||
|
|
||||||
### v0.7.3
|
|
||||||
#### Fixed
|
|
||||||
* Declaration of un custamized variables
|
|
||||||
|
|
||||||
### v0.6.1
|
|
||||||
#### Fixed
|
|
||||||
* Sound error for grinding, tmp fix, sound will work on Chernarus
|
|
||||||
|
|
||||||
### v0.6.0
|
|
||||||
#### Added
|
|
||||||
* Grinding introduced
|
|
||||||
* Grinding battleye scripts
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
|||||||
# Installation
|
|
||||||
|
|
||||||
Remember for this plugin to work you first need to install
|
|
||||||
* [Core]((https://github.com/Bjanski/ExAd/blob/master/docs/core/installation.md)
|
|
||||||
|
|
||||||
## Client
|
|
||||||
|
|
||||||
* Place the folder "Grinding" into "mpmissions\exile.<MAP>\ExAdClient\"
|
|
||||||
|
|
||||||
* Goto "mpmissions\exile.<MAP>\ExAdClient\CfgFunctions" and uncomment
|
|
||||||
|
|
||||||
_From_
|
|
||||||
```cpp
|
|
||||||
//#include "Grinding\CfgFunctions.cpp"
|
|
||||||
```
|
|
||||||
_To_
|
|
||||||
```cpp
|
|
||||||
#include "Grinding\CfgFunctions.cpp"
|
|
||||||
```
|
|
||||||
|
|
||||||
* In "config.cpp" find "CfgInteractionMenus" and add to "Construction".
|
|
||||||
```cpp
|
|
||||||
class Construction
|
|
||||||
{
|
|
||||||
targetType = 2;
|
|
||||||
target = "Exile_Construction_Abstract_Static";
|
|
||||||
|
|
||||||
class Actions
|
|
||||||
{
|
|
||||||
class Grind : ExileAbstractAction
|
|
||||||
{
|
|
||||||
title = "Grind Lock";
|
|
||||||
condition = "call ExAd_fnc_canGrindLock";
|
|
||||||
action = "_this spawn ExAd_fnc_grindLock";
|
|
||||||
};
|
|
||||||
|
|
||||||
class RestoreLock : ExileAbstractAction
|
|
||||||
{
|
|
||||||
title = "Restore Lock";
|
|
||||||
condition = "_object call ExAd_fnc_canRestoreLock";
|
|
||||||
action = "_this spawn ExAd_fnc_restoreLock";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
* Modify - "mpmissions\exile.<MAP>\stringtable.xml" - add package="Grinding" and change to desirable notifications
|
|
||||||
|
|
||||||
* Now you can go into "mpmissions\exile.<MAP>\ExAdClient\Grinding\customize.sqf" and change to desirable settings.
|
|
||||||
|
|
||||||
## Server
|
|
||||||
|
|
||||||
* Copy over and pack "@ExileServer\addons\exad_grinding" into a pbo.
|
|
@ -1,21 +0,0 @@
|
|||||||
#Grinding
|
|
||||||
## Instructions:
|
|
||||||
|
|
||||||
### v0.7.7
|
|
||||||
* Replace "mpmissions\Exile.<map>\ExAdClient\Grinding"
|
|
||||||
* Replace and pack "@ExileServer\addons\exad_grinding"
|
|
||||||
|
|
||||||
### v0.7.6
|
|
||||||
* Replace or merge "mpmissions\Exile.<map>\ExAdClient\Grinding\customize.sqf"
|
|
||||||
* Replace or merge "mpmissions\Exile.<map>\stringtable.xml"
|
|
||||||
* Replace "mpmissions\Exile.<map>\ExAdClient\Grinding" - Big update
|
|
||||||
* Replace and pack "@ExileServer\addons\exad_grinding"
|
|
||||||
|
|
||||||
### v0.7.3
|
|
||||||
* Replace "mpmissions\Exile.<map>\ExAdClient\Grinding\postInit.sqf"
|
|
||||||
|
|
||||||
### v0.6.1
|
|
||||||
* Replace "ExAdClient\Grinding\Functions"
|
|
||||||
|
|
||||||
### v0.6.0
|
|
||||||
* Full installation
|
|
@ -1,28 +0,0 @@
|
|||||||
#Hacking
|
|
||||||
## Changelog:
|
|
||||||
|
|
||||||
### v0.7.7
|
|
||||||
####Fixed
|
|
||||||
* Made the ExAd system compatible with Exile 0.9.8
|
|
||||||
|
|
||||||
### v0.7.6
|
|
||||||
####Fixed
|
|
||||||
* The configuration file could be reed after the postInit script - IMPORTANT TO UPDATE ALL PLUGINS.
|
|
||||||
|
|
||||||
###Added
|
|
||||||
* Extra loggin functionality
|
|
||||||
* Added a lot of new custom UI Display texts - Check stringtabl.xml for new ones.
|
|
||||||
* Added a feature so the server owner can decide if hacking should require a player with premissions to be online.
|
|
||||||
|
|
||||||
### v0.7.3
|
|
||||||
#### Fixed
|
|
||||||
* Cleaned the server code
|
|
||||||
* Declaration of un custamized variables
|
|
||||||
|
|
||||||
### v0.7.1
|
|
||||||
#### Fixed
|
|
||||||
* Removed dependency for VirtualGarage
|
|
||||||
|
|
||||||
### v0.7.0
|
|
||||||
#### Added
|
|
||||||
* Introduced **Hacking** to the ExAd package
|
|
@ -1 +0,0 @@
|
|||||||
#Examples
|
|
@ -1,53 +0,0 @@
|
|||||||
# Installation
|
|
||||||
|
|
||||||
Remember for this plugin to work you first need to install
|
|
||||||
* [Core](https://github.com/Bjanski/ExAd/blob/master/docs/core/installation.md)
|
|
||||||
* [(VirtualGarage)](https://github.com/Bjanski/ExAd/blob/master/docs/VirtualGarage/installation.md) - Only necessary if you want to be able to hack it
|
|
||||||
|
|
||||||
## Client
|
|
||||||
|
|
||||||
* Place the folder "Hacking" into "mpmissions\exile.<MAP>\ExAdClient\"
|
|
||||||
|
|
||||||
* Goto "mpmissions\exile.<MAP>\ExAdClient\CfgFunctions" and uncomment
|
|
||||||
|
|
||||||
_From_
|
|
||||||
```cpp
|
|
||||||
//#include "Hacking\CfgFunctions.cpp"
|
|
||||||
```
|
|
||||||
_To_
|
|
||||||
```cpp
|
|
||||||
#include "Hacking\CfgFunctions.cpp"
|
|
||||||
```
|
|
||||||
|
|
||||||
* In "config.cpp" find ("CfgInteractionMenus") and add the actions you want used. If you don't want to use a specific action e.g. hacking safe just ignore adding it.
|
|
||||||
Available actions are
|
|
||||||
* HackVG -> ("CfgInteractionMenus" >> "Flag" >> "Actions" >> "HackVG")
|
|
||||||
* HackSafe -> ("CfgInteractionMenus" >> "Safe" >> "Actions" >> "HackSafe")
|
|
||||||
* StopHack -> ("CfgInteractionMenus" >> "Laptop" >> "Actions" >> "StopHack")
|
|
||||||
|
|
||||||
Example
|
|
||||||
```cpp
|
|
||||||
class Flag
|
|
||||||
{
|
|
||||||
targetType = 2;
|
|
||||||
target = "Exile_Construction_Flag_Static";
|
|
||||||
|
|
||||||
class Actions
|
|
||||||
{
|
|
||||||
class HackVG : ExileAbstractAction
|
|
||||||
{
|
|
||||||
title = "Hack Virtual Garage";
|
|
||||||
condition = "call ExAd_fnc_canHackVG";
|
|
||||||
action = "_this spawn ExAd_fnc_startHack";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
* Modify - "mpmissions\exile.<MAP>\stringtable.xml" - add package="Hacking" and change to desirable notifications
|
|
||||||
|
|
||||||
* Now you can go into "mpmissions\exile.<MAP>\ExAdClient\Hacking\customize.sqf" and change to desirable settings.
|
|
||||||
|
|
||||||
## Server
|
|
||||||
|
|
||||||
* Copy over and pack "@ExileServer\addons\exad_hacking" into a pbo.
|
|
@ -1,22 +0,0 @@
|
|||||||
#Hacking
|
|
||||||
## Instructions:
|
|
||||||
|
|
||||||
### v0.7.7
|
|
||||||
* Replace "mpmissions\Exile.<map>\ExAdClient\Hacking"
|
|
||||||
* Replace and pack "@ExileServer\addons\exad_hacking"
|
|
||||||
|
|
||||||
### v0.7.6
|
|
||||||
* Replace or merge "mpmissions\Exile.<map>\ExAdClient\Hacking\customize.sqf"
|
|
||||||
* Replace or merge "mpmissions\Exile.<map>\stringtable.xml"
|
|
||||||
* Replace "mpmissions\Exile.<map>\ExAdClient\Hacking" - Big update
|
|
||||||
* Replace and pack "@ExileServer\addons\exad_hacking"
|
|
||||||
|
|
||||||
### v0.7.3
|
|
||||||
* Replace and pack "@ExileServer\addons\exad_hacking"
|
|
||||||
* Replace "mpmissions\Exile.<map>\ExAdClient\Hacking\postInit.sqf"
|
|
||||||
|
|
||||||
### v0.7.1
|
|
||||||
* Replace and pack "@ExileServer\addons\exad_hacking"
|
|
||||||
|
|
||||||
### v0.7.0
|
|
||||||
* Full installation
|
|
@ -1,40 +0,0 @@
|
|||||||
#HaloParachute
|
|
||||||
## Changelog:
|
|
||||||
|
|
||||||
### v0.7.7
|
|
||||||
####Fixed
|
|
||||||
* Made the ExAd system compatible with Exile 0.9.8
|
|
||||||
|
|
||||||
### v0.7.6
|
|
||||||
####Fixed
|
|
||||||
* The configuration file could be reed after the postInit script - IMPORTANT TO UPDATE ALL PLUGINS.
|
|
||||||
|
|
||||||
###Added
|
|
||||||
* Extra loggin functionality
|
|
||||||
* Added a lot of new custom UI Display texts - Check stringtabl.xml for new ones.
|
|
||||||
|
|
||||||
## v0.7.5
|
|
||||||
###Fixed
|
|
||||||
* Syntax error in postInit.sqf
|
|
||||||
* Remove parachute backpack when parachute is pulled.
|
|
||||||
* Removed one action when carrying parachute backpack
|
|
||||||
* Added battleye exceptions
|
|
||||||
|
|
||||||
### v0.7.4
|
|
||||||
#### Added
|
|
||||||
* Feature - Customization for using key bindings instead of displayed addActions
|
|
||||||
|
|
||||||
#### Deleted
|
|
||||||
* "mpmission\Exile.Altis\ExAdClient\HaloParachute\Functions\canDetachParachute.sqf
|
|
||||||
|
|
||||||
### v0.7.3
|
|
||||||
#### Fixed
|
|
||||||
* Declaration of un custamized variables
|
|
||||||
|
|
||||||
### v0.5.1
|
|
||||||
#### Fixed
|
|
||||||
* Added BattlEye exceptions
|
|
||||||
|
|
||||||
### v0.5.0
|
|
||||||
#### Added
|
|
||||||
* Introduced **HaloParachute** to the ExAd package
|
|
@ -1,7 +1,7 @@
|
|||||||
#Documentation
|
#Documentation
|
||||||
Each subfolder withholds the subproject's documentation including installation instruction and examples of useage.
|
Each subfolder withholds the subproject's documentation including installation instruction and examples of usage.
|
||||||
|
|
||||||
To simplify the proccess for me, I've decided to simply devide everything and leave a changelog and update instructions in every subprojects documentation folder. This way you won't miss any information related to that subproject and it will be simple for me to keep the track off all changes with out skimming a general changelog.
|
To simplify the process for me, I've decided to simply divide everything and leave a changelog and update instructions in every subprojects documentation folder. This way you won't miss any information related to that subproject and it will be simple for me to keep the track off all changes with out skimming a general changelog.
|
||||||
|
|
||||||
## How to Update
|
## How to Update
|
||||||
Since this project consist of multiple subprojects I've had some issues deciding how to structure the project for a simple update process.
|
Since this project consist of multiple subprojects I've had some issues deciding how to structure the project for a simple update process.
|
||||||
|
45
docs/Scratchie/installation.md
Normal file
45
docs/Scratchie/installation.md
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# Introduction
|
||||||
|
|
||||||
|
PLEASE NOTE THIS GUIDE ONLY COVERES THE ExAd MISSION FILE INSTALLATION.<br />
|
||||||
|
THE MISSING SERVER AND DATABASE INSTRUCTION CAN BE FOUND [HERE](https://github.com/ole1986/a3-exile-scratchie/tree/ExAd)
|
||||||
|
|
||||||
|
**Requirements**
|
||||||
|
|
||||||
|
Please note that the Scratchie plugin has the following ExAd dependencies
|
||||||
|
|
||||||
|
* Core
|
||||||
|
* XM8
|
||||||
|
|
||||||
|
**Installation**
|
||||||
|
|
||||||
|
* Copy the folder "source\ExAdClient\Scratchie" into "mpmissions\exile.\ExAdClient"
|
||||||
|
|
||||||
|
* Open the "mpmissions\exile.\ExAdClient\CfgFunctions.cpp" and add the following line inside `class ExAd`
|
||||||
|
|
||||||
|
```
|
||||||
|
#include "Scratchie\CfgFunctions.cpp"
|
||||||
|
```
|
||||||
|
|
||||||
|
* Amend the `class CfgXM8` from "mpmissions\exile.\config.cpp" the following (to make Scratchie app available in XM8)
|
||||||
|
|
||||||
|
```
|
||||||
|
class CfgXM8 {
|
||||||
|
extraApps[] = {"ExAd_Scratchie"};
|
||||||
|
|
||||||
|
class ExAd_Scratchie
|
||||||
|
{
|
||||||
|
title = "Play Scratchie";
|
||||||
|
controlID = 80000;
|
||||||
|
logo = "ExAdClient\Scratchie\icons\scratchie.paa";
|
||||||
|
onLoad = "ExAdClient\Scratchie\onLoad.sqf";
|
||||||
|
onOpen = "ExAdClient\Scratchie\onOpen.sqf";
|
||||||
|
onClose = "ExAdClient\Scratchie\onClose.sqf";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
* Customize the "mpmissions\exile.\description.ext" by adding the below line into `class CfgRemoteExec` -> `class Functions`
|
||||||
|
|
||||||
|
```
|
||||||
|
class ExileServer_lottery_network_request { allowedTargets = 2; }
|
||||||
|
```
|
39
docs/StatsBar/installation.md
Normal file
39
docs/StatsBar/installation.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Installation
|
||||||
|
|
||||||
|
Remember for this plugin to work you first need to install
|
||||||
|
* [Core](https://github.com/Bjanski/ExAd/blob/master/docs/core/installation.md)
|
||||||
|
* [XM8](https://github.com/Bjanski/ExAd/blob/master/docs/xm8/installation.md)
|
||||||
|
|
||||||
|
## Client
|
||||||
|
|
||||||
|
* Place the folder "StatsBar" into "mpmissions\exile.<MAP>\ExAdClient\"
|
||||||
|
* Goto "mpmissions\exile.<MAP>\ExAdClient\RscTitles.cpp" and uncomment
|
||||||
|
```cpp
|
||||||
|
//#include "StatsBar\RscTitles.cpp"
|
||||||
|
```
|
||||||
|
* Goto "mpmissions\exile.<MAP>\ExAdClient\CfgFunctions" and uncomment
|
||||||
|
|
||||||
|
_From_
|
||||||
|
```cpp
|
||||||
|
//#include "StatsBar\CfgFunctions.cpp"
|
||||||
|
```
|
||||||
|
_To_
|
||||||
|
```cpp
|
||||||
|
#include "StatsBar\CfgFunctions.cpp"
|
||||||
|
```
|
||||||
|
|
||||||
|
* In "config.cpp" in the mission root folder, add to the following class "CfgXM8"
|
||||||
|
```js
|
||||||
|
class CfgXM8
|
||||||
|
{
|
||||||
|
extraApps[] = {"ExAd_SB"};
|
||||||
|
|
||||||
|
class ExAd_SB
|
||||||
|
{
|
||||||
|
title = "Statsbar Settings";
|
||||||
|
controlID = 50400; //IDC:50400 -> 50475 || These need to be unique and out of range from each other
|
||||||
|
logo = "exile_assets\texture\ui\xm8_app_settings_ca.paa";
|
||||||
|
onLoad = "ExAdClient\XM8\Apps\SB_Settings\onLoad.sqf";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
```
|
5
docs/StatsBar/update.md
Normal file
5
docs/StatsBar/update.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#StatsBar
|
||||||
|
## Instructions:
|
||||||
|
|
||||||
|
### 160801 . v0.8.0
|
||||||
|
* Full installation
|
40
docs/VehicleSalvage/installation.md
Normal file
40
docs/VehicleSalvage/installation.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# Installation
|
||||||
|
|
||||||
|
Remember for this plugin to work you first need to install
|
||||||
|
* [Core]((https://github.com/Bjanski/ExAd/blob/master/docs/core/installation.md)
|
||||||
|
|
||||||
|
## Client
|
||||||
|
|
||||||
|
* Make sure the VehicleSalvage folder is present in mpmissions\missionname.mapname\ExAdClient
|
||||||
|
|
||||||
|
* Goto "mpmissions\exile.<MAP>\ExAdClient\CfgFunctions" and uncomment
|
||||||
|
|
||||||
|
_From_
|
||||||
|
```cpp
|
||||||
|
//#include "VehicleSalvage\CfgFunctions.cpp"
|
||||||
|
```
|
||||||
|
_To_
|
||||||
|
```cpp
|
||||||
|
#include "VehicleSalvage\CfgFunctions.cpp"
|
||||||
|
```
|
||||||
|
|
||||||
|
* In "config.cpp" find "CfgInteractionMenus"
|
||||||
|
|
||||||
|
* Under CfgInteractionMenus you will see "class Car"
|
||||||
|
|
||||||
|
* Add to the bottom of "class Car" menus this:
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
class ExAdSalvage: ExileAbstractAction
|
||||||
|
{
|
||||||
|
title = "<t color='#ff0000'>ExAd Salvage Aircraft</t>";
|
||||||
|
condition = "(!(alive (ExileClientInteractionObject)))";
|
||||||
|
action = "_this call ExAd_fnc_vehicleSalvage";
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
* Make sure it follows the formatting of the rest of the actions.
|
||||||
|
|
||||||
|
* Repeat this to add it to "class Air", "class Boat" and "class Tank" if you have it. Vanilla servers do not have "class Tank" so you may need to add it yourself.
|
||||||
|
|
||||||
|
ALL DONE! Enjoy :D
|
@ -1,47 +0,0 @@
|
|||||||
#VirtualGarage
|
|
||||||
## Changelog:
|
|
||||||
|
|
||||||
### v0.7.7
|
|
||||||
####Fixed
|
|
||||||
* Made the ExAd system compatible with Exile 0.9.8
|
|
||||||
|
|
||||||
####Added
|
|
||||||
* App for XM8
|
|
||||||
|
|
||||||
####Removed
|
|
||||||
* Support for Improved_XM8_Apps by Vitaly
|
|
||||||
|
|
||||||
### v0.7.6
|
|
||||||
####Fixed
|
|
||||||
* Quick-fix - VG App scroll for stored list
|
|
||||||
* The configuration file could be reed after the postInit script - IMPORTANT TO UPDATE ALL PLUGINS.
|
|
||||||
|
|
||||||
####Added
|
|
||||||
* Extra loggin functionality
|
|
||||||
* Added a lot of new custom UI Display texts - Check stringtabl.xml for new ones.
|
|
||||||
* Added a more detailed description of the vehicle for the App
|
|
||||||
* Added the possibility to decide of which vehicles type should be storable
|
|
||||||
|
|
||||||
### v0.7.3
|
|
||||||
#### Fixed
|
|
||||||
* Declaration of un custamized variables
|
|
||||||
|
|
||||||
### v0.7.0
|
|
||||||
#### Fixed
|
|
||||||
* Small issue where VG didn't show an advancedHint when storing.
|
|
||||||
#### Added
|
|
||||||
* New stringtable values
|
|
||||||
|
|
||||||
### v0.6.1
|
|
||||||
#### Fixed
|
|
||||||
* Display null when entering Virtual Garage from Flag
|
|
||||||
|
|
||||||
### v0.5.1
|
|
||||||
#### Fixed
|
|
||||||
* BattlEye filters been updated
|
|
||||||
* VG App return to sideApp on unLoad
|
|
||||||
* VG App clear lists before onLoad and content being loaded.
|
|
||||||
|
|
||||||
### v0.5.0
|
|
||||||
#### Added
|
|
||||||
* Introduced **VirtualGarage** to the ExAd package
|
|
@ -1 +0,0 @@
|
|||||||
#Examples
|
|
@ -1,64 +0,0 @@
|
|||||||
# Installation
|
|
||||||
|
|
||||||
Remember for this plugin to work you first need to install
|
|
||||||
* [Core](https://github.com/Bjanski/ExAd/blob/master/docs/core/installation.md)
|
|
||||||
* [XM8 Apps Improved](https://github.com/vitalymind/XM8_apps_improved)
|
|
||||||
|
|
||||||
## Client
|
|
||||||
|
|
||||||
* Place the folder "VirtualGarage" into "mpmissions\exile.<MAP>\ExAdClient\"
|
|
||||||
|
|
||||||
* Goto "mpmissions\exile.<MAP>\ExAdClient\CfgFunctions" and uncomment
|
|
||||||
|
|
||||||
_From_
|
|
||||||
```cpp
|
|
||||||
//#include "VirtualGarage\CfgFunctions.cpp"
|
|
||||||
```
|
|
||||||
_To_
|
|
||||||
```cpp
|
|
||||||
#include "VirtualGarage\CfgFunctions.cpp"
|
|
||||||
```
|
|
||||||
* Repeat last step for "CfgHints"
|
|
||||||
|
|
||||||
* In "config.cpp" in the mission root folder, find class CfgExileCustomCode and add the following row
|
|
||||||
```js
|
|
||||||
ExileServer_system_territory_database_load = "ExAdClient\CustomCode\ExileServer_system_territory_database_load.sqf";
|
|
||||||
```
|
|
||||||
* In "config.cpp" you can also add the ("CfgInteractionMenus" >> "Flag" >> "VG") class if you want to be able to fast load the app through your flag pole.
|
|
||||||
|
|
||||||
* Modify - "mpmissions\exile.<MAP>\stringtable.xml" - add if missing package="VirtualGarage" and change to desirable notifications
|
|
||||||
|
|
||||||
* Now you can go into "mpmissions\exile.<MAP>\ExAdClient\VirtualGarage\customize.sqf" and change to desirable settings.
|
|
||||||
|
|
||||||
### XM8 App
|
|
||||||
|
|
||||||
* Copy over "ExileClient\XM8\Apps\VG"
|
|
||||||
* Add ("CfgXM8" >> "Exad_VG") to "mpmissions\exile.<MAP>\config.cpp"
|
|
||||||
```
|
|
||||||
class CfgXM8
|
|
||||||
{
|
|
||||||
extraApps[] = {"ExAd_VG"};
|
|
||||||
|
|
||||||
class ExAd_VG
|
|
||||||
{
|
|
||||||
title = "Virtual Garage";
|
|
||||||
controlID = 50000; //These need to be unique
|
|
||||||
onLoad = "ExAdClient\XM8\Apps\VG\onLoad.sqf";
|
|
||||||
onOpen = "ExAdClient\XM8\Apps\VG\onOpen.sqf";
|
|
||||||
onClose = "ExAdClient\XM8\Apps\VG\onClose.sqf";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
## Server
|
|
||||||
|
|
||||||
* Copy over and pack "@ExileServer\addons\exad_vg" into a pbo.
|
|
||||||
|
|
||||||
## Database
|
|
||||||
* Run the following sql command in you database.
|
|
||||||
```sql
|
|
||||||
ALTER TABLE `vehicle` ADD `territory_id` INT(11) UNSIGNED NULL DEFAULT NULL;
|
|
||||||
ALTER TABLE `vehicle` ADD CONSTRAINT `vehicle_ibfk_2` FOREIGN KEY (`territory_id`) REFERENCES `territory`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
|
||||||
```
|
|
||||||
|
|
||||||
* Copy over content from "@ExileServer\extDB\sql_custom_v2\exile.ini" - Follow the instructions in the file.
|
|
@ -1,52 +0,0 @@
|
|||||||
#VirtualGarage
|
|
||||||
## Instructions:
|
|
||||||
|
|
||||||
### v0.7.7
|
|
||||||
* Remove XM8_Apps
|
|
||||||
* Install [XM8](https://github.com/Bjanski/ExAd/tree/master/docs/XM8)
|
|
||||||
* Replace "mpmissions\Exile.<map>\ExAdClient\VG"
|
|
||||||
* Replace and pack "@ExileServer\addons\exad_vg"
|
|
||||||
* Update "@ExileServer\extDB\sql_custom_v2\exile.ini" ->
|
|
||||||
```
|
|
||||||
[loadVehicleIdPage]
|
|
||||||
SQL1_1 = SELECT id FROM vehicle WHERE deleted_at IS NULL AND territory_id IS NULL LIMIT ?,?
|
|
||||||
Number Of Inputs = 2
|
|
||||||
SQL1_INPUTS = 1,2
|
|
||||||
OUTPUT = 1
|
|
||||||
```
|
|
||||||
|
|
||||||
### v0.7.6
|
|
||||||
* Replace or merge "mpmissions\Exile.<map>\ExAdClient\VG\customize.sqf"
|
|
||||||
* Replace or merge "mpmissions\Exile.<map>\stringtable.xml"
|
|
||||||
* Replace "mpmissions\Exile.<map>\ExAdClient\VG" - Big update
|
|
||||||
* Replace "mpmissions\Exile.<map>\XM8_apps\apps\XM8_VG"
|
|
||||||
* Replace and pack "@ExileServer\addons\exad_vg"
|
|
||||||
|
|
||||||
### v0.7.3
|
|
||||||
* Replace "mpmissions\Exile.<map>\ExAdClient\VirtualGarage\postInit.sqf"
|
|
||||||
|
|
||||||
### v0.7.0
|
|
||||||
* Copy over the new VirtualGarage Package in "stringtable.xml"
|
|
||||||
* Replace and pack "@ExileServer\addons\exad_vg"
|
|
||||||
|
|
||||||
|
|
||||||
### v0.6.1
|
|
||||||
* Modify config.cpp ("CfgInteractionMenus" >> "Flag")
|
|
||||||
```cpp
|
|
||||||
class VG : ExileAbstractAction
|
|
||||||
{
|
|
||||||
title = "Virtual Garage";
|
|
||||||
condition = "(([_object, getPlayerUID player] call ExileClient_util_territory_getAccessLevel) select 0) >= ExAd_VG_ACCESS_LEVEL";
|
|
||||||
action = "[] spawn {[] call ExileClient_gui_xm8_show; UISleep 1; call XM8_VG_checkNearByFlags}";
|
|
||||||
};
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### v0.5.1
|
|
||||||
* Add battleye exceptions
|
|
||||||
* Replace "ExAdClient\VirtualGarage\Functions"
|
|
||||||
* Replace "ExAdClient\VirtualGarage\CfgHints.cpp"
|
|
||||||
* Replace "XM8_apps\apps\XM8_VG"
|
|
||||||
|
|
||||||
### 160428 12:00 . v0.5.0
|
|
||||||
* Full installation
|
|
@ -1,6 +0,0 @@
|
|||||||
#VirtualGarage
|
|
||||||
## Changelog:
|
|
||||||
|
|
||||||
### v0.7.7
|
|
||||||
#### Added
|
|
||||||
* Introduced **XM8** to the ExAd package
|
|
11
docs/XM8/createApp.md
Normal file
11
docs/XM8/createApp.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#Create Apps
|
||||||
|
|
||||||
|
To create an app you need follow 4 simple steps
|
||||||
|
|
||||||
|
1.
|
||||||
|
|
||||||
|
2.
|
||||||
|
|
||||||
|
3.
|
||||||
|
|
||||||
|
4.
|
@ -1,41 +0,0 @@
|
|||||||
#Core
|
|
||||||
## Changelog:
|
|
||||||
|
|
||||||
## v0.7.7
|
|
||||||
###Fixed
|
|
||||||
* Made the ExAd system compatible with Exile 0.9.8
|
|
||||||
|
|
||||||
### v0.7.6
|
|
||||||
####Fixed
|
|
||||||
* The configuration file could be reed after the postInit script - IMPORTANT TO UPDATE ALL PLUGINS.
|
|
||||||
|
|
||||||
####Added
|
|
||||||
* Extra loggin functionality
|
|
||||||
* Changeable variables for logging functionality
|
|
||||||
* Added function ExAd_fnc_territoryPlayerPresent, to see if a player with permissions for a specific flag is online
|
|
||||||
|
|
||||||
### v0.7.3
|
|
||||||
#### Fixed
|
|
||||||
* Declaration of un custamized variables
|
|
||||||
|
|
||||||
### v0.7.0
|
|
||||||
#### Added
|
|
||||||
* New customizable values (Core)
|
|
||||||
|
|
||||||
### v0.5.2
|
|
||||||
#### Fixed
|
|
||||||
* Description.ext was wrongly configured
|
|
||||||
|
|
||||||
### v0.5.1
|
|
||||||
#### Fixed
|
|
||||||
* AdvHint trying to show EXO Logo
|
|
||||||
|
|
||||||
#### Added
|
|
||||||
* ExAd Logo.png
|
|
||||||
|
|
||||||
#### Deleted
|
|
||||||
* EXO Logo.png
|
|
||||||
|
|
||||||
### v0.5.0
|
|
||||||
#### Added
|
|
||||||
* Introduced **Core** to the ExAd package
|
|
@ -3,7 +3,7 @@
|
|||||||
This is the core package that needs to be installed for all other ExAd plugins/addons to work.
|
This is the core package that needs to be installed for all other ExAd plugins/addons to work.
|
||||||
|
|
||||||
IMPORTANT!!
|
IMPORTANT!!
|
||||||
Keep the folder struction att all time when copying over files.
|
Keep the folder structure at all time when copying over files.
|
||||||
|
|
||||||
## Client
|
## Client
|
||||||
* Copy missionconfig classes from "mpmissions\Exile.Altis\description.ext\" into your own description.ext
|
* Copy missionconfig classes from "mpmissions\Exile.Altis\description.ext\" into your own description.ext
|
||||||
|
BIN
logo.png
BIN
logo.png
Binary file not shown.
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 10 KiB |
@ -21,10 +21,9 @@ class ExAd
|
|||||||
{
|
{
|
||||||
tag = "ExAd";
|
tag = "ExAd";
|
||||||
#include "Core\CfgFunctions.cpp"
|
#include "Core\CfgFunctions.cpp"
|
||||||
//#include "VirtualGarage\CfgFunctions.cpp"
|
|
||||||
//#include "AdminEvents\CfgFunctions.cpp"
|
//#include "AdminEvents\CfgFunctions.cpp"
|
||||||
//#include "Hacking\CfgFunctions.cpp"
|
|
||||||
//#include "Grinding\CfgFunctions.cpp"
|
|
||||||
//#include "HaloParachute\CfgFunctions.cpp"
|
//#include "HaloParachute\CfgFunctions.cpp"
|
||||||
//#include "XM8\CfgFunctions.cpp"
|
//#include "XM8\CfgFunctions.cpp"
|
||||||
|
//#include "StatsBar\CfgFunctions.cpp"
|
||||||
|
//#include "VehicleSalvage\CfgFunctions.cpp"
|
||||||
};
|
};
|
||||||
|
@ -1 +1 @@
|
|||||||
/*
fn_localize.sqf
Copyright 2016 Jan Babor
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
params [
["_key", "", [""]],
["_value","N/A",[""]]
];
if(count _key == 0)exitWith{["localize", "_key is undefined/empty"] call ExAd_fnc_DebugHandler};
call compile format['%1 = if(isLocalized "%1")then{localize "%1"}else{"%3"};', _key, _value];
true
|
/*
fn_localize.sqf
Copyright 2016 Jan Babor
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
params [
["_key", "", [""]],
["_value","N/A",[""]]
];
if(count _key == 0)exitWith{["localize", "_key is undefined/empty"] call ExAd_fnc_DebugHandler};
call compile format['%1 = if(isLocalized "%1")then{localize "%1"}else{"%2"};', _key, _value];
true
|
BIN
mpmissions/Exile.Altis/ExAdClient/Core/Img/exad_logo_128.paa
Normal file
BIN
mpmissions/Exile.Altis/ExAdClient/Core/Img/exad_logo_128.paa
Normal file
Binary file not shown.
BIN
mpmissions/Exile.Altis/ExAdClient/Core/Img/exad_logo_256.paa
Normal file
BIN
mpmissions/Exile.Altis/ExAdClient/Core/Img/exad_logo_256.paa
Normal file
Binary file not shown.
BIN
mpmissions/Exile.Altis/ExAdClient/Core/Img/exad_logo_512.paa
Normal file
BIN
mpmissions/Exile.Altis/ExAdClient/Core/Img/exad_logo_512.paa
Normal file
Binary file not shown.
BIN
mpmissions/Exile.Altis/ExAdClient/Core/Img/exad_logo_64.paa
Normal file
BIN
mpmissions/Exile.Altis/ExAdClient/Core/Img/exad_logo_64.paa
Normal file
Binary file not shown.
@ -18,8 +18,5 @@
|
|||||||
|
|
||||||
|
|
||||||
//#include "Core\ExAd.cpp"
|
//#include "Core\ExAd.cpp"
|
||||||
//#include "VirtualGarage\ExAd.cpp"
|
|
||||||
//#include "AdminEvents\ExAd.cpp"
|
//#include "AdminEvents\ExAd.cpp"
|
||||||
//#include "Hacking\ExAd.cpp"
|
|
||||||
//#include "Grinding\ExAd.cpp"
|
|
||||||
//#include "HaloParachute\ExAd.cpp"
|
//#include "HaloParachute\ExAd.cpp"
|
@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
fn_canRestoreLock.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
(('Exile_Item_Codelock' in (magazines player)) && (ExileClientInteractionObject getVariable ['ExAd_Grinding_progress', 0] > 0) && (ExileClientInteractionObject getVariable ['ExAd_Grinding_progress', 0] < ExAd_GRINDING_OBJECT_MAX))
|
|
@ -1,105 +0,0 @@
|
|||||||
/*
|
|
||||||
fn_grindLock.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
private ["_soundSrc","_ticker"];
|
|
||||||
|
|
||||||
if(vehicle player != player)exitWith{false};
|
|
||||||
|
|
||||||
ExAd_GRINDING_OBJECT = _this select 0;
|
|
||||||
ExAd_GRINDING = true;
|
|
||||||
|
|
||||||
{
|
|
||||||
ExileClientInteractionObject removeAction _x;
|
|
||||||
}
|
|
||||||
forEach ExileClientInteractionHandles;
|
|
||||||
|
|
||||||
if(isClass(configFile >> "CfgVehicles" >> "Sound_Factory10")) then {
|
|
||||||
_soundSrc = createSoundSource ["Sound_Factory10", position ExAd_GRINDING_OBJECT, [], 0];
|
|
||||||
};
|
|
||||||
player playActionNow "medicStart";
|
|
||||||
|
|
||||||
ExAd_DRAW3D_HANDLER = addMissionEventHandler ["Draw3D", {
|
|
||||||
private ["_object","_progress"];
|
|
||||||
|
|
||||||
_height = ExAd_GRINDING_PROGRESSBAR_POS;
|
|
||||||
|
|
||||||
_object = if(isNil "ExAd_GRINDING_OBJECT")then{ExileClientInteractionObject}else{ExAd_GRINDING_OBJECT};
|
|
||||||
_progress = 1 min ((_object getVariable ["ExAd_Grinding_progress", 1]) / ExAd_GRINDING_OBJECT_MAX);
|
|
||||||
|
|
||||||
drawLine3D [_object modelToWorld [-0.5, -0.15, _height], _object modelToWorld [0.5, -0.15, _height], [0,0,0,1]];
|
|
||||||
drawLine3D [_object modelToWorld [-0.5, -0.15, _height - 0.05], _object modelToWorld [0.5, -0.15, _height - 0.05], [0,0,0,1]];
|
|
||||||
drawLine3D [_object modelToWorld [-0.5, 0.15, _height], _object modelToWorld [0.5, 0.15, _height], [0,0,0,1]];
|
|
||||||
drawLine3D [_object modelToWorld [-0.5, 0.15, _height - 0.05], _object modelToWorld [0.5, 0.15, _height - 0.05], [0,0,0,1]];
|
|
||||||
|
|
||||||
drawLine3D [_object modelToWorld [-0.5, -0.15, _height], _object modelToWorld [-0.5, -0.15, _height - 0.05], [0,0,0,1]];
|
|
||||||
drawLine3D [_object modelToWorld [0.5, -0.15, _height], _object modelToWorld [0.5, -0.15, _height - 0.05], [0,0,0,1]];
|
|
||||||
drawLine3D [_object modelToWorld [-0.5, 0.15, _height], _object modelToWorld [-0.5, 0.15, _height - 0.05], [0,0,0,1]];
|
|
||||||
drawLine3D [_object modelToWorld [0.5, -0.15, _height], _object modelToWorld [0.5, -0.15, _height - 0.05], [0,0,0,1]];
|
|
||||||
|
|
||||||
for "_i" from 1 to 49 do {
|
|
||||||
drawLine3D [_object modelToWorld [-0.5, -0.15, _height - (0.001 * _i)], _object modelToWorld [((-0.5) + _progress), -0.15, _height - (0.001 * _i)], [1,0.482,0,1]];
|
|
||||||
drawLine3D [_object modelToWorld [0.5, 0.15, _height - (0.001 * _i)], _object modelToWorld [((0.5) - _progress), 0.15, _height - (0.001 * _i)], [1,0.482,0,1]];
|
|
||||||
|
|
||||||
drawLine3D [_object modelToWorld [0.5, -0.15, _height - (0.001 * _i)], _object modelToWorld [((-0.5) + _progress), -0.15, _height - (0.001 * _i)], [0.55,0.55,0.55,1]];
|
|
||||||
drawLine3D [_object modelToWorld [-0.5, 0.15, _height - (0.001 * _i)], _object modelToWorld [((0.5) - _progress), 0.15, _height - (0.001 * _i)], [0.55,0.55,0.55,1]];
|
|
||||||
}
|
|
||||||
}];
|
|
||||||
|
|
||||||
_ticker = 1;
|
|
||||||
while{(ExAd_GRINDING_OBJECT == ExileClientInteractionObject) && ExAd_GRINDING}do{
|
|
||||||
UISleep 1;
|
|
||||||
|
|
||||||
if(random[0,50,100] < 1)exitWith{
|
|
||||||
player removeItem "Exile_Item_Grinder";
|
|
||||||
["ErrorTitleAndText", ["ExAd - Grinding", STR_ExAd_GRINDING_NOTI_BROKE]] call ExileClient_gui_toaster_addTemplateToast;
|
|
||||||
false
|
|
||||||
};
|
|
||||||
|
|
||||||
if!("Exile_Magazine_Battery" in (magazines player))exitWith{
|
|
||||||
["ErrorTitleAndText", ["ExAd - Grinding", STR_ExAd_GRINDING_NOTI_EMPTY_BAT]] call ExileClient_gui_toaster_addTemplateToast;
|
|
||||||
false
|
|
||||||
};
|
|
||||||
|
|
||||||
if((_ticker % ExAd_GRINDING_PROGRESS_INTERVALL) == 0)then{
|
|
||||||
player removeItem "Exile_Magazine_Battery";
|
|
||||||
|
|
||||||
["grindProgress", [netId ExAd_GRINDING_OBJECT]] call ExAd_fnc_serverDispatch;
|
|
||||||
["SuccessTitleAndText", ["ExAd - Grinding", STR_ExAd_GRINDING_NOTI_PROGRESS]] call ExileClient_gui_toaster_addTemplateToast;
|
|
||||||
|
|
||||||
player playActionNow "medicStart";
|
|
||||||
};
|
|
||||||
|
|
||||||
if(ExAd_GRINDING_OBJECT getVariable ["ExAd_Grinding_progress", 0] > ExAd_GRINDING_OBJECT_MAX)exitWith{
|
|
||||||
UISleep 2;
|
|
||||||
["SuccessTitleAndText", ["ExAd - Grinding", STR_ExAd_GRINDING_NOTI_FINISHED]] call ExileClient_gui_toaster_addTemplateToast;
|
|
||||||
["grindProgress", [netId ExAd_GRINDING_OBJECT]] call ExAd_fnc_serverDispatch;
|
|
||||||
};
|
|
||||||
_ticker = _ticker + 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
if(isClass(configFile >> "CfgVehicles" >> "Sound_Factory10")) then {
|
|
||||||
deleteVehicle _soundSrc;
|
|
||||||
};
|
|
||||||
|
|
||||||
player playActionNow "medicStop";
|
|
||||||
removeMissionEventHandler ["Draw3D",ExAd_DRAW3D_HANDLER];
|
|
||||||
|
|
||||||
ExAd_GRINDING_OBJECT = nil;
|
|
||||||
ExAd_GRINDING = false;
|
|
||||||
call ExileClient_gui_interactionMenu_unhook;
|
|
||||||
|
|
||||||
true
|
|
@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
customize.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
ExAd_GRINDING_PROGRESS_INTERVALL = 5; //SCALAR - Grinding, interval time measured in seconds.
|
|
||||||
|
|
||||||
ExAd_GRINDING_PROGRESS = 30; //SCALAR - Damage each finished interval will take from the code lock.
|
|
||||||
|
|
||||||
ExAd_GRINDING_OBJECT_MAX = 300; //SCALAR - Code lock sustainability.
|
|
||||||
|
|
||||||
ExAd_GRINDING_PROGRESSBAR_POS = "Mid"; //SCALAR/STRING - You can use values between 0.3-2 or using "LOW"|"MID"|"HIGH"
|
|
||||||
|
|
||||||
/*
|
|
||||||
The default values above means that a full succesful grind will take (900 / 30) * 60 = 1800 = 20 minutes
|
|
||||||
*/
|
|
@ -1,47 +0,0 @@
|
|||||||
/*
|
|
||||||
postInit.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
_path = "ExAdClient\Grinding\customize.sqf";
|
|
||||||
call compile preprocessFileLineNumbers _path;
|
|
||||||
|
|
||||||
if(isNil "ExAd_GRINDING_PROGRESS_INTERVALL")then{ExAd_GRINDING_PROGRESS_INTERVALL = 60;};
|
|
||||||
if(isNil "ExAd_GRINDING_PROGRESS")then{ExAd_GRINDING_PROGRESS = 30;};
|
|
||||||
if(isNil "ExAd_GRINDING_OBJECT_MAX")then{ExAd_GRINDING_OBJECT_MAX = 900;};
|
|
||||||
|
|
||||||
ExAd_GRINDING = false;
|
|
||||||
|
|
||||||
["STR_ExAd_GRINDING_NOTI_BROKE", "Your grinder broke, get a new one before you can continue."] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_GRINDING_NOTI_EMPTY_BAT", "Find some batteries to get the grinder to work."] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_GRINDING_NOTI_PROGRESS", "Your grinder broke, get a new one before you can continue."] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_GRINDING_NOTI_FINISHED", "You have broken the code lock."] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_GRINDING_NOTI_RESTORED", "You've changed the look"] call ExAd_fnc_localize;
|
|
||||||
|
|
||||||
ExAd_GRINDING_PROGRESSBAR_POS = if!(isNil "ExAd_GRINDING_PROGRESSBAR_POS")then{
|
|
||||||
if(typeName ExAd_GRINDING_PROGRESSBAR_POS isEqualTo "SCALAR")then{
|
|
||||||
((2 min ExAd_GRINDING_PROGRESSBAR_POS) max 0.3)
|
|
||||||
}else{
|
|
||||||
if(typeName ExAd_GRINDING_PROGRESSBAR_POS isEqualTo "STRING")then{
|
|
||||||
switch (toLower ExAd_GRINDING_PROGRESSBAR_POS) do {
|
|
||||||
case "low": {0.3};
|
|
||||||
case "mid": {1};
|
|
||||||
case "high": {1.8};
|
|
||||||
default {1};
|
|
||||||
}
|
|
||||||
} else {1}
|
|
||||||
}
|
|
||||||
}else{1};
|
|
@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
fn_canHackSafe.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
(('Exile_Item_Laptop' in (magazines player)) && ((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo -1) && (({alive _x}count playableUnits) >= ExAd_HACKING_MIN_PLAYERS_ONLINE))
|
|
@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
fn_canHackVG.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
(('Exile_Item_Laptop' in (magazines player)) && ((([ExileClientInteractionObject, getPlayerUID player] call ExileClient_util_territory_getAccessLevel) select 0) < ExAd_VG_ACCESS_LEVEL) && (({alive _x}count playableUnits) >= ExAd_HACKING_MIN_PLAYERS_ONLINE))
|
|
@ -1,35 +0,0 @@
|
|||||||
/*
|
|
||||||
customize.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
ExAd_HACKING_MIN_PLAYERS_ONLINE = 30; //SCALAR - Minimun allowed players online to initalize a hack.
|
|
||||||
|
|
||||||
ExAd_HACKING_ALLOWED_HACKS = 1; //SCALAR - Simultaneous hacks allowed.
|
|
||||||
|
|
||||||
ExAd_HACKING_MAX_TIME = 1200; //SCALAR - Time to complete a hack
|
|
||||||
|
|
||||||
ExAd_HACKING_MAX_DISTANCE = 50; //SCALAR - Maximum distance away from the object being hack players for the hack to proceed.
|
|
||||||
|
|
||||||
ExAd_HACKING_TERRITORY_MAX = 3; //SCALAR - Maximun times a territory can get hacked before a new restart.
|
|
||||||
|
|
||||||
ExAd_HACKING_MARKER_COLOR = "ColorOrange"; //STRING - What color should the map marker have.
|
|
||||||
|
|
||||||
ExAd_HACKING_MARKER_TITLE = "Hacker activity"; //STRING - What title should the map marker have.
|
|
||||||
|
|
||||||
ExAd_HACKING_FAILED_HACK = 0.15; //SCALAR - 0-1 The possability for the hack to fail once finished.
|
|
||||||
|
|
||||||
ExAd_HACKING_PLAYER_ONLINE = false; //BOLLEAN - True if a player with build permissions for a base needs to be online for a hack to be possible.
|
|
@ -1,46 +0,0 @@
|
|||||||
/*
|
|
||||||
postInit.sqf
|
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
_path = "ExAdClient\Hacking\customize.sqf";
|
|
||||||
call compile preprocessFileLineNumbers _path;
|
|
||||||
|
|
||||||
if(isNil "ExAd_HACKING_MIN_PLAYERS_ONLINE")then{ExAd_HACKING_MIN_PLAYERS_ONLINE = 30;};
|
|
||||||
if(isNil "ExAd_HACKING_ALLOWED_HACKS")then{ExAd_HACKING_ALLOWED_HACKS = 1;};
|
|
||||||
if(isNil "ExAd_HACKING_MAX_TIME")then{ExAd_HACKING_MAX_TIME = 1200;};
|
|
||||||
if(isNil "ExAd_HACKING_MAX_DISTANCE")then{ExAd_HACKING_MAX_DISTANCE = 50;};
|
|
||||||
if(isNil "ExAd_HACKING_TERRITORY_MAX")then{ExAd_HACKING_TERRITORY_MAX = 3;};
|
|
||||||
if(isNil "ExAd_HACKING_MARKER_COLOR")then{ExAd_HACKING_MARKER_COLOR = "ColorOrange";};
|
|
||||||
if(isNil "ExAd_HACKING_MARKER_TITLE")then{ExAd_HACKING_MARKER_TITLE = "Hacker activity";};
|
|
||||||
if(isNil "ExAd_HACKING_FAILED_HACK")then{ExAd_HACKING_FAILED_HACK = 0.15;};
|
|
||||||
|
|
||||||
if(isNil "ExAd_VG_ACCESS_LEVEL")then{ExAd_VG_ACCESS_LEVEL = 1;};
|
|
||||||
|
|
||||||
if(isNil "ExAd_HACKING_FAILED_HACK")then{ExAd_VG_ACCESS_LEVEL = 1;}; /*Needs to be here if peolpe don't use the VirtualGarage*/
|
|
||||||
|
|
||||||
["STR_ExAd_HACKING_NOTI_MAX_TERRITORY_HACKS_REACHED", "Connection failed! Territory Wi-Fi is down!"] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_HACKING_NOTI_TERRITORY_ONE_HACK", "Wi-Fi occupied!!"] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_HACKING_NOTI_MAX_SIM_HACKS", "The laptop overloaded and got destroyed! Another hacker is already using the grid."] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_HACKING_NOTI_NO_PLAYER_PRESENT", "No Wi-Fi available!"] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_HACKING_HINT_TITLE", "Hack Activity"] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_HACKING_HINT_HACK_START", "A brute force hack is detected on the grid!"] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_HACKING_NOTI_VG_SUCCESS", "Hack successful! The Virtual Garage unloaded a %1"] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_HACKING_NOTI_VG_NO_VEH", "Hack successful! No vehicles were stored in the Virtual Garage."] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_HACKING_NOTI_SAFE_SUCCESS", "Hack successful! The safe is now unlocked."] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_HACKING_NOTI_INTERUPTED", "Hack has been interupted"] call ExAd_fnc_localize;
|
|
||||||
["STR_ExAd_HACKING_NOTI_FAILED", "Hack failed! Circuits overloaded!"] call ExAd_fnc_localize;
|
|
@ -40,7 +40,8 @@ if(ExAd_HALOPARACHUTE_SAFE_MODE)then{
|
|||||||
};
|
};
|
||||||
|
|
||||||
if(ExAd_HALOPARACHUTE_USE_KEY_ACTIONS)then{
|
if(ExAd_HALOPARACHUTE_USE_KEY_ACTIONS)then{
|
||||||
hint localize "STR_ExAd_HALOPARACHUTE_INFO_DETACH"
|
//hint localize "STR_ExAd_HALOPARACHUTE_INFO_DETACH"
|
||||||
|
[localize "STR_ExAd_HALOPARACHUTE_INFO_DETACH"] spawn ExileClient_gui_baguette_show;
|
||||||
};
|
};
|
||||||
|
|
||||||
true
|
true
|
@ -17,7 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
ExAd_HALOPARACHUTE_SAFE_MODE = false; //BOOLEAN - Force pull parachute when player reaches ExAd_ACTION_PARACHUTE_HEIGHT if they ejected from vehicle
|
ExAd_HALOPARACHUTE_SAFE_MODE = false; //BOOLEAN - Force pull parachute when player reaches ExAd_ACTION_PARACHUTE_HEIGHT if they ejected from vehicle
|
||||||
ExAd_HALOPARACHUTE_USE_ACTIONS = true; //BOOLEAN - Allows player to eject from all vehicles with a pressed key combination 'alt shift x'
|
ExAd_HALOPARACHUTE_USE_ACTIONS = true; //BOOLEAN - Allows player to eject from all vehicles with a pressed key combination 'Alt+Shift+V'
|
||||||
ExAd_HALOPARACHUTE_USE_KEY_ACTIONS = true; //BOOLEAN - Show addActions on the screen
|
ExAd_HALOPARACHUTE_USE_KEY_ACTIONS = true; //BOOLEAN - Show addActions on the screen
|
||||||
|
|
||||||
ExAd_ACTION_PARACHUTE_HEIGHT = 10; //SCALAR - What is the minimum altitude a player can pull a parachute. |RECOMMENDED 30 meters when safe_mode activated
|
ExAd_ACTION_PARACHUTE_HEIGHT = 10; //SCALAR - What is the minimum altitude a player can pull a parachute. |RECOMMENDED 30 meters when safe_mode activated
|
||||||
|
@ -42,7 +42,7 @@ if(isNil "ExAd_ACTION_EJECT_HEIGHT")then{ExAd_ACTION_EJECT_HEIGHT = 0;};
|
|||||||
|
|
||||||
if(ExAd_HALOPARACHUTE_USE_KEY_ACTIONS)then{
|
if(ExAd_HALOPARACHUTE_USE_KEY_ACTIONS)then{
|
||||||
ExAd_ACTION_HALOPARACHUTE_USE_KEY_ACTIONS = (findDisplay 46) displayAddEventHandler ["KeyDown",{
|
ExAd_ACTION_HALOPARACHUTE_USE_KEY_ACTIONS = (findDisplay 46) displayAddEventHandler ["KeyDown",{
|
||||||
if(_this select 1 == 45 && _this select 2 && _this select 4)then{
|
if(_this select 1 == 47 && _this select 2 && _this select 4)then{
|
||||||
if((getPos player) select 2 > ExAd_ACTION_EJECT_HEIGHT && vehicle player != player)then{
|
if((getPos player) select 2 > ExAd_ACTION_EJECT_HEIGHT && vehicle player != player)then{
|
||||||
call ExAd_fnc_ejectPlayer
|
call ExAd_fnc_ejectPlayer
|
||||||
}else{
|
}else{
|
||||||
|
@ -17,4 +17,4 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
//#include "HUD\RscTitles.cpp"
|
//#include "StatsBar\RscTitles.cpp"
|
@ -0,0 +1,3 @@
|
|||||||
|
class Scratchie {
|
||||||
|
class postInitScratchie {file = "ExAdClient\Scratchie\postInit.sqf"; postInit = 1;};
|
||||||
|
}
|
Binary file not shown.
Binary file not shown.
BIN
mpmissions/Exile.Altis/ExAdClient/Scratchie/icons/scratchie.paa
Normal file
BIN
mpmissions/Exile.Altis/ExAdClient/Scratchie/icons/scratchie.paa
Normal file
Binary file not shown.
4
mpmissions/Exile.Altis/ExAdClient/Scratchie/onClose.sqf
Normal file
4
mpmissions/Exile.Altis/ExAdClient/Scratchie/onClose.sqf
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
if (ExileClientXM8CurrentSlide == "ExAd_Scratchie") then {
|
||||||
|
ExileClientXM8CurrentSlide = "apps";
|
||||||
|
};
|
||||||
|
ExAdCurFlagNetId = nil;
|
51
mpmissions/Exile.Altis/ExAdClient/Scratchie/onLoad.sqf
Normal file
51
mpmissions/Exile.Altis/ExAdClient/Scratchie/onLoad.sqf
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
onLoad.sqf
|
||||||
|
|
||||||
|
Copyright 2017 ole
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
params["_display","_slide","_idc"];
|
||||||
|
|
||||||
|
_pW = 0.025;
|
||||||
|
_pH = 0.04;
|
||||||
|
_leftCol = 0;
|
||||||
|
_leftColW = 10;
|
||||||
|
|
||||||
|
_margin = 0.02;
|
||||||
|
|
||||||
|
_posX = _margin + _leftCol * _pW;
|
||||||
|
|
||||||
|
_slideClass = "ExAd_Scratchie";
|
||||||
|
|
||||||
|
// fixing index issue from ExAd_fnc_getNextIDC and ExAd_fnc_getAppCtrl
|
||||||
|
[_slideClass,"dummy"] call ExAd_fnc_getNextIDC;
|
||||||
|
|
||||||
|
[_display,_slide,([_slideClass,"InfoTitle"] call ExAd_fnc_getNextIDC),[_leftCol * _pW, 2.75 * _pH, 20 * _pW, 2 * _pH],"Counting Scratchies...","PuristaMedium",1.2,"#ffffff","left",1] call ExAd_fnc_createStructuredText;
|
||||||
|
[_display,_slide,([_slideClass,"backButton"] call ExAd_fnc_getNextIDC),[27.6 * _pW, 17.7 * _pH, 6 * _pW, 1 * _pH],'["extraApps", 1] call ExileClient_gui_xm8_slide;','Back'] call ExAd_fnc_createButton;
|
||||||
|
|
||||||
|
/* Buy button */
|
||||||
|
[_display,_slide,([_slideClass,"picBuy"] call ExAd_fnc_getNextIDC),[_posX, 5 * _pH, _leftColW * _pW, 7 * _pH],"ExAdClient\Scratchie\icons\scratchie-buy.paa",[1,1,1,1],false,false,""] call ExAd_fnc_createPicture;
|
||||||
|
[_display,_slide,([_slideClass,"buyButton"] call ExAd_fnc_getNextIDC),[_posX, 12 * _pH, _leftColW*_pW, 1*_pH],"['buy',ExileClientSessionId, player, ''] remoteExecCall ['ExileServer_lottery_network_request', 2]; [] spawn Scratchie_UpdateCount;",'Buy Scratchie',""] call ExAd_fnc_createButton;
|
||||||
|
|
||||||
|
/* Use button */
|
||||||
|
_posX = _posX + _margin + _leftColW * _pW;
|
||||||
|
[_display,_slide,([_slideClass,"picUse"] call ExAd_fnc_getNextIDC),[_posX, 5 * _pH, _leftColW * _pW, 7 * _pH],"ExAdClient\Scratchie\icons\scratchie.paa",[1,1,1,1],false,false,""] call ExAd_fnc_createPicture;
|
||||||
|
[_display,_slide,([_slideClass,"useButton"] call ExAd_fnc_getNextIDC),[_posX, 12 * _pH, _leftColW * _pW, 1 * _pH],"['use',ExileClientSessionId, player, ''] remoteExecCall ['ExileServer_lottery_network_request', 2]; [] spawn Scratchie_UpdateCount;",'Use Scratchie',""] call ExAd_fnc_createButton;
|
||||||
|
|
||||||
|
/* Get Prize button */
|
||||||
|
_posX = _posX + _margin + _leftColW * _pW;
|
||||||
|
[_display,_slide,([_slideClass,"picPrize"] call ExAd_fnc_getNextIDC),[_posX, 5 * _pH, _leftColW * _pW, 7 * _pH],"ExAdClient\Scratchie\icons\scratchie-prize.paa",[1,1,1,1],false,false,""] call ExAd_fnc_createPicture;
|
||||||
|
[_display,_slide,([_slideClass,"useButton"] call ExAd_fnc_getNextIDC),[_posX, 12 * _pH, _leftColW * _pW, 1 * _pH],"['get',ExileClientSessionId, player, ''] remoteExecCall ['ExileServer_lottery_network_request', 2];",'Get Prize',""] call ExAd_fnc_createButton;
|
||||||
|
|
||||||
|
true
|
18
mpmissions/Exile.Altis/ExAdClient/Scratchie/onOpen.sqf
Normal file
18
mpmissions/Exile.Altis/ExAdClient/Scratchie/onOpen.sqf
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
private ["_flags","_flag"];
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_display = uiNameSpace getVariable ["RscExileXM8", displayNull];
|
||||||
|
if(isNull _display)exitWith{
|
||||||
|
throw "XM8 not loaded!";
|
||||||
|
};
|
||||||
|
|
||||||
|
diag_log "Opening Scratchies slide";
|
||||||
|
|
||||||
|
[] spawn Scratchie_UpdateCount;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
["ErrorTitleAndText", ["ExAd - Scratchies", _exception]] call ExileClient_gui_toaster_addTemplateToast;
|
||||||
|
["extraApps", 1] call ExileClient_gui_xm8_slide
|
||||||
|
}
|
34
mpmissions/Exile.Altis/ExAdClient/Scratchie/postInit.sqf
Normal file
34
mpmissions/Exile.Altis/ExAdClient/Scratchie/postInit.sqf
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
postInit.sqf - Scratchie postInit used for ExAd
|
||||||
|
|
||||||
|
Copyright 2017 - ole1986
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (isDedicated) exitWith {};
|
||||||
|
|
||||||
|
private _code = {
|
||||||
|
disableSerialization;
|
||||||
|
|
||||||
|
private _display = uiNameSpace getVariable ["RscExileXM8", displayNull];
|
||||||
|
private _ctrl = [_display,"ExAd_Scratchie","InfoTitle"] call ExAd_fnc_getAppCtrl;
|
||||||
|
|
||||||
|
_ctrl ctrlSetStructuredText parseText "Counting Scratchies...";
|
||||||
|
sleep 3;
|
||||||
|
_ctrl ctrlSetStructuredText parseText (format ["You have <t color='#1ab42e'>%1 Scratchies</t> in your pocket", missionNamespace getVariable ["scratchieCount", 0]]);
|
||||||
|
};
|
||||||
|
|
||||||
|
missionNamespace setVariable ['Scratchie_UpdateCount', _code];
|
||||||
|
|
||||||
|
diag_log "Loaded Scratchie postInit";
|
49
mpmissions/Exile.Altis/ExAdClient/StatsBar/CfgFunctions.cpp
Normal file
49
mpmissions/Exile.Altis/ExAdClient/StatsBar/CfgFunctions.cpp
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
CfgFunctions.cpp
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
class StatsBar
|
||||||
|
{
|
||||||
|
file = "ExAdClient\StatsBar\Functions";
|
||||||
|
class formatNbrToPrefixStr {};
|
||||||
|
class formatSBImage {};
|
||||||
|
class formatSBOutput {};
|
||||||
|
class getBankStr {};
|
||||||
|
class getClanStr {};
|
||||||
|
class getCompassStr {};
|
||||||
|
class getFPSStr {};
|
||||||
|
class getGridStr {};
|
||||||
|
class getHPStr {};
|
||||||
|
class getHungerStr {};
|
||||||
|
class getKDStr {};
|
||||||
|
class getPlayersStr {};
|
||||||
|
class getRespectStr {};
|
||||||
|
class getTempStr {};
|
||||||
|
class getThirstStr {};
|
||||||
|
class getTimerStr {};
|
||||||
|
class getSBColor {};
|
||||||
|
class getWalletStr {};
|
||||||
|
class loadSB {};
|
||||||
|
class sbPowerToggle {};
|
||||||
|
class sbSave {};
|
||||||
|
class sbStop {};
|
||||||
|
class sbThread {};
|
||||||
|
class toggleExileHUD {};
|
||||||
|
class updateSB {};
|
||||||
|
class postInitSB {file = "ExAdClient\StatsBar\postInit.sqf"; postInit = 1;};
|
||||||
|
};
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
CfgFunctions.cpp
|
fn_formatNbrToPrefixStr.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
@ -14,15 +14,10 @@
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
params [["_nbr", 0, [0]], ["_response", ""], ["_prefix", ""]];
|
||||||
|
|
||||||
|
_prefix = if( _nbr >= 1000 ) then { if( _nbr >= 1000000 ) then {_nbr = _nbr / 1000000; "M" } else {_nbr = _nbr / 1000; "K" } }else{ "" };
|
||||||
|
|
||||||
class Hacking
|
format["%1%2", floor _nbr, _prefix]
|
||||||
{
|
|
||||||
file = "ExAdClient\Hacking\Functions";
|
|
||||||
class canHackSafe {};
|
|
||||||
class canHackVG {};
|
|
||||||
class startHack {};
|
|
||||||
class stopHack {};
|
|
||||||
class postInitHacking {file = "ExAdClient\Hacking\postInit.sqf"; postInit = 1;};
|
|
||||||
};
|
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
fn_startHack.sqf
|
fn_formatSBImage.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
@ -14,8 +14,8 @@
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
params [["_src","",[""]],["_size",ExAd_SB_Img_Size,[0]]];
|
||||||
|
|
||||||
player playActionNow "SitDown";
|
format["<img size='%2' image='%1' />", _src,_size]
|
||||||
|
|
||||||
["startHack", [netId (_this select 0), netId player]] call ExAd_fnc_serverDispatch;
|
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
CfgFunctions.cpp
|
fn_formatSBOutput.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
@ -14,17 +14,13 @@
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
params [["_elements", [], [[]]], ["_color","",[""]], ["_text",""]];
|
||||||
|
|
||||||
|
|
||||||
class VirtualGarage
|
|
||||||
{
|
{
|
||||||
file = "ExAdClient\VirtualGarage\Functions";
|
_text = format["%1%3%2", _text, _x, ExAd_SB_Text_InnerMargin];
|
||||||
class allowedVGVeh {};
|
}forEach _elements;
|
||||||
class allowVGStore {};
|
|
||||||
class fillVGList {};
|
_color = if(count _color > 0)then{format["color='%1'",_color]}else{_color};
|
||||||
class loadVGContent {};
|
format["<t %3>%1%2%1</t>", ExAd_SB_Text_Margin , _text , _color ]
|
||||||
class loadVGDetailView {};
|
|
||||||
class onBtnClickVG {};
|
|
||||||
class postInitVG {file = "ExAdClient\VirtualGarage\postInit.sqf"; postInit = 1;};
|
|
||||||
};
|
|
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
fn_getBankStr.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
private["_img","_text"];
|
||||||
|
|
||||||
|
_img = [ExAd_SB_ICON_BANK] call ExAd_fnc_formatSBImage;
|
||||||
|
_text = [player getVariable ["ExileLocker", 0]] call ExAd_fnc_formatNbrToPrefixStr;
|
||||||
|
|
||||||
|
[[_img, _text]] call ExAd_fnc_formatSBOutput
|
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
fn_getClanStr.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
private["_img","_text"];
|
||||||
|
|
||||||
|
_img = [ExAd_SB_ICON_CLAN] call ExAd_fnc_formatSBImage;
|
||||||
|
_text = "N/A";
|
||||||
|
|
||||||
|
[[_img, _text]] call ExAd_fnc_formatSBOutput
|
@ -0,0 +1,40 @@
|
|||||||
|
/*
|
||||||
|
fn_getCompassStr.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
private["_img","_dir"];
|
||||||
|
|
||||||
|
_img = [ExAd_SB_ICON_COMPASS] call ExAd_fnc_formatSBImage;
|
||||||
|
_dir = direction player;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if(_dir >= 337.5 || _dir < 22.5 )then{throw "N"};
|
||||||
|
if(_dir >= 22.5 && _dir < 67.5 )then{throw "NE"};
|
||||||
|
if(_dir >= 67.5 && _dir < 112.5 )then{throw "E"};
|
||||||
|
if(_dir >= 112.5 && _dir < 157.5 )then{throw "SE"};
|
||||||
|
if(_dir >= 157.5 && _dir < 202.5 )then{throw "S"};
|
||||||
|
if(_dir >= 202.5 && _dir < 247.5 )then{throw "SW"};
|
||||||
|
if(_dir >= 247.5 && _dir < 292.5 )then{throw "W"};
|
||||||
|
if(_dir >= 292.5 && _dir < 337.5 )then{throw "NW"};
|
||||||
|
|
||||||
|
throw "N/A"
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
[[_img, _exception, round _dir]] call ExAd_fnc_formatSBOutput
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
fn_getFPSStr.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
private["_request","_img","_text"];
|
||||||
|
|
||||||
|
_request = [];
|
||||||
|
|
||||||
|
_img = format["<t size='%1'>FPS</t>", ExAd_SB_Img_Size];
|
||||||
|
_text = floor diag_fps;
|
||||||
|
_request pushBack [_img,_text];
|
||||||
|
|
||||||
|
if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{
|
||||||
|
_request pushBack ([0,40,_text] call ExAd_fnc_getSBColor)
|
||||||
|
};
|
||||||
|
|
||||||
|
_request call ExAd_fnc_formatSBOutput
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
fn_loadVGDetailView.sqf
|
fn_getGridStr.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
@ -14,14 +14,13 @@
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
params ["_text","_idc"];
|
private["_img","_grid","_text"];
|
||||||
disableSerialization;
|
|
||||||
|
|
||||||
_display = uiNameSpace getVariable ["RscExileXM8", displayNull];
|
_grid = mapGridPosition player;
|
||||||
|
|
||||||
if(isNull _display)exitWith{false};
|
_img = [ExAd_SB_ICON_GRID] call ExAd_fnc_formatSBImage;
|
||||||
|
_text = format["%1|%2",_grid select [0,3],_grid select [3,3]];
|
||||||
|
|
||||||
(_display displayCtrl _idc) ctrlSetStructuredText parseText _text;
|
[[_img, _text]] call ExAd_fnc_formatSBOutput
|
||||||
|
|
||||||
true
|
|
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
fn_getHPStr.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
private["_request","_img","_text"];
|
||||||
|
|
||||||
|
_request = [];
|
||||||
|
|
||||||
|
_img = [ExAd_SB_ICON_HP] call ExAd_fnc_formatSBImage;
|
||||||
|
_text = round (ExileClientPlayerAttributes select 0);
|
||||||
|
_request pushBack [_img,_text];
|
||||||
|
|
||||||
|
if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{
|
||||||
|
_request pushBack ([0,100,_text] call ExAd_fnc_getSBColor)
|
||||||
|
};
|
||||||
|
|
||||||
|
_request call ExAd_fnc_formatSBOutput
|
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
fn_getHungerStr.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
private["_request","_img","_text"];
|
||||||
|
|
||||||
|
_request = [];
|
||||||
|
|
||||||
|
_img = [ExAd_SB_ICON_HUNGER] call ExAd_fnc_formatSBImage;
|
||||||
|
_text = round (ExileClientPlayerAttributes select 2);
|
||||||
|
_request pushBack [_img,_text];
|
||||||
|
|
||||||
|
if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{
|
||||||
|
_request pushBack ([0,100,_text] call ExAd_fnc_getSBColor)
|
||||||
|
};
|
||||||
|
|
||||||
|
_request call ExAd_fnc_formatSBOutput
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
config.cpp
|
fn_getClanStr.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
@ -14,33 +14,21 @@
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
private["_request","_death","_img","_text"];
|
||||||
|
|
||||||
class CfgPatches {
|
_request = [];
|
||||||
class ExAd_Grinding {
|
|
||||||
requiredVersion = 0.1;
|
_death = if(ExileClientPlayerDeaths == 0)then{0.001}else{ExileClientPlayerDeaths};
|
||||||
requiredAddons[] = {"ExAd_Core"};
|
|
||||||
};
|
_img = [ExAd_SB_ICON_KD] call ExAd_fnc_formatSBImage;
|
||||||
|
_text = [ExileClientPlayerKills / _death, 2] call ExileClient_util_math_round;
|
||||||
|
|
||||||
|
_request pushBack [_img,_text];
|
||||||
|
|
||||||
|
if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{
|
||||||
|
_request pushBack ([0,2,_text] call ExAd_fnc_getSBColor)
|
||||||
};
|
};
|
||||||
|
|
||||||
class CfgFunctions {
|
_request call ExAd_fnc_formatSBOutput
|
||||||
class ExAdServer {
|
|
||||||
class Grinding {
|
|
||||||
file = "exad_grinding\Functions";
|
|
||||||
class grindProgress {};
|
|
||||||
class restoreLock {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
class CfgNetworkMessages
|
|
||||||
{
|
|
||||||
class grindProgress
|
|
||||||
{
|
|
||||||
parameters[] = {"STRING"};
|
|
||||||
};
|
|
||||||
class restoreLock
|
|
||||||
{
|
|
||||||
parameters[] = {"STRING"};
|
|
||||||
};
|
|
||||||
};
|
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
fn_allowedVGVeh.sqf
|
fn_getPlayersStr.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
@ -14,9 +14,11 @@
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
params ["_flag"];
|
private["_img","_text"];
|
||||||
|
|
||||||
_res = ExAd_VG_MIN_ALLOWED_VEH + round(ExAd_VG_ALLOWED_VEH_MULTIPLE_FACTOR * (_flag getVariable ["ExileTerritoryLevel", 1]));
|
_img = [ExAd_SB_ICON_PLAYERS] call ExAd_fnc_formatSBImage;
|
||||||
|
_text = count allPlayers;
|
||||||
|
|
||||||
_res
|
[[_img, _text]] call ExAd_fnc_formatSBOutput
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
fn_canGrindLock.sqf
|
fn_getRespectStr.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
@ -14,6 +14,11 @@
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
|
||||||
|
|
||||||
(((ExileClientInteractionObject getvariable ['ExileIsLocked',1]) isEqualTo -1) && !ExAd_GRINDING && ('Exile_Item_Grinder' in (magazines player)))
|
*/
|
||||||
|
private["_img","_text"];
|
||||||
|
|
||||||
|
_img = [ExAd_SB_ICON_RESPECT] call ExAd_fnc_formatSBImage;
|
||||||
|
_text = [ExileClientPlayerScore] call ExAd_fnc_formatNbrToPrefixStr;
|
||||||
|
|
||||||
|
[[_img, _text]] call ExAd_fnc_formatSBOutput
|
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
fn_getSBColor.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
params[["_min",0,[0]],["_max",1,[0]],["_cur",1,[0]],"_count","_diff","_color",""];
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if(isNil "ExAd_SB_COMPONENTS_COLORS")then{throw ""};
|
||||||
|
|
||||||
|
_count = count ExAd_SB_COMPONENTS_COLORS;
|
||||||
|
if(_count == 0)then{throw ""};
|
||||||
|
|
||||||
|
if(_cur > _max)then{_max = _cur};
|
||||||
|
_diff = (_max - _min) / _count;
|
||||||
|
_color = ExAd_SB_COMPONENTS_COLORS select 0;
|
||||||
|
|
||||||
|
for "_i" from 0 to _count do {
|
||||||
|
if(_cur >= (_i * _diff) && _cur <= ((_i + 1) * _diff))then{throw (ExAd_SB_COMPONENTS_COLORS select _i);}
|
||||||
|
};
|
||||||
|
|
||||||
|
throw _color;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
if(count _exception == 0)then{
|
||||||
|
ExAd_SB_COMPONENTS_ACTIVE_COLORS = false;
|
||||||
|
};
|
||||||
|
_exception
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
fn_restoreLock.sqf
|
fn_getTempStr.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
@ -14,16 +14,20 @@
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
private["_request","_img","_text"];
|
||||||
|
|
||||||
private ["_object","_databaseID"];
|
_request = [];
|
||||||
|
|
||||||
_object = objectFromNetId ([_this, 0, "",[""]] call BIS_fnc_param);
|
_img = [ExAd_SB_ICON_TEMP] call ExAd_fnc_formatSBImage;
|
||||||
|
_temp = [ExileClientPlayerAttributes select 5, 1] call ExileClient_util_math_round;
|
||||||
|
_text = _temp;
|
||||||
|
|
||||||
if(isNull _object)exitWith{false};
|
_request pushBack [_img,_text, "°C"];
|
||||||
|
|
||||||
_object setVariable ["ExAd_Grinding_progress", 0, true];
|
if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{
|
||||||
|
_request pushBack ([0,37,_text] call ExAd_fnc_getSBColor)
|
||||||
|
};
|
||||||
|
|
||||||
["Grinding", format["Lock restored: Territory ID - %1|Object ID - %2", _object setVariable ["ExileTerritoryID", -1], _object getVariable ["ExileDatabaseID",0]]] call ExAdServer_fnc_log;
|
_request call ExAd_fnc_formatSBOutput
|
||||||
|
|
||||||
true
|
|
@ -0,0 +1,31 @@
|
|||||||
|
/*
|
||||||
|
fn_getThirstStr.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
private["_request","_img","_text"];
|
||||||
|
|
||||||
|
_request = [];
|
||||||
|
|
||||||
|
_img = [ExAd_SB_ICON_THIRST] call ExAd_fnc_formatSBImage;
|
||||||
|
_text = round (ExileClientPlayerAttributes select 3);
|
||||||
|
_request pushBack [_img,_text];
|
||||||
|
|
||||||
|
if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{
|
||||||
|
_request pushBack ([0,100,_text] call ExAd_fnc_getSBColor)
|
||||||
|
};
|
||||||
|
|
||||||
|
_request call ExAd_fnc_formatSBOutput
|
@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
fn_getTimerStr.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
private["_request","_time","_hours","_minutes","_img","_text"];
|
||||||
|
|
||||||
|
_request = [];
|
||||||
|
|
||||||
|
_time = serverTime;
|
||||||
|
_hours = (ExAd_SB_Timer - 1) - floor (_time / 3600);
|
||||||
|
_minutes = 59 - floor ((_time % 3600) / 60);
|
||||||
|
|
||||||
|
_img = [ExAd_SB_ICON_TIMER] call ExAd_fnc_formatSBImage;
|
||||||
|
_text = format["%1:%2", _hours,(if(_minutes < 10 )then{format["0%1",_minutes]}else{_minutes})];
|
||||||
|
_request pushBack [_img,_text];
|
||||||
|
|
||||||
|
if(ExAd_SB_COMPONENTS_ACTIVE_COLORS)then{
|
||||||
|
if(_hours > 0)then{
|
||||||
|
_request pushBack ([0,1,_hours] call ExAd_fnc_getSBColor)
|
||||||
|
}else{
|
||||||
|
_request pushBack ([0,60,_minutes] call ExAd_fnc_getSBColor)
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
_request call ExAd_fnc_formatSBOutput
|
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
fn_getWalletStr.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
private["_img","_text"];
|
||||||
|
|
||||||
|
_img = [ExAd_SB_ICON_Wallet] call ExAd_fnc_formatSBImage;
|
||||||
|
_text = [player getVariable ["ExileMoney", 0]] call ExAd_fnc_formatNbrToPrefixStr;
|
||||||
|
|
||||||
|
[[_img, _text]] call ExAd_fnc_formatSBOutput
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
fn_restoreLock.sqf
|
fn_loadSB.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
@ -14,20 +14,23 @@
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
params["_object"];
|
private["_display"];
|
||||||
|
|
||||||
if(vehicle player != player)exitWith{false};
|
disableSerialization;
|
||||||
|
|
||||||
call ExileClient_gui_interactionMenu_unhook;
|
ExAd_SB_Dialog_Layer cutRsc ["ExAd_STATSBAR", "PLAIN", 1];
|
||||||
player playActionNow "medic";
|
|
||||||
|
|
||||||
UISleep 5;
|
_display = uiNameSpace getVariable ["ExAd_STATSBAR",displayNull];
|
||||||
player removeItem "Exile_Item_Codelock";
|
_logoCtrl = _display displayCtrl ExAd_SB_Dialog_CtrlLogo_IDC;
|
||||||
["SuccessTitleAndText", ["ExAd - Grinding", STR_ExAd_GRINDING_NOTI_RESTORED]] call ExileClient_gui_toaster_addTemplateToast;
|
|
||||||
|
|
||||||
["restoreLock", [netId _object]] call ExAd_fnc_serverDispatch;
|
if(count ExAd_SB_ICON_LOGO > 0)then{
|
||||||
|
_logoCtrl ctrlSetText ExAd_SB_ICON_LOGO;
|
||||||
|
};
|
||||||
|
|
||||||
call ExileClient_gui_interactionMenu_unhook;
|
call ExAd_fnc_updateSB;
|
||||||
|
|
||||||
|
ExAd_SB_Thread = [ExAd_SB_Update_Rate, ExAd_fnc_sbThread, [], true] call ExileClient_system_thread_addtask;
|
||||||
|
|
||||||
true
|
true
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
CfgFunctions.cpp
|
fn_sbPowerToggle.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
@ -14,15 +14,18 @@
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
if(ExAd_SB_Active)then{
|
||||||
class Grinding
|
call ExAd_fnc_sbStop
|
||||||
{
|
}else{
|
||||||
file = "ExAdClient\Grinding\Functions";
|
call ExAd_fnc_loadSB
|
||||||
class canGrindLock {};
|
|
||||||
class canRestoreLock {};
|
|
||||||
class grindLock {};
|
|
||||||
class restoreLock {};
|
|
||||||
class postInitGrinding {file = "ExAdClient\Grinding\postInit.sqf"; postInit = 1;};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ExAd_SB_Active = !ExAd_SB_Active;
|
||||||
|
|
||||||
|
(_this select 0) ctrlSetText (if(!ExAd_SB_Active)then{STR_ExAd_SB_APP_BTN_SHOW}else{STR_ExAd_SB_APP_BTN_HIDE});
|
||||||
|
call ExAd_SB_fnc_thread;
|
||||||
|
|
||||||
|
true
|
@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
fn_sbSave.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Update_Rate", ExAd_SB_Update_Rate];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Active", ExAd_SB_Active];
|
||||||
|
|
||||||
|
profileNamespace setVariable ["ExAd_SB_GUI_POS", ExAd_SB_GUI_POS];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_GUI_TextColor", ExAd_SB_GUI_TextColor];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_GUI_BgColor", ExAd_SB_GUI_BgColor];
|
||||||
|
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Text_Margin", ExAd_SB_Text_Margin];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Text_InnerMargin", ExAd_SB_Text_InnerMargin];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Text_Font", ExAd_SB_Text_Font];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Text_Align", ExAd_SB_Text_Align];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Text_Size", ExAd_SB_Text_Size];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Img_Size", ExAd_SB_Img_Size];
|
||||||
|
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_KD", ExAd_SB_Show_KD];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_HP", ExAd_SB_Show_HP];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_Thirst", ExAd_SB_Show_Thirst];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_Hunger", ExAd_SB_Show_Hunger];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_Wallet", ExAd_SB_Show_Wallet];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_Bank", ExAd_SB_Show_Bank];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_Respect", ExAd_SB_Show_Respect];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_FPS", ExAd_SB_Show_FPS];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_Time", ExAd_SB_Show_Time];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_Temp", ExAd_SB_Show_Temp];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_Grid", ExAd_SB_Show_Grid];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_Compass", ExAd_SB_Show_Compass];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_PlayerCount", ExAd_SB_Show_PlayerCount];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_Show_ClanCount", ExAd_SB_Show_ClanCount];
|
||||||
|
|
||||||
|
profileNamespace setVariable ["ExAd_SB_COMPONENTS_ACTIVE_COLORS", ExAd_SB_COMPONENTS_ACTIVE_COLORS];
|
||||||
|
profileNamespace setVariable ["ExAd_SB_EXILE_HUD_ACTIVE", ExAd_SB_EXILE_HUD_ACTIVE];
|
||||||
|
|
||||||
|
true
|
@ -1,4 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
fn_sbStop.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -15,4 +17,7 @@
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
["stopHack", [netId (_this select 0)]] call ExAd_fnc_serverDispatch;
|
ExAd_SB_Dialog_Layer cutText ["", "PLAIN"];
|
||||||
|
[ExAd_SB_Thread] call ExileClient_system_thread_removeTask;
|
||||||
|
|
||||||
|
true
|
@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
fn_sbThread.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
private["_display","_statsBarCtrl","_text"];
|
||||||
|
|
||||||
|
disableSerialization;
|
||||||
|
|
||||||
|
_display = uiNameSpace getVariable ["ExAd_STATSBAR",displayNull];
|
||||||
|
_statsBarCtrl = _display displayCtrl ExAd_SB_Dialog_CtrlBar_IDC;
|
||||||
|
|
||||||
|
_text = format[
|
||||||
|
"<t align='%2' shadow='0' valign='middle' font='%1' size='%3'>%4%5%6%7%8%9%10%11%12%13%14%15%16%17%18%4</t>",
|
||||||
|
ExAd_SB_Text_Font,
|
||||||
|
ExAd_SB_Text_Align,
|
||||||
|
ExAd_SB_Text_Size,
|
||||||
|
ExAd_SB_Text_Margin,
|
||||||
|
(if(ExAd_SB_Show_KD && ExAd_SB_Allow_KD)then{call ExAd_fnc_getKDStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_HP && ExAd_SB_Allow_HP)then{call ExAd_fnc_getHPStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_Thirst && ExAd_SB_Allow_Thirst)then{call ExAd_fnc_getThirstStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_Hunger && ExAd_SB_Allow_Hunger)then{call ExAd_fnc_getHungerStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_Wallet && ExAd_SB_Allow_Wallet)then{call ExAd_fnc_getWalletStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_Bank && ExAd_SB_Allow_Bank)then{call ExAd_fnc_getBankStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_Respect && ExAd_SB_Allow_Respect)then{call ExAd_fnc_getRespectStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_FPS && ExAd_SB_Allow_FPS)then{call ExAd_fnc_getFPSStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_Time && ExAd_SB_Allow_Time)then{call ExAd_fnc_getTimerStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_Temp && ExAd_SB_Allow_Temp)then{call ExAd_fnc_getTempStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_Grid && ExAd_SB_Allow_Grid)then{call ExAd_fnc_getGridStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_Compass && ExAd_SB_Allow_Compass)then{call ExAd_fnc_getCompassStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_PlayerCount && ExAd_SB_Allow_PlayerCount)then{call ExAd_fnc_getPlayersStr}else{""}),
|
||||||
|
(if(ExAd_SB_Show_ClanCount && ExAd_SB_Allow_ClanCount)then{call ExAd_fnc_getClanStr}else{""})
|
||||||
|
];
|
||||||
|
|
||||||
|
_statsBarCtrl ctrlSetStructuredText parseText _text;
|
||||||
|
|
||||||
|
true
|
@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
fn_sbThread.sqf
|
||||||
|
|
||||||
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
*/
|
||||||
|
private["_display","_exileCtrl","_text"];
|
||||||
|
|
||||||
|
disableSerialization;
|
||||||
|
|
||||||
|
_display = uiNameSpace getVariable ["RscExileHUD",displayNull];
|
||||||
|
_exileCtrl = _display displayCtrl 1300;
|
||||||
|
|
||||||
|
_exileCtrl ctrlShow ExAd_SB_EXILE_HUD_ACTIVE;
|
||||||
|
|
||||||
|
if(ExAd_SB_EXILE_HUD_ACTIVE)then{
|
||||||
|
_hungerLabel = _display displayCtrl 1303;
|
||||||
|
_hungerLabel ctrlShow (ExileHudMode isEqualTo 0);
|
||||||
|
_hungerValue = _display displayCtrl 1302;
|
||||||
|
_hungerValue ctrlShow (ExileHudMode isEqualTo 0);
|
||||||
|
_thirstLabel = _display displayCtrl 1305;
|
||||||
|
_thirstLabel ctrlShow (ExileHudMode isEqualTo 0);
|
||||||
|
_thirstValue = _display displayCtrl 1304;
|
||||||
|
_thirstValue ctrlShow (ExileHudMode isEqualTo 0);
|
||||||
|
_healthLabel = _display displayCtrl 1307;
|
||||||
|
_healthLabel ctrlShow (ExileHudMode isEqualTo 1);
|
||||||
|
_healthValue = _display displayCtrl 1306;
|
||||||
|
_healthValue ctrlShow (ExileHudMode isEqualTo 1);
|
||||||
|
_environmentTemperatureLabel = _display displayCtrl 1309;
|
||||||
|
_environmentTemperatureLabel ctrlShow (ExileHudMode isEqualTo 2);
|
||||||
|
_environmentTemperatureValue = _display displayCtrl 1308;
|
||||||
|
_environmentTemperatureValue ctrlShow (ExileHudMode isEqualTo 2);
|
||||||
|
_bodyTemperatureLabel = _display displayCtrl 1311;
|
||||||
|
_bodyTemperatureLabel ctrlShow (ExileHudMode isEqualTo 2);
|
||||||
|
_bodyTemperatureValue = _display displayCtrl 1310;
|
||||||
|
_bodyTemperatureValue ctrlShow (ExileHudMode isEqualTo 2);
|
||||||
|
};
|
||||||
|
|
||||||
|
true
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
fn_allowVGStore.sqf
|
fn_sbThread.sqf
|
||||||
|
|
||||||
Copyright 2016 Jan Babor
|
Copyright 2016 Jan Babor
|
||||||
|
|
||||||
@ -14,15 +14,15 @@
|
|||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
private ["_res","_flag"];
|
private ["_display","_statsBarCtrl"];
|
||||||
|
_display = uiNameSpace getVariable ["ExAd_STATSBAR",displayNull];
|
||||||
|
_statsBarCtrl = _display displayCtrl ExAd_SB_Dialog_CtrlBar_IDC;
|
||||||
|
|
||||||
if(isNil "ExAdCurFlagNetId")exitWith{diag_log "ExAdClient: allowVGStore - ExAdCurFlagNetId is nil";false};
|
_statsBarCtrl ctrlSetPosition ExAd_SB_GUI_POS;
|
||||||
_flag = objectFromNetId ExAdCurFlagNetId;
|
_statsBarCtrl ctrlSetBackgroundColor ExAd_SB_GUI_BgColor;
|
||||||
|
_statsBarCtrl ctrlSetTextColor ExAd_SB_GUI_TextColor;
|
||||||
|
_statsBarCtrl ctrlCommit 0;
|
||||||
|
|
||||||
_allowedVeh = _flag call ExAd_fnc_allowedVGVeh;
|
true
|
||||||
_storedVeh = count (_flag getVariable ["ExAdVGVeh", []]);
|
|
||||||
|
|
||||||
_res = if(_allowedVeh > _storedVeh)then{true}else{false};
|
|
||||||
|
|
||||||
_res
|
|
BIN
mpmissions/Exile.Altis/ExAdClient/StatsBar/Icons/ExAd_Bank.paa
Normal file
BIN
mpmissions/Exile.Altis/ExAdClient/StatsBar/Icons/ExAd_Bank.paa
Normal file
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user