Fucking github

messing with my shit
This commit is contained in:
Defent 2015-08-26 15:12:14 +02:00
parent ccaebd7916
commit 7366d4df4e
23 changed files with 752 additions and 0 deletions

1
$PBOPREFIX$ Normal file
View File

@ -0,0 +1 @@
x\addons\DMS

1
$PREFIX$ Normal file
View File

@ -0,0 +1 @@
x\addons\DMS

View File

@ -25,10 +25,13 @@ if(isServer) then {
call DMS_selectMission;
//[] call compile preprocessFileLineNumbers "\x\addons\dms\scripts\DMS_selectMission.sqf";
//[] execVM "\x\addons\dms\scripts\DMS_selectMission.sqf";
call DMS_selectMission;
diag_log "DMS :: Functions loaded - starting the rest of the script.";
};

1
PboPrefix.txt Normal file
View File

@ -0,0 +1 @@
x\addons\dms

19
config.cpp Normal file
View File

@ -0,0 +1,19 @@
class CfgPatches {
class A3_dms {
units[] = {};
weapons[] = {};
a3_DMS_version = 1.0;
requiredVersion = 1.36;
requiredAddons[] = {};
};
};
class CfgFunctions {
class dms {
class main {
file = "\x\addons\dms";
class start_dms {
postInit = 1;
};
};
};
};

24
crates/DMS_CreateBox.sqf Normal file
View File

@ -0,0 +1,24 @@
// The content of the boxes.
DMS_Box1 = {
private["_crate"];
_crate = _this select 0;
clearWeaponCargoGlobal _crate;
clearMagazineCargoGlobal _crate;
clearItemCargoGlobal _crate;
_crate addMagazineCargoGlobal ["Exile_Item_WoodWallKit",6];
_crate addMagazineCargoGlobal ["Exile_Item_WoodWallHalfKit",2];
_crate addMagazineCargoGlobal ["Exile_Item_DoorwayKit",1];
_crate addMagazineCargoGlobal ["Exile_Item_PlasticBottleFreshWater",5];
_crate addMagazineCargoGlobal ["Exile_Melee_Axe",2];
_crate addMagazineCargoGlobal ["Exile_Item_BBQ_Sandwich",2];
_crate addMagazineCargoGlobal ["Exile_Item_Beer",3];
_crate addMagazineCargoGlobal ["Exile_Item_CamoTentKit",3];
_crate addMagazineCargoGlobal ["Exile_Item_CampFireKit",5];
_crate addMagazineCargoGlobal ["Exile_Item_InstaDoc",5];
_crate addMagazineCargoGlobal ["Exile_Item__JunkMetal",2];
_crate addMagazineCargoGlobal ["Exile_Item_SafeKit",1];
_crate addMagazineCargoGlobal ["Exile_Item_MetalBoard",2];
_crate addMagazineCargoGlobal ["Exile_Item_DuctTape",2];
_crate addMagazineCargoGlobal ["Exile_Item_ExtensionCord",2];
_crate addMagazineCargoGlobal ["Exile_Item_PortableGeneratorkit",1];
};

2
fn_start_DMS.sqf Normal file
View File

@ -0,0 +1,2 @@
[] execVM "\x\addons\dms\dms_init.sqf";
diag_log format ["DMS :: Loading Defents Mission System"];

47
missions/MM1.sqf Normal file
View File

@ -0,0 +1,47 @@
private ["_crate","_pos","_missname","_aiAmmount","_misText","_missEnd","_group"];
// associate pos with find safe pos fnc
_pos = call DMS_findSafePos;
_missname = "Main Mission 1";
diag_log format["DMS :: Main Mission 1 started at [%1]",_pos];
["standardHintRequest",["Mission starting! Check your map"]] call ExileServer_system_network_send_broadcast;
// Spawn Marker
[_pos,_missname] call DMS_CreateMarker;
// Spawn Box
_crate = createVehicle ["Box_NATO_AmmoOrd_F",[(_pos select 0) - 10, _pos select 1,0],[], 0, "CAN_COLLIDE"];
[_crate] call DMS_Box1;
sleep 2;
//_crate = [_pos,40,4,2,2] execVM "mission\crates\MM_Box1.sqf";
// spawn AI
//[(_pos),(5),(4)] call DMS_SpawnAI;
[(_pos),(5),(4)] call DMS_DMS_SpawnAI;
waitUntil{{isPlayer _x && _x distance _pos < 30 } count playableUnits > 0};
/*
[_pos] call MissionCompleted;
[_pos,] call MissionCleanup;
*/
["standardHintRequest",["Mission has ended, good job!"]] call ExileServer_system_network_send_broadcast;
// Run Cleanup
["Ended","Clean"] call DMS_CleanUp;
sleep 150;
CALL DMS_selectMission.sqf;

50
missions/MM10.sqf Normal file
View File

@ -0,0 +1,50 @@
private ["_crate","_pos","_missname","_aiAmmount","_misText","_missEnd","_group"];
/*
_playerClose = false;
_mainTimer = true;
//_missStartTime = floor(time);
*/
// associate pos with find safe pos
_pos = call DMS_findSafePos;
_missname = "Main Mission 10";
diag_log format["DMS :: Main Mission 10 started at [%1]",_pos];
["standardHintRequest",["Mission starting! Check your map"]] call ExileServer_system_network_send_broadcast;
// Spawn Marker
[_pos,_missname] call DMS_CreateMarker;
// Spawn Box
_crate = createVehicle ["Box_NATO_AmmoOrd_F",[(_pos select 0) - 10, _pos select 1,0],[], 0, "CAN_COLLIDE"];
[_crate] call DMS_Box1;
sleep 2;
//_crate = [_pos,40,4,2,2] execVM "mission\crates\MM_Box1.sqf";
// spawn AI
//[(_pos),(5),(4)] call DMS_SpawnAI;
[(_pos),(5),(4)] call DMS_SpawnAI;
waitUntil{{isPlayer _x && _x distance _pos < 30 } count playableUnits > 0};
["standardHintRequest",["Mission has ended, good job!"]] call ExileServer_system_network_send_broadcast;
// Run Cleanup
[] call DMS_CleanUp;
deleteMarker "DMS_MainMarker";
deleteMarker "DMS_MainDot";
sleep 150;
CALL DMS_selectMission.sqf;

47
missions/MM2.sqf Normal file
View File

@ -0,0 +1,47 @@
private ["_crate","_pos","_missname","_aiAmmount","_misText","_missEnd","_group"];
/*
_playerClose = false;
_mainTimer = true;
//_missStartTime = floor(time);
*/
// associate pos with find safe pos
_pos = call DMS_findSafePos;
_missname = "Main Mission 2";
diag_log format["DMS :: Main Mission 2 started at [%1]",_pos];
["standardHintRequest",["Mission starting! Check your map"]] call ExileServer_system_network_send_broadcast;
// Spawn Marker
[_pos,_missname] call DMS_CreateMarker;
// Spawn Box
_crate = createVehicle ["Box_NATO_AmmoOrd_F",[(_pos select 0) - 10, _pos select 1,0],[], 0, "CAN_COLLIDE"];
[_crate] call DMS_Box1;
sleep 2;
//_crate = [_pos,40,4,2,2] execVM "mission\crates\MM_Box1.sqf";
// spawn AI
//[(_pos),(5),(4)] call DMS_SpawnAI;
[(_pos),(5),(4)] call DMS_DMS_SpawnAI;
waitUntil{{isPlayer _x && _x distance _pos < 30 } count playableUnits > 0};
["standardHintRequest",["Mission has ended, good job!"]] call ExileServer_system_network_send_broadcast;
// Run Cleanup
[] call DMS_CleanUp;
deleteMarker "DMS_MainMarker";
deleteMarker "DMS_MainDot";
sleep 150;
CALL DMS_selectMission.sqf;

48
missions/MM3.sqf Normal file
View File

@ -0,0 +1,48 @@
private ["_crate","_pos","_missname","_aiAmmount","_misText","_missEnd","_group"];
/*
_playerClose = false;
_mainTimer = true;
//_missStartTime = floor(time);
*/
// associate pos with find safe pos
_pos = call DMS_findSafePos;
_missname = "Main Mission 3";
diag_log format["DMS :: Main Mission 3 started at [%1]",_pos];
["standardHintRequest",["Mission starting! Check your map"]] call ExileServer_system_network_send_broadcast;
// Spawn Marker
[_pos,_missname] call DMS_CreateMarker;
// Spawn Box
_crate = createVehicle ["Box_NATO_AmmoOrd_F",[(_pos select 0) - 10, _pos select 1,0],[], 0, "CAN_COLLIDE"];
[_crate] call DMS_Box1;
sleep 2;
//_crate = [_pos,40,4,2,2] execVM "mission\crates\MM_Box1.sqf";
// spawn AI
//[(_pos),(5),(4)] call DMS_SpawnAI;
[(_pos),(5),(4)] call DMS_SpawnAI;
waitUntil{{isPlayer _x && _x distance _pos < 30 } count playableUnits > 0};
["standardHintRequest",["Mission has ended, good job!"]] call ExileServer_system_network_send_broadcast;
// Run Cleanup
[] call DMS_CleanUp;
deleteMarker "DMS_MainMarker";
deleteMarker "DMS_MainDot";
sleep 150;
CALL DMS_selectMission.sqf;

49
missions/MM4.sqf Normal file
View File

@ -0,0 +1,49 @@
private ["_crate","_pos","_missname","_aiAmmount","_misText","_missEnd","_group"];
/*
_playerClose = false;
_mainTimer = true;
//_missStartTime = floor(time);
*/
// associate pos with find safe pos
_pos = call DMS_findSafePos;
_missname = "Main Mission 4";
diag_log format["DMS :: Main Mission 4 started at [%1]",_pos];
["standardHintRequest",["Mission starting! Check your map"]] call ExileServer_system_network_send_broadcast;
// Spawn Marker
[_pos,_missname] call DMS_CreateMarker;
// Spawn Box
_crate = createVehicle ["Box_NATO_AmmoOrd_F",[(_pos select 0) - 10, _pos select 1,0],[], 0, "CAN_COLLIDE"];
[_crate] call DMS_Box1;
sleep 2;
//_crate = [_pos,40,4,2,2] execVM "mission\crates\MM_Box1.sqf";
// spawn AI
//[(_pos),(5),(4)] call DMS_SpawnAI;
[(_pos),(5),(4)] call DMS_SpawnAI;
waitUntil{{isPlayer _x && _x distance _pos < 30 } count playableUnits > 0};
["standardHintRequest",["Mission has ended, good job!"]] call ExileServer_system_network_send_broadcast;
// Run Cleanup
[] call DMS_CleanUp;
deleteMarker "DMS_MainMarker";
deleteMarker "DMS_MainDot";
sleep 150;
CALL DMS_selectMission.sqf;

49
missions/MM5.sqf Normal file
View File

@ -0,0 +1,49 @@
private ["_crate","_pos","_missname","_aiAmmount","_misText","_missEnd","_group"];
/*
_playerClose = false;
_mainTimer = true;
//_missStartTime = floor(time);
*/
// associate pos with find safe pos
_pos = call DMS_findSafePos;
_missname = "Main Mission 5";
diag_log format["DMS :: Main Mission 5 started at [%1]",_pos];
["standardHintRequest",["Mission starting! Check your map"]] call ExileServer_system_network_send_broadcast;
// Spawn Marker
[_pos,_missname] call DMS_CreateMarker;
// Spawn Box
_crate = createVehicle ["Box_NATO_AmmoOrd_F",[(_pos select 0) - 10, _pos select 1,0],[], 0, "CAN_COLLIDE"];
//[_crate] call createBox;
// [_crate, amount of weapons, amount of ammo] call createBox;
[_crate] call DMS_Box1;
sleep 2;
//[_pos, amount of ai ] call DMS_SpawnAI;
[_pos,4] call DMS_SpawnAI;
waitUntil{{isPlayer _x && _x distance _pos < 30 } count playableUnits > 0};
["standardHintRequest",["Mission has ended, good job!"]] call ExileServer_system_network_send_broadcast;
// Run Cleanup
[] call DMS_CleanUp;
deleteMarker "DMS_MainMarker";
deleteMarker "DMS_MainDot";
sleep 150;
CALL DMS_selectMission.sqf;

49
missions/MM6.sqf Normal file
View File

@ -0,0 +1,49 @@
private ["_crate","_pos","_missname","_aiAmmount","_misText","_missEnd","_group"];
/*
_playerClose = false;
_mainTimer = true;
//_missStartTime = floor(time);
*/
// associate pos with find safe pos
_pos = call DMS_findSafePos;
_missname = "Main Mission 6";
diag_log format["DMS :: Main Mission 6 started at [%1]",_pos];
["standardHintRequest",["Mission starting! Check your map"]] call ExileServer_system_network_send_broadcast;
// Spawn Marker
[_pos,_missname] call DMS_CreateMarker;
// Spawn Box
_crate = createVehicle ["Box_NATO_AmmoOrd_F",[(_pos select 0) - 10, _pos select 1,0],[], 0, "CAN_COLLIDE"];
[_crate] call DMS_Box1;
sleep 2;
//_crate = [_pos,40,4,2,2] execVM "mission\crates\MM_Box1.sqf";
// spawn AI
//[(_pos),(5),(4)] call DMS_SpawnAI;
[(_pos),(5),(4)] call DMS_SpawnAI;
waitUntil{{isPlayer _x && _x distance _pos < 30 } count playableUnits > 0};
["standardHintRequest",["Mission has ended, good job!"]] call ExileServer_system_network_send_broadcast;
// Run Cleanup
[] call DMS_CleanUp;
deleteMarker "DMS_MainMarker";
deleteMarker "DMS_MainDot";
sleep 150;
CALL DMS_selectMission.sqf;

49
missions/MM7.sqf Normal file
View File

@ -0,0 +1,49 @@
private ["_crate","_pos","_missname","_aiAmmount","_misText","_missEnd","_group"];
/*
_playerClose = false;
_mainTimer = true;
//_missStartTime = floor(time);
*/
// associate pos with find safe pos
_pos = call DMS_findSafePos;
_missname = "Main Mission 7";
diag_log format["DMS :: Main Mission 7 started at [%1]",_pos];
["standardHintRequest",["Mission starting! Check your map"]] call ExileServer_system_network_send_broadcast;
// Spawn Marker
[_pos,_missname] call DMS_CreateMarker;
// Spawn Box
_crate = createVehicle ["Box_NATO_AmmoOrd_F",[(_pos select 0) - 10, _pos select 1,0],[], 0, "CAN_COLLIDE"];
[_crate] call DMS_Box1;
sleep 2;
//_crate = [_pos,40,4,2,2] execVM "mission\crates\MM_Box1.sqf";
// spawn AI
//[(_pos),(5),(4)] call DMS_SpawnAI;
[(_pos),(5),(4)] call DMS_SpawnAI;
waitUntil{{isPlayer _x && _x distance _pos < 30 } count playableUnits > 0};
["standardHintRequest",["Mission has ended, good job!"]] call ExileServer_system_network_send_broadcast;
// Run Cleanup
[] call DMS_CleanUp;
deleteMarker "DMS_MainMarker";
deleteMarker "DMS_MainDot";
sleep 150;
CALL DMS_selectMission.sqf;

49
missions/MM8.sqf Normal file
View File

@ -0,0 +1,49 @@
private ["_crate","_pos","_missname","_aiAmmount","_misText","_missEnd","_group"];
/*
_playerClose = false;
_mainTimer = true;
//_missStartTime = floor(time);
*/
// associate pos with find safe pos
_pos = call DMS_findSafePos;
_missname = "Main Mission 8";
diag_log format["DMS :: Main Mission 8 started at [%1]",_pos];
["standardHintRequest",["Mission starting! Check your map"]] call ExileServer_system_network_send_broadcast;
// Spawn Marker
[_pos,_missname] call DMS_CreateMarker;
// Spawn Box
_crate = createVehicle ["Box_NATO_AmmoOrd_F",[(_pos select 0) - 10, _pos select 1,0],[], 0, "CAN_COLLIDE"];
[_crate] call DMS_Box1;
sleep 2;
//_crate = [_pos,40,4,2,2] execVM "mission\crates\MM_Box1.sqf";
// spawn AI
//[(_pos),(5),(4)] call DMS_SpawnAI;
[(_pos),(5),(4)] call DMS_SpawnAI;
waitUntil{{isPlayer _x && _x distance _pos < 30 } count playableUnits > 0};
["standardHintRequest",["Mission has ended, good job!"]] call ExileServer_system_network_send_broadcast;
// Run Cleanup
[] call DMS_CleanUp;
deleteMarker "DMS_MainMarker";
deleteMarker "DMS_MainDot";
sleep 150;
CALL DMS_selectMission.sqf;

47
missions/MM9.sqf Normal file
View File

@ -0,0 +1,47 @@
private ["_crate","_pos","_missname","_aiAmmount","_misText","_missEnd","_group"];
/*
_playerClose = false;
_mainTimer = true;
//_missStartTime = floor(time);
*/
// associate pos with find safe pos
_pos = call DMS_findSafePos;
_missname = "Main Mission 9";
diag_log format["DMS :: Main Mission 9 started at [%1]",_pos];
["standardHintRequest",["Mission starting! Check your map"]] call ExileServer_system_network_send_broadcast;
// Spawn Marker
[_pos,_missname] call DMS_CreateMarker;
// Spawn Box
_crate = createVehicle ["Box_NATO_AmmoOrd_F",[(_pos select 0) - 10, _pos select 1,0],[], 0, "CAN_COLLIDE"];
[_crate] call DMS_Box1;
sleep 2;
//_crate = [_pos,40,4,2,2] execVM "mission\crates\MM_Box1.sqf";
// spawn AI
//[(_pos),(5),(4)] call DMS_SpawnAI;
[(_pos),(5),(4)] call DMS_SpawnAI;
waitUntil{{isPlayer _x && _x distance _pos < 30 } count playableUnits > 0};
["standardHintRequest",["Mission has ended, good job!"]] call ExileServer_system_network_send_broadcast;
// Run Cleanup
[] call DMS_CleanUp;
deleteMarker "DMS_MainMarker";
deleteMarker "DMS_MainDot";
sleep 150;
CALL DMS_selectMission.sqf;

16
scripts/DMS_Config.sqf Normal file
View File

@ -0,0 +1,16 @@
DMS_Config = {
if(isServer) then {
diag_log "DMS :: Config starting to load..";
//Settings
DMS_UseMissions = true;
//DMS_DetectNearWater = true;
// Timers in seconds
//DMS_MissionMin = 60;
//DMS_MissionMax = 120;
// Finalize
DMS_Loaded = true;
};
};

View File

@ -0,0 +1,16 @@
DMS_CreateMarker = {
private["_mark","_name"];
DMS_Cords = _this select 0;
DMS_MainName = _this select 1;
_mark = createMarker ["DMS_MainMarker", DMS_Cords];
"DMS_MainMarker" setMarkerColor "ColorRed";
"DMS_MainMarker" setMarkerShape "ELLIPSE";
"DMS_MainMarker" setMarkerBrush "Grid";
"DMS_MainMarker" setMarkerSize [150,150];
_name = createMarker ["DMS_MainDot", DMS_Cords];
"DMS_MainDot" setMarkerColor "ColorBlack";
"DMS_MainDot" setMarkerType "mil_dot";
"DMS_MainDot" setMarkerText DMS_MainName;
};

20
scripts/DMS_cleanup.sqf Normal file
View File

@ -0,0 +1,20 @@
fnc_DMS_cleanUp = {
_this enableSimulation false;
_this removeAllMPEventHandlers "mpkilled";
_this removeAllMPEventHandlers "mphit";
_this removeAllMPEventHandlers "mprespawn";
_this removeAllEventHandlers "FiredNear";
_this removeAllEventHandlers "HandleDamage";
_this removeAllEventHandlers "Killed";
_this removeAllEventHandlers "Fired";
_this removeAllEventHandlers "GetOut";
_this removeAllEventHandlers "GetIn";
_this removeAllEventHandlers "Local";
// clearVehicleInit _this;
deleteVehicle _this;
deleteGroup (group _this);
_this = nil;
diag_log format ["DMS :: Markers, vehicles, AI and loot boxes and other items have been cleaned up!"];
};

View File

@ -0,0 +1,33 @@
DMS_findSafePos = {
if(isServer) then {
private ["_pos","_centerPos","_fetchPos"];
//_centerPos = [getMarkerPos "center",4000,20000,10,0,25,0];
_centerPos = [getMarkerPos "center",2000,4000,10,0,25,0];
_fetchPos = false;
_int = 1;
while {!_fetchPos} do {
sleep 2;
_pos = _centerPos call BIS_fnc_findSafePos;
_int = _int + 1;
_fetchPos = true;
if (_fetchPos) then {
diag_log format ["DMS :: Found valid position at: (%1) in (%2) tries!",_pos,_int];
};
// more if exceptions to come
// water if exception to be added above
};
};
};

View File

@ -0,0 +1,25 @@
private ["_sleepTime","_run","_countArray","_randomMiss","_missVar","_minTime","_maxTime","_missionFnc","_MainArray"];
// First we add the array of missions
_MainArray = ["MM1","MM2","MM3","MM4","MM5","MM6","MM7","MM8","MM9","MM10"];
//DMS_SideArray = ["SM1","SM2"];
/*
_minTime = 1*600; //1 sec
_maxTime = 2*600; //4 sec
*/
_minTime = 1*5; //1 sec
_maxTime = 2*10; //4 sec
_sleepTime = (random (_maxTime - _minTime)) + _minTime;
sleep _sleepTime;
_countArray = count _MainArray;
_slct = floor (random _countArray);
_missVar = _MainArray select _slct;
// Help from secret skype group.
call compile preprocessfilelinenumbers format["\x\addons\DMS\missions\%1.sqf",_missVar];
//DMS_MissionRunning = 1;

107
scripts/DMS_spawnAI.sqf Normal file
View File

@ -0,0 +1,107 @@
DMS_spawnAI = {
private ["_group", "_pos","_soldier","_skill","_units","_playerObject"];
_pos = _this select 0;
_units = _this select 1;
_skill = _this select 2;
//_playerObject = (owner player);
// Needed 4 exile
_group = createGroup INDEPENDENT;
_group setBehaviour "COMBAT";
_group setCombatMode "RED";
_group allowFleeing 0;
// Set AI owner to Player.
_group setGroupOwner (owner player);
// Not tested this one, may need to apply above one.
//ExileServerOwnershipSwapQueue pushBack [_group,_playerObject];
for "_i" from 1 to _units do {
_soldier = _group createUnit ["i_g_soldier_unarmed_f", [_pos select 0, _pos select 1, 0], [], 1, "Form"];
removeAllAssignedItems _soldier;
removeUniform _soldier;
removeHeadgear _soldier;
removeAllItems _soldier;
removeAllWeapons _soldier;
_soldier forceaddUniform "U_I_officerUniform";
_soldier addVest "V_5_Epoch";
_soldier addGoggles "G_Diving";
for "_i" from 1 to 3 do {
_soldier addItemToVest "30Rnd_65x39_caseless_mag";
};
_soldier addWeapon "arifle_MXC_Holo_pointer_F";
_soldier setRank "Private";
{
_soldier enableAI _x;
}forEach ["TARGET","AUTOTARGET","MOVE","ANIM"];
_soldier disableAI "FSM";
_soldier allowDammage true;
switch (_skill) do
{
case 1:
{
_soldier setSkill ["aimingspeed", 0.05];
_soldier setSkill ["spotdistance", 0.05];
_soldier setSkill ["aimingaccuracy", 0.02];
_soldier setSkill ["aimingshake", 0.02];
_soldier setSkill ["spottime", 0.1];
_soldier setSkill ["spotdistance", 0.3];
_soldier setSkill ["commanding", 0.3];
_soldier setSkill ["general", 0.2];
};
case 2:
{
_soldier setSkill ["spotdistance", 0.1];
_soldier setSkill ["aimingaccuracy", 0.05];
_soldier setSkill ["aimingshake", 0.05];
_soldier setSkill ["spottime", 0.2];
_soldier setSkill ["spotdistance", 0.4];
_soldier setSkill ["commanding", 0.4];
_soldier setSkill ["general", 0.3];
};
case 3:
{
_soldier setSkill ["aimingspeed", 0.15];
_soldier setSkill ["spotdistance", 0.15];
_soldier setSkill ["aimingaccuracy", 0.1];
_soldier setSkill ["aimingshake", 0.1];
_soldier setSkill ["spottime", 0.3];
_soldier setSkill ["spotdistance", 0.5];
_soldier setSkill ["commanding", 0.5];
_soldier setSkill ["general", 0.6];
};
case 4:
{
_soldier setSkill ["aimingspeed", 0.3];
_soldier setSkill ["spotdistance", 0.3];
_soldier setSkill ["aimingaccuracy", 0.3];
_soldier setSkill ["aimingshake", 0.3];
_soldier setSkill ["spottime", 0.4];
_soldier setSkill ["spotdistance", 0.6];
_soldier setSkill ["commanding", 0.6];
_soldier setSkill ["general", 0.7];
};
case 5:
{
_soldier setSkill ["aimingspeed", 0.9];
_soldier setSkill ["spotdistance", 0.9];
_soldier setSkill ["aimingaccuracy", 0.9];
_soldier setSkill ["aimingshake", 0.9];
_soldier setSkill ["spottime", 0.9];
_soldier setSkill ["spotdistance", 0.9];
_soldier setSkill ["commanding", 0.8];
};
case 6: // Stupidly fucking OP.
{
_soldier setSkill ["aimingspeed", 1];
_soldier setSkill ["spotdistance", 1];
_soldier setSkill ["aimingaccuracy", 1];
_soldier setSkill ["aimingshake", 1];
_soldier setSkill ["spottime", 1];
_soldier setSkill ["spotdistance", 1];
_soldier setSkill ["commanding", 1];
};
};
};
};