.gitignore LyY CHANGELOG.md LyY| customScripts.sqf LyYm description.ext Y< init.sqf Y LICENSE LyY loadscreen.jpg LyYd mission.sqm pY_ omtk\3rd-parties\README.md JyY omtk\difficulty_check\main.sqf JyY omtk\difficulty_check\README.md JyY omtk\dynamic_startup\dialog_interactive_startup.hpp JyY omtk\dynamic_startup\img\application.paa JyY V omtk\dynamic_startup\img\banner.jpg JyYA omtk\dynamic_startup\interactive.sqf JyY omtk\dynamic_startup\loadPanel.sqf JyYC omtk\dynamic_startup\main.sqf JyYV omtk\dynamic_startup\markers.sqf JyY omtk\dynamic_startup\markers_doc.sqf JyYS omtk\dynamic_startup\README.md JyY omtk\ia_skills\main.sqf KyY" omtk\ia_skills\README.md JyY omtk\kill_logger\main.sqf KyY omtk\kill_logger\README.md KyY} omtk\library.sqf JyY
omtk\load_modules.sqf JyYI omtk\map_exploration\img\ah-6.paa KyY V omtk\map_exploration\img\humvee.paa KyY V omtk\map_exploration\img\mi-8.paa KyY V omtk\map_exploration\img\noparadrop.paa KyY V omtk\map_exploration\img\paradrop.paa KyY V omtk\map_exploration\img\quad.paa KyY V omtk\map_exploration\img\uaz.paa KyY V omtk\map_exploration\img\uh-60.paa KyY V omtk\map_exploration\main.sqf KyYS omtk\radio_lock\main.sqf KyY omtk\radio_lock\README.md KyY omtk\respawn_mode\main.sqf KyYN omtk\score_board\dialog_action_progress.hpp KyY omtk\score_board\dialog_scoreboard.hpp KyYD
omtk\score_board\img\banner.jpg KyY>, omtk\score_board\img\bluefor.jpg KyYtO omtk\score_board\img\redfor.jpg KyY* omtk\score_board\library.sqf KyY( omtk\score_board\loadBoard.sqf KyYj omtk\score_board\main.sqf KyY omtk\score_board\README.md KyY omtk\tactical_paradrop\img\paradrop.paa KyY V omtk\tactical_paradrop\main.sqf KyY omtk\tactical_paradrop\README.md KyY omtk\ui\defines.hpp KyYH omtk\vehicles_thermalimaging\main.sqf KyY omtk\vehicles_thermalimaging\README.md KyY omtk\version.sqf JyY? omtk\warm_up\img\warm_up-end.paa KyY V omtk\warm_up\main.sqf KyYF omtk\warm_up\README.md KyY
omtk\wiki\img\logo_omtk.png KyY u omtk\wiki\img\mission_parameters.png KyYğ omtk\wiki\img\scoreboard.png KyY` onPlayerKilled.sqf LyYg onPlayerRespawn.sqf LyYq README.md LyY$ **/*~
*.bak
## Changelog
\+ feature added
\- feature deleted
~ feature modified
@ bug fix
!! security patch
### V2.4.0 - 2016-12-14
\+ [tactical_paradrop] add timeslot delay parameter in init.sqf
\+ [dynamic_startup] a dedicated panel is now available to choose both spawn location and vehicles
\+ [score_board] FLAG objectives can now be set at mission start in the objectives table (init.sqf)
~ [tactical_paradrop] no more paradrop generated aside the unit on the paradrop ACE menu action (still for map exploration though)
~ [score_board] survivors in objectives are now restricted to players (no IA) whose life is below 0.975 (unconscious are not survivors anymore)
### V2.3.3 - 2016-09-28
~ [omtk-loadouts] upgrade omtk-loadouts.exe to v1.0.1
~ [omtk-loadouts] add all RHS vehicles in vehicle cargos definition
\+ [omtk-loadouts] add M-88 camo for REDFOR
\+ [omtk-loadouts] add yellow gorka camo for REDFOR
\+ [omtk-loadouts] add UCP camo for BLUEFOR
~ [omtk-loadouts] rename default BLUEFOR loadouts file to bluefor-loadouts-ocp.yml
~ [omtk-loadouts] rename default REDFOR loadouts file to redfor-loadouts-gorka-green.yml
~ [omtk-loadouts] change recon vanilla class to Recon Marksman for BLUEFOR and REDFOR
~ [omtk-loadouts] change tripod_turret_carrier vanilla class to Recon Scout for BLUEFOR and REDFOR
@ [omtk-loadouts] commented path to units in BLUEFOR and REDFOR infantry class files
### v2.3.2 - 2016-09-18
\+ add code snippets in customScripts.sqf
@ [dynamic_startup] fix helper text for markers
### v2.3.1 - 2016-09-13
\+ additional warm-up durations: 45 min and 1 h
~ improve README files
~ change default loadscreen.jpg
@ respawning units without their inital loadout fixed
### v2.3.0 - 2016-09-12
\+ [map_exploration] new module, formely _briefing_ mode in *launch_mode* module
\+ [respawn_mode] new module to handle separately respawn configuration
\+ [tactical_paradrop] zones restrictions implemented
\- [vehicles_configuration] module removed, no more cargo scripting available
\+ [vehicles_thermalimaging] module to enable/disable TI equipment
\+ [dynamic_markers] new commandMenu to process markers ()
~ Switch to English
~ Missions parameters: full refactoring
~ Refactoring and cleaning of omtk-loadouts configuration folders and files
~ [launch_mode] renamed to dynamic_startup, enlightened to support markers and interactive modes only.
~ [score_board] default duration is provided by mission parameter, and can be overrided by *OMTK_SB_MISSION_DURATION_OVERRIDE* parameter in init.sqf
~ custom_scripts.sqf cleaned
@ [dynamic_startup] interactive mode loosing flag during teleport is fixed
### v2.2.0 - 2016-08-07
\+ ajout du changelog
\+ [tactical_paradrop] nouveau module de parachutage permettant de rendre possible pour chaque camp un saut en chute libre via action dans le menu ACE, avec limitation dans le temps et dans l'espace
\+ EG Spectator: lancement du script vanilla https://community.bistudio.com/wiki/EG_Spectator_Mode pendant que les joueurs sont morts (avant respawn si respawn il y a comme pendant pour le mode training)
\+ [vehicle_configuration] TIEquipements disabling is now a mission parameter
\+ [vehicle_configuration] clearing cargo of unidentified vehicles is now a mission parameter
~ [score_board] le bouton *quitter* devient *fermer* et ferme seulement le tableau des scores
~ [launch_mode] le mode *test* rend tous les véhicules égalements invincibles
~ [launch_mode] parachutage au lieu de téléportaion lors de clic gauche sur map en mode *briefing*
~ [launch_mode] rename 'teleport' to 'campaign'
~ [vehicle_configuration] former vehicle_cargos module has been renamed vehicle_configuration
if (hasInterface) then {
doNothing = {
// empty
};
/* Hereafter an example to manage Flag value
doSomethingThenSetFlagsValue = {
hint "The object location is GRID#XXX-YYY";
[1, true] call omtk_setFlagResult; // set flag 1 to true
[2, false] call omtk_setFlagResult; // set flag 2 to false
};
*/
/* Hereafter an example to take the control of an IA
takeHostageControl = {
_hostage = missionNamespace getVariable ["hostage", objNull];
if (!isNil "_hostage") then {
_hostage enableAI "MOVE";
_hostage allowDamage true;
(group _hostage) setCombatMode "BLUE";
_groupToJoin = group player;
_freeId = (count units _groupToJoin);
_hostage joinAs [_groupToJoin, _freeId];
};
};
if (side player == EAST) then {
_hostage = missionNamespace getVariable ["hostage", objNull];
_txt = "Add the hostage to your group";
_action = _hostage addAction[_txt, {call takeHostageControl;}, []];
};
*/
/* Hereafter an example to manage the drop of an item inside a specific cargo, ammo box etc...
insertObject = {
_container = _this select 0;
_item = _this select 1;
if ( (_container == "container_name") && (_item == "item_class") ) then {
[1, true] call omtk_setFlagResult;
};
};
if (side player == West) then {
player addEventHandler ["Put", {[str (_this select 1), _this select 2] call insertObject;}];
};
*/
};
author = "OFCRA"; // TO BE DEFINED
onLoadName = "AL RAYAK"; // TO BE DEFINED
onLoadMission = "www.ofcra.org"; // TO BE DEFINED
onLoadIntro = "Prepare for the fight !"; // TO BE DEFINED
loadScreen = "loadscreen.jpg";
Debriefing = 0;
respawnOnStart = -1;
Saving = 0;
respawn = "BASE";
respawnDelay = 999999;
onebugConsole = 0;
disableChannels[]={0,5,6};
class Header {
gameType=TDM;
minPlayers = 1;
maxPlayers = 200;
};
// Include UI panels
#include "omtk\ui\defines.hpp"
#include "omtk\score_board\dialog_action_progress.hpp"
#include "omtk\score_board\dialog_scoreboard.hpp"
#include "omtk\dynamic_startup\dialog_interactive_startup.hpp"
class Params
{
class OMTK_MODULE_SEPARATOR_0
{
title = "----- FIRST CLASS PARAMETERS ----------------------------------------";
texts[] = {"---------"};
values[] = {0};
default = 0;
};
class OMTK_MODULE_DYNAMIC_STARTUP
{
title = "Dynamic startup";
texts[] = {"off", "markers", "interactive"};
values[] = {0,1,2};
default = 0;
};
class OMTK_MODULE_MAP_EXPLORATION
{
title = "Map exploration";
texts[] = {"off","on"};
values[] = {0,1};
default = 0;
};
class OMTK_MODULE_RESPAWN_MODE
{
title = "Respawn";
texts[] = {"no-respawn", "3 s", "30s ","1 min","1 min 30 s","2 min","3 min","immortal"};
values[] = {999999,3,30,60,90,120,180,-1};
default = 999999;
};
class OMTK_MODULE_SCORE_BOARD
{
title = "Scoreboard";
texts[] = {"off", "1 min", "15 min", "30 min","45 min","1 h","1 h 15 min","1 h 30 min","1 h 45 min"," 2 h","2 h 15 min","2 h 30 min", "2 h 45 min", "3 h"};
values[] = {0,900,1800,2700,3600,4500,5400,6300,7200,8100,9000,9900,10800};
default = 5400;
};
class OMTK_MODULE_TACTICAL_PARADROP
{
title = "Tactical paradrop";
texts[] = {"off","BLUEFOR only", "REDFOR only", "BLUEFOR + REDFOR"};
values[] = {0,1,2,3};
default = 0;
};
class OMTK_MODULE_WARM_UP
{
title = "Warm-up";
texts[] = {"off","30 s","1 min","1 min 30 s","2 min","3 min","5 min","8 min","10 min","15 min","20 min","30 min","45 min.","1 h"};
values[] = {0,30,60,90,120,180,300,480,600,900,1200,1800,2700,3600};
default = 600;
};
class OMTK_MODULE_SEPARATOR_1
{
title = "----------------------------------------------------------------------------------";
texts[] = {"---------"};
values[] = {0};
default = 0;
};
class OMTK_MODULE_DIFFICULTY_CHECK
{
title = "Difficulty check";
texts[] = {"off","on"};
values[] = {0,1};
default = 1;
};
class OMTK_MODULE_IA_SKILLS
{
title = "IA skills";
texts[] = {"off","on"};
values[] = {0,1};
default = 1;
};
class OMTK_MODULE_KILL_LOGGER
{
title = "Kill logger";
texts[] = {"off","on"};
values[] = {0,1};
default = 1;
};
class OMTK_MODULE_RADIO_LOCK
{
title = "Radio lock";
texts[] = {"off","on"};
values[] = {0,1};
default = 1;
};
class OMTK_MODULE_TACTICAL_PARADROP_ALTITUDE
{
title = "Tactical paradrop: altitude";
texts[] = {"300 m","500 m","1000 m","1500 m","2000 m","2500 m","3000 m","4000 m","5000 m"};
values[] = {300,500,1000,1500,2000,2500,3000,4000,5000};
default = 3000;
};
class OMTK_MODULE_TACTICAL_PARADROP_TIME_LIMIT
{
title = "Tactical paradrop: timeframe";
texts[] = {"1 min", "2 min", "3 min", "5 min", "10 min", "15 min", "20 min", "30 min", "unlimited"};
values[] = {1,2,3,5,10,15,20,30,9999};
default = 10;
};
class OMTK_MODULE_VEHICLES_THERMALIMAGING
{
title = "Vehicles thermal imaging";
texts[] = {"off","on"};
values[] = {0,1};
default = 0;
};
class OMTK_MODULE_WARM_UP_DISTANCE
{
title = "Warm-up: zone restriction";
texts[] = {"10 m","30 m","50 m","100 m","150 m","200 m","300 m","400 m","500 m","800 m","1000 m","2000 m"};
values[] = {10,30,50,100,150,200,300,400,500,800,1000,2000};
default = 200;
};
};
class CfgCommunicationMenu {
class OMTK_END_WARMUP_COM_MENU {
text = "OMTK";
submenu = "#USER:OMTK_WARMUP_MENU";
enable = "1";
removeAfterExpressionCall = 1;
};
class OMTK_MARKERS_COM_MENU {
text = "OMTK";
submenu = "#USER:OMTK_MARKERS_MENU";
enable = "1";
removeAfterExpressionCall = 1;
};
};
class CfgFunctions {
class OMTK
{
class StdLibrary
{
class myFunction {
preInit = 1;
file = "omtk\library.sqf";
};
};
};
};
////// OMTK CONFIGURATION
// tactical_paradrop: area restriction (optional)
OMTK_TP_BLUEFOR_RESTRICTIONS = [
//[x_coordinate, y_coordinate, radius_in_m],
];
OMTK_TP_REDFOR_RESTRICTIONS = [
//[x_coordinate, y_coordinate, radius_in_m],
];
// tactical_paradrop: delay before enabling paradrop feature (optional)
OMTK_TP_BLUEFOR_DELAY = 0; // delay in seconds
OMTK_TP_REDFOR_DELAY = 0; // delay in seconds
// score_board: objectives and mission duration
// OMTK_SB_MISSION_DURATION_OVERRIDE = [0, 0, 0]; // [hours, minutes, seconds]
execVM "customScripts.sqf";
OMTK_SB_LIST_OBJECTIFS = [
[5, "BLUEFOR+REDFOR", "INSIDE", "Capture the city", "zone_cap_A", ["DIFF", 1]],
[3, "BLUEFOR", "DESTRUCTION", "Kill Akim", ["LIST", ["espion_01"]] ],
[3, "REDFOR", "DESTRUCTION", "kill the officer", ["LIST", ["officer_blue"]] ],
[2, "BLUEFOR", "DESTRUCTION", "Domination bonus", ["REDFOR",5] ],
[2, "REDFOR", "DESTRUCTION", "Domination bonus", ["BLUEFOR",5] ]
];
OMTK_LM_BLUEFOR_OB = [
];
OMTK_LM_REDFOR_OB = [
];
////// SPECIAL CONFIGURATION
setTerrainGrid 3.125;
OMTK_WARMUP_MENU = [
["OMTK MENU", true],
["Warmup: side is ready", [2], "", -5, [["expression", "[] call omtk_wu_set_ready;"]], "1", "1"]
];
OMTK_MARKERS_MENU = [
["OMTK MENU", true],
["Process markers", [2], "", -5, [["expression", "[] call omtk_ds_process_markers_mode;"]], "1", "1"]
];
// EXTERNAL ADDONS
RscSpectator_allowFreeCam = true;
//cutrsc ['RscSpectator','plain'];
// TASK FORCE ARROWHEAD RADIO
#include "\task_force_radio\functions\common.sqf";
tf_no_auto_long_range_radio = true;
[player, [missionNamespace, "OMTK_LOADOUT"]] call BIS_fnc_saveInventory;
//// OMTK EXECUTION
execVM "omtk\load_modules.sqf";
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
JFIF H H Created with GIMP C
C
$!BDQEQEQEQEQEzQEQQEQFQEQFQE!QEQEQEQEQEQEq]aEQEaQEQQES!zQEQEGQEQEQEaEQEaEQEaQEQOϒ>(q5hk\Qm]l((0(0((((~{!Qem]swοS/1GQ[YVKs-ϥ\xWe3k8{= ޡe*_%=gl=on͕MΠ~y>%t5sw
wVTgs
92Q%h[M~~zfǷ;gQK8[UfwcZr]
X-՟R(}=Iov:F6VNX`nvN|'ސw7f}O٩.m 7q??3zє
oh9ޫͯMGIz fǻF]{Yp^c.˯qn5^}?<CХNNm0sm[I] \䝘Qͧfk8wj3k}95yoN̦gVcۛBϧo>ڴGp 7tѣF_Fɯ-X6+.ǾΨ~x a~}t}> rB8N[%7y;voKL{7o؝Ѧ%͚_#-NGu挵[dۂYWlñhѐFww)8owx=TQD>!aNB!Ct<ګni8/;υwf=٬Ge[,J<ǫ\ݢfsdF#~m3m[1ۨޔ߅N$*<[]QE=QE7}!BiSVcu;M93fЯ7զs_gwS/Ͼٵ]͈N?g,kgn}JU]F`Վmڔ]FvӒt]-6%W(?h˪.8L
vV=Ӽݘ?6Fm8wfטv9e[L뷋wy6אJ;F n
;;N~~˱>?<QM~~£D!Bgnӓ[f]w8YnϿNy^YVJw8?^uy3k> n]u죻nϻgwv78d?=QLFn̢%Bܡ:r#˪])K:iȝ1ml;rBVFȣ(cSoNϫKcsãFͯCG(yvڻ\!CQFƌܔݶ*ތjy^j]QE,v :]$3.R6A:N/ѝӒl i>!q]QEku#(wC8Vttg.Ƴ~%vwQ_Vk+U{*kl32}u}va~U{wbw:)e{J!((
(NOG]jsjpetiU|efa6=Jm=F-m?
[OEb_j=9<n9'Glz2尳ٹhѤfB1EQEQERʪyeZ2zgZy(elVUmu?G;˫㖹VYf}峱ؕ`sYB
(0(0((((((((B!pH0(((+(((
((0()Jk^!p`(0(0(0(0((
PH*f.$!
((((((0((
(0!N^͎B&((
((0(0((
((
(9ӥ˸uaEQFQEWQEQEQEQEaEQEQQOd4AEYwZ7QpҊ(((((
((
((((q̦teϒptі
(
(\KfQEQQEQFQEQEQEQE=_Lw8|FJbfHXP匥)*L,٥dƶ (((((!
"\
8BRQKeaBSf&(0((((!B!(((((
/Ҋ(((aB!B , 0!"#$1@% !B!B!B!B!B!B(B!B!B!B!B!B!_҄!B!B!B!B!B!BB9mtedyK 54U˻{{n?!B!B!B!B!B#tqc.ϲۖ,^Ϫ\q9 MOK5˧ovUryᄯA=\ƕRD>=s7_aM+xcWolK>,̳GSZcSҏ?!F픽I?&o}\(B1si2L76t=v#pTqLM*k)cQ~kRt\m{s/]?ZtC3{>+uGU%QJ\O~6nW髵'c#7Os=v^4[}"u/FԗH\-j/kk{~3ӧQ*Y^9 ]MfFwg}_p>s
~{n6z_I{.҅zf7<}3OIInreN7oTn[;ɛz.v6Qht=͍d"ELkZ-64'މ,.]bNF}4WS{,{X*Chqպ꯱koz)j|[[W2JzdiU{uSh{,FXӖKy~/gG6fJL9]bD:!1/VfWϸz}S{ՎYdt6o~X|04{ʲ~9S'UrGdgiޕc3{^e.Rܬ? ̤>ai茱YMttZ!K_F}*{Θ$:yӭ:jN\xt}>;WIE.:;:/GznլpQ\y:WF)[hn,1^$IW6^L״$o]噟VЄxWՆyngˀ -. _KX[Yheu_x?OKWm!ϴG]@è;I~˖g̲o_7zX(Om_NQ!k{nPsq>,U9x?'JG/MuW}ϙ/B|=o^u5gښkJq!#vz6~tj%䎳M iׯXyW_v "tkMQVqred6wxa*k#)#a?uby1Nur]_;/|E!B9{}t]
u;mEWA<
Z!a%ctg-~X֖GVuuw[]욛>E6