Compare commits

...

189 Commits

Author SHA1 Message Date
[GADD]Monkeynutz
c50e5be955
Update README.md 2020-10-15 20:52:30 +01:00
[GADD]Monkeynutz
cad1173871
Delete postInit.sqf 2018-06-03 14:24:02 +01:00
[GADD]Monkeynutz
76b7b794c9
Delete CfgFunctions.cpp 2018-06-03 14:23:54 +01:00
[GADD]Monkeynutz
8d7cb05ccc
Delete customize.sqf 2018-06-03 14:23:47 +01:00
[GADD]Monkeynutz
c4311287b7
Delete fn_vehicleSalvage.sqf 2018-06-03 14:23:32 +01:00
[GADD]Monkeynutz
23f8c101ec
Merge pull request #103 from GamingAtDeathsDoor/master
Deleting VG, Hacking and Grinding for Exile Default.
2018-03-08 22:40:22 +00:00
[GADD]Monkeynutz
8c3a6f1aa6
Update README.md 2018-03-08 22:39:56 +00:00
[GADD]Monkeynutz
69b839e263
Delete update.md 2018-03-08 22:35:14 +00:00
[GADD]Monkeynutz
d2bf0dfa40
Delete installation.md 2018-03-08 22:35:06 +00:00
[GADD]Monkeynutz
415cb7247d
Delete examples.md 2018-03-08 22:34:57 +00:00
[GADD]Monkeynutz
423579c6aa
Delete update.md 2018-03-08 22:34:47 +00:00
[GADD]Monkeynutz
fb43a8d6a6
Delete installation.md 2018-03-08 22:34:40 +00:00
[GADD]Monkeynutz
4bad1d730e
Delete examples.md 2018-03-08 22:34:33 +00:00
[GADD]Monkeynutz
42084d68a7
Delete update.md 2018-03-08 22:34:20 +00:00
[GADD]Monkeynutz
c7369a668d
Delete installation.md 2018-03-08 22:34:12 +00:00
[GADD]Monkeynutz
747cd86da5
Delete examples.md 2018-03-08 22:34:03 +00:00
[GADD]Monkeynutz
f6ba0fb660
Update config.cpp 2018-03-08 22:33:39 +00:00
[GADD]Monkeynutz
a63a8924cb
Update description.ext 2018-03-08 22:32:44 +00:00
[GADD]Monkeynutz
4375edb167
Update stringtable.xml 2018-03-08 22:31:43 +00:00
[GADD]Monkeynutz
fc9ea59304
Update ExAd.cpp 2018-03-08 22:30:47 +00:00
[GADD]Monkeynutz
677b93c789
Delete CfgHints.cpp 2018-03-08 22:30:28 +00:00
[GADD]Monkeynutz
cd69bc1dcd
Update CfgFunctions.cpp 2018-03-08 22:30:15 +00:00
[GADD]Monkeynutz
c4039f1e63
Delete fn_onBtnClickVG.sqf 2018-03-08 22:29:58 +00:00
[GADD]Monkeynutz
c5817a75ec
Delete fn_loadVGDetailView.sqf 2018-03-08 22:29:50 +00:00
[GADD]Monkeynutz
c10482f9ba
Delete fn_loadVGContent.sqf 2018-03-08 22:29:40 +00:00
[GADD]Monkeynutz
e98f43ec83
Delete fn_fillVGList.sqf 2018-03-08 22:29:31 +00:00
[GADD]Monkeynutz
31cccc44ac
Delete fn_allowedVGVeh.sqf 2018-03-08 22:29:24 +00:00
[GADD]Monkeynutz
2fd2b3fb58
Delete fn_allowVGStore.sqf 2018-03-08 22:29:16 +00:00
[GADD]Monkeynutz
5895f69034
Delete ExileServer_system_territory_database_load.sqf 2018-03-08 22:29:07 +00:00
[GADD]Monkeynutz
67b0efcc2c
Delete postInit.sqf 2018-03-08 22:28:57 +00:00
[GADD]Monkeynutz
943d51131b
Delete customize.sqf 2018-03-08 22:28:49 +00:00
[GADD]Monkeynutz
281cebaa83
Delete CfgHints.cpp 2018-03-08 22:28:40 +00:00
[GADD]Monkeynutz
e416577f5f
Delete CfgFunctions.cpp 2018-03-08 22:28:32 +00:00
[GADD]Monkeynutz
781206eab5
Delete postInit.sqf 2018-03-08 22:28:21 +00:00
[GADD]Monkeynutz
e27f50d1f8
Delete customize.sqf 2018-03-08 22:28:14 +00:00
[GADD]Monkeynutz
6afcf5b07a
Delete CfgFunctions.cpp 2018-03-08 22:28:08 +00:00
[GADD]Monkeynutz
bfaf4c1d46
Delete fn_stopHack.sqf 2018-03-08 22:27:37 +00:00
[GADD]Monkeynutz
d1508c6a56
Delete fn_startHack.sqf 2018-03-08 22:27:27 +00:00
[GADD]Monkeynutz
f6fc9708c7
Delete fn_canHackVG.sqf 2018-03-08 22:27:18 +00:00
[GADD]Monkeynutz
3ff3ad38e2
Delete fn_canHackSafe.sqf 2018-03-08 22:27:10 +00:00
[GADD]Monkeynutz
775a89c169
Delete postInit.sqf 2018-03-08 22:26:56 +00:00
[GADD]Monkeynutz
df2782ce1b
Delete customize.sqf 2018-03-08 22:26:43 +00:00
[GADD]Monkeynutz
024fcd3bab
Delete CfgFunctions.cpp 2018-03-08 22:26:35 +00:00
[GADD]Monkeynutz
fc6a4bdc4d
Delete fn_restoreLock.sqf 2018-03-08 22:25:57 +00:00
[GADD]Monkeynutz
04d170f42e
Delete fn_grindLock.sqf 2018-03-08 22:25:44 +00:00
[GADD]Monkeynutz
62f9055c6a
Delete fn_canRestoreLock.sqf 2018-03-08 22:25:35 +00:00
[GADD]Monkeynutz
29f8023759
Delete fn_canGrindLock.sqf 2018-03-08 22:25:28 +00:00
[GADD]Monkeynutz
e9bc7e922c
Add files via upload 2018-03-08 22:24:24 +00:00
[GADD]Monkeynutz
1f1ad99825
Delete config.cpp 2018-03-08 22:18:55 +00:00
[GADD]Monkeynutz
8096c969a2
Delete PboPrefix.txt 2018-03-08 22:18:48 +00:00
[GADD]Monkeynutz
8c905b8b47
Delete $PREFIX$ 2018-03-08 22:18:42 +00:00
[GADD]Monkeynutz
700487f832
Delete fn_requestVGDetailInfo.sqf 2018-03-08 22:18:36 +00:00
[GADD]Monkeynutz
7b23d55f6d
Delete fn_VGStore.sqf 2018-03-08 22:18:29 +00:00
[GADD]Monkeynutz
86ead5defd
Delete fn_VGLoad.sqf 2018-03-08 22:18:22 +00:00
[GADD]Monkeynutz
1a122945c8
Delete config.cpp 2018-03-08 22:17:29 +00:00
[GADD]Monkeynutz
06a7b87978
Delete PboPrefix.txt 2018-03-08 22:17:21 +00:00
[GADD]Monkeynutz
b05f3ebd51
Delete $PREFIX$ 2018-03-08 22:17:14 +00:00
[GADD]Monkeynutz
06b5f4e737
Delete fn_stopHack.sqf 2018-03-08 22:16:58 +00:00
[GADD]Monkeynutz
de75e480e9
Delete fn_startHack.sqf 2018-03-08 22:16:52 +00:00
[GADD]Monkeynutz
c6d085ebe4
Delete fn_restoreLock.sqf 2018-03-08 22:16:38 +00:00
[GADD]Monkeynutz
5348057ebb
Delete fn_grindProgress.sqf 2018-03-08 22:16:32 +00:00
[GADD]Monkeynutz
e34320e6b7
Delete config.cpp 2018-03-08 22:16:23 +00:00
[GADD]Monkeynutz
01a45904d2
Delete PboPrefix.txt 2018-03-08 22:16:17 +00:00
[GADD]Monkeynutz
ccdaaee941
Delete $PREFIX$ 2018-03-08 22:15:26 +00:00
[GADD]Monkeynutz
814c80ed8e
Updated ready for updates. 2018-01-24 11:31:34 +00:00
[GADD]Monkeynutz
a4653c9db6
Updated for updates 2018-01-24 11:30:59 +00:00
[GADD]Monkeynutz
d1a1e831e7
Updated for updates 2018-01-24 11:28:24 +00:00
[GADD]Monkeynutz
7c34eea742
Updated ready for updates 2018-01-24 11:28:00 +00:00
[GADD]Monkeynutz
268662309f
Updated ready for Updates. 2018-01-24 11:27:09 +00:00
[GADD]Monkeynutz
3fb6d18dd7
Update config.cpp 2018-01-24 11:20:30 +00:00
[GADD]Monkeynutz
1b371ae88c
Update installation.md 2018-01-24 11:19:50 +00:00
[GADD]Monkeynutz
af897d0503
Update installation.md 2018-01-24 11:19:09 +00:00
[GADD]Monkeynutz
d99ff6812d
Update README.md 2018-01-24 11:16:48 +00:00
[GADD]Monkeynutz
856674dd03
Update README.md 2018-01-24 10:26:22 +00:00
[GADD]Monkeynutz
cc1f8cd4ab
Update README.md 2018-01-24 10:25:14 +00:00
[GADD]Monkeynutz
fa3591d939
added vehicle salvage 2018-01-24 00:25:40 +00:00
[GADD]Monkeynutz
c5a371edbd
Update fn_vehicleSalvage.sqf 2018-01-24 00:25:12 +00:00
[GADD]Monkeynutz
bc762b9877
install docs to Salvage Vehicle added. 2018-01-23 23:20:56 +00:00
[GADD]Monkeynutz
8ffe82a541
Added Vehicle Salvage. 2018-01-23 23:11:21 +00:00
[GADD]Monkeynutz
ba9a79e72f
Added Vehicle Salvage script. 2018-01-23 23:10:39 +00:00
[GADD]Monkeynutz
81f6e6080e
Update README.md 2018-01-23 21:31:37 +00:00
[GADD]Monkeynutz
7bb0bfafcc
Changed colours so they are more visible at night. 2018-01-12 12:52:43 +00:00
[GADD]Monkeynutz
b72a002c5b
Removed ExAd_STOP_COMBAT_STORING from Private Arr.
Global variable in Local Private Array... Duuuuh.
2018-01-02 09:29:05 +00:00
[GADD]Monkeynutz
e43099adb1
Added defaults for new configs. 2018-01-02 09:21:08 +00:00
[GADD]Monkeynutz
9243234902
Update customize.sqf 2017-12-27 20:08:27 +00:00
[GADD]Monkeynutz
0356a93687
Update fn_VGLoad.sqf 2017-12-27 20:08:01 +00:00
[GADD]Monkeynutz
9e4a5ea638
Update fn_VGLoad.sqf 2017-12-27 20:04:57 +00:00
[GADD]Monkeynutz
de4d68996c
Update customize.sqf 2017-12-27 20:04:22 +00:00
[GADD]Monkeynutz
f76ffbe618
Added blocking deploying veh in sz 2017-12-27 19:14:50 +00:00
[GADD]Monkeynutz
23b4ab3632
Added config for blocking deploying veh in sz 2017-12-27 19:14:33 +00:00
[GADD]Monkeynutz
f639dfea38
Added Config for godmoded vehicles after spawning. 2017-12-27 17:53:29 +00:00
[GADD]Monkeynutz
0b4afec1f1
Added code for Godmoded vehicles after spwaning. 2017-12-27 17:53:10 +00:00
[GADD]Monkeynutz
621167afb9
Update README.md 2017-12-01 13:38:07 +00:00
[GADD]Monkeynutz
ad8459e0ab
Update README.md 2017-12-01 13:37:23 +00:00
[GADD]Monkeynutz
f85c0cbfe2
Update README.md 2017-12-01 13:37:05 +00:00
[GADD]Monkeynutz
429b35a197
Update README.md 2017-12-01 13:36:43 +00:00
[GADD]Monkeynutz
0752e777d4
Update README.md 2017-12-01 13:29:25 +00:00
[GADD]Monkeynutz
b1e7671662
Included some useful stuff. 2017-12-01 13:28:43 +00:00
[GADD]Monkeynutz
10f3711659
Update README.md 2017-12-01 13:24:27 +00:00
[GADD]Monkeynutz
a84b34b033
Update README.md 2017-12-01 13:23:45 +00:00
[GADD]Monkeynutz
eee51e2fc1
Merge pull request #102 from AdamKadmon/patch-1
Fix for cause of various errors. - Thx to Cloud
2017-12-01 13:21:57 +00:00
[GADD]Monkeynutz
92c5bf5bf5
Merge pull request #101 from GamingAtDeathsDoor/master
Removed old Hint and Replaced with Baguette.
2017-11-29 11:14:02 +00:00
[GADD]Monkeynutz
fb7c47242e
Updated to match configs and fix timer. 2017-11-28 18:10:38 +00:00
[GADD]Monkeynutz
09e435e85e
Added fix for deploying while in a vehicle.
@Pattoh on the Exile Forums provided this fix. Thanks Pattoh! Quick and easy!
2017-11-28 11:02:55 +00:00
AdamKadmon
9d7696fbab
Fix for cause of various errors. - Thx to Cloud 2017-11-17 22:41:24 -05:00
[GADD]Monkeynutz
978dc1b333
Added Link + href example.
I have added a link to the ArmA 3 wiki that takes people to the Structured Text page. This will help them be able to use this script better and have no problems creating links etc. In the app to rules pages and such.

I have also included a href example at the bottom of the script so it adds a link example at the same time as crediting the Add-on. ;)
2017-11-10 19:21:13 +00:00
[GADD]Monkeynutz
0df23647ef
64-bit exile.ini uploaded 2017-11-01 11:50:53 +00:00
[GADD]Monkeynutz
7c3efafb95
Delete exile.ini 2017-11-01 11:49:46 +00:00
[GADD]Monkeynutz
44506c6265
Added 64-bit version 2017-11-01 11:46:57 +00:00
[GADD]Monkeynutz
6e9c5cc1d9
Removed old Hint and Replaced with Baguette.
Did not update this on the last pull request. Apologies :P
2017-10-31 13:49:17 +00:00
Jan Babor
e26c0a2426
Merge pull request #100 from ole1986/ExAd-Scratchie
added Scratchie plugin
2017-10-30 20:15:40 +01:00
Jan Babor
8c81e31ca1
Merge pull request #99 from GamingAtDeathsDoor/master
Changed Description to detail new button combo.
2017-10-30 20:12:19 +01:00
ole
fc41f89e57 added Scratchie plugin 2017-10-29 21:58:21 +01:00
[GADD]Monkeynutz
8cb2a778da Changed Description to detail new button combo.
This was still set as Alt+Shift+X in the description... Whoops, guess some people missed the Baguette displayed infront of their face...
2017-10-27 15:28:29 +01:00
Jan Babor
ef5cdffcc5 Merge pull request #98 from GamingAtDeathsDoor/master
Just a couple fixes my dude
2017-10-16 11:58:01 +02:00
[GADD]Monkeynutz
eccaa71907 Changed top left to top right.
There was an issue in most cases where the logo would cover up a couple names in the group menu in the top left preventing players from seeing their names. I have moved this to the top right as there is never anything in the HUD that the logo can cover while it's up there.
2017-10-16 10:11:20 +01:00
[GADD]Monkeynutz
5baab224df Add files via upload 2017-10-16 10:09:07 +01:00
[GADD]Monkeynutz
242adfb2db Delete RscTitles.cpp 2017-10-16 10:08:53 +01:00
Jan Babor
24be1cfa8d Merge pull request #97 from GamingAtDeathsDoor/master
Changes to suit Exile & make better gameplay
2017-09-21 22:15:21 +02:00
[GADD]Monkeynutz
48f8ffeafd Changed 'X' to 'V'
Makes it safer for players not to eject when doing multiple actions e.g. Looking around, thrusting up and autohover/vectoring
2017-09-20 19:48:17 +01:00
[GADD]Monkeynutz
7ca7a126df Baguette request instead of hint 2017-09-20 19:42:11 +01:00
[GADD]Monkeynutz
836746d60f Changed messages to fit into baguette messages 2017-09-20 19:37:53 +01:00
[GADD]Monkeynutz
b36d94d927 Added code for Combat Storing
This file contains the code for the Combat Storing option.
2017-09-20 19:31:25 +01:00
[GADD]Monkeynutz
fe39bc6f76 Combat Storing and Boats & Subs
Added a toggle-able option to stop people storing their vehicles while in the middle of combat.
Added Boats and Subs to the VG allowed vehicle list.
2017-09-20 19:30:09 +01:00
Jan Babor
e401fd6a9f Merge pull request #96 from ProGEEK/master
Notify base owners of base raid when grinding or hacking
2017-08-22 23:50:53 +02:00
Ryan Davies
99debcb7c4 Notify base owners of base raid when grinding or hacking 2017-08-23 09:20:24 +12:00
Jan Babor
696417c204 Merge pull request #86 from macCormack/patch-1
Fixed some spelling mistakes.
2017-02-08 17:34:30 +01:00
Nathan
c4662b50d2 fixed some spelling mistakes 2017-02-07 12:39:17 -05:00
Bjanski
49ac41533b =changed playableUnits to allPlayers Hacking & StatusBar 2016-12-04 00:30:07 +01:00
Jan Babor
abb9cf13af Update README.md 2016-10-08 13:16:34 +02:00
Jan Babor
5d139df2e2 Merge pull request #71 from strideynet/patch-1
By default disable Virtual Garage
2016-09-19 12:36:41 +02:00
strideynet
e1e1f53caa By default disable Virtual Garage
Other wise installs without VG will throw an error and not load.
2016-09-13 17:40:00 +01:00
Jan Babor
9e78fcdf95 Update installation.md 2016-08-29 00:35:59 +02:00
Jan Babor
c15e45a53c Update installation.md 2016-08-23 16:53:12 +02:00
Jan Babor
f2374b242b Merge pull request #63 from Bjanski/Dev
Dev
2016-08-06 18:49:25 +02:00
Bjanski
1c6eca2b56 clean up 2016-08-06 18:49:01 +02:00
Bjanski
39a1fd8afb Merge remote-tracking branch 'refs/remotes/origin/master' into Dev 2016-08-06 18:48:29 +02:00
Jan Babor
256de41c64 Merge pull request #62 from Bjanski/Dev
Dev
2016-08-05 22:25:57 +02:00
Bjanski
6edcf96df5 Merge remote-tracking branch 'refs/remotes/origin/master' into Dev 2016-08-05 22:25:19 +02:00
Bjanski
8f42005e84 removed debug log 2016-08-05 22:25:05 +02:00
Jan Babor
8d5007f2b2 Merge pull request #61 from Bjanski/Dev
fixed issue with infistar
2016-08-05 21:59:31 +02:00
Bjanski
fe9923594f fixed compatible with infistar 2016-08-05 21:58:46 +02:00
Jan Babor
0887e49687 Merge pull request #60 from Bjanski/Dev
Dev
2016-08-04 10:40:30 +02:00
Bjanski
a59474586e small fixes 2016-08-04 10:39:27 +02:00
Bjanski
fe3447ddbc Merge remote-tracking branch 'refs/remotes/origin/master' into Dev 2016-08-04 08:21:30 +02:00
Bjanski
ae880411ab a lot of small fixes
Code not tested
2016-08-04 08:21:28 +02:00
Jan Babor
c1320a9bc0 Update README.md 2016-08-04 00:06:44 +02:00
Jan Babor
8c74dee46e Merge pull request #59 from Bjanski/Dev
Dev
2016-08-03 23:44:51 +02:00
Bjanski
f33422cdf1 minor fixes 2016-08-03 23:43:29 +02:00
Bjanski
c78d91099a new icons and stringtable inputs 2016-08-03 22:34:42 +02:00
Bjanski
8ef6f724bd small fix 2016-08-02 18:58:56 +02:00
Bjanski
0c81c048cf fix 2016-08-02 14:31:08 +02:00
Bjanski
dd47fa0c02 Merge remote-tracking branch 'refs/remotes/origin/master' into Dev 2016-08-02 14:28:58 +02:00
Bjanski
eb12baf640 Small fixes and additions 2016-08-02 14:28:54 +02:00
Bjanski
b3c2e7c8f1 Added StatsBar App and plugin 2016-08-01 17:25:05 +02:00
Jan Babor
f60fe7f5e8 Merge pull request #58 from Bjanski/Dev
Dev
2016-07-30 10:41:38 +02:00
Bjanski
8000b985db Merge remote-tracking branch 'refs/remotes/origin/master' into Dev 2016-07-30 10:40:15 +02:00
Bjanski
910cc04918 updated changelog 2016-07-30 10:40:01 +02:00
Bjanski
3896765c15 optimize 2016-07-30 10:35:55 +02:00
Bjanski
d113445fef Added ExAd_fnc_createCombo 2016-07-28 10:59:46 +02:00
Jan Babor
27b0c0adcf Merge pull request #56 from Bjanski/Dev
Dev
2016-07-27 01:22:16 +02:00
Jan Babor
3463f534da Update INSTALL.md 2016-07-27 01:20:35 +02:00
Bjanski
3a1dae36a7 Added install.md 2016-07-27 01:00:21 +02:00
Bjanski
dc9d3ae6ee Some small fixes and extra features, DV 2016-07-27 00:59:10 +02:00
Bjanski
e30a439a2a small tweak 2016-07-26 23:54:03 +02:00
Bjanski
896efafdd6 Merge remote-tracking branch 'refs/remotes/origin/master' into Dev 2016-07-26 17:12:39 +02:00
Bjanski
abece6bad1 updated changelogs 2016-07-26 17:12:25 +02:00
Bjanski
ae51823a1c added DV server part 2016-07-26 13:09:52 +02:00
Bjanski
82b9ccf8b9 Added new app
Deploy Vehicle
Small fix Server Info App
2016-07-26 13:08:57 +02:00
Jan Babor
2d19626711 Merge pull request #54 from Bjanski/Dev
Dev
2016-07-20 01:18:04 +02:00
Bjanski
091c30afc4 v0.7.9
Added new App, Journal
2016-07-20 01:17:06 +02:00
Bjanski
9efef8c383 Merge remote-tracking branch 'refs/remotes/origin/master' into Dev 2016-07-20 01:15:37 +02:00
Jan Babor
4f6a833e6f Merge pull request #51 from Bjanski/Dev
Updated config.cpp
2016-07-16 08:21:09 +02:00
Bjanski
60cc8b9c2d Updated config.cpp 2016-07-16 08:19:54 +02:00
Jan Babor
2fdf113f7b Removed duplicate 2016-07-16 00:25:03 +02:00
Jan Babor
88a93cbcaa Merge pull request #50 from Bjanski/Dev
Dev
2016-07-15 23:44:11 +02:00
Bjanski
dfdeef9415 changed 1 icon 2016-07-15 23:43:37 +02:00
Bjanski
4adde68ad1 Merge remote-tracking branch 'refs/remotes/origin/master' into Dev 2016-07-15 23:23:57 +02:00
Jan Babor
329383d33c Merge pull request #49 from Bjanski/Dev
Dev
2016-07-15 23:15:11 +02:00
Bjanski
db2722b77e Release v.0.7.8
A core bug fixed
CHVD App added
2016-07-15 23:12:25 +02:00
Bjanski
a6421d561f Merge remote-tracking branch 'refs/remotes/origin/master' into Dev 2016-07-15 22:57:05 +02:00
Jan Babor
fbea791206 Update installation.md 2016-07-13 22:48:46 +02:00
Jan Babor
6135d8967a Update installation.md 2016-07-13 22:47:58 +02:00
Jan Babor
051433f345 Update installation.md 2016-07-12 23:45:19 +02:00
Bjanski
a4992d7afb Support for Img in More tab
Support for Img in More tab
2016-07-12 11:49:38 +02:00
Bjanski
40e3a95246 Merge remote-tracking branch 'refs/remotes/origin/master' into Dev 2016-07-12 11:49:32 +02:00
Jan Babor
c017d42c6c Update README.md 2016-07-11 17:45:43 +02:00
Bjanski
6a9a1a8874 Small fixes added Server Info
Small fixes added Server Info
2016-07-05 18:18:41 +02:00
Bjanski
df832a5932 Added Server Info App
Added Server Info App
2016-07-05 01:52:05 +02:00
170 changed files with 3131 additions and 1797 deletions

View File

@ -0,0 +1 @@
exad_dv

View File

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

View File

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

View File

@ -0,0 +1 @@
exad_dv

View File

@ -17,7 +17,7 @@
*/
class CfgPatches {
class ExAd_Hacking {
class ExAd_DV {
requiredVersion = 0.1;
requiredAddons[] = {"ExAd_Core"};
};
@ -25,21 +25,21 @@ class CfgPatches {
class CfgFunctions {
class ExAdServer {
class Hacking {
file = "exad_hacking\Functions";
class startHack {};
class stopHack {};
class DV {
file = "exad_dv\Functions";
class spawnDeployableVehicle {};
class despawnDeployableVehicle {};
};
};
};
class CfgNetworkMessages
{
class startHack
class spawnDeployableVehicle
{
parameters[] = {"STRING","STRING"};
};
class stopHack
class despawnDeployableVehicle
{
parameters[] = {"STRING"};
};

View File

@ -1 +0,0 @@
exad_grinding

View File

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

View File

@ -1 +0,0 @@
exad_grinding

View File

@ -1 +0,0 @@
exad_hacking

View File

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

View File

@ -1 +0,0 @@
exad_hacking

View File

@ -1 +0,0 @@
exad_vg

View File

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

View File

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

View File

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

View File

@ -1 +0,0 @@
exad_vg

View File

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

View 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

View File

@ -1,4 +1,4 @@
;1. Find [loadVehicleIdPage] and replace the section with this;
;1. Find following sections and replace the commented lines;
[loadVehicleIdPage]
;SQL1_1 = SELECT id FROM vehicle LIMIT ?,?
@ -7,6 +7,20 @@ Number Of Inputs = 2
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)
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.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Virtual Garage related queries | ADDED BY [ExAd]Jan

View File

@ -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"
createVehicle !="_parachuteObject = createVehicle [\"Steerable_Parachute_F\", getPosATL player, [], 0, \"CAN_COLLIDE\"]"
addAction !="ExAd_ACTION_PARACHUTE = player addaction [format"

View File

@ -1,6 +1,44 @@
#<img src="logo.png" alt="ExAd" width="200" />
# 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
###Fixed
* Made the ExAd system compatible with Exile 0.9.8 (All)

View File

@ -1,7 +1,15 @@
#<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.
<img src="logo.png" alt="ExAd" width="200" />
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&currency_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
[![Arma 1.80](https://img.shields.io/badge/Arma-1.80-blue.svg)](https://dev.arma3.com/post/spotrep-00077) [![Exile 1.0.4 "Pineapple"](https://img.shields.io/badge/Exile-1.0.4%20"Lemon"-yellow.svg)](http://www.exilemod.com/topic/25026-104-pineapple/) [![ExAd Version](https://img.shields.io/badge/ExAd-v1.0.0%20Kumquat-orange.svg)](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&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted)
## Installation & Examples
Instructions for installation is found under [docs](https://github.com/Bjanski/ExAd/tree/master/docs).
@ -17,6 +25,8 @@ After you have installed the entire or parts of the ExAd Package you will easies
* Virtual Garage
* Grinding
* Hacking
* StatsBar
* XM8
* Admin Events .. *Coming Soon*
* VehicleUpgrade -- *Coming Soon*
@ -26,6 +36,11 @@ After you have installed the entire or parts of the ExAd Package you will easies
* Virtual Garage
* Core
* XM8
* XM8
* Core
* StatsBar
* Core
* XM8
* Admin Events
* Core
* [Infistar](https://infistar.de/)
@ -48,5 +63,7 @@ All contributed code first needs to be rewieved and tested before pushed to mast
Apache License
## Contact
For this project I only reply through my [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/).
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/)
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/).

View File

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

View File

@ -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.

View File

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

View File

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

View File

@ -1 +0,0 @@
#Examples

View File

@ -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.

View File

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

View File

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

View File

@ -1,7 +1,7 @@
#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
Since this project consist of multiple subprojects I've had some issues deciding how to structure the project for a simple update process.

View 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; }
```

View 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
View File

@ -0,0 +1,5 @@
#StatsBar
## Instructions:
### 160801 . v0.8.0
* Full installation

View 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

View File

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

View File

@ -1 +0,0 @@
#Examples

View File

@ -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.

View 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

View File

@ -1,6 +0,0 @@
#VirtualGarage
## Changelog:
### v0.7.7
#### Added
* Introduced **XM8** to the ExAd package

11
docs/XM8/createApp.md Normal file
View File

@ -0,0 +1,11 @@
#Create Apps
To create an app you need follow 4 simple steps
1.
2.
3.
4.

View File

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

View File

@ -3,7 +3,7 @@
This is the core package that needs to be installed for all other ExAd plugins/addons to work.
IMPORTANT!!
Keep the folder struction att all time when copying over files.
Keep the folder structure at all time when copying over files.
## Client
* Copy missionconfig classes from "mpmissions\Exile.Altis\description.ext\" into your own description.ext

BIN
logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -21,10 +21,9 @@ class ExAd
{
tag = "ExAd";
#include "Core\CfgFunctions.cpp"
//#include "VirtualGarage\CfgFunctions.cpp"
//#include "AdminEvents\CfgFunctions.cpp"
//#include "Hacking\CfgFunctions.cpp"
//#include "Grinding\CfgFunctions.cpp"
//#include "HaloParachute\CfgFunctions.cpp"
//#include "XM8\CfgFunctions.cpp"
//#include "StatsBar\CfgFunctions.cpp"
//#include "VehicleSalvage\CfgFunctions.cpp"
};

View File

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

View File

@ -18,8 +18,5 @@
//#include "Core\ExAd.cpp"
//#include "VirtualGarage\ExAd.cpp"
//#include "AdminEvents\ExAd.cpp"
//#include "Hacking\ExAd.cpp"
//#include "Grinding\ExAd.cpp"
//#include "HaloParachute\ExAd.cpp"

View File

@ -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))

View File

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

View File

@ -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
*/

View File

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

View File

@ -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))

View File

@ -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))

View File

@ -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.

View File

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

View File

@ -40,7 +40,8 @@ if(ExAd_HALOPARACHUTE_SAFE_MODE)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

View File

@ -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_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_ACTION_PARACHUTE_HEIGHT = 10; //SCALAR - What is the minimum altitude a player can pull a parachute. |RECOMMENDED 30 meters when safe_mode activated

View File

@ -42,7 +42,7 @@ if(isNil "ExAd_ACTION_EJECT_HEIGHT")then{ExAd_ACTION_EJECT_HEIGHT = 0;};
if(ExAd_HALOPARACHUTE_USE_KEY_ACTIONS)then{
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{
call ExAd_fnc_ejectPlayer
}else{

View File

@ -17,4 +17,4 @@
*/
//#include "HUD\RscTitles.cpp"
//#include "StatsBar\RscTitles.cpp"

View File

@ -0,0 +1,3 @@
class Scratchie {
class postInitScratchie {file = "ExAdClient\Scratchie\postInit.sqf"; postInit = 1;};
}

View File

@ -0,0 +1,4 @@
if (ExileClientXM8CurrentSlide == "ExAd_Scratchie") then {
ExileClientXM8CurrentSlide = "apps";
};
ExAdCurFlagNetId = nil;

View 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

View 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
}

View 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";

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

View File

@ -1,5 +1,5 @@
/*
CfgFunctions.cpp
fn_formatNbrToPrefixStr.sqf
Copyright 2016 Jan Babor
@ -14,15 +14,10 @@
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 [["_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
{
file = "ExAdClient\Hacking\Functions";
class canHackSafe {};
class canHackVG {};
class startHack {};
class stopHack {};
class postInitHacking {file = "ExAdClient\Hacking\postInit.sqf"; postInit = 1;};
};
format["%1%2", floor _nbr, _prefix]

View File

@ -1,5 +1,5 @@
/*
fn_startHack.sqf
fn_formatSBImage.sqf
Copyright 2016 Jan Babor
@ -14,8 +14,8 @@
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 [["_src","",[""]],["_size",ExAd_SB_Img_Size,[0]]];
player playActionNow "SitDown";
["startHack", [netId (_this select 0), netId player]] call ExAd_fnc_serverDispatch;
format["<img size='%2' image='%1' />", _src,_size]

View File

@ -1,5 +1,5 @@
/*
CfgFunctions.cpp
fn_formatSBOutput.sqf
Copyright 2016 Jan Babor
@ -14,17 +14,13 @@
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 [["_elements", [], [[]]], ["_color","",[""]], ["_text",""]];
class VirtualGarage
{
file = "ExAdClient\VirtualGarage\Functions";
class allowedVGVeh {};
class allowVGStore {};
class fillVGList {};
class loadVGContent {};
class loadVGDetailView {};
class onBtnClickVG {};
class postInitVG {file = "ExAdClient\VirtualGarage\postInit.sqf"; postInit = 1;};
};
_text = format["%1%3%2", _text, _x, ExAd_SB_Text_InnerMargin];
}forEach _elements;
_color = if(count _color > 0)then{format["color='%1'",_color]}else{_color};
format["<t %3>%1%2%1</t>", ExAd_SB_Text_Margin , _text , _color ]

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
/*
fn_loadVGDetailView.sqf
fn_getGridStr.sqf
Copyright 2016 Jan Babor
@ -14,14 +14,13 @@
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 ["_text","_idc"];
disableSerialization;
private["_img","_grid","_text"];
_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;
true
[[_img, _text]] call ExAd_fnc_formatSBOutput

View File

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

View File

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

View File

@ -1,5 +1,5 @@
/*
config.cpp
fn_getClanStr.sqf
Copyright 2016 Jan Babor
@ -14,33 +14,21 @@
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","_death","_img","_text"];
class CfgPatches {
class ExAd_Grinding {
requiredVersion = 0.1;
requiredAddons[] = {"ExAd_Core"};
};
_request = [];
_death = if(ExileClientPlayerDeaths == 0)then{0.001}else{ExileClientPlayerDeaths};
_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 {
class ExAdServer {
class Grinding {
file = "exad_grinding\Functions";
class grindProgress {};
class restoreLock {};
};
};
};
class CfgNetworkMessages
{
class grindProgress
{
parameters[] = {"STRING"};
};
class restoreLock
{
parameters[] = {"STRING"};
};
};
_request call ExAd_fnc_formatSBOutput

View File

@ -1,5 +1,5 @@
/*
fn_allowedVGVeh.sqf
fn_getPlayersStr.sqf
Copyright 2016 Jan Babor
@ -14,9 +14,11 @@
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 ["_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

View File

@ -1,5 +1,5 @@
/*
fn_canGrindLock.sqf
fn_getRespectStr.sqf
Copyright 2016 Jan Babor
@ -14,6 +14,11 @@
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.
*/
(((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

View File

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

View File

@ -1,5 +1,5 @@
/*
fn_restoreLock.sqf
fn_getTempStr.sqf
Copyright 2016 Jan Babor
@ -14,16 +14,20 @@
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"];
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;
true
_request call ExAd_fnc_formatSBOutput

View File

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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
/*
fn_restoreLock.sqf
fn_loadSB.sqf
Copyright 2016 Jan Babor
@ -14,20 +14,23 @@
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["_object"];
private["_display"];
if(vehicle player != player)exitWith{false};
disableSerialization;
call ExileClient_gui_interactionMenu_unhook;
player playActionNow "medic";
ExAd_SB_Dialog_Layer cutRsc ["ExAd_STATSBAR", "PLAIN", 1];
UISleep 5;
player removeItem "Exile_Item_Codelock";
["SuccessTitleAndText", ["ExAd - Grinding", STR_ExAd_GRINDING_NOTI_RESTORED]] call ExileClient_gui_toaster_addTemplateToast;
_display = uiNameSpace getVariable ["ExAd_STATSBAR",displayNull];
_logoCtrl = _display displayCtrl ExAd_SB_Dialog_CtrlLogo_IDC;
["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

View File

@ -1,5 +1,5 @@
/*
CfgFunctions.cpp
fn_sbPowerToggle.sqf
Copyright 2016 Jan Babor
@ -14,15 +14,18 @@
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 Grinding
{
file = "ExAdClient\Grinding\Functions";
class canGrindLock {};
class canRestoreLock {};
class grindLock {};
class restoreLock {};
class postInitGrinding {file = "ExAdClient\Grinding\postInit.sqf"; postInit = 1;};
if(ExAd_SB_Active)then{
call ExAd_fnc_sbStop
}else{
call ExAd_fnc_loadSB
};
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

View File

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

View File

@ -1,4 +1,6 @@
/*
fn_sbStop.sqf
Copyright 2016 Jan Babor
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

View File

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

View File

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

View File

@ -1,5 +1,5 @@
/*
fn_allowVGStore.sqf
fn_sbThread.sqf
Copyright 2016 Jan Babor
@ -14,15 +14,15 @@
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 ["_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};
_flag = objectFromNetId ExAdCurFlagNetId;
_statsBarCtrl ctrlSetPosition ExAd_SB_GUI_POS;
_statsBarCtrl ctrlSetBackgroundColor ExAd_SB_GUI_BgColor;
_statsBarCtrl ctrlSetTextColor ExAd_SB_GUI_TextColor;
_statsBarCtrl ctrlCommit 0;
_allowedVeh = _flag call ExAd_fnc_allowedVGVeh;
_storedVeh = count (_flag getVariable ["ExAdVGVeh", []]);
_res = if(_allowedVeh > _storedVeh)then{true}else{false};
_res
true

Some files were not shown because too many files have changed in this diff Show More