From 1ce13bddddb631354ed6b8fef939c912e53e2337 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Mon, 28 May 2018 22:33:22 +0200
Subject: [PATCH 001/267] Update README.md
---
README.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index e1705802f..74a83d1a7 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,15 @@
# Benny-Edition-CTI-0.97-Zerty-Modification
-##Monetization
+## Monetization
This mission (or code that I own inside) __cannot__ be used in a monetization process as defined by BiS at http://www.bistudio.com/monetization & http://www.bistudio.com/monetization/faq
-##Licence
+## Licence

BECTI Zerty Edit. by Zerty is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at http://forums.bistudio.com/showthread.php?166433-SP-MP-BeCTI.
This project is not affiliated or authorized by Bohemia Interactive a.s. Bohemia Interactive, ARMA, DAYZ and all associated logos and designs are trademarks or registered trademarks of Bohemia Interactive a.s.
-##Credits:
+## Credits:
- *Benny* for the mission
- *Bl1p, Fluit* for random AI skill
- *=ATM=Pokertour* for ATM airdrop
From 5fa4cedcbed1a5ffdb371147b44be7700983f8de Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Thu, 30 Aug 2018 21:52:21 +0200
Subject: [PATCH 002/267] Malden switch
---
mission.sqm | 4546 +++++++++++++++++++++++++++++++--------------------
1 file changed, 2805 insertions(+), 1741 deletions(-)
diff --git a/mission.sqm b/mission.sqm
index 29c3eb96b..9d9fc62f2 100644
--- a/mission.sqm
+++ b/mission.sqm
@@ -5,10 +5,10 @@ class EditorData
angleGridStep=0.2617994;
scaleGridStep=1;
autoGroupingDist=10;
- toggles=1025;
+ toggles=1;
class ItemIDProvider
{
- nextID=178;
+ nextID=180;
};
class MarkerIDProvider
{
@@ -16,10 +16,10 @@ class EditorData
};
class Camera
{
- pos[]={14608.123,155.19696,5895.5967};
- dir[]={-0.80275387,-0.42684528,0.41648361};
- up[]={-0.37890467,0.90431285,0.19658338};
- aside[]={0.46054059,-1.7105776e-008,0.887676};
+ pos[]={2752.4963,392.94116,2267.8635};
+ dir[]={0.64523667,-0.56169516,0.51804209};
+ up[]={0.43804976,0.82728094,0.35169992};
+ aside[]={0.62612563,1.1271914e-007,-0.77985692};
};
};
binarizationWanted=0;
@@ -29,13 +29,14 @@ addons[]=
"A3_Structures_F_Mil_Flags",
"A3_Modules_F",
"A3_Characters_F",
- "A3_Modules_F_Curator_Curator"
+ "A3_Modules_F_Curator_Curator",
+ "A3_Boat_F_Jets_Carrier_01"
};
class AddonsMetaData
{
class List
{
- items=5;
+ items=6;
class Item0
{
className="A3_Ui_F";
@@ -71,12 +72,19 @@ class AddonsMetaData
author="Bohemia Interactive";
url="https://www.arma3.com";
};
+ class Item5
+ {
+ className="A3_Boat_F_Jets";
+ name="Arma 3 Jets - Boats and Submersibles";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
};
};
-randomSeed=2773227;
+randomSeed=3001308;
class ScenarioData
{
- author="Yoshi_E";
+ author="Tom";
};
class Intro
{
@@ -105,7 +113,7 @@ class Mission
{
class Intel
{
- briefingName="BECTI BE 0.97 - Zerty 1.3.4.4";
+ briefingName="BECTI BE 0.97 - Zerty 1.3.4.5";
overviewText="By Benny - Adapted from OFP era MFCTI (Mike Melvin)";
resistanceWest=0;
timeOfChanges=24720;
@@ -123,11 +131,11 @@ class Mission
};
class Entities
{
- items=124;
+ items=56;
class Item0
{
dataType="Marker";
- position[]={14491.973,9.0812836,5886.626};
+ position[]={11288.212,14.554405,4659.4922};
name="CTI_EastRespawn";
type="Empty";
colorName="ColorRed";
@@ -138,18 +146,19 @@ class Mission
class Item1
{
dataType="Marker";
- position[]={2323.0264,13.272663,9262.7939};
+ position[]={10867.6,14.611816,3849.8416};
name="CTI_WestRespawn";
type="Empty";
colorName="ColorRed";
fillName="Border";
drawBorder=1;
id=1;
+ atlOffset=-2.5643883;
};
class Item2
{
dataType="Marker";
- position[]={16708.023,13.68144,13597.649};
+ position[]={9931.5684,2.0193732,5942.4219};
name="Prison";
type="Empty";
colorName="ColorPink";
@@ -158,1554 +167,535 @@ class Mission
class Item3
{
dataType="Marker";
- position[]={15861.336,14.276582,16812.896};
+ position[]={6113.103,0,6452.269};
name="CENTER_POS";
markerType="ELLIPSE";
type="Empty";
- a=15000;
- b=15000;
+ a=8000;
+ b=8000;
id=3;
+ atlOffset=-355.95911;
};
class Item4
{
dataType="Marker";
- position[]={5610.021,309.28171,21723.725};
+ position[]={8048.7817,232.85887,10447.706};
name="HELO_START_0";
type="Empty";
colorName="ColorGreen";
id=4;
+ atlOffset=202.47562;
};
class Item5
{
dataType="Marker";
- position[]={4639.3633,200.80589,22353.711};
+ position[]={5666.728,366.88507,6911.4629};
name="HELO_START_1";
type="Empty";
colorName="ColorGreen";
id=5;
+ atlOffset=30.71524;
};
class Item6
{
dataType="Marker";
- position[]={4653.5127,226.72784,18192.236};
- name="HELO_START";
- type="Empty";
- colorName="ColorGreen";
- id=6;
- };
- class Item7
- {
- dataType="Marker";
- position[]={4651.3667,226.31035,18209.645};
+ position[]={5074.2397,57.330524,2595.5024};
name="HELO_START_2";
type="Empty";
colorName="ColorGreen";
id=7;
};
- class Item8
+ class Item7
{
dataType="Marker";
- position[]={7621.6284,208.08614,13325.232};
+ position[]={6310.3545,79.747299,3741.1113};
name="HELO_START_3";
type="Empty";
colorName="ColorGreen";
id=8;
};
- class Item9
+ class Item8
{
dataType="Marker";
- position[]={10515.029,84.02951,14144.914};
+ position[]={6880.8032,92.093384,7267.0029};
name="HELO_START_4";
type="Empty";
colorName="ColorGreen";
id=9;
};
- class Item10
+ class Item9
{
dataType="Marker";
- position[]={8501.5254,42.18084,22591.121};
+ position[]={3644.0125,171.00302,8755.6426};
name="HELO_START_5";
type="Empty";
colorName="ColorGreen";
id=10;
+ atlOffset=39.339203;
};
- class Item11
+ class Item10
{
dataType="Marker";
- position[]={8281.4951,67.853317,19906.736};
+ position[]={7227.0454,66.153236,6112.1108};
name="HELO_START_6";
type="Empty";
colorName="ColorGreen";
id=11;
};
- class Item12
+ class Item11
{
dataType="Marker";
- position[]={11651.426,27.650551,22131.984};
+ position[]={3122.9133,355.63477,6521.2852};
name="HELO_START_7";
type="Empty";
colorName="ColorGreen";
id=12;
+ atlOffset=122.17253;
};
- class Item13
+ class Item12
{
dataType="Marker";
- position[]={3745.71,21.729914,10576.94};
+ position[]={4057.4487,34.650162,3270.5313};
name="HELO_START_8";
type="Empty";
colorName="ColorGreen";
id=13;
};
- class Item14
+ class Item13
{
dataType="Marker";
- position[]={5824.6914,21.924395,10721.572};
+ position[]={7270.1929,166.74646,8210.4082};
name="HELO_START_9";
type="Empty";
colorName="ColorGreen";
id=14;
};
- class Item15
+ class Item14
{
dataType="Marker";
- position[]={6316.9219,30.09,15471.258};
+ position[]={6202.1963,121.75577,8853.623};
name="HELO_START_10";
type="Empty";
colorName="ColorGreen";
id=15;
};
- class Item16
+ class Item15
{
dataType="Marker";
- position[]={9742.7783,107.65765,14512.511};
+ position[]={8186.9155,21.156494,2971.0085};
name="HELO_START_11";
type="Empty";
colorName="ColorGreen";
id=16;
- atlOffset=7.6293945e-006;
+ atlOffset=-1.0235062;
};
- class Item17
+ class Item16
{
dataType="Marker";
- position[]={11516.446,53.074879,17410.16};
+ position[]={5445.9541,64.598518,11224.89};
name="HELO_START_12";
type="Empty";
colorName="ColorGreen";
id=17;
};
- class Item18
+ class Item17
{
dataType="Marker";
- position[]={13560.321,5.5936675,14878.066};
+ position[]={696.65045,25.772217,12179.188};
name="HELO_START_13";
type="Empty";
colorName="ColorGreen";
id=18;
+ atlOffset=-3.1477833;
};
- class Item19
+ class Item18
{
dataType="Marker";
- position[]={13922.415,13.724786,17478.414};
+ position[]={6808.0088,107.74664,8867.6797};
name="HELO_START_14";
type="Empty";
colorName="ColorGreen";
id=19;
+ atlOffset=7.6293945e-006;
};
- class Item20
+ class Item19
{
dataType="Marker";
- position[]={16620.469,12.391303,19819.42};
+ position[]={5348.6553,160.02304,4129.0796};
name="HELO_START_15";
type="Empty";
colorName="ColorGreen";
id=20;
+ atlOffset=39.84304;
};
- class Item21
+ class Item20
{
dataType="Marker";
- position[]={15752.398,26.8323,20257.74};
+ position[]={3229.1746,272.54126,6759.9316};
name="HELO_START_16";
type="Empty";
colorName="ColorGreen";
id=21;
+ atlOffset=45.522095;
};
- class Item22
+ class Item21
{
dataType="Marker";
- position[]={10057.669,13.515329,9724.3926};
- name="HELO_START_17";
+ position[]={12044.02,38.268066,4128.9272};
+ name="CTI_HELP";
type="Empty";
- colorName="ColorGreen";
- id=22;
+ colorName="ColorUNKNOWN";
+ id=59;
+ atlOffset=27.431581;
};
- class Item23
+ class Item22
{
dataType="Marker";
- position[]={18950.08,22.684326,6172.5068};
- name="HELO_START_18";
+ position[]={10113.527,2.1769152,2213.2898};
+ name="CTI_TUTORIAL";
type="Empty";
- colorName="ColorGreen";
- id=23;
+ id=60;
+ };
+ class Item23
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8141.9028,32.866806,10032.275};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""Airport"", resistance, 350] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town0";
+ };
+ id=61;
+ type="FlagPole_F";
+ atlOffset=1.9073486e-006;
};
class Item24
{
- dataType="Marker";
- position[]={22839.02,59.218605,7644.248};
- name="HELO_START_19";
- type="Empty";
- colorName="ColorGreen";
- id=24;
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={5526.2373,339.83679,6982.5664};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""Arudy"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town1";
+ };
+ id=62;
+ type="FlagPole_F";
};
class Item25
{
- dataType="Marker";
- position[]={19747.805,59.847923,8550.9883};
- name="HELO_START_20";
- type="Empty";
- colorName="ColorGreen";
- id=25;
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={5337.7021,45.364891,2796.292};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""Cancon"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town2";
+ };
+ id=63;
+ type="FlagPole_F";
+ atlOffset=-3.8146973e-006;
};
class Item26
{
- dataType="Marker";
- position[]={19319.139,117.28299,11713.374};
- name="HELO_START_21";
- type="Empty";
- colorName="ColorGreen";
- id=26;
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={5905.499,58.962273,3578.531};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""Chapoi"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town3";
+ };
+ id=64;
+ type="FlagPole_F";
+ atlOffset=-3.8146973e-006;
};
class Item27
{
- dataType="Marker";
- position[]={13606.947,18.530624,13178.719};
- name="HELO_START_22";
- type="Empty";
- colorName="ColorGreen";
- id=27;
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7125.938,75.791107,6122.4321};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""Houdan"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town6";
+ };
+ id=65;
+ type="FlagPole_F";
};
class Item28
{
- dataType="Marker";
- position[]={3647.2109,274.09607,20110.045};
- name="HELO_START_23";
- type="Empty";
- colorName="ColorGreen";
- id=28;
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7062.2842,83.649132,7100.2358};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""Dourdan"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town4";
+ };
+ id=66;
+ type="FlagPole_F";
};
class Item29
{
- dataType="Marker";
- position[]={13592.26,35.56068,20475.77};
- name="HELO_START_24";
- type="Empty";
- colorName="ColorGreen";
- id=29;
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={3580.99,132.93045,8521.291};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""Goisse"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town5";
+ };
+ id=67;
+ type="FlagPole_F";
};
class Item30
{
- dataType="Marker";
- position[]={8954.123,191.4641,17143.156};
- name="HELO_START_25";
- type="Empty";
- colorName="ColorGreen";
- id=30;
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={3149.092,228.3168,6335.374};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""La Passagne"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town7";
+ };
+ id=68;
+ type="FlagPole_F";
};
class Item31
{
- dataType="Marker";
- position[]={8176.6768,116.04903,12137.798};
- name="HELO_START_26";
- type="Empty";
- colorName="ColorGreen";
- id=31;
- atlOffset=-7.6293945e-006;
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={3766.947,22.658308,3241.3359};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""La Riviere"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town8";
+ };
+ id=69;
+ type="FlagPole_F";
};
class Item32
{
- dataType="Marker";
- position[]={17605.617,86.35125,17227.758};
- name="HELO_START_27";
- type="Empty";
- colorName="ColorGreen";
- id=32;
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7302.6274,171.54681,7990.9468};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""La Trinite"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town9";
+ };
+ id=70;
+ type="FlagPole_F";
};
class Item33
{
- dataType="Marker";
- position[]={16834.674,46.78714,16838.703};
- name="HELO_START_28";
- type="Empty";
- colorName="ColorGreen";
- id=33;
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={5558.4565,75.736809,11184.31};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""Lolisse"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town12";
+ };
+ id=71;
+ type="FlagPole_F";
};
class Item34
{
- dataType="Marker";
- position[]={15425.264,43.708084,18878.059};
- name="HELO_START_29";
- type="Empty";
- colorName="ColorGreen";
- id=34;
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={766.15063,32.896805,12132.624};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""Moray"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town13";
+ };
+ id=72;
+ type="FlagPole_F";
};
class Item35
- {
- dataType="Marker";
- position[]={6342.0215,197.7972,14024.557};
- name="HELO_START_30";
- type="Empty";
- colorName="ColorGreen";
- id=35;
- };
- class Item36
- {
- dataType="Marker";
- position[]={4550.7393,57.666843,12503.57};
- name="HELO_START_31";
- type="Empty";
- colorName="ColorGreen";
- id=36;
- };
- class Item37
- {
- dataType="Marker";
- position[]={6447.0005,207.68181,18311.395};
- name="HELO_START_32";
- type="Empty";
- colorName="ColorGreen";
- id=37;
- };
- class Item38
- {
- dataType="Marker";
- position[]={27734.271,16.79051,21368.125};
- name="HELO_START_33";
- type="Empty";
- colorName="ColorGreen";
- id=38;
- };
- class Item39
- {
- dataType="Marker";
- position[]={25227.996,29.664711,22464.543};
- name="HELO_START_34";
- type="Empty";
- colorName="ColorGreen";
- id=39;
- };
- class Item40
- {
- dataType="Marker";
- position[]={26212.406,15.518887,24303};
- name="HELO_START_35";
- type="Empty";
- colorName="ColorGreen";
- id=40;
- };
- class Item41
- {
- dataType="Marker";
- position[]={22729.473,32.199425,21095.527};
- name="HELO_START_36";
- type="Empty";
- colorName="ColorGreen";
- id=41;
- };
- class Item42
- {
- dataType="Marker";
- position[]={16182.315,79.453537,10507.869};
- name="HELO_START_37";
- type="Empty";
- colorName="ColorGreen";
- id=42;
- };
- class Item43
- {
- dataType="Marker";
- position[]={16720.092,12.791599,11673.385};
- name="HELO_START_38";
- type="Empty";
- colorName="ColorGreen";
- id=43;
- };
- class Item44
- {
- dataType="Marker";
- position[]={20047.928,24.676178,16424.217};
- name="HELO_START_39";
- type="Empty";
- colorName="ColorGreen";
- id=44;
- };
- class Item45
- {
- dataType="Marker";
- position[]={18892.809,23.786053,14574.043};
- name="HELO_START_40";
- type="Empty";
- colorName="ColorGreen";
- id=45;
- };
- class Item46
- {
- dataType="Marker";
- position[]={22313.209,9.2807226,14070.693};
- name="HELO_START_41";
- type="Empty";
- colorName="ColorGreen";
- id=46;
- };
- class Item47
- {
- dataType="Marker";
- position[]={19955.602,23.347048,13878.775};
- name="HELO_START_42";
- type="Empty";
- colorName="ColorGreen";
- id=47;
- };
- class Item48
- {
- dataType="Marker";
- position[]={17819.961,15.659065,13623.636};
- name="HELO_START_43";
- type="Empty";
- colorName="ColorGreen";
- id=48;
- };
- class Item49
- {
- dataType="Marker";
- position[]={21335.037,2.6161816,10734.353};
- name="HELO_START_44";
- type="Empty";
- colorName="ColorGreen";
- id=49;
- };
- class Item50
- {
- dataType="Marker";
- position[]={18920.131,182.50348,10011.912};
- name="HELO_START_45";
- type="Empty";
- colorName="ColorGreen";
- id=50;
- };
- class Item51
- {
- dataType="Marker";
- position[]={22030.188,21.254408,19726.084};
- name="HELO_START_46";
- type="Empty";
- colorName="ColorGreen";
- id=51;
- };
- class Item52
- {
- dataType="Marker";
- position[]={22960.787,3.1900001,16952.262};
- name="HELO_START_47";
- type="Empty";
- colorName="ColorGreen";
- id=52;
- };
- class Item53
- {
- dataType="Marker";
- position[]={24311.746,3.0870998,18266.453};
- name="HELO_START_48";
- type="Empty";
- colorName="ColorGreen";
- id=53;
- };
- class Item54
- {
- dataType="Marker";
- position[]={25688.229,11.664829,20209.816};
- name="HELO_START_49";
- type="Empty";
- colorName="ColorGreen";
- id=54;
- };
- class Item55
- {
- dataType="Marker";
- position[]={19638.189,29.112429,19299.75};
- name="HELO_START_50";
- type="Empty";
- colorName="ColorGreen";
- id=55;
- };
- class Item56
- {
- dataType="Marker";
- position[]={10258.585,16.741814,12662.652};
- name="HELO_START_51";
- type="Empty";
- colorName="ColorGreen";
- id=56;
- };
- class Item57
- {
- dataType="Marker";
- position[]={13411.286,72.199524,21926.582};
- name="HELO_START_52";
- type="Empty";
- colorName="ColorGreen";
- id=57;
- };
- class Item58
- {
- dataType="Marker";
- position[]={20674.021,30.730125,18458.713};
- name="HELO_START_53";
- type="Empty";
- colorName="ColorGreen";
- id=58;
- };
- class Item59
- {
- dataType="Marker";
- position[]={499.56848,-190.99652,30213.908};
- name="CTI_HELP";
- type="Empty";
- colorName="ColorUNKNOWN";
- id=59;
- };
- class Item60
- {
- dataType="Marker";
- position[]={8457.709,105.3129,25118.77};
- name="CTI_TUTORIAL";
- type="Empty";
- id=60;
- atlOffset=-7.6293945e-006;
- };
- class Item61
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={20826.033,36.789253,6824.6987};
- angles[]={0.014664836,0,6.2046804};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_selakano0"", resistance, 500,""Town33""] execVM ""Common\Init\Init_Location.sqf""";
- name="Town0";
- };
- id=61;
- type="FlagPole_F";
- atlOffset=0.012802124;
- };
- class Item62
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={16820.996,26.518801,12713.124};
- angles[]={0.045302324,0,6.2725158};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_pyrgos0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town1";
- };
- id=62;
- type="FlagPole_F";
- atlOffset=0.0042667389;
- };
- class Item63
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={19407.914,42.663628,13262.551};
- angles[]={0.018663859,0,0.022662206};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_dorida0"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
- name="Town2";
- };
- id=63;
- type="FlagPole_F";
- atlOffset=0.0011024475;
- };
- class Item64
{
dataType="Object";
class PositionInfo
{
- position[]={18089.914,26.811056,15200.277};
- angles[]={6.2578578,0,0.012000273};
+ position[]={3098.9939,234.082,6852.1948};
};
side="Empty";
flags=4;
class Attributes
{
skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_charkia0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town3";
+ init="nullReturn = [this, ""Vigny"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town16";
};
- id=64;
+ id=73;
type="FlagPole_F";
- atlOffset=0.0015525818;
};
- class Item65
+ class Item36
{
dataType="Object";
class PositionInfo
{
- position[]={21381.674,26.061756,16414.758};
- angles[]={6.2405448,0,0.0146689};
+ position[]={7117.3838,109.22265,8962.2412};
};
side="Empty";
flags=4;
class Attributes
{
skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_kalochori0"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
- name="Town6";
+ init="nullReturn = [this, ""Saint Louis"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town14";
};
- id=65;
+ id=77;
type="FlagPole_F";
- atlOffset=0.0040168762;
+ atlOffset=7.6293945e-006;
};
- class Item66
+ class Item37
{
dataType="Object";
class PositionInfo
{
- position[]={18810.496,35.676094,16633.451};
- angles[]={6.2299027,0,6.2511969};
+ position[]={5597.0229,107.30638,4232.4102};
};
side="Empty";
flags=4;
class Attributes
{
skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_rodopoli0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town4";
+ init="nullReturn = [this, ""Sainte Marie"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town15";
};
- id=66;
+ id=78;
type="FlagPole_F";
- atlOffset=0.007686615;
};
- class Item67
+ class Item38
{
dataType="Object";
class PositionInfo
{
- position[]={20945.688,47.213638,16965.613};
- angles[]={0.0040116427,0,6.1888003};
+ position[]={8207.4014,25.557577,3157.1941};
};
side="Empty";
flags=4;
class Attributes
{
skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_paros0"", resistance, 350,""Town39""] execVM ""Common\Init\Init_Location.sqf""";
- name="Town5";
+ init="nullReturn = [this, ""Le Port"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town11";
};
- id=67;
+ id=81;
type="FlagPole_F";
- atlOffset=0.017852783;
};
- class Item68
+ class Item39
{
dataType="Object";
class PositionInfo
{
- position[]={27018.002,25.26956,23167.574};
- angles[]={6.2711854,0,0.051953323};
+ position[]={6029.3882,129.0968,8605.4844};
};
side="Empty";
flags=4;
class Attributes
{
skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_molos0"", resistance, 145,""Town47""] execVM ""Common\Init\Init_Location.sqf""";
- name="Town7";
+ init="nullReturn = [this, ""Larche"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town10";
};
- id=68;
+ id=82;
type="FlagPole_F";
- atlOffset=0.0063037872;
+ atlOffset=-7.6293945e-006;
};
- class Item69
+ class Item40
{
- dataType="Object";
+ dataType="Logic";
class PositionInfo
{
- position[]={16640.928,19.293343,16056.638};
- angles[]={6.272521,0,0.0093286335};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_anthrakia0"", resistance, 125] execVM ""Common\Init\Init_Location.sqf""";
- name="Town8";
+ position[]={1182.1709,28.492928,584.47247};
};
- id=69;
- type="FlagPole_F";
- atlOffset=0.00038051605;
+ name="CTI_WEST";
+ id=111;
+ type="Logic";
+ atlOffset=6.3029652;
};
- class Item70
+ class Item41
{
- dataType="Object";
+ dataType="Logic";
class PositionInfo
{
- position[]={16244.04,29.379099,17314.234};
- angles[]={6.2113094,0,0.037316564};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_telos0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town9";
+ position[]={7173.7769,15.405507,12288.153};
};
- id=70;
- type="FlagPole_F";
- atlOffset=0.013177872;
+ name="CTI_EAST";
+ id=112;
+ type="Logic";
+ atlOffset=6.8918867;
};
- class Item71
+ class Item42
{
- dataType="Object";
- class PositionInfo
- {
- position[]={14032.271,30.131212,18737};
- angles[]={0.039977662,0,6.2778587};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_athira0"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
- name="Town12";
- };
- id=71;
- type="FlagPole_F";
- atlOffset=0.0032463074;
- };
- class Item72
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={11745.446,57.814919,18331.873};
- angles[]={6.213963,0,6.253861};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_koroni0"", resistance, 125] execVM ""Common\Init\Init_Location.sqf""";
- name="Town13";
- };
- id=72;
- type="FlagPole_F";
- atlOffset=0.01134491;
- };
- class Item73
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={10292.485,134.56599,19118.633};
- angles[]={6.1980581,0,6.2618537};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_galati0"", resistance, 125] execVM ""Common\Init\Init_Location.sqf""";
- name="Town16";
- };
- id=73;
- type="FlagPole_F";
- atlOffset=0.015487671;
- };
- class Item74
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4588.5151,303.55054,21381.932};
- angles[]={6.2791886,0,6.2791886};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_oreokastro0"", resistance, 500,""Town38""] execVM ""Common\Init\Init_Location.sqf""";
- name="Town21";
- };
- id=74;
- type="FlagPole_F";
- atlOffset=3.0517578e-005;
- };
- class Item75
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={8649.4277,184.71611,18285.018};
- angles[]={0.074527748,0,6.2671871};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_syrta0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town17";
- };
- id=75;
- type="FlagPole_F";
- atlOffset=0.011825562;
- };
- class Item76
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={9298.0059,119.61528,15932.003};
- angles[]={0.081154868,0,0.037314966};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_agiosdionysios0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town18";
- };
- id=76;
- type="FlagPole_F";
- atlOffset=0.016075134;
- };
- class Item77
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={12362.523,25.348881,15765.438};
- angles[]={0.0053265258,0,0.017329043};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_lakka0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town14";
- };
- id=77;
- type="FlagPole_F";
- atlOffset=0.00066947937;
- };
- class Item78
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={12608.428,16.056833,14320.253};
- angles[]={6.1927657,0,6.2405434};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_neochori0"", resistance, 350] execVM ""Common\Init\Init_Location.sqf""";
- name="Town15";
- };
- id=78;
- type="FlagPole_F";
- atlOffset=0.019950867;
- };
- class Item79
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={9038.1826,26.646751,11954.574};
- angles[]={0.021328852,0,6.1782389};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_zaros0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town19";
- };
- id=79;
- type="FlagPole_F";
- atlOffset=0.021104813;
- };
- class Item80
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={3507.7151,12.373648,12996.904};
- angles[]={6.2671871,0,0.010664274};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_kavala0"", resistance, 500,""Town46""] execVM ""Common\Init\Init_Location.sqf""";
- name="Town20";
- };
- id=80;
- type="FlagPole_F";
- atlOffset=0.00073432922;
- };
- class Item81
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={14181.469,23.505833,16286.399};
- angles[]={0.012000273,0,6.2778587};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_airbase010"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
- name="Town11";
- };
- id=81;
- type="FlagPole_F";
- atlOffset=0.00033187866;
- };
- class Item82
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={15191.061,21.902496,17301.797};
- angles[]={0.0013372133,0,0.0013372133};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""STR_Map_Military_Base"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
- name="Town10";
- };
- id=82;
- type="FlagPole_F";
- atlOffset=3.8146973e-006;
- };
- class Item83
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={20274.463,52.501724,11714.725};
- angles[]={0.042640556,0,6.2778587};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_chalkeia0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town22";
- };
- id=83;
- type="FlagPole_F";
- atlOffset=0.0036773682;
- };
- class Item84
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={12842.514,46.522461,19633.301};
- angles[]={6.253861,0,6.2645216};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_ifestiona0"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
- name="Town23";
- };
- id=84;
- type="FlagPole_F";
- atlOffset=0.0023727417;
- };
- class Item85
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={4864.3594,82.693581,16151.614};
- angles[]={0.02399601,0,6.2445378};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_negades0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town24";
- };
- id=85;
- type="FlagPole_F";
- atlOffset=0.0040969849;
- };
- class Item86
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={25623.484,22.950079,21285.391};
- angles[]={6.249866,0,0.0079935296};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_sofia0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town25";
- };
- id=86;
- type="FlagPole_F";
- atlOffset=0.0023212433;
- };
- class Item87
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={20516.811,38.253426,8883.252};
- angles[]={6.1219311,0,0.23175959};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_panagia0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town26";
- };
- id=87;
- type="FlagPole_F";
- atlOffset=0.15982437;
- };
- class Item88
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7118.8721,116.19866,16439.533};
- angles[]={6.1637564,0,0.071875811};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_kore0"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
- name="Town27";
- };
- id=88;
- type="FlagPole_F";
- atlOffset=0.038856506;
- };
- class Item89
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={22950.141,9.1006737,18859.719};
- angles[]={0.0093350215,0,6.259192};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_almyra0"", resistance, 500] execVM ""Common\Init\Init_Location.sqf""";
- name="Town28";
- };
- id=89;
- type="FlagPole_F";
- atlOffset=0.00093460083;
- };
- class Item90
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={13587.634,19.314034,12209.913};
- angles[]={0.0039967569,0,0.0013372133};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_makrynisiisland0"", resistance, 25] execVM ""Common\Init\Init_Location.sqf""";
- name="Town29";
- };
- id=90;
- type="FlagPole_F";
- atlOffset=3.9100647e-005;
- };
- class Item91
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={14964.189,10.588233,11105.679};
- angles[]={0.017332481,0,6.2046804};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_faronaki0"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
- name="Town30";
- };
- id=91;
- type="FlagPole_F";
- atlOffset=0.012816429;
- };
- class Item92
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={17745.547,6.3756104,18107.686};
- angles[]={0.0093286335,0,6.2711902};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_kalithea0"", resistance, 125] execVM ""Common\Init\Init_Location.sqf""";
- name="Town32";
- };
- id=92;
- type="FlagPole_F";
- atlOffset=0.00044631958;
- };
- class Item93
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={11574.771,23.315058,9442.752};
- angles[]={6.2711902,0,6.2765174};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_vikos0"", resistance, 145,""Town42""] execVM ""Common\Init\Init_Location.sqf""";
- name="Town33";
- };
- id=93;
- type="FlagPole_F";
- atlOffset=0.0027294159;
- };
- class Item94
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={17077.311,23.238556,10059.891};
- angles[]={0.031988446,0,0.027993103};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_ekali0"", resistance, 200,""Town33""] execVM ""Common\Init\Init_Location.sqf""";
- name="Town31";
- };
- id=94;
- type="FlagPole_F";
- atlOffset=0.0035552979;
- };
- class Item95
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={14651.969,49.779419,20758.879};
- angles[]={6.272521,0,6.2338929};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_frini0"", resistance, 175] execVM ""Common\Init\Init_Location.sqf""";
- name="Town34";
- };
- id=95;
- type="FlagPole_F";
- atlOffset=0.005065918;
- };
- class Item96
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={16854.336,14.130496,21871.979};
- angles[]={0.022662206,0,6.2818484};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_nychi0"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
- name="Town35";
- };
- id=96;
- type="FlagPole_F";
- atlOffset=0.0010061264;
- };
- class Item97
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={20113.703,22.211153,20032.137};
- angles[]={0.0039967569,0,0.038647637};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""STR_Map_Theater_Ruins"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
- name="Town36";
- };
- id=97;
- type="FlagPole_F";
- atlOffset=0.0030250549;
- };
- class Item98
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={20943.436,17.919567,19257.873};
- angles[]={0.0093350215,0,0.075854406};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""STR_Map_Military_Outpost"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town37";
- };
- id=98;
- type="FlagPole_F";
- atlOffset=0.011717796;
- };
- class Item99
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={9220.6602,19.509701,21622.859};
- angles[]={0.022664838,0,0.027993103};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""STR_Map_North_Airfield"", resistance, 500,""Town41""] execVM ""Common\Init\Init_Location.sqf""";
- name="Town38";
- };
- id=99;
- type="FlagPole_F";
- atlOffset=0.007390976;
- };
- class Item100
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={23199.52,18.140114,19971.23};
- angles[]={6.272521,0,6.2765174};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_ioannina0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town39";
- };
- id=100;
- type="FlagPole_F";
- atlOffset=0.00032138824;
- };
- class Item101
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={11623.219,27.020689,11943.426};
- angles[]={6.2352223,0,6.2179451};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_aacairfield0"", resistance, 500] execVM ""Common\Init\Init_Location.sqf""";
- name="Town40";
- };
- id=101;
- type="FlagPole_F";
- atlOffset=0.013057709;
- };
- class Item102
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={26851.094,30.606556,24466.365};
- angles[]={0.031988446,0,0.0013372133};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_molosairfield0"", resistance, 500] execVM ""Common\Init\Init_Location.sqf""";
- name="Town41";
- };
- id=102;
- type="FlagPole_F";
- atlOffset=0.0020027161;
- };
- class Item103
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={5068.5044,56.909691,11306.087};
- angles[]={6.2551947,0,6.2325621};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_panochori0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town42";
- };
- id=103;
- type="FlagPole_F";
- atlOffset=0.0066490173;
- };
- class Item104
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={21895.934,26.782196,21010.182};
- angles[]={6.129735,0,0.0066592805};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""STR_Map_Hotel_Complex"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town43";
- };
- id=104;
- type="FlagPole_F";
- atlOffset=0.047597885;
- };
- class Item105
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={5475.6577,31.276804,14999.543};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_stadium0"", resistance, 140] execVM ""Common\Init\Init_Location.sqf""";
- name="Town44";
- };
- id=105;
- type="FlagPole_F";
- };
- class Item106
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={21091.016,5.8291836,14768.472};
- angles[]={0.017332481,0,0.12468339};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_limni0"", resistance, 140] execVM ""Common\Init\Init_Location.sqf""";
- name="Town45";
- };
- id=106;
- type="FlagPole_F";
- atlOffset=0.03186357;
- };
- class Item107
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={3853.6687,19.174381,17472.664};
- angles[]={6.2192721,0,0.077179179};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_agioskonstantinos0"", resistance, 140,""Town21""] execVM ""Common\Init\Init_Location.sqf""";
- name="Town46";
- };
- id=107;
- type="FlagPole_F";
- atlOffset=0.019934654;
- };
- class Item108
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={21752.174,19.689096,7520.2725};
- angles[]={0.0093286335,0,6.2791886};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_feres0"", resistance, 140] execVM ""Common\Init\Init_Location.sqf""";
- name="Town47";
- };
- id=108;
- type="FlagPole_F";
- atlOffset=0.000207901;
- };
- class Item109
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={5853.1182,229.927,20094.025};
- angles[]={6.2738504,0,0.069221549};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_dump0"", resistance, 175,""Town17""] execVM ""Common\Init\Init_Location.sqf""";
- name="Town48";
- };
- id=109;
- type="FlagPole_F";
- atlOffset=0.0097351074;
- };
- class Item110
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={23236.664,38.75779,21794.523};
- angles[]={0.038647637,0,0.045302324};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, localize ""str_a3_nidasos0"", resistance, 145] execVM ""Common\Init\Init_Location.sqf""";
- name="Town49";
- };
- id=110;
- type="FlagPole_F";
- atlOffset=0.0071182251;
- };
- class Item111
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={2288.1289,7.7944555,9280.5264};
- };
- name="CTI_WEST";
- id=111;
- type="Logic";
- };
- class Item112
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={14497.438,10.97437,5865.5117};
- };
- name="CTI_EAST";
- id=112;
- type="Logic";
- };
- class Item113
- {
- dataType="Group";
- side="East";
- class Entities
+ dataType="Group";
+ side="East";
+ class Entities
{
items=25;
class Item0
@@ -1713,47 +703,867 @@ class Mission
dataType="Object";
class PositionInfo
{
- position[]={14482.121,9.8335609,5893.3213};
- angles[]={0.30364406,0,6.0730028};
+ position[]={7161.1045,8.4507074,12309.42};
+ angles[]={0.019199125,0,6.2408099};
+ };
+ side="East";
+ flags=6;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=114;
+ type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.01;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item1
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7165.8135,8.1746759,12306.356};
+ angles[]={0.019199125,0,6.2001762};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="COLONEL";
+ init="this allowDamage false; (group this) setGroupID [""Default Team""];this disableAI ""MOVE"";this disableAI ""AUTOTARGET"";this disableAI ""TARGET"";";
+ name="CTI_EAST_DEFAULT_GROUP";
+ };
+ id=115;
+ type="O_Soldier_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male03PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.99000001;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item2
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7155.8135,8.729907,12306.356};
+ angles[]={0.0087958695,0,6.2511969};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayer=1;
+ isPlayable=1;
+ };
+ id=116;
+ type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male01PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.97000003;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item3
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7170.8135,7.8547201,12301.356};
+ angles[]={0.019199125,0,6.2001762};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=117;
+ type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male01PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.04;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item4
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7150.8135,8.933919,12301.356};
+ angles[]={0.0087958695,0,6.2511969};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=118;
+ type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male01PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.03;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item5
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7175.8135,7.7079811,12296.356};
+ angles[]={0.074263111,0,6.1629682};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=119;
+ type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male03PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item6
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7145.8135,9.3286066,12296.356};
+ angles[]={0.056739714,0,6.2480001};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=120;
+ type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.03;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item7
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7180.8135,7.4759669,12291.356};
+ angles[]={0.074263111,0,6.1629682};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=121;
+ type="O_Soldier_SL_F";
+ atlOffset=-4.7683716e-007;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male03PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.03;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item8
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7140.8135,9.8660831,12291.356};
+ angles[]={0.071080439,0,6.2336264};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=122;
+ type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male01PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item9
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7185.8135,7.3185496,12286.356};
+ angles[]={0.13595572,0,6.1629682};
};
side="East";
- flags=6;
+ flags=4;
class Attributes
{
skill=0.60000002;
rank="CAPTAIN";
isPlayable=1;
};
- id=114;
+ id=123;
type="O_Soldier_SL_F";
+ atlOffset=-4.7683716e-007;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item1
+ class Item10
{
dataType="Object";
class PositionInfo
{
- position[]={14487.121,9.6155596,5888.3711};
- angles[]={0.30364406,0,5.9329162};
+ position[]={7135.8135,10.537416,12286.356};
+ angles[]={0.016798066,0,6.1558776};
};
side="East";
flags=4;
class Attributes
{
skill=0.60000002;
- rank="COLONEL";
- init="this allowDamage false; (group this) setGroupID [""Default Team""];this disableAI ""MOVE"";this disableAI ""AUTOTARGET"";this disableAI ""TARGET"";";
- name="CTI_EAST_DEFAULT_GROUP";
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=124;
+ type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male01PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.95999998;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item11
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7190.8135,7.8040166,12281.356};
+ angles[]={0.13595572,0,0.0015822123};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=125;
+ type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item12
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7130.8135,11.252232,12281.356};
+ angles[]={6.2759929,0,6.1795583};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=126;
+ type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male01PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.97000003;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item13
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7195.8135,8.4960575,12276.356};
+ angles[]={0.13595572,0,0.0015822123};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=127;
+ type="O_Soldier_SL_F";
+ atlOffset=-9.5367432e-007;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male03PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
};
- id=115;
- type="O_Soldier_F";
};
- class Item2
+ class Item14
{
dataType="Object";
class PositionInfo
{
- position[]={14482.121,12.04697,5883.3711};
- angles[]={0.10626491,0,6.1782393};
+ position[]={7125.8135,11.736261,12276.356};
+ angles[]={6.2759929,0,6.1795583};
};
side="East";
flags=4;
@@ -1761,10 +1571,9 @@ class Mission
{
skill=0.60000002;
rank="CAPTAIN";
- isPlayer=1;
isPlayable=1;
};
- id=116;
+ id=128;
type="O_Soldier_SL_F";
class CustomAttributes
{
@@ -1802,20 +1611,20 @@ class Mission
"SCALAR"
};
};
- value=0.98000002;
+ value=1;
};
};
};
nAttributes=2;
};
};
- class Item3
+ class Item15
{
dataType="Object";
class PositionInfo
{
- position[]={14487.121,11.690472,5878.3711};
- angles[]={0.21018261,0,6.0640931};
+ position[]={7200.8135,8.66574,12271.356};
+ angles[]={0.0072011296,0,6.2312322};
};
side="East";
flags=4;
@@ -1825,35 +1634,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=117;
+ id=129;
type="O_Soldier_SL_F";
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={14482.121,13.243651,5873.3711};
- angles[]={0.12993059,0,6.2578578};
- };
- side="East";
- flags=4;
- class Attributes
+ class CustomAttributes
{
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male01PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.99000001;
+ };
+ };
+ };
+ nAttributes=2;
};
- id=118;
- type="O_Soldier_SL_F";
};
- class Item5
+ class Item16
{
dataType="Object";
class PositionInfo
{
- position[]={14484.867,12.719265,5869.4692};
- angles[]={6.1637559,0,6.1769204};
+ position[]={7120.8135,11.677279,12271.356};
+ angles[]={6.2631893,0,0.014398213};
};
side="East";
flags=4;
@@ -1863,16 +1695,59 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=119;
+ id=130;
type="O_Soldier_SL_F";
+ atlOffset=9.5367432e-007;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male03PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.03;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item6
+ class Item17
{
dataType="Object";
class PositionInfo
{
- position[]={14486.079,12.085032,5862.3247};
- angles[]={0.0093350215,0,6.1769209};
+ position[]={7205.8135,8.4417267,12266.356};
+ angles[]={0.0072011296,0,6.2312322};
};
side="East";
flags=4;
@@ -1882,16 +1757,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=120;
+ id=131;
type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.97000003;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item7
+ class Item18
{
dataType="Object";
class PositionInfo
{
- position[]={14489.289,11.779264,5858.4019};
- angles[]={0.0093350215,0,6.1769209};
+ position[]={7115.8135,11.216897,12266.356};
+ angles[]={6.2097178,0,0.067896426};
};
side="East";
flags=4;
@@ -1901,16 +1818,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=121;
+ id=132;
type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male01PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.95999998;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item8
+ class Item19
{
dataType="Object";
class PositionInfo
{
- position[]={14493.111,11.269214,5857.0439};
- angles[]={6.2046804,0,6.1545658};
+ position[]={7210.8135,8.3237801,12261.356};
+ angles[]={0.095706634,0,6.2312331};
};
side="East";
flags=4;
@@ -1920,16 +1879,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=122;
+ id=133;
type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item9
+ class Item20
{
dataType="Object";
class PositionInfo
{
- position[]={14493.116,11.102674,5854.936};
- angles[]={6.2046804,0,6.1545658};
+ position[]={7110.8135,10.807887,12261.356};
+ angles[]={0.047963165,0,6.2599902};
};
side="East";
flags=4;
@@ -1939,35 +1940,59 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=123;
+ id=134;
type="O_Soldier_SL_F";
- };
- class Item10
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={14491.64,10.838742,5852.5313};
- angles[]={6.127131,0,6.2325611};
- };
- side="East";
- flags=4;
- class Attributes
+ atlOffset=9.5367432e-007;
+ class CustomAttributes
{
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male01PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.97000003;
+ };
+ };
+ };
+ nAttributes=2;
};
- id=124;
- type="O_Soldier_SL_F";
};
- class Item11
+ class Item21
{
dataType="Object";
class PositionInfo
{
- position[]={14493.937,10.517456,5851.2285};
- angles[]={6.127131,0,6.2325611};
+ position[]={7215.8135,8.5675764,12256.356};
+ angles[]={0.095706634,0,6.2384138};
};
side="East";
flags=4;
@@ -1977,35 +2002,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=125;
+ id=135;
type="O_Soldier_SL_F";
- };
- class Item12
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={14497.858,10.133352,5847.647};
- angles[]={0.042641956,0,5.9590368};
- };
- side="East";
- flags=4;
- class Attributes
+ class CustomAttributes
{
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male01PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.99000001;
+ };
+ };
+ };
+ nAttributes=2;
};
- id=126;
- type="O_Soldier_SL_F";
};
- class Item13
+ class Item22
{
dataType="Object";
class PositionInfo
{
- position[]={14512.12,7.1621251,5893.0957};
- angles[]={6.2166171,0,6.1756024};
+ position[]={7105.8135,11.148048,12256.356};
+ angles[]={0.0064037596,0,0.018396867};
};
side="East";
flags=4;
@@ -2015,17 +2063,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=127;
+ id=136;
type="O_Soldier_SL_F";
- atlOffset=4.7683716e-007;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male03PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.97000003;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item14
+ class Item23
{
dataType="Object";
class PositionInfo
{
- position[]={14507.12,7.5813837,5888.0957};
- angles[]={6.2605233,0,6.1323404};
+ position[]={7220.8135,8.8236265,12251.356};
+ angles[]={0.095706634,0,6.2384138};
};
side="East";
flags=4;
@@ -2035,16 +2124,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=128;
+ id=137;
type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male03PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.95999998;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item15
+ class Item24
{
dataType="Object";
class PositionInfo
{
- position[]={14512.12,6.4824553,5883.0957};
- angles[]={6.2099824,0,6.13234};
+ position[]={7100.8135,11.088045,12251.356};
+ angles[]={0.0064037596,0,0.018396867};
};
side="East";
flags=4;
@@ -2054,39 +2185,136 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=129;
+ id=138;
type="O_Soldier_SL_F";
- atlOffset=4.7683716e-007;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.02;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item16
+ };
+ class Attributes
+ {
+ };
+ id=113;
+ };
+ class Item43
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=25;
+ class Item0
{
dataType="Object";
class PositionInfo
{
- position[]={14507.12,7.4580698,5878.0957};
- angles[]={6.256525,0,5.9929523};
+ position[]={1208.968,24.919378,587.54797};
+ angles[]={6.0981278,0,0.1020494};
};
- side="East";
- flags=4;
+ side="West";
+ flags=6;
class Attributes
{
skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
+ rank="COLONEL";
+ init="this allowDamage false;(group this) setGroupIDGlobal [""Default Team""];this disableAI ""MOVE"";this disableAI ""AUTOTARGET"";this disableAI ""TARGET"";";
+ name="CTI_WEST_DEFAULT_GROUP";
+ };
+ id=140;
+ type="B_Soldier_F";
+ atlOffset=1.9073486e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male10ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
};
- id=130;
- type="O_Soldier_SL_F";
- atlOffset=-0.29771471;
};
- class Item17
+ class Item1
{
dataType="Object";
class PositionInfo
{
- position[]={14512.12,6.1292048,5873.0957};
- angles[]={6.256525,0,5.9929523};
+ position[]={1213.968,24.431927,582.59796};
+ angles[]={6.0981278,0,0.052743852};
};
- side="East";
+ side="West";
flags=4;
class Attributes
{
@@ -2094,18 +2322,60 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=131;
- type="O_Soldier_SL_F";
+ id=141;
+ type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male08ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.97000003;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item18
+ class Item2
{
dataType="Object";
class PositionInfo
{
- position[]={14507.12,7.3394032,5868.0957};
- angles[]={6.2578578,0,5.9905057};
+ position[]={1203.968,23.526396,582.59796};
+ angles[]={6.1432967,0,0.055937801};
};
- side="East";
+ side="West";
flags=4;
class Attributes
{
@@ -2113,18 +2383,60 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=132;
- type="O_Soldier_SL_F";
+ id=142;
+ type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male12ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.03;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item19
+ class Item3
{
dataType="Object";
class PositionInfo
{
- position[]={14512.12,5.8589268,5863.0957};
- angles[]={0.22543514,0,5.9905062};
+ position[]={1218.968,23.759932,577.59796};
+ angles[]={6.0981278,0,0.052743852};
};
- side="East";
+ side="West";
flags=4;
class Attributes
{
@@ -2132,19 +2444,60 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=133;
- type="O_Soldier_SL_F";
- atlOffset=-0.34478331;
+ id=143;
+ type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male08ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.03;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item20
+ class Item4
{
dataType="Object";
class PositionInfo
{
- position[]={14507.12,8.399498,5858.0957};
- angles[]={0.13386136,0,6.0793881};
+ position[]={1198.968,22.503601,577.59796};
+ angles[]={6.1432967,0,0.093322754};
};
- side="East";
+ side="West";
flags=4;
class Attributes
{
@@ -2152,18 +2505,60 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=134;
- type="O_Soldier_SL_F";
+ id=144;
+ type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male11ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item21
+ class Item5
{
dataType="Object";
class PositionInfo
{
- position[]={14512.12,7.0922318,5853.0957};
- angles[]={6.2685208,0,6.0793877};
+ position[]={1223.968,22.86038,572.59796};
+ angles[]={6.010181,0,0.052743852};
};
- side="East";
+ side="West";
flags=4;
class Attributes
{
@@ -2171,19 +2566,60 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=135;
- type="O_Soldier_SL_F";
- atlOffset=-0.28221989;
+ id=145;
+ type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male05ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.97000003;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item22
+ class Item6
{
dataType="Object";
class PositionInfo
{
- position[]={14507.12,7.9941993,5848.0957};
- angles[]={6.2046804,0,6.1180367};
+ position[]={1193.968,21.324379,572.59796};
+ angles[]={6.060534,0,0.059934605};
};
- side="East";
+ side="West";
flags=4;
class Attributes
{
@@ -2191,18 +2627,61 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=136;
- type="O_Soldier_SL_F";
+ id=146;
+ type="B_Soldier_SL_F";
+ atlOffset=1.9073486e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male07ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.94999999;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item23
+ class Item7
{
dataType="Object";
class PositionInfo
{
- position[]={14509.348,7.3115125,5844.0229};
- angles[]={6.2099833,0,6.1128521};
+ position[]={1228.968,20.924431,567.59796};
+ angles[]={6.010181,0,6.1354609};
};
- side="East";
+ side="West";
flags=4;
class Attributes
{
@@ -2210,18 +2689,60 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=137;
- type="O_Soldier_SL_F";
+ id=147;
+ type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male12ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item24
+ class Item8
{
dataType="Object";
class PositionInfo
{
- position[]={14502.701,8.7139492,5842.7749};
- angles[]={0.042641956,0,5.9590368};
+ position[]={1188.968,20.308863,567.59796};
+ angles[]={6.1276588,0,6.2735863};
};
- side="East";
+ side="West";
flags=4;
class Attributes
{
@@ -2229,50 +2750,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=138;
- type="O_Soldier_SL_F";
- };
- };
- class Attributes
- {
- formation="STAG COLUMN";
- };
- id=113;
- };
- class Item114
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=25;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2314.9258,12.648989,9283.7012};
- angles[]={0.057271164,0,0.1312411};
- };
- side="West";
- flags=6;
- class Attributes
+ id=148;
+ type="B_Soldier_SL_F";
+ class CustomAttributes
{
- skill=0.60000002;
- rank="COLONEL";
- init="this allowDamage false;(group this) setGroupIDGlobal [""Default Team""];this disableAI ""MOVE"";this disableAI ""AUTOTARGET"";this disableAI ""TARGET"";";
- name="CTI_WEST_DEFAULT_GROUP";
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male10ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.05;
+ };
+ };
+ };
+ nAttributes=2;
};
- id=140;
- type="B_Soldier_F";
};
- class Item1
+ class Item9
{
dataType="Object";
class PositionInfo
{
- position[]={2319.9258,13.644493,9278.751};
- angles[]={0.057271164,0,0.15214813};
+ position[]={1233.968,18.780436,562.59796};
+ angles[]={6.010181,0,6.1354609};
};
side="West";
flags=4;
@@ -2282,16 +2811,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=141;
- type="B_Soldier_SL_F";
+ id=149;
+ type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male07ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.94999999;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
- class Item2
+ class Item10
{
dataType="Object";
class PositionInfo
{
- position[]={2314.9258,12.525521,9273.751};
- angles[]={6.2139621,0,0.2114578};
+ position[]={1183.968,19.785736,562.59796};
+ angles[]={6.1661263,0,6.2129006};
};
side="West";
flags=4;
@@ -2301,7 +2872,7 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=142;
+ id=150;
type="B_Soldier_SL_F";
class CustomAttributes
{
@@ -2320,7 +2891,7 @@ class Mission
"STRING"
};
};
- value="Male07ENG";
+ value="Male05ENG";
};
};
};
@@ -2346,108 +2917,13 @@ class Mission
nAttributes=2;
};
};
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2319.9258,13.049868,9268.751};
- angles[]={6.2498641,0,0.11153467};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=143;
- type="B_Soldier_SL_F";
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2314.9258,12.819977,9263.751};
- angles[]={0.010664274,0,0.02666023};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=144;
- type="B_Soldier_SL_F";
- };
- class Item5
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2319.9258,12.771416,9258.751};
- angles[]={6.2285728,0,0.031988446};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=145;
- type="B_Soldier_SL_F";
- };
- class Item6
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2314.9258,12.317031,9253.751};
- angles[]={6.1861577,0,0.018667053};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=146;
- type="B_Soldier_SL_F";
- };
- class Item7
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2319.9258,11.765233,9248.751};
- angles[]={6.1861577,0,6.2365522};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=147;
- type="B_Soldier_SL_F";
- };
- class Item8
+ class Item11
{
dataType="Object";
class PositionInfo
{
- position[]={2314.9258,11.481448,9243.751};
- angles[]={6.1782393,0,6.2365537};
+ position[]={1238.968,16.87989,557.59796};
+ angles[]={6.0981278,0,5.9953976};
};
side="West";
flags=4;
@@ -2457,35 +2933,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=148;
+ id=151;
type="B_Soldier_SL_F";
- };
- class Item9
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2319.9258,9.8097668,9238.751};
- angles[]={5.8206048,0,6.0742788};
- };
- side="West";
- flags=4;
- class Attributes
+ class CustomAttributes
{
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
};
- id=149;
- type="B_Soldier_SL_F";
};
- class Item10
+ class Item12
{
dataType="Object";
class PositionInfo
{
- position[]={2314.9258,8.4945126,9233.751};
- angles[]={6.0755548,0,6.0213389};
+ position[]={1178.968,19.102779,557.59796};
+ angles[]={6.0880923,0,6.2001772};
};
side="West";
flags=4;
@@ -2495,36 +2994,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=150;
+ id=152;
type="B_Soldier_SL_F";
- };
- class Item11
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2337.5042,16.200138,9289.0645};
- angles[]={0.018663859,0,0.074528553};
- };
- side="West";
- flags=4;
- class Attributes
+ class CustomAttributes
{
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male09ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.02;
+ };
+ };
+ };
+ nAttributes=2;
};
- id=151;
- type="B_Soldier_SL_F";
- atlOffset=3.8146973e-006;
};
- class Item12
+ class Item13
{
dataType="Object";
class PositionInfo
{
- position[]={2332.5042,15.609912,9284.0645};
- angles[]={6.2405448,0,0.11548408};
+ position[]={1243.968,14.46389,552.59796};
+ angles[]={6.0981278,0,5.9953976};
};
side="West";
flags=4;
@@ -2534,35 +3055,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=152;
+ id=153;
type="B_Soldier_SL_F";
- };
- class Item13
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={2337.5042,15.976583,9279.0645};
- angles[]={6.2405448,0,0.11548408};
- };
- side="West";
- flags=4;
- class Attributes
+ class CustomAttributes
{
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male06ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.02;
+ };
+ };
+ };
+ nAttributes=2;
};
- id=153;
- type="B_Soldier_SL_F";
};
class Item14
{
dataType="Object";
class PositionInfo
{
- position[]={2332.5042,15.201583,9274.0645};
- angles[]={6.2458687,0,0.053282689};
+ position[]={1173.968,18.497755,552.59796};
+ angles[]={6.0880923,0,6.2320294};
};
side="West";
flags=4;
@@ -2574,15 +3118,60 @@ class Mission
};
id=154;
type="B_Soldier_SL_F";
+ atlOffset=-1.9073486e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male12ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.02;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
class Item15
{
dataType="Object";
class PositionInfo
{
- position[]={2337.5042,15.643533,9269.0645};
+ position[]={1248.968,11.892912,547.59796};
+ angles[]={6.0378265,0,5.9953976};
};
side="West";
+ flags=4;
class Attributes
{
skill=0.60000002;
@@ -2591,15 +3180,56 @@ class Mission
};
id=155;
type="B_Soldier_SL_F";
- atlOffset=0.33308029;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.94999999;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
class Item16
{
dataType="Object";
class PositionInfo
{
- position[]={2332.5042,14.609595,9264.0645};
- angles[]={6.1914434,0,0.13647979};
+ position[]={1168.968,18.226578,547.59796};
+ angles[]={6.0758057,0,6.1511512};
};
side="West";
flags=4;
@@ -2611,15 +3241,56 @@ class Mission
};
id=156;
type="B_Soldier_SL_F";
- atlOffset=0.10816097;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male12ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
class Item17
{
dataType="Object";
class PositionInfo
{
- position[]={2335,13.910367,9259.4766};
- angles[]={6.1769204,0,6.233892};
+ position[]={1253.968,10.151331,542.59796};
+ angles[]={6.0378265,0,6.2368116};
};
side="West";
flags=4;
@@ -2631,14 +3302,56 @@ class Mission
};
id=157;
type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male04ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.99000001;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
class Item18
{
dataType="Object";
class PositionInfo
{
- position[]={2332.5042,12.691146,9254.0645};
- angles[]={5.8400087,0,6.0768318};
+ position[]={1163.968,18.657196,542.59796};
+ angles[]={6.2097239,0,6.0198498};
};
side="West";
flags=4;
@@ -2650,15 +3363,56 @@ class Mission
};
id=158;
type="B_Soldier_SL_F";
- atlOffset=-0.4017849;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male02ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.01;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
class Item19
{
dataType="Object";
class PositionInfo
{
- position[]={2337.5042,9.6730919,9249.0645};
- angles[]={5.8400087,0,6.0768318};
+ position[]={1258.968,8.6673365,537.59796};
+ angles[]={6.0378265,0,6.2368116};
};
side="West";
flags=4;
@@ -2668,16 +3422,58 @@ class Mission
rank="CAPTAIN";
isPlayable=1;
};
- id=159;
- type="B_Soldier_SL_F";
+ id=159;
+ type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male09ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.97000003;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
class Item20
{
dataType="Object";
class PositionInfo
{
- position[]={2325.0005,10.993038,9246.0049};
- angles[]={6.0188522,0,5.8026171};
+ position[]={1158.968,20.325314,537.59796};
+ angles[]={6.2376146,0,5.8480926};
};
side="West";
flags=4;
@@ -2689,14 +3485,56 @@ class Mission
};
id=160;
type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male11ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
class Item21
{
dataType="Object";
class PositionInfo
{
- position[]={2327.6113,6.3763151,9235.6641};
- angles[]={5.8206053,0,5.9795418};
+ position[]={1263.968,7.0660634,532.59796};
+ angles[]={6.0280704,0,6.1922359};
};
side="West";
flags=4;
@@ -2708,14 +3546,57 @@ class Mission
};
id=161;
type="B_Soldier_SL_F";
+ atlOffset=-4.7683716e-007;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male11ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.04;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
class Item22
{
dataType="Object";
class PositionInfo
{
- position[]={2329.3284,6.8502789,9239.1045};
- angles[]={6.0003133,0,5.8026171};
+ position[]={1153.968,22.202339,532.59796};
+ angles[]={6.2312269,0,5.8099918};
};
side="West";
flags=4;
@@ -2727,14 +3608,56 @@ class Mission
};
id=162;
type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male10ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.94999999;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
class Item23
{
dataType="Object";
class PositionInfo
{
- position[]={2332.2759,3.347275,9232.4805};
- angles[]={6.0768318,0,5.9795418};
+ position[]={1268.968,5.3060699,527.59796};
+ angles[]={6.0280704,0,6.1922359};
};
side="West";
flags=4;
@@ -2746,14 +3669,57 @@ class Mission
};
id=163;
type="B_Soldier_SL_F";
+ atlOffset=4.7683716e-007;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male10ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
class Item24
{
dataType="Object";
class PositionInfo
{
- position[]={2321.0681,5.4266376,9229.5781};
- angles[]={5.894659,0,6.0338197};
+ position[]={1148.968,24.480839,527.59796};
+ angles[]={6.2312269,0,5.8266072};
};
side="West";
flags=4;
@@ -2765,24 +3731,68 @@ class Mission
};
id=164;
type="B_Soldier_SL_F";
+ atlOffset=1.9073486e-006;
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male10ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=1.01;
+ };
+ };
+ };
+ nAttributes=2;
+ };
};
};
class Attributes
{
- formation="STAG COLUMN";
};
id=139;
+ atlOffset=1.9073486e-006;
};
- class Item115
+ class Item44
{
dataType="Logic";
class PositionInfo
{
- position[]={8504.5732,33.204266,24831.566};
+ position[]={1232.6871,30.013901,12319.944};
};
name="ADMIN_ZEUS";
id=165;
type="ModuleCurator_F";
+ atlOffset=1.0839005;
class CustomAttributes
{
class Attribute0
@@ -2864,12 +3874,12 @@ class Mission
nAttributes=4;
};
};
- class Item116
+ class Item45
{
dataType="Logic";
class PositionInfo
{
- position[]={8512.666,32.878616,24831.623};
+ position[]={1240.7799,28.93,12320.001};
};
id=166;
type="ModuleCuratorAddAddons_F";
@@ -2954,51 +3964,54 @@ class Mission
nAttributes=4;
};
};
- class Item117
+ class Item46
{
dataType="Logic";
class PositionInfo
{
- position[]={8428.5938,23.294439,24806.621};
+ position[]={1172.2943,34.174339,12322.352};
};
name="HC2";
init="this allowDamage false;";
isPlayable=1;
id=167;
type="HeadlessClient_F";
+ atlOffset=5.244339;
};
- class Item118
+ class Item47
{
dataType="Logic";
class PositionInfo
{
- position[]={8439.791,22.404831,24806.396};
+ position[]={1183.4916,32.132164,12322.127};
};
name="HC3";
init="this allowDamage false;";
isPlayable=1;
id=168;
type="HeadlessClient_F";
+ atlOffset=3.2021637;
};
- class Item119
+ class Item48
{
dataType="Logic";
class PositionInfo
{
- position[]={8452.1084,23.873102,24806.844};
+ position[]={1195.809,30.169785,12322.574};
};
name="HC4";
init="this allowDamage false;";
isPlayable=1;
id=169;
type="HeadlessClient_F";
+ atlOffset=1.2397842;
};
- class Item120
+ class Item49
{
dataType="Logic";
class PositionInfo
{
- position[]={8461.5146,24.935966,24807.293};
+ position[]={1205.2152,28.93,12323.023};
};
name="HC5";
init="this allowDamage false;";
@@ -3006,40 +4019,91 @@ class Mission
id=170;
type="HeadlessClient_F";
};
- class Item121
+ class Item50
{
dataType="Logic";
class PositionInfo
{
- position[]={8418.7393,24.140474,24806.621};
+ position[]={1162.4398,36.620186,12322.352};
};
name="HC1";
init="this allowDamage false;";
isPlayable=1;
id=171;
type="HeadlessClient_F";
+ atlOffset=7.6901855;
};
- class Item122
+ class Item51
{
dataType="Logic";
class PositionInfo
{
- position[]={8443.4609,37.155445,24839.758};
+ position[]={1187.1615,31.614197,12355.488};
};
name="CTI_GUER";
id=172;
type="Logic";
+ atlOffset=2.6844673;
+ };
+ class Item52
+ {
+ dataType="Marker";
+ position[]={9926.1279,0,3990.7314};
+ name="HELO_START_18";
+ type="Empty";
+ colorName="ColorGreen";
+ id=173;
+ atlOffset=-40.932705;
+ };
+ class Item53
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={9746.9238,42.866806,3947.8401};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, ""Military Base"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town17";
+ };
+ id=174;
+ type="FlagPole_F";
+ };
+ class Item54
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={3215.5969,0.00044250488,2598.6411};
+ angles[]={0,3.7178655,0};
+ };
+ side="Empty";
+ class Attributes
+ {
+ name="carrier";
+ };
+ id=178;
+ type="Land_Carrier_01_base_F";
+ atlOffset=73.230003;
};
- class Item123
+ class Item55
{
dataType="Marker";
- position[]={505.74133,0,30224.15};
+ position[]={10113.068,2.1960001,2211.3149};
name="marker_61";
- text="Visit our Discord: https://discord.gg/YhBUUSr";
- type="mil_warning";
- colorName="ColorWEST";
- id=177;
- atlOffset=191.07422;
+ text="Wellcome area (Do not enter)";
+ markerType="ELLIPSE";
+ type="ellipse";
+ colorName="ColorCIV";
+ fillName="DiagGrid";
+ a=500;
+ b=500;
+ id=179;
+ atlOffset=-0.00027227402;
};
};
class Connections
@@ -3589,4 +4653,4 @@ class OutroWin
startFogDecay=0.0049999999;
forecastFogDecay=0.0049999999;
};
-};
+};
\ No newline at end of file
From 42fd62f708111310f3f4bff89ec4a7f5b6d08c85 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Thu, 30 Aug 2018 21:52:49 +0200
Subject: [PATCH 003/267] Gitignore update
---
.gitignore | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.gitignore b/.gitignore
index cb24a0a30..0546a5c1d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,3 +41,5 @@ $RECYCLE.BIN/
Network Trash Folder
Temporary Items
.apdisk
+
+mission.sqm
\ No newline at end of file
From eed4b12ef7e80e47a2f0f01a8ea7c5b8620ec1e1 Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Thu, 30 Aug 2018 21:58:49 +0200
Subject: [PATCH 004/267] Update README.md
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 74a83d1a7..4de6821e4 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
# Benny-Edition-CTI-0.97-Zerty-Modification
+# Malden Version
## Monetization
This mission (or code that I own inside) __cannot__ be used in a monetization process as defined by BiS at http://www.bistudio.com/monetization & http://www.bistudio.com/monetization/faq
From 84688e9b68a4856f8388d51cb314065e043a9fab Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 25 Sep 2018 19:12:36 +0200
Subject: [PATCH 005/267] Optim continued
---
Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf | 8 ++++----
Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf | 5 +++--
Addons/Strat_mode/FSM/town_occupation.fsm | 8 ++++----
Addons/Strat_mode/FSM/town_resistance.fsm | 8 ++++----
Addons/Strat_mode/Radar/ARTR_proj_handler.sqf | 2 +-
Common/Functions/Common_CreateTeam.sqf | 2 +-
Common/Functions/Common_CreateVehicle.sqf | 4 ++--
7 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf b/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
index 37ff7e60b..d73e4ed79 100644
--- a/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
@@ -55,19 +55,19 @@ if (_side in [east,west] ) then {
_up_r=0;
};
if (_vehicle isKindOf "Man") then {_max_distance=AN_Range_I+200*_up_r;} else {_max_distance=AN_Range_V+1000*_up_r;};
-if (_vehicle isKindOf "FlagPole_F") then {_max_distance=5000};
+if (_vehicle isKindOf "FlagPole_F") then {_max_distance=100000};
// Try to connect to closest CC
if (_side in [east,west]) then {
_structures = (_side) call CTI_CO_FNC_GetSideStructures;
_ccs = [CTI_CONTROLCENTER, _structures] call CTI_CO_FNC_GetSideStructuresByType;
- { if (_vehicle distance _x <= _max_distance) then {_candidates set [count _candidates,_x];}; true}count _ccs;
+ { if (_vehicle distance2D _x <= _max_distance) then {_candidates set [count _candidates,_x];}; true}count _ccs;
};
// Try to connect to closest town
if (count _candidates == 0 || _vehicle isKindOf "FlagPole_F"&& (_side in [east,west])) then {
{
_town=_x;
- if (!(isNull _town) && !(_town == _vehicle) && _vehicle distance _town <= _max_distance && (_town getVariable "AN_iNet" == _side_id )&& ! (_x getVariable "AN_Conn" == _vehicle) && {_x == _vehicle} count (_x getVariable ["AN_Parrents",[]]) == 0 ) then
+ if (!(isNull _town) && !(_town == _vehicle) && _vehicle distance2D _town <= _max_distance && (_town getVariable "AN_iNet" == _side_id )&& ! (_x getVariable "AN_Conn" == _vehicle) && {_x == _vehicle} count (_x getVariable ["AN_Parrents",[]]) == 0 ) then
{
_candidates set [count _candidates,_town];
};
@@ -78,7 +78,7 @@ if (count _candidates == 0 || _vehicle isKindOf "FlagPole_F"&& (_side in [east,w
// try to connect to the HQ
if ((count _candidates == 0) && _side in [east,west]) then {
_hq = (_side) call CTI_CO_FNC_GetSideHQ;
- if ((_vehicle distance _hq <= _max_distance) && alive _hq) then { _candidates set [count _candidates,_hq]};
+ if ((_vehicle distance2D _hq <= _max_distance) && alive _hq) then { _candidates set [count _candidates,_hq]};
};
// try to connect to another connected vehicle
diff --git a/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf b/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
index f4661abc0..451a2e8ca 100644
--- a/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
@@ -1,5 +1,6 @@
while {! CTI_GameOver && alive _this } do {
- if (((! local _this) && _this isKindOf "Man") || !(isPlayer _this) && (_this in (playableUnits+switchableUnits)) || ((side _this) == resistance && _this isKindOf "Man") || !(alive _this)) exitwith {false};
- if !(_this call AN_Check_Connection) then { _this call AN_Reconfigure;};
+ if (((! local _this) && _this isKindOf "Man") || !(isPlayer _this) && (_this in (playableUnits+switchableUnits)) || ((side _this) == resistance && _this isKindOf "Man") || !(alive _this)) exitwith {if (NET_LOG) then {diag_log format [":: NET :: Canceling reconfiguration process for %1",_this]};false};
+ if (NET_LOG) then {diag_log format [":: NET :: Running reconfiguration process for %1",_this]};
+ _this call AN_Reconfigure;
sleep 10+random(10);
};
\ No newline at end of file
diff --git a/Addons/Strat_mode/FSM/town_occupation.fsm b/Addons/Strat_mode/FSM/town_occupation.fsm
index a43091f59..95a7d0aea 100644
--- a/Addons/Strat_mode/FSM/town_occupation.fsm
+++ b/Addons/Strat_mode/FSM/town_occupation.fsm
@@ -2,8 +2,8 @@
/*%FSM*/
/*
item0[] = {"Start_FSM",0,250,-100.000000,-800.000000,0.000000,-750.000000,0.000000,"Start FSM"};
-item1[] = {"Cycle",4,4314,-100.000000,-400.000000,0.000000,-350.000000,1.000000,"Cycle"};
-item2[] = {"Occupation_hold",2,250,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Occupation hold" \n "the town?"};
+item1[] = {"Cycle",4,218,-100.000000,-400.000000,0.000000,-350.000000,1.000000,"Cycle"};
+item2[] = {"Occupation_hold",2,4346,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Occupation hold" \n "the town?"};
item3[] = {"End_FSM",1,250,-250.000000,-100.000000,-150.000000,-50.000000,0.000000,"End FSM"};
item4[] = {"Held_by_Occupati",4,218,-100.000000,-100.000000,0.000000,-50.000000,2.000000,"Held by" \n "Occupation"};
item5[] = {"Gameover",8,218,-250.000000,-200.000000,-150.000000,-150.000000,0.000000,"Gameover"};
@@ -56,7 +56,7 @@ link27[] = {21,8};
link28[] = {22,1};
link29[] = {23,13};
globals[] = {0.000000,0,0,0,0,640,480,1,177,6316128,1,-582.603027,790.527588,465.883545,-1210.282837,725,885,1};
-window[] = {2,-1,-1,-1,-1,837,225,1261,225,3,743};
+window[] = {2,-1,-1,-1,-1,812,200,1236,200,3,743};
*//*%FSM*/
class FSM
{
@@ -103,7 +103,7 @@ class FSM
{
name = "Occupation_hold";
itemno = 2;
- init = /*%FSM*/"_ncycle = time +2;" \n
+ init = /*%FSM*/"_ncycle = time +5;" \n
"" \n
"_sideID = _town getVariable ""cti_town_sideID"";" \n
"_side = (_sideID) call CTI_CO_FNC_GetSideFromID;"/*%FSM*/;
diff --git a/Addons/Strat_mode/FSM/town_resistance.fsm b/Addons/Strat_mode/FSM/town_resistance.fsm
index a49aae617..33ea87a4b 100644
--- a/Addons/Strat_mode/FSM/town_resistance.fsm
+++ b/Addons/Strat_mode/FSM/town_resistance.fsm
@@ -2,8 +2,8 @@
/*%FSM*/
/*
item0[] = {"Start_FSM",0,250,-86.275269,-615.525940,13.724731,-565.525940,0.000000,"Start FSM"};
-item1[] = {"Cycle",4,4314,-100.000000,-400.000000,0.000000,-350.000000,1.000000,"Cycle"};
-item2[] = {"Resistance_hold",2,250,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Resistance hold" \n "the town?"};
+item1[] = {"Cycle",4,218,-100.000000,-400.000000,0.000000,-350.000000,1.000000,"Cycle"};
+item2[] = {"Resistance_hold",2,4346,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Resistance hold" \n "the town?"};
item3[] = {"End_FSM",1,250,-250.000000,-100.000000,-150.000000,-50.000000,0.000000,"End FSM"};
item4[] = {"Held_by_Resistan",4,218,-100.000000,-100.000000,0.000000,-50.000000,2.000000,"Held by" \n "Resistance"};
item5[] = {"Gameover",8,218,-250.000000,-200.000000,-150.000000,-150.000000,0.000000,"Gameover"};
@@ -56,7 +56,7 @@ link27[] = {21,8};
link28[] = {22,1};
link29[] = {23,13};
globals[] = {0.000000,0,0,0,0,640,480,1,173,6316128,1,-1091.492065,1056.436035,832.636719,-1191.768555,939,885,1};
-window[] = {2,-1,-1,-1,-1,712,100,1136,100,3,957};
+window[] = {2,-1,-1,-1,-1,662,50,1086,50,3,957};
*//*%FSM*/
class FSM
{
@@ -102,7 +102,7 @@ class FSM
name = "Resistance_hold";
itemno = 2;
init = /*%FSM*/"" \n
- "_ncycle = time +2 ;" \n
+ "_ncycle = time +5 ;" \n
"" \n
"_sideID = _town getVariable ""cti_town_sideID"";"/*%FSM*/;
precondition = /*%FSM*/""/*%FSM*/;
diff --git a/Addons/Strat_mode/Radar/ARTR_proj_handler.sqf b/Addons/Strat_mode/Radar/ARTR_proj_handler.sqf
index 5f4f4a2e1..ea87cf9d9 100644
--- a/Addons/Strat_mode/Radar/ARTR_proj_handler.sqf
+++ b/Addons/Strat_mode/Radar/ARTR_proj_handler.sqf
@@ -11,5 +11,5 @@ _seed= diag_frameno+floor(random (10000));
[["CLIENT",_side], "Client_ARTR_marker",[_seed,_init_pos],true] call CTI_CO_FNC_NetSend;
while {!isnull _proj} do {
[["CLIENT",_side], "Client_ARTR_update",[_seed,_init_pos,getpos _proj],true] call CTI_CO_FNC_NetSend;
- sleep 2;
+ sleep 5;
};
diff --git a/Common/Functions/Common_CreateTeam.sqf b/Common/Functions/Common_CreateTeam.sqf
index 3da36fb89..3b4e92764 100644
--- a/Common/Functions/Common_CreateTeam.sqf
+++ b/Common/Functions/Common_CreateTeam.sqf
@@ -8,7 +8,7 @@ _locked = if (count _this > 4) then {_this select 4} else {true};
_net = if (count _this > 5) then {_this select 5} else {false};
_bounty = if (count _this > 6) then {_this select 6} else {false};
-if (_side == resistance) then {_net=false};
+_net=false;
_sideID = (_side) call CTI_CO_FNC_GetSideID;
//if (isNull _group) then {_group = createGroup _side};
diff --git a/Common/Functions/Common_CreateVehicle.sqf b/Common/Functions/Common_CreateVehicle.sqf
index 728d65b8e..a4ac1dd94 100644
--- a/Common/Functions/Common_CreateVehicle.sqf
+++ b/Common/Functions/Common_CreateVehicle.sqf
@@ -260,7 +260,7 @@ if ((missionNamespace getVariable [format ["%1", typeOf _vehicle],["","","","","
if (_locked && !( _vehicle isKindOf "Thing") && !( _vehicle isKindOf "StaticWeapon") && !( _vehicle isKindOf "UAV") && !( _vehicle isKindOf "UGV_01_base_F") && !( _vehicle isKindOf "B_T_UAV_03_dynamicLoadout_F")) then {_vehicle lock 2} else {_vehicle lock 0};
-if (_net) then {_vehicle setVariable ["cti_net", _side, true]};
+if (_net && !( _vehicle isKindOf "Thing")) then {_vehicle setVariable ["cti_net", _side, true]};
if (_handle) then {
_vehicle addEventHandler ["killed", format["[_this select 0, _this select 1, %1] spawn CTI_CO_FNC_OnUnitKilled", _side]]; //--- Called on destruction
_vehicle addEventHandler ["hit", {_this spawn CTI_CO_FNC_OnUnitHit}]; //--- Register importants hits
@@ -272,7 +272,7 @@ if (_handle) then {
//disable net for offroads (JIP issue with BIS bug) + static load
-if (_net &&missionNamespace getVariable "CTI_EW_ANET" == 1 && !(_side == CTI_RESISTANCE_ID)) then {
+if (_net &&missionNamespace getVariable "CTI_EW_ANET" == 1 && !(_side == CTI_RESISTANCE_ID)&& !( _vehicle isKindOf "Thing")) then {
["SERVER","Server_Run_Net",[_vehicle,_side]] call CTI_CO_FNC_NetSend;
};
From 66c01bb3c681bb6859ed36f35a87f6a7f1bae451 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 25 Sep 2018 19:45:37 +0200
Subject: [PATCH 006/267] Optimisation continued
---
Addons/Strat_mode/AdvNet/AN_CheckConn.sqf | 8 ++++++++
Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf | 3 +--
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/Addons/Strat_mode/AdvNet/AN_CheckConn.sqf b/Addons/Strat_mode/AdvNet/AN_CheckConn.sqf
index d9b59886e..4a94e5a3b 100644
--- a/Addons/Strat_mode/AdvNet/AN_CheckConn.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_CheckConn.sqf
@@ -10,8 +10,16 @@ _vehicle getVariable "CTI_Net"
private ["_vehicle","_side_id","_side","_forced","_connection","_max_distance","_up","_up_r"];
if (CTI_isServer) then {waituntil {CTI_Init_Server}};
_vehicle = _this;
+
+
+
if !(alive _vehicle) exitWith {false};
+
+
+//resistance town no need to run reconnect:
+if ((_vehicle isKindOf "FlagPole_F") && (_vehicle getVariable ["cti_town_sideID",CTI_RESISTANCE_ID]) == CTI_RESISTANCE_ID) exitWith {true};
+
_side_id=_vehicle getVariable ["CTI_Net",-11];
if (_side_id < 0 ) exitWith {false};
_side =(_side_id) call CTI_CO_FNC_GetSideFromID;
diff --git a/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf b/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
index 451a2e8ca..56e0f848b 100644
--- a/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
@@ -1,6 +1,5 @@
while {! CTI_GameOver && alive _this } do {
if (((! local _this) && _this isKindOf "Man") || !(isPlayer _this) && (_this in (playableUnits+switchableUnits)) || ((side _this) == resistance && _this isKindOf "Man") || !(alive _this)) exitwith {if (NET_LOG) then {diag_log format [":: NET :: Canceling reconfiguration process for %1",_this]};false};
- if (NET_LOG) then {diag_log format [":: NET :: Running reconfiguration process for %1",_this]};
- _this call AN_Reconfigure;
+ if !(_this call AN_Check_Connection) then {if (NET_LOG) then {diag_log format [":: NET :: Trying to reconfigure %1 ",_this]};_this call AN_Reconfigure};
sleep 10+random(10);
};
\ No newline at end of file
From 659837f610b3a563ed4da7cca363a15dbb48f850 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 25 Sep 2018 23:07:56 +0200
Subject: [PATCH 007/267] Problem with cleanup of defense tasks
---
Addons/Strat_mode/Functions/TASKS_loop.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/Functions/TASKS_loop.sqf b/Addons/Strat_mode/Functions/TASKS_loop.sqf
index eda7380c8..c1fa4251e 100644
--- a/Addons/Strat_mode/Functions/TASKS_loop.sqf
+++ b/Addons/Strat_mode/Functions/TASKS_loop.sqf
@@ -46,7 +46,7 @@ while {!CTI_GAMEOVER} do
{
if ((_x select 0 )== CTI_TASK_TYPE_DEFEND ) then {
_town=_x select 1 ;
- if ((_town getvariable ["cti_town_sideID",-1]) == _sideID && !((_town getvariable ["cti_town_occupation_active",false]) || (_town getvariable ["cti_town_resistance_active",false]) ) ) then {_to_delete pushBackUnique _forEachIndex};
+ if ((_town getvariable ["cti_town_sideID",-1]) == _sideID && !((_town getvariable ["cti_town_occupation_active",false]) && (_town getvariable ["cti_town_resistance_active",false]) ) ) then {_to_delete pushBackUnique _forEachIndex};
};
} foreach TASKS_LIST;
From ed88626e5a7752c4484a8d48b886bc4abd2360d3 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 25 Sep 2018 23:23:43 +0200
Subject: [PATCH 008/267] Task clenup process moved
---
Addons/Strat_mode/Functions/TASKS_loop.sqf | 27 ++++++++++++----------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/Addons/Strat_mode/Functions/TASKS_loop.sqf b/Addons/Strat_mode/Functions/TASKS_loop.sqf
index c1fa4251e..283074545 100644
--- a/Addons/Strat_mode/Functions/TASKS_loop.sqf
+++ b/Addons/Strat_mode/Functions/TASKS_loop.sqf
@@ -51,18 +51,6 @@ while {!CTI_GAMEOVER} do
} foreach TASKS_LIST;
- // DO THE CLEANUP
-
- {
- _task=TASKS_LIST select _x;
- [(_task select 2), "CANCELED", false] call BIS_fnc_taskSetState;
- [(_task select 2) ] call BIS_fnc_deleteTask;
- true
- } count _to_delete;
- {
- TASKS_LIST deleteAt _x;
- true
- } count _to_delete;
//*****************************************************************
//********************** TASK CREATION ****************************
@@ -110,6 +98,21 @@ while {!CTI_GAMEOVER} do
true
} count (_logic getVariable ["CTI_TOWNS",[]]);
+
+ // DO THE CLEANUP
+
+ {
+ _task=TASKS_LIST select _x;
+ [(_task select 2), "CANCELED", false] call BIS_fnc_taskSetState;
+ [(_task select 2) ] call BIS_fnc_deleteTask;
+ true
+ } count _to_delete;
+ {
+ TASKS_LIST deleteAt _x;
+ true
+ } count _to_delete;
+
+
//wait some time
sleep 3;
};
\ No newline at end of file
From 27ce07fa7dd6035e5e5f688b80383188e7a9a998 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Wed, 26 Sep 2018 18:51:31 +0200
Subject: [PATCH 009/267] Tasks still unstable simplification
---
Addons/Strat_mode/Functions/TASKS_loop.sqf | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Addons/Strat_mode/Functions/TASKS_loop.sqf b/Addons/Strat_mode/Functions/TASKS_loop.sqf
index 283074545..153eaaa31 100644
--- a/Addons/Strat_mode/Functions/TASKS_loop.sqf
+++ b/Addons/Strat_mode/Functions/TASKS_loop.sqf
@@ -36,7 +36,7 @@ while {!CTI_GAMEOVER} do
{
if ((_x select 0 )== CTI_TASK_TYPE_ATTACK ) then {
_town=_x select 1 ;
- if ((_town getVariable ["cti_town_sideID",-1] == _sideID) || ((_active_towns find _town) == -1 && (_logic getVariable ["CTI_PRIORITY",objNull]) != _town) ) then {_to_delete pushBackUnique _forEachIndex};
+ if ( (_active_towns find _town) == -1 ) then {_to_delete pushBackUnique _forEachIndex};
};
@@ -46,7 +46,7 @@ while {!CTI_GAMEOVER} do
{
if ((_x select 0 )== CTI_TASK_TYPE_DEFEND ) then {
_town=_x select 1 ;
- if ((_town getvariable ["cti_town_sideID",-1]) == _sideID && !((_town getvariable ["cti_town_occupation_active",false]) && (_town getvariable ["cti_town_resistance_active",false]) ) ) then {_to_delete pushBackUnique _forEachIndex};
+ if ((_town getvariable ["cti_town_sideID",-1]) == _sideID && !(_town getvariable ["cti_town_occupation_active",false]) ) then {_to_delete pushBackUnique _forEachIndex};
};
} foreach TASKS_LIST;
@@ -87,7 +87,7 @@ while {!CTI_GAMEOVER} do
// DEFEND TASKS
{
_town=_x;
- if ((_town getvariable ["cti_town_sideID",-1]) == _sideID && ((_town getvariable ["cti_town_occupation_active",false]) || (_town getvariable ["cti_town_resistance_active",false]) ) ) then {
+ if ((_town getvariable ["cti_town_sideID",-1]) == _sideID && (_town getvariable ["cti_town_occupation_active",false]) ) then {
if ((TASKS_LIST findif {(_x select 0) == CTI_TASK_TYPE_DEFEND && (_x select 1) == _town}) == -1) then {
_taskname=format ["D_%1_%2",ceil(random(100000)),ceil(time)];
TASKS_LIST pushBack [CTI_TASK_TYPE_DEFEND,_town,_taskname];
From 02008a57a03c3031c0d7992bc4b69a2318462b9a Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Wed, 26 Sep 2018 19:11:11 +0200
Subject: [PATCH 010/267] Network optim continued
---
Addons/Strat_mode/AdvNet/AN_CheckConn.sqf | 1 +
Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/AdvNet/AN_CheckConn.sqf b/Addons/Strat_mode/AdvNet/AN_CheckConn.sqf
index 4a94e5a3b..245eae3da 100644
--- a/Addons/Strat_mode/AdvNet/AN_CheckConn.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_CheckConn.sqf
@@ -33,6 +33,7 @@ _connection=_vehicle getVariable ["AN_Conn",objNull];
// disconnected
if (isNull _connection ) exitWith {false};
+
//dead
if !(alive _connection ) exitWith {false};
diff --git a/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf b/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
index 56e0f848b..2888d891f 100644
--- a/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
@@ -1,5 +1,5 @@
while {! CTI_GameOver && alive _this } do {
if (((! local _this) && _this isKindOf "Man") || !(isPlayer _this) && (_this in (playableUnits+switchableUnits)) || ((side _this) == resistance && _this isKindOf "Man") || !(alive _this)) exitwith {if (NET_LOG) then {diag_log format [":: NET :: Canceling reconfiguration process for %1",_this]};false};
- if !(_this call AN_Check_Connection) then {if (NET_LOG) then {diag_log format [":: NET :: Trying to reconfigure %1 ",_this]};_this call AN_Reconfigure};
+ if (!(_this call AN_Check_Connection) && ( _this getVariable ["CTI_NET",-1]) > 0) then {if (NET_LOG) then {diag_log format [":: NET :: Trying to reconfigure %1 ",_this]};_this call AN_Reconfigure};
sleep 10+random(10);
};
\ No newline at end of file
From 473991a2ef7b5fe6521106f101ff46908f6260fa Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Wed, 26 Sep 2018 19:33:35 +0200
Subject: [PATCH 011/267] SOme stuff
---
Addons/Strat_mode/AdvNet/AN_Launch.sqf | 2 +-
Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Addons/Strat_mode/AdvNet/AN_Launch.sqf b/Addons/Strat_mode/AdvNet/AN_Launch.sqf
index b8ce7ece5..6a0d2d6bd 100644
--- a/Addons/Strat_mode/AdvNet/AN_Launch.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Launch.sqf
@@ -1,5 +1,5 @@
private ["_vehicle","_side_id"];
-_vehicle = _this select 0;
+_vehicle = vehicle (_this select 0);
_side_id= _this select 1;
if (NET_LOG) then {diag_log format [":: NET :: Trying to launch for %1 with sideid %2",_vehicle,_side_id]};
if ! (isNil {_vehicle getVariable "AN_iNet"}) exitWith {false};
diff --git a/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf b/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
index 2888d891f..58389e873 100644
--- a/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
@@ -1,5 +1,5 @@
while {! CTI_GameOver && alive _this } do {
if (((! local _this) && _this isKindOf "Man") || !(isPlayer _this) && (_this in (playableUnits+switchableUnits)) || ((side _this) == resistance && _this isKindOf "Man") || !(alive _this)) exitwith {if (NET_LOG) then {diag_log format [":: NET :: Canceling reconfiguration process for %1",_this]};false};
- if (!(_this call AN_Check_Connection) && ( _this getVariable ["CTI_NET",-1]) > 0) then {if (NET_LOG) then {diag_log format [":: NET :: Trying to reconfigure %1 ",_this]};_this call AN_Reconfigure};
+ if (( _this getVariable ["CTI_NET",-1]) > 0 && !(_this call AN_Check_Connection) ) then {if (NET_LOG) then {diag_log format [":: NET :: Trying to reconfigure %1 ",_this]};_this call AN_Reconfigure};
sleep 10+random(10);
};
\ No newline at end of file
From b3f9a60ad472180cb57552c3179f3ffc97567532 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Wed, 26 Sep 2018 20:23:39 +0200
Subject: [PATCH 012/267] Network continued
---
Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf | 2 +-
Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf b/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
index d73e4ed79..5c3bb3d3d 100644
--- a/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
@@ -64,7 +64,7 @@ if (_side in [east,west]) then {
{ if (_vehicle distance2D _x <= _max_distance) then {_candidates set [count _candidates,_x];}; true}count _ccs;
};
// Try to connect to closest town
-if (count _candidates == 0 || _vehicle isKindOf "FlagPole_F"&& (_side in [east,west])) then {
+if (count _candidates == 0 ) then {
{
_town=_x;
if (!(isNull _town) && !(_town == _vehicle) && _vehicle distance2D _town <= _max_distance && (_town getVariable "AN_iNet" == _side_id )&& ! (_x getVariable "AN_Conn" == _vehicle) && {_x == _vehicle} count (_x getVariable ["AN_Parrents",[]]) == 0 ) then
diff --git a/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf b/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
index 58389e873..245f9e5da 100644
--- a/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Reconfigure_Loop.sqf
@@ -1,5 +1,5 @@
while {! CTI_GameOver && alive _this } do {
if (((! local _this) && _this isKindOf "Man") || !(isPlayer _this) && (_this in (playableUnits+switchableUnits)) || ((side _this) == resistance && _this isKindOf "Man") || !(alive _this)) exitwith {if (NET_LOG) then {diag_log format [":: NET :: Canceling reconfiguration process for %1",_this]};false};
- if (( _this getVariable ["CTI_NET",-1]) > 0 && !(_this call AN_Check_Connection) ) then {if (NET_LOG) then {diag_log format [":: NET :: Trying to reconfigure %1 ",_this]};_this call AN_Reconfigure};
+ if (( _this getVariable ["CTI_NET",-1]) >= 0 && !(_this call AN_Check_Connection) ) then {if (NET_LOG) then {diag_log format [":: NET :: Trying to reconfigure %1 ",_this]};_this call AN_Reconfigure};
sleep 10+random(10);
};
\ No newline at end of file
From 50e8dd580278e7e3f7119e0f9448268a8cc1673d Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Wed, 26 Sep 2018 22:10:06 +0200
Subject: [PATCH 013/267] Disabled net on foot soldier when parameter is false
---
Common/Functions/Common_CreateUnit.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Common/Functions/Common_CreateUnit.sqf b/Common/Functions/Common_CreateUnit.sqf
index 56ef98779..732ca0785 100644
--- a/Common/Functions/Common_CreateUnit.sqf
+++ b/Common/Functions/Common_CreateUnit.sqf
@@ -210,7 +210,7 @@ if (_net) then {_unit setVariable ["cti_net", _sideID, true]};
_unit addEventHandler ["killed", format["[_this select 0, _this select 1, %1] spawn CTI_CO_FNC_OnUnitKilled", _sideID]];
//Adv network
-if (missionNamespace getVariable "CTI_EW_ANET" == 1 && !(_sideID == CTI_RESISTANCE_ID)) then {
+if (_net && missionNamespace getVariable "CTI_EW_ANET" == 1 && !(_sideID == CTI_RESISTANCE_ID)) then {
//["SERVER","Server_Run_Net",[_unit,_sideID]] call CTI_CO_FNC_NetSend;
[_unit,_sideID] spawn AN_Launch;
};
From 97478d439737022abfbba87f5ee02791257ccbfb Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 29 Sep 2018 14:07:20 +0200
Subject: [PATCH 014/267] No Spawn in locked hq
maybe this way?
---
Client/Functions/UI/Functions_UI_RespawnMenu.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Client/Functions/UI/Functions_UI_RespawnMenu.sqf b/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
index 30a66b14d..a467acfc1 100644
--- a/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
+++ b/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
@@ -245,7 +245,7 @@ CTI_UI_Respawn_OnRespawnReady = {
CTI_P_LastRespawnTime=time;
if !(_respawn_ai) then { //--- Stock respawn
- if ((_where isKindOf "Car" || _where isKindOf "Wheeled_APC_F" || _where isKindOf "Land_Pod_Heli_Transport_04_medevac_F") && (_where emptyPositions "cargo")>0 && (locked _where < 2 || abs (speed _where) > 5) ) then {
+ if ((_where isKindOf "Car" || _where isKindOf "Wheeled_APC_F" || _where isKindOf "Land_Pod_Heli_Transport_04_medevac_F") && (_where emptyPositions "cargo")>0 && (locked _where) < 2 && abs (speed _where) < 5) then {
//Respawn in vehicles cargo
player moveInCargo _where;
} else {
From ac989ed404e98784b44fafdf6d585d72c22ce433 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 30 Sep 2018 19:40:04 +0200
Subject: [PATCH 015/267] Fix for Air Radar
---
Addons/Strat_mode/Radar/AIRR_obj_handler.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/Radar/AIRR_obj_handler.sqf b/Addons/Strat_mode/Radar/AIRR_obj_handler.sqf
index 527fe2245..fe5172db2 100644
--- a/Addons/Strat_mode/Radar/AIRR_obj_handler.sqf
+++ b/Addons/Strat_mode/Radar/AIRR_obj_handler.sqf
@@ -24,7 +24,7 @@ if (! _adv_net) then {
//try to register in Hud targets
while {!CTI_GameOver && alive _vehicle && alive _radar} do {
_alt=((getposASL _vehicle) select 2 ) min ((getposATL _vehicle) select 2 );
- if ( ([_vehicle,_radar] call BIS_fnc_distance2D) < Radar_Range && _alt >= Min_Alt && !(terrainIntersect [_top_radar,(getPosATL _vehicle)]) && {_x == _vehicle} count (_sl getVariable "CTI_HUD_SHARED") == 0 && !((_vehicle getvariable ["CTI_Net",-10]) == (_side call CTI_CO_FNC_GetSideID)) ) then {
+ if ( ([_vehicle,_radar] call BIS_fnc_distance2D) < Radar_Range && _alt >= Min_Alt && !(terrainIntersect [_top_radar,(getPosATL _vehicle)]) && ((_sl getVariable "CTI_HUD_SHARED") findif {_x select 0 == _vehicle && _x select 1 > time}) > -1 && !((_vehicle getvariable ["CTI_Net",-10]) == (_side call CTI_CO_FNC_GetSideID)) ) then {
//diag_log format [":: AIR Radar ::%1::%2:: Detected by %3",_vehicle,_side,_radar];
["SERVER", "Server_Hud_Share_Add",[[_vehicle],_side]] call CTI_CO_FNC_NetSend; //we use the netPV to not do strange stuff
[["CLIENT",_side], "Client_AIRR_touched"] call CTI_CO_FNC_NetSend;//for the hud
From 520bf5890e156f77d4564478b6d801114baddba7 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 30 Sep 2018 19:41:46 +0200
Subject: [PATCH 016/267] Some error fix
---
Server/Functions/Server_HandleStructureConstruction.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Server/Functions/Server_HandleStructureConstruction.sqf b/Server/Functions/Server_HandleStructureConstruction.sqf
index c765f519d..34b3221b4 100644
--- a/Server/Functions/Server_HandleStructureConstruction.sqf
+++ b/Server/Functions/Server_HandleStructureConstruction.sqf
@@ -78,7 +78,7 @@ waitUntil { _structure getVariable ["cti_completion",-1] >= 100 || time >_timeou
_logic = (_side) call CTI_CO_FNC_GetSideLogic;
_logic setVariable ["cti_structures_wip", (_logic getVariable "cti_structures_wip") - [_structure, objNull],true];
-_completion = _structure getVariable "cti_completion";
+_completion = _structure getVariable ["cti_completion",10];
_completion_ratio = _structure getVariable "cti_completion_ratio";
deleteVehicle _structure;
From 639e41f22d39cba21364b3f8d869c41ef5158981 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 30 Sep 2018 21:13:54 +0200
Subject: [PATCH 017/267] Prenvents stacking of EH
---
Client/Functions/Client_AddMissionActions.sqf | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Client/Functions/Client_AddMissionActions.sqf b/Client/Functions/Client_AddMissionActions.sqf
index 2bab865b3..6e39d42ce 100644
--- a/Client/Functions/Client_AddMissionActions.sqf
+++ b/Client/Functions/Client_AddMissionActions.sqf
@@ -27,7 +27,7 @@ if (! isNil "HUD_PBar_stop" ) then {0 call HUD_PBar_stop};
//player addaction ["Online Help",'createdialog "CTI_RscTabletOnlineHelpMenu";', [], -99];
//titleCut["","BLACK IN",1];
-
+player removeAllEventHandlers "InventoryOpened";
player addEventHandler ["InventoryOpened",{
if !(simulationEnabled (_this select 1)) then {
(_this select 1) enableSimulation true;
@@ -43,6 +43,7 @@ if(((CTI_P_SideJoined) call CTI_CO_FNC_GetSideUpgrades) select CTI_UPGRADE_DATA
player setVehicleReportRemoteTargets true;
player setVehicleReceiveRemoteTargets true;
};};
+player removeAllEventHandlers "WeaponAssembled";
if (missionNamespace getVariable "CTI_SM_RADAR" == 1) then {
player addEventHandler ["WeaponAssembled",{["SERVER", "Server_ARTR_handle",(_this select 1)] call CTI_CO_FNC_NetSend;["SERVER", "Request_HandleAction", ["empty", [(_this select 1)]]] call CTI_CO_FNC_NetSend;}];
From 335bfe2d886115d7e7dd000691aa31a4901046be Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 30 Sep 2018 21:40:50 +0200
Subject: [PATCH 018/267] small correction on net
---
Addons/Strat_mode/AdvNet/AN_Launch.sqf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Addons/Strat_mode/AdvNet/AN_Launch.sqf b/Addons/Strat_mode/AdvNet/AN_Launch.sqf
index 6a0d2d6bd..588520288 100644
--- a/Addons/Strat_mode/AdvNet/AN_Launch.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Launch.sqf
@@ -2,13 +2,13 @@ private ["_vehicle","_side_id"];
_vehicle = vehicle (_this select 0);
_side_id= _this select 1;
if (NET_LOG) then {diag_log format [":: NET :: Trying to launch for %1 with sideid %2",_vehicle,_side_id]};
-if ! (isNil {_vehicle getVariable "AN_iNet"}) exitWith {false};
+//if ! (isNil {_vehicle getVariable "AN_iNet"}) exitWith {false};
//diag_log format ["Starting networking for %1 side %2", _this select 0 , _this select 1];
if (isNil {_vehicle getVariable "CTI_Net"}) then {_vehicle setVariable ["CTI_Net",_side_id,true];};
if (isNil {_vehicle getVariable "AN_Conn"}) then {_vehicle setVariable ["AN_Conn",objNull,false];};
if (isNil {_vehicle getVariable "AN_iNet"}) then {_vehicle setVariable ["AN_iNet",-1,false];};
if (isNil {_vehicle getVariable "AN_Parrents"}) then {_vehicle setVariable ["AN_Parrents",[],false];};
-waitUntil {! (isNil {_vehicle getVariable "CTI_Net"} || isNil {_vehicle getVariable "AN_Conn"} || isNil {_vehicle getVariable "AN_iNet"} || isNil {_vehicle getVariable "CTI_Net"})};
+waitUntil {! (isNil {_vehicle getVariable "CTI_Net"} || isNil {_vehicle getVariable "AN_Conn"} || isNil {_vehicle getVariable "AN_iNet"} || isNil {_vehicle getVariable "AN_Parrents"})};
if (NET_LOG) then {diag_log format [":: NET :: Launching for %1 with sideid %2",_vehicle,_side_id]};
_vehicle spawn AN_Update_Connection;
(_vehicle) spawn AN_Reconfigure_loop;
\ No newline at end of file
From db72d5eb51e09e81ca2101bce25e7e3076f79d6f Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Mon, 1 Oct 2018 16:38:35 +0200
Subject: [PATCH 019/267] dynamic loadout, adjustments
---
Addons/Henroth_AirLoadout/Set_WeaponLoadouts.sqf | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/Addons/Henroth_AirLoadout/Set_WeaponLoadouts.sqf b/Addons/Henroth_AirLoadout/Set_WeaponLoadouts.sqf
index 9bd0d3789..a7987d50e 100644
--- a/Addons/Henroth_AirLoadout/Set_WeaponLoadouts.sqf
+++ b/Addons/Henroth_AirLoadout/Set_WeaponLoadouts.sqf
@@ -1089,10 +1089,10 @@ CTI_LOADOUT_B_Heli_Transport_01_F_MNT_OPTIONS =
[
["CMFlareLauncher" ,
[
- [ "240Rnd_CMFlare_Chaff_Magazine" , "2000" , [0] ],
- [ "120Rnd_CMFlare_Chaff_Magazine" , "500" , [0] ],
- [ "168Rnd_CMFlare_Chaff_Magazine" , "1000" , [0] ],
- [ "192Rnd_CMFlare_Chaff_Magazine" , "1500" , [0] ]
+ [ "240Rnd_CMFlare_Chaff_Magazine" , "2000" , [-1] ],
+ [ "120Rnd_CMFlare_Chaff_Magazine" , "500" , [-1] ],
+ [ "168Rnd_CMFlare_Chaff_Magazine" , "1000" , [-1] ],
+ [ "192Rnd_CMFlare_Chaff_Magazine" , "1500" , [-1] ]
]
]
],
@@ -1619,7 +1619,9 @@ CTI_LOADOUT_B_UAV_05_F_MNT_OPTIONS =
[ "PylonMissile_Bomb_GBU12_x1" , "5000" , [0]],
[ "PylonMissile_Missile_AGM_02_x2" , "10000" , [0]],
[ "PylonMissile_1Rnd_BombCluster_01_F" , "1000" , [0]],
- [ "PylonMissile_1Rnd_BombCluster_03_F" , "1000" , [0]]
+ [ "PylonMissile_1Rnd_BombCluster_03_F" , "1000" , [0]],
+ [ "PylonMissile_Missile_HARM_INT_x1" , "10000" , [0]],
+ [ "PylonRack_Bomb_SDB_x4" , "5000" , [0]]
]
]
],
@@ -1629,7 +1631,9 @@ CTI_LOADOUT_B_UAV_05_F_MNT_OPTIONS =
[ "PylonMissile_Bomb_GBU12_x1" , "5000" , [0]],
[ "PylonMissile_Missile_AGM_02_x2" , "10000" , [0]],
[ "PylonMissile_1Rnd_BombCluster_01_F" , "1000" , [0]],
- [ "PylonMissile_1Rnd_BombCluster_03_F" , "1000" , [0]]
+ [ "PylonMissile_1Rnd_BombCluster_03_F" , "1000" , [0]],
+ [ "PylonMissile_Missile_HARM_INT_x1" , "10000" , [0]],
+ [ "PylonRack_Bomb_SDB_x4" , "5000" , [0]]
]
]
],
From 096086628110ca75aea7320114763b5cd59e6607 Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Mon, 1 Oct 2018 17:17:14 +0200
Subject: [PATCH 020/267] #254 preventing multiple HQ repairs at the same time
---
Addons/Strat_mode/Tablet/Events_UI_Interact.sqf | 2 +-
Client/Actions/Action_RepairHQ.sqf | 6 ++++--
Server/Init/Init_Server.sqf | 2 ++
3 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf b/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf
index ae9126830..3a03f6d70 100644
--- a/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf
+++ b/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf
@@ -298,7 +298,7 @@ switch (_action) do {
};
case 22: { // CTI_Icon_rephq
if ((missionNamespace getVariable "CTI_BASE_HQ_REPAIR") > 0 && (missionNamespace getVariable [format ["%1", typeOf _target],["","","","","","","",""]]) select 7 == "service-repairtruck" && !alive(CTI_P_SideJoined call CTI_CO_FNC_GetSideHQ) ) then {
- if ((CTI_P_SideJoined call CTI_CO_FNC_GetSideHQ) distance _target <= CTI_BASE_HQ_REPAIR_RANGE && (0 call CTI_CL_FNC_GetPlayerFunds) >= CTI_BASE_HQ_REPAIR_PRICE) then {
+ if ((CTI_P_SideJoined call CTI_CO_FNC_GetSideHQ) distance _target <= CTI_BASE_HQ_REPAIR_RANGE && (0 call CTI_CL_FNC_GetPlayerFunds) >= CTI_BASE_HQ_REPAIR_PRICE && !(missionNamespace getVariable [format["CTI_HQ_Repair_Lock_%1", CTI_P_SideJoined], false])) then {
((uiNamespace getVariable "cti_dialog_ui_interractions") displayCtrl (511000+_i)) ctrlSetTextColor [0,0,1,1];
}else {
((uiNamespace getVariable "cti_dialog_ui_interractions") displayCtrl (511000+_i)) ctrlSetTextColor [0.3,0.3,0.3,1];
diff --git a/Client/Actions/Action_RepairHQ.sqf b/Client/Actions/Action_RepairHQ.sqf
index a49642f1b..b798664f1 100644
--- a/Client/Actions/Action_RepairHQ.sqf
+++ b/Client/Actions/Action_RepairHQ.sqf
@@ -2,7 +2,8 @@ _vehicle = _this select 0;
_hq = (CTI_P_SideJoined) call CTI_CO_FNC_GetSideHQ;
CTI_P_LastRepairTime = time;
-
+if(missionNamespace getVariable [format["CTI_HQ_Repair_Lock_%1", CTI_P_SideJoined], false]) exitWith {};
+missionNamespace setVariable [format["CTI_HQ_Repair_Lock_%1", CTI_P_SideJoined], true, true];
if (alive _hq) exitWith {}; //--- Don't bother if the HQ is alive
_base_repair_HQ_cost = CTI_BASE_HQ_REPAIR_PRICE;
@@ -44,4 +45,5 @@ if (_hq distance _vehicle <= CTI_BASE_HQ_REPAIR_RANGE) then {
} else {
hint parseText format[localize "STR_Needed_RepairHQ", CTI_P_Coloration_Money, _base_repair_HQ_cost];
};
-};
\ No newline at end of file
+};
+missionNamespace setVariable [format["CTI_HQ_Repair_Lock_%1", CTI_P_SideJoined], false, true];
\ No newline at end of file
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index d5764aa3c..082fb4336 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -62,6 +62,8 @@ execVM "Server\Init\Init_Prison.sqf";
execVM "Addons\Strat_mode\Functions\TUTORIAL_Init.sqf";
CTI_Structure_Lock=False;
+CTI_HQ_Repair_Lock_EAST=False;
+CTI_HQ_Repair_Lock_WEST=False;
CTI_Worker_Lock=False;
From adbdc8210745ab04bd1fc525ee8bf7a10d9a2a85 Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Mon, 1 Oct 2018 17:52:36 +0200
Subject: [PATCH 021/267] #254 improved HQ repair lock
---
Client/Actions/Action_RepairHQ.sqf | 4 +++-
Server/Functions/Server_RepairHQ.sqf | 4 +++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/Client/Actions/Action_RepairHQ.sqf b/Client/Actions/Action_RepairHQ.sqf
index b798664f1..15f165f83 100644
--- a/Client/Actions/Action_RepairHQ.sqf
+++ b/Client/Actions/Action_RepairHQ.sqf
@@ -11,6 +11,7 @@ _base_repair_HQ_cost = CTI_BASE_HQ_REPAIR_PRICE;
if(scoreSide CTI_P_SideJoined <= 1000) then {_base_repair_HQ_cost = round(_base_repair_HQ_cost / 2);};
if(scoreSide CTI_P_SideJoined <= 500) then {_base_repair_HQ_cost = round(_base_repair_HQ_cost / 4);};
+_attempting_repair = false;
if (_hq distance _vehicle <= CTI_BASE_HQ_REPAIR_RANGE) then {
_funds = call CTI_CL_FNC_GetPlayerFunds;
@@ -28,6 +29,7 @@ if (_hq distance _vehicle <= CTI_BASE_HQ_REPAIR_RANGE) then {
if (_funds >= _base_repair_HQ_cost) then {
-_base_repair_HQ_cost call CTI_CL_FNC_ChangePlayerFunds;
["SERVER", "Request_HQRepair", CTI_P_SideJoined] call CTI_CO_FNC_NetSend;
+ _attempting_repair = true;
} else {
hint parseText format[localize "STR_Needed_RepairHQ", CTI_P_Coloration_Money, _base_repair_HQ_cost];
};
@@ -46,4 +48,4 @@ if (_hq distance _vehicle <= CTI_BASE_HQ_REPAIR_RANGE) then {
hint parseText format[localize "STR_Needed_RepairHQ", CTI_P_Coloration_Money, _base_repair_HQ_cost];
};
};
-missionNamespace setVariable [format["CTI_HQ_Repair_Lock_%1", CTI_P_SideJoined], false, true];
\ No newline at end of file
+if(!_attempting_repair) then {missionNamespace setVariable [format["CTI_HQ_Repair_Lock_%1", CTI_P_SideJoined], false, true];};
\ No newline at end of file
diff --git a/Server/Functions/Server_RepairHQ.sqf b/Server/Functions/Server_RepairHQ.sqf
index e2c920c71..00ef865dc 100644
--- a/Server/Functions/Server_RepairHQ.sqf
+++ b/Server/Functions/Server_RepairHQ.sqf
@@ -74,9 +74,10 @@ _logic setVariable ["cti_hq", _hq, true];
//check if HQ was sucessfully repaired, else refound repair cost
-[_hq, _logic] spawn {
+[_hq, _logic, _side] spawn {
_hq = _this select 0;
_logic = _this select 1;
+ _side = _this select 2;
sleep(5);
_hq setVelocity [0, 5, 0]; //move it a little to check if its inside an object
@@ -90,6 +91,7 @@ _logic setVariable ["cti_hq", _hq, true];
if(scoreSide CTI_P_SideJoined <= 500) then {_base_repair_HQ_cost = round(_base_repair_HQ_cost / 4);};
_logic setvariable ["cti_commander_funds",_comMoney+_base_repair_HQ_cost,true];
};
+ missionNamespace setVariable [format["CTI_HQ_Repair_Lock_%1", _side], false, true];
};
From a6600f3aa85711b5e488089188d504f8a5ac0dce Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Mon, 1 Oct 2018 20:18:50 +0200
Subject: [PATCH 022/267] sdfgsfgd
---
Addons/Strat_mode/AdvNet/AN_Launch.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/AdvNet/AN_Launch.sqf b/Addons/Strat_mode/AdvNet/AN_Launch.sqf
index 588520288..a4cab10f9 100644
--- a/Addons/Strat_mode/AdvNet/AN_Launch.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Launch.sqf
@@ -2,7 +2,7 @@ private ["_vehicle","_side_id"];
_vehicle = vehicle (_this select 0);
_side_id= _this select 1;
if (NET_LOG) then {diag_log format [":: NET :: Trying to launch for %1 with sideid %2",_vehicle,_side_id]};
-//if ! (isNil {_vehicle getVariable "AN_iNet"}) exitWith {false};
+if ! (isNil {_vehicle getVariable "AN_iNet"}) exitWith {false};
//diag_log format ["Starting networking for %1 side %2", _this select 0 , _this select 1];
if (isNil {_vehicle getVariable "CTI_Net"}) then {_vehicle setVariable ["CTI_Net",_side_id,true];};
if (isNil {_vehicle getVariable "AN_Conn"}) then {_vehicle setVariable ["AN_Conn",objNull,false];};
From 5d71066fbab57764e0127f2467990379578f17c7 Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Sun, 21 Oct 2018 12:27:42 +0200
Subject: [PATCH 023/267] added performance logging
---
Server/FSM/update_victory.fsm | 8 +++++---
Server/Init/Init_Server.sqf | 30 +++++++++++++++++++++++++++++-
2 files changed, 34 insertions(+), 4 deletions(-)
diff --git a/Server/FSM/update_victory.fsm b/Server/FSM/update_victory.fsm
index 5632564a1..b0f4aceca 100644
--- a/Server/FSM/update_victory.fsm
+++ b/Server/FSM/update_victory.fsm
@@ -1,9 +1,9 @@
/*%FSM*/
/*%FSM*/
/*
-item0[] = {"Start_FSM",0,4346,-250.000000,-300.000000,-150.000000,-250.000000,0.000000,"Start FSM"};
+item0[] = {"Start_FSM",0,250,-250.000000,-300.000000,-150.000000,-250.000000,0.000000,"Start FSM"};
item1[] = {"Cycle",4,218,-100.000000,-300.000000,0.000000,-250.000000,1.000000,"Cycle"};
-item2[] = {"Update_Victory",2,250,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Update" \n "Victory"};
+item2[] = {"Update_Victory",2,4346,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Update" \n "Victory"};
item3[] = {"End_FSM",1,250,-250.000000,-100.000000,-150.000000,-50.000000,0.000000,"End FSM"};
item4[] = {"Gameover",4,218,-250.000000,-200.000000,-150.000000,-150.000000,0.000000,"Gameover"};
item5[] = {"Sleep",2,250,-400.000000,-200.000000,-300.000000,-150.000000,0.000000,"Sleep"};
@@ -16,7 +16,7 @@ link4[] = {4,5};
link5[] = {5,6};
link6[] = {6,3};
globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-620.422607,163.824570,138.236649,-571.857727,973,885,1};
-window[] = {2,-1,-1,-1,-1,856,75,1330,75,3,991};
+window[] = {2,-1,-1,-1,-1,1015,234,1489,234,3,991};
*//*%FSM*/
class FSM
{
@@ -80,6 +80,7 @@ class FSM
" _factories = 0;" \n
" {_factories = _factories + count([_x, _structures] call CTI_CO_FNC_GetSideStructuresByType)} forEach (missionNamespace getVariable format[""CTI_%1_Factories"", _side]);" \n
" if (( ( time > _max_time && _max_time != 0) || !(alive _hq) && _victory_hq == 1 || (!(alive _hq) && _factories == 0)) && !CTI_GameOver) exitWith {" \n
+ " diag_log [""CTI_Mission_Performance: GameOver win"", _x]; " \n
" [""CLIENT"", ""Client_OnMissionEnding"", [_x, ""loose""]] call CTI_CO_FNC_NetSend;" \n
"" \n
" profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
@@ -96,6 +97,7 @@ class FSM
" CTI_GameOver = true;" \n
" };" \n
" if (_townvalue > (_total_value*0.75) && !CTI_GameOver) exitWith {" \n
+ " diag_log [""CTI_Mission_Performance: GameOver eco win"", _x];" \n
" [""CLIENT"", ""Client_OnMissionEnding"", [_x, ""win""]] call CTI_CO_FNC_NetSend;" \n
" " \n
" profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index 082fb4336..6354a8cef 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -309,4 +309,32 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
};
-
+//Logging of varius values
+0 spawn {
+ sleep 100; //wait for everything to finish loading
+ diag_log "CTI_Mission_Performance: Starting Server";
+ while {!CTI_GameOver} do {
+ _hud_east = count (((east) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_HUD_SHARED",[]]);
+ _hud_west = count (((west) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_HUD_SHARED",[]]);
+
+ _arr = ["CTI_Mission_Performance:",
+ ["time", time],
+ ["fps", diag_fps],
+ ["score_east", (scoreSide east)],
+ ["score_west", (scoreSide west)],
+ ["hud_count_east", _hud_east],
+ ["hud_count_west", _hud_west],
+ ["player_count_east", (west countSide allPlayers)],
+ ["player_count_west", (east countSide allPlayers)],
+ ["commander_east", (name leader ((east) call CTI_CO_FNC_GetSideCommander))],
+ ["commander_west", (name leader ((west) call CTI_CO_FNC_GetSideCommander))],
+ ["town_count_east", ((east) call CTI_CO_FNC_GetSideTownCount)],
+ ["town_count_west", ((west) call CTI_CO_FNC_GetSideTownCount)],
+ ["active_SQF_count", count(diag_activeSQFScripts)]
+ ];
+
+ diag_log _arr;
+ sleep 600;
+ };
+ diag_log "CTI_Mission_Performance: Stopping Server";
+};
From 65ab1d7ca20398bf07732e3dceee713217404727 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 21 Oct 2018 13:01:01 +0200
Subject: [PATCH 024/267] Network edit
---
Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf | 1 +
1 file changed, 1 insertion(+)
diff --git a/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf b/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
index 5c3bb3d3d..2a6984d78 100644
--- a/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
@@ -97,6 +97,7 @@ if ! (isNull _final) then {
_vehicle setVariable ["AN_Conn",_final,_global];
};
_vehicle setVariable ["AN_Parrents",((_vehicle getVariable "AN_Conn") getVariable ["AN_Parrents",[]]) + [_vehicle],false];
+ _vehicle setVariable ["AN_iNet",-1,true];
if (NET_LOG) then {diag_log format [":: NET :: Sucess in reconf %1 to %2 through %3",_vehicle,_final,((_vehicle getVariable "AN_Conn") getVariable ["AN_Parrents",[]]) ]};
} else {
_vehicle setVariable ["AN_Conn",_final,_global];
From 07f31d624c688f40416f8e0833e7f6fca448e275 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 21 Oct 2018 13:01:14 +0200
Subject: [PATCH 025/267] Air radar and hud fix
---
Addons/Strat_mode/Radar/AIRR_obj_handler.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/Radar/AIRR_obj_handler.sqf b/Addons/Strat_mode/Radar/AIRR_obj_handler.sqf
index fe5172db2..a3bbd44b8 100644
--- a/Addons/Strat_mode/Radar/AIRR_obj_handler.sqf
+++ b/Addons/Strat_mode/Radar/AIRR_obj_handler.sqf
@@ -26,7 +26,7 @@ if (! _adv_net) then {
_alt=((getposASL _vehicle) select 2 ) min ((getposATL _vehicle) select 2 );
if ( ([_vehicle,_radar] call BIS_fnc_distance2D) < Radar_Range && _alt >= Min_Alt && !(terrainIntersect [_top_radar,(getPosATL _vehicle)]) && ((_sl getVariable "CTI_HUD_SHARED") findif {_x select 0 == _vehicle && _x select 1 > time}) > -1 && !((_vehicle getvariable ["CTI_Net",-10]) == (_side call CTI_CO_FNC_GetSideID)) ) then {
//diag_log format [":: AIR Radar ::%1::%2:: Detected by %3",_vehicle,_side,_radar];
- ["SERVER", "Server_Hud_Share_Add",[[_vehicle],_side]] call CTI_CO_FNC_NetSend; //we use the netPV to not do strange stuff
+ ["SERVER", "Server_Hud_Share_Add",[[[_vehicle,time +90+ random 20]],_side]] call CTI_CO_FNC_NetSend; //we use the netPV to not do strange stuff
[["CLIENT",_side], "Client_AIRR_touched"] call CTI_CO_FNC_NetSend;//for the hud
};
sleep 10;
From ae12363b4adda785a1bdf632b20dbca4ae8002ae Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 21 Oct 2018 17:20:59 +0200
Subject: [PATCH 026/267] Double unschedule encapsulation removed
---
Addons/Strat_mode/init.sqf | 66 +++++++++++++++++++-------------------
1 file changed, 33 insertions(+), 33 deletions(-)
diff --git a/Addons/Strat_mode/init.sqf b/Addons/Strat_mode/init.sqf
index 0ca7a47c9..07fee4d8c 100644
--- a/Addons/Strat_mode/init.sqf
+++ b/Addons/Strat_mode/init.sqf
@@ -152,39 +152,39 @@ if (CTI_IsServer) then {
CTI_PVF_Server_Hud_Share_Add= {
- _this spawn {
- _sl= (_this select 1) call CTI_CO_FNC_GetSideLogic;
- while {HUD_WRITE} do {sleep random (1);};
- HUD_WRITE=true;
- _hud =_sl getVariable ["CTI_HUD_SHARED",[]];
-
-
- //cleanup
- _delete=+ [];
- {
- _obj = _x select 0;
- _timeout= _x select 1;
- if( isNull _obj || time > _timeout) then {_delete pushBack _forEachIndex;};
- } forEach _hud;
-
- {_hud deleteAt _x;true} count _delete;
- //new objects
- {
- _new_obj= _x select 0;
- _new_timeout= _x select 1;
- _find=(_hud findif {_x select 0 == _new_obj});
- if (_find == -1) then {
- _hud pushBack _x;
- _new_obj setVariable ["CTI_HUD_Detected",_new_timeout,true];
- };
- true
- }count (_this select 0);
-
-
-
- _sl setVariable ["CTI_HUD_SHARED",_hud,true];
- HUD_WRITE=false;
- };
+
+ _sl= (_this select 1) call CTI_CO_FNC_GetSideLogic;
+ while {HUD_WRITE} do {sleep random (1);};
+ HUD_WRITE=true;
+ _hud =_sl getVariable ["CTI_HUD_SHARED",[]];
+
+
+ //cleanup
+ _delete=+ [];
+ {
+ _obj = _x select 0;
+ _timeout= _x select 1;
+ if( isNull _obj || time > _timeout) then {_delete pushBack _forEachIndex;};
+ } forEach _hud;
+
+ {_hud deleteAt _x;true} count _delete;
+ //new objects
+ {
+ _new_obj= _x select 0;
+ _new_timeout= _x select 1;
+ _find=(_hud findif {_x select 0 == _new_obj});
+ if (_find == -1) then {
+ _hud pushBack _x;
+ _new_obj setVariable ["CTI_HUD_Detected",_new_timeout,true];
+ };
+ true
+ }count (_this select 0);
+
+
+
+ _sl setVariable ["CTI_HUD_SHARED",_hud,true];
+ HUD_WRITE=false;
+
};
From 8c02f0842b10a1ffe04a6c080e4f7cf634e56e06 Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Mon, 22 Oct 2018 00:17:22 +0200
Subject: [PATCH 027/267] updated logged, 2 stupid mixups -,-
---
Server/FSM/update_victory.fsm | 8 ++++----
Server/Init/Init_Server.sqf | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Server/FSM/update_victory.fsm b/Server/FSM/update_victory.fsm
index b0f4aceca..c959b38c0 100644
--- a/Server/FSM/update_victory.fsm
+++ b/Server/FSM/update_victory.fsm
@@ -15,8 +15,8 @@ link3[] = {2,4};
link4[] = {4,5};
link5[] = {5,6};
link6[] = {6,3};
-globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-620.422607,163.824570,138.236649,-571.857727,973,885,1};
-window[] = {2,-1,-1,-1,-1,1015,234,1489,234,3,991};
+globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-620.422607,163.824570,138.236649,-571.857727,973,884,1};
+window[] = {2,-1,-1,-1,-1,937,156,1411,156,3,991};
*//*%FSM*/
class FSM
{
@@ -79,8 +79,7 @@ class FSM
" {_townvalue=_townvalue+ (_x getVariable ""cti_town_value""); } ForEach ((_x) call CTI_CO_FNC_GetFriendlyTowns);" \n
" _factories = 0;" \n
" {_factories = _factories + count([_x, _structures] call CTI_CO_FNC_GetSideStructuresByType)} forEach (missionNamespace getVariable format[""CTI_%1_Factories"", _side]);" \n
- " if (( ( time > _max_time && _max_time != 0) || !(alive _hq) && _victory_hq == 1 || (!(alive _hq) && _factories == 0)) && !CTI_GameOver) exitWith {" \n
- " diag_log [""CTI_Mission_Performance: GameOver win"", _x]; " \n
+ " if (( ( time > _max_time && _max_time != 0) || !(alive _hq) && _victory_hq == 1 || (!(alive _hq) && _factories == 0)) && !CTI_GameOver) exitWith { " \n
" [""CLIENT"", ""Client_OnMissionEnding"", [_x, ""loose""]] call CTI_CO_FNC_NetSend;" \n
"" \n
" profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
@@ -89,6 +88,7 @@ class FSM
" CTI_GameOver = true;" \n
" };" \n
" if (_towns == _total && !CTI_GameOver) exitWith {" \n
+ " diag_log [""CTI_Mission_Performance: GameOver win"", _x];" \n
" [""CLIENT"", ""Client_OnMissionEnding"", [_x, ""win""]] call CTI_CO_FNC_NetSend;" \n
"" \n
" profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index 6354a8cef..50032154c 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -324,8 +324,8 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
["score_west", (scoreSide west)],
["hud_count_east", _hud_east],
["hud_count_west", _hud_west],
- ["player_count_east", (west countSide allPlayers)],
- ["player_count_west", (east countSide allPlayers)],
+ ["player_count_east", (east countSide allPlayers)],
+ ["player_count_west", (west countSide allPlayers)],
["commander_east", (name leader ((east) call CTI_CO_FNC_GetSideCommander))],
["commander_west", (name leader ((west) call CTI_CO_FNC_GetSideCommander))],
["town_count_east", ((east) call CTI_CO_FNC_GetSideTownCount)],
From b94bbfdc5d3f6c72dd2492e7cf78ee2b69dd6e13 Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Mon, 22 Oct 2018 18:02:46 +0200
Subject: [PATCH 028/267] added info on losing
---
Server/FSM/update_victory.fsm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/Server/FSM/update_victory.fsm b/Server/FSM/update_victory.fsm
index c959b38c0..25d06a1c6 100644
--- a/Server/FSM/update_victory.fsm
+++ b/Server/FSM/update_victory.fsm
@@ -15,8 +15,8 @@ link3[] = {2,4};
link4[] = {4,5};
link5[] = {5,6};
link6[] = {6,3};
-globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-620.422607,163.824570,138.236649,-571.857727,973,884,1};
-window[] = {2,-1,-1,-1,-1,937,156,1411,156,3,991};
+globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-620.422607,163.824570,138.236649,-571.857727,635,884,1};
+window[] = {2,-1,-1,-1,-1,833,52,1307,52,3,653};
*//*%FSM*/
class FSM
{
@@ -80,6 +80,7 @@ class FSM
" _factories = 0;" \n
" {_factories = _factories + count([_x, _structures] call CTI_CO_FNC_GetSideStructuresByType)} forEach (missionNamespace getVariable format[""CTI_%1_Factories"", _side]);" \n
" if (( ( time > _max_time && _max_time != 0) || !(alive _hq) && _victory_hq == 1 || (!(alive _hq) && _factories == 0)) && !CTI_GameOver) exitWith { " \n
+ " diag_log [""CTI_Mission_Performance: GameOver losse"", _x]; " \n
" [""CLIENT"", ""Client_OnMissionEnding"", [_x, ""loose""]] call CTI_CO_FNC_NetSend;" \n
"" \n
" profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
From bd20f6b128c84aa6740564ffd66d2d8cce701ceb Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Thu, 25 Oct 2018 19:08:02 +0200
Subject: [PATCH 029/267] updated logger
---
Server/Init/Init_Server.sqf | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index 50032154c..feb13ac38 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -314,27 +314,27 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
sleep 100; //wait for everything to finish loading
diag_log "CTI_Mission_Performance: Starting Server";
while {!CTI_GameOver} do {
- _hud_east = count (((east) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_HUD_SHARED",[]]);
- _hud_west = count (((west) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_HUD_SHARED",[]]);
-
+ _towns = count(((east) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_ACTIVE",[]]) + count(((west) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_ACTIVE",[]]);
+
_arr = ["CTI_Mission_Performance:",
["time", time],
["fps", diag_fps],
["score_east", (scoreSide east)],
["score_west", (scoreSide west)],
- ["hud_count_east", _hud_east],
- ["hud_count_west", _hud_west],
["player_count_east", (east countSide allPlayers)],
["player_count_west", (west countSide allPlayers)],
["commander_east", (name leader ((east) call CTI_CO_FNC_GetSideCommander))],
["commander_west", (name leader ((west) call CTI_CO_FNC_GetSideCommander))],
["town_count_east", ((east) call CTI_CO_FNC_GetSideTownCount)],
["town_count_west", ((west) call CTI_CO_FNC_GetSideTownCount)],
- ["active_SQF_count", count(diag_activeSQFScripts)]
+ ["active_SQF_count", count(diag_activeSQFScripts)],
+ ["active_AI", count(allUnits)],
+ ["total_objects", count(allMissionObjects "All")],
+ ["active_towns", _towns]
];
diag_log _arr;
- sleep 600;
+ sleep 60;
};
diag_log "CTI_Mission_Performance: Stopping Server";
};
From e7f5c147f65d21a2f1d04754dc664a9f130b90c6 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sat, 3 Nov 2018 14:26:40 +0100
Subject: [PATCH 030/267] Increased speed of loading process
---
Addons/Strat_mode/Functions/PERS_Load.sqf | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/Addons/Strat_mode/Functions/PERS_Load.sqf b/Addons/Strat_mode/Functions/PERS_Load.sqf
index c6c6e89a0..9ec784b4e 100644
--- a/Addons/Strat_mode/Functions/PERS_Load.sqf
+++ b/Addons/Strat_mode/Functions/PERS_Load.sqf
@@ -31,11 +31,9 @@ diag_log ":: SAVE :: Loading";
//structures
{diag_log format [":: SAVE :: Loading %1",_x];
- sleep 0.2;
_build=[(_x select 0), _side,(_x select 1) select 0 ,(_x select 1) select 1 ] call CTI_SE_FNC_BuildStructure;
- sleep 0.2;
+ sleep 0.1;
_build setvariable ["cti_completion",100,true];
- sleep 0.2;
true
} count (_load select 4);
@@ -55,7 +53,7 @@ diag_log ":: SAVE :: Loading";
} forEach [east,west];
-sleep 0.2;
+
_loadwest = profileNamespace getVariable format ["CTI_SAVE_%1", west];
_loadeast = profileNamespace getVariable format ["CTI_SAVE_%1", east];
@@ -66,7 +64,7 @@ _currenttime = round (daytime);
if (_currenttime > (_loadwest select 8)) then {skipTime ((24 - _currenttime) + (_loadwest select 8));};
if (_currenttime < (_loadwest select 8)) then {skipTime ((_loadwest select 8) - _currenttime);};
-sleep 0.2;
+
//team score west [H]Tom
diag_log format [":: SAVE :: TeamScoreWest",(_loadwest select 9)];
From 086e3aaadc1e7d636f2c5194980978cd01164a79 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 6 Nov 2018 21:26:40 +0100
Subject: [PATCH 031/267] Fix for endgame log saving
---
Server/FSM/update_victory.fsm | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/Server/FSM/update_victory.fsm b/Server/FSM/update_victory.fsm
index 25d06a1c6..192554e92 100644
--- a/Server/FSM/update_victory.fsm
+++ b/Server/FSM/update_victory.fsm
@@ -15,8 +15,8 @@ link3[] = {2,4};
link4[] = {4,5};
link5[] = {5,6};
link6[] = {6,3};
-globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-620.422607,163.824570,138.236649,-571.857727,635,884,1};
-window[] = {2,-1,-1,-1,-1,833,52,1307,52,3,653};
+globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-620.422607,163.824570,138.236649,-571.857727,635,885,1};
+window[] = {2,-1,-1,-1,-1,806,25,1280,25,3,653};
*//*%FSM*/
class FSM
{
@@ -86,7 +86,6 @@ class FSM
" profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
" saveProfileNamespace;" \n
"" \n
- " CTI_GameOver = true;" \n
" };" \n
" if (_towns == _total && !CTI_GameOver) exitWith {" \n
" diag_log [""CTI_Mission_Performance: GameOver win"", _x];" \n
@@ -95,7 +94,6 @@ class FSM
" profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
" saveProfileNamespace;" \n
"" \n
- " CTI_GameOver = true;" \n
" };" \n
" if (_townvalue > (_total_value*0.75) && !CTI_GameOver) exitWith {" \n
" diag_log [""CTI_Mission_Performance: GameOver eco win"", _x];" \n
@@ -103,11 +101,10 @@ class FSM
" " \n
" profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
" saveProfileNamespace;" \n
- "" \n
- " CTI_GameOver = true;" \n
+ " " \n
" };" \n
"} forEach [west, east];" \n
- ""/*%FSM*/;
+ "CTI_GameOver = true;"/*%FSM*/;
precondition = /*%FSM*/""/*%FSM*/;
class Links
{
From cbb8610e03df0250d9d0a65d4bd4cf4d5313d7ce Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 24 Nov 2018 15:49:26 +0100
Subject: [PATCH 032/267] for #259
16 is first contact, 2 is nearest object.
Makes it easier to reach the interaction menu of vehicle when parking on central of building.
---
Client/Init/Init_Client.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Client/Init/Init_Client.sqf b/Client/Init/Init_Client.sqf
index a31c8f7ce..9b8f449d9 100644
--- a/Client/Init/Init_Client.sqf
+++ b/Client/Init/Init_Client.sqf
@@ -260,7 +260,7 @@ TABLET_GET_TARGET={
if (cursortarget iskindof "CAManBase" && ([player,cursortarget] call BIS_fnc_distance2D) <3 ) exitWith {cursortarget};
if (cursortarget == (CTI_P_SideLogic getvariable "cti_hq") && ([player,cursortarget] call BIS_fnc_distance2D) <10 && (isnull attachedTo (CTI_P_SideLogic getvariable "cti_hq") ) ) exitWith {cursortarget};
if (vehicle player != player) exitWith {vehicle player};
- _target = lineintersectsobjs [(eyepos player),(atltoasl screentoworld [0.5,0.5]),objnull,objnull,false,16];
+ _target = lineintersectsobjs [(eyepos player),(atltoasl screentoworld [0.5,0.5]),objnull,objnull,false,2];
if (count _target == 0 && !(cursortarget iskindof "CAManBase") && ( [player,cursortarget] call BIS_fnc_distance2D) <8) exitWith {cursortarget};
if ((count _target) == 0) exitWith {player};
if (( [player,(_target select 0)] call BIS_fnc_distance2D) > 8) exitWith {player};
From a8e20f82ad44f670af7042dae2692f3c57943f29 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 24 Nov 2018 16:51:16 +0100
Subject: [PATCH 033/267] for #220
---
Common/Functions/Common_CreateVehicle.sqf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Common/Functions/Common_CreateVehicle.sqf b/Common/Functions/Common_CreateVehicle.sqf
index a4ac1dd94..e1f2d654c 100644
--- a/Common/Functions/Common_CreateVehicle.sqf
+++ b/Common/Functions/Common_CreateVehicle.sqf
@@ -104,9 +104,9 @@ if (isNull _created) then {
if (count _free > 0) then {_vehicle setPos (selectRandom _free);} else {_vehicle setPos (getPos _vehicle);};
};
- if (_vehicle isKindOf "SHIP" && _side != CTI_RESISTANCE_ID) then {
+ if (_vehicle isKindOf "SHIP" && _side != CTI_RESISTANCE_ID && !(surfaceIsWater position _vehicle)) then {
_wp = [getPos _vehicle, 0, 75, 7, 2, 1, 0] call BIS_fnc_findSafePos;
- if (count _wp == 0) then {_wp = getPos _vehicle};
+ if (count _wp == 0 || !(surfaceIsWater _wp)) then {_wp = getPos _vehicle;};
_vehicle setPos _wp;
};
From 2cbba6b4f2180846825ac740331bb14214c945bf Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Mon, 3 Dec 2018 20:07:52 +0100
Subject: [PATCH 034/267] ADR-97
V1.0
---
Common/Config/Gear/Gear_East.sqf | 36 ++++++++++++++++++++++++++++++++
Common/Config/Gear/Gear_West.sqf | 36 ++++++++++++++++++++++++++++++++
2 files changed, 72 insertions(+)
diff --git a/Common/Config/Gear/Gear_East.sqf b/Common/Config/Gear/Gear_East.sqf
index 103bff484..51b4d15c0 100644
--- a/Common/Config/Gear/Gear_East.sqf
+++ b/Common/Config/Gear/Gear_East.sqf
@@ -118,6 +118,10 @@ _i = _i + ["30Rnd_545x39_Mag_Tracer_Green_F"];
_u = _u + [0];
_p = _p + [20];
+_i = _i + ["50Rnd_570x28_SMG_03"];
+_u = _u + [0];
+_p = _p + [20];
+
//Rifles Ammo
_i = _i + ["30Rnd_556x45_Stanag_red"];
_u = _u + [0];
@@ -380,6 +384,38 @@ _i = _i + ["SMG_02_F"];
_u = _u + [0];
_p = _p + [10];
+_i = _i + ["SMG_03C_black"];
+_u = _u + [0];
+_p = _p + [15];
+
+_i = _i + ["SMG_03C_hex"];
+_u = _u + [0];
+_p = _p + [15];
+
+_i = _i + ["SMG_03_black"];
+_u = _u + [0];
+_p = _p + [15];
+
+_i = _i + ["SMG_03_hex"];
+_u = _u + [0];
+_p = _p + [15];
+
+_i = _i + ["SMG_03C_TR_black"];
+_u = _u + [1];
+_p = _p + [20];
+
+_i = _i + ["SMG_03C_TR_hex"];
+_u = _u + [1];
+_p = _p + [20];
+
+_i = _i + ["SMG_03_TR_black"];
+_u = _u + [1];
+_p = _p + [20];
+
+_i = _i + ["SMG_03_TR_hex"];
+_u = _u + [1];
+_p = _p + [20];
+
_i = _i + ["arifle_AKS_F"];
_u = _u + [0];
_p = _p + [30];
diff --git a/Common/Config/Gear/Gear_West.sqf b/Common/Config/Gear/Gear_West.sqf
index c9dfc980e..6067c62a1 100644
--- a/Common/Config/Gear/Gear_West.sqf
+++ b/Common/Config/Gear/Gear_West.sqf
@@ -130,6 +130,10 @@ _i = _i + ["30Rnd_45ACP_Mag_SMG_01_tracer_green"];
_u = _u + [0];
_p = _p + [10];
+_i = _i + ["50Rnd_570x28_SMG_03"];
+_u = _u + [0];
+_p = _p + [20];
+
//Rifles Ammo
_i = _i + ["30Rnd_65x39_caseless_mag"];
_u = _u + [1];
@@ -428,6 +432,38 @@ _i = _i + ["SMG_05_F"];
_u = _u + [0];
_p = _p + [15];
+_i = _i + ["SMG_03C_black"];
+_u = _u + [0];
+_p = _p + [15];
+
+_i = _i + ["SMG_03C_khaki"];
+_u = _u + [0];
+_p = _p + [15];
+
+_i = _i + ["SMG_03_black"];
+_u = _u + [0];
+_p = _p + [15];
+
+_i = _i + ["SMG_03_khaki"];
+_u = _u + [0];
+_p = _p + [15];
+
+_i = _i + ["SMG_03C_TR_black"];
+_u = _u + [1];
+_p = _p + [20];
+
+_i = _i + ["SMG_03C_TR_khaki"];
+_u = _u + [1];
+_p = _p + [20];
+
+_i = _i + ["SMG_03_TR_black"];
+_u = _u + [1];
+_p = _p + [20];
+
+_i = _i + ["SMG_03_TR_khaki"];
+_u = _u + [1];
+_p = _p + [20];
+
_i = _i + ["arifle_Mk20_plain_F"];
_u = _u + [0];
_p = _p + [30];
From bcc6d4254a797fbb210088215940d957e88acc3f Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Mon, 3 Dec 2018 20:39:12 +0100
Subject: [PATCH 035/267] Update update_victory.fsm
---
Server/FSM/update_victory.fsm | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/Server/FSM/update_victory.fsm b/Server/FSM/update_victory.fsm
index 192554e92..693775e07 100644
--- a/Server/FSM/update_victory.fsm
+++ b/Server/FSM/update_victory.fsm
@@ -16,7 +16,7 @@ link4[] = {4,5};
link5[] = {5,6};
link6[] = {6,3};
globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-620.422607,163.824570,138.236649,-571.857727,635,885,1};
-window[] = {2,-1,-1,-1,-1,806,25,1280,25,3,653};
+window[] = {2,-1,-1,-1,-1,931,150,1405,150,3,653};
*//*%FSM*/
class FSM
{
@@ -70,6 +70,9 @@ class FSM
"_max_time = missionNamespace getVariable ""CTI_MAX_MISSION_TIME"";" \n
"_max_time=_max_time*60*60; // cycle for loadgame - time limit [H]Tom" \n
"" \n
+ "" \n
+ "_end=false;" \n
+ "" \n
"{" \n
" _side = _x;" \n
" _hq = (_x) call CTI_CO_FNC_GetSideHQ;" \n
@@ -82,29 +85,28 @@ class FSM
" if (( ( time > _max_time && _max_time != 0) || !(alive _hq) && _victory_hq == 1 || (!(alive _hq) && _factories == 0)) && !CTI_GameOver) exitWith { " \n
" diag_log [""CTI_Mission_Performance: GameOver losse"", _x]; " \n
" [""CLIENT"", ""Client_OnMissionEnding"", [_x, ""loose""]] call CTI_CO_FNC_NetSend;" \n
- "" \n
- " profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
- " saveProfileNamespace;" \n
+ " _end=true;" \n
"" \n
" };" \n
" if (_towns == _total && !CTI_GameOver) exitWith {" \n
" diag_log [""CTI_Mission_Performance: GameOver win"", _x];" \n
" [""CLIENT"", ""Client_OnMissionEnding"", [_x, ""win""]] call CTI_CO_FNC_NetSend;" \n
- "" \n
- " profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
- " saveProfileNamespace;" \n
+ " _end=true;" \n
"" \n
" };" \n
" if (_townvalue > (_total_value*0.75) && !CTI_GameOver) exitWith {" \n
" diag_log [""CTI_Mission_Performance: GameOver eco win"", _x];" \n
" [""CLIENT"", ""Client_OnMissionEnding"", [_x, ""win""]] call CTI_CO_FNC_NetSend;" \n
- " " \n
- " profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
- " saveProfileNamespace;" \n
- " " \n
+ " _end=true;" \n
" };" \n
"} forEach [west, east];" \n
- "CTI_GameOver = true;"/*%FSM*/;
+ "" \n
+ "if (_end) then {" \n
+ "" \n
+ " CTI_GameOver = true;" \n
+ " profileNamespace setVariable [""CTI_SAVE_ENABLED"",false];" \n
+ " saveProfileNamespace;" \n
+ "};"/*%FSM*/;
precondition = /*%FSM*/""/*%FSM*/;
class Links
{
@@ -154,7 +156,7 @@ class FSM
{
name = "Sleep";
itemno = 5;
- init = /*%FSM*/"_endtime=time+10;" \n
+ init = /*%FSM*/"_endtime=time+5;" \n
""/*%FSM*/;
precondition = /*%FSM*/""/*%FSM*/;
class Links
From 82e0c37d9a5fd13b070b5bd3d7fceb9765188bb5 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Mon, 3 Dec 2018 22:04:22 +0100
Subject: [PATCH 036/267] MADE_FOR changes
extended islands
---
Addons/Strat_mode/Functions/SM_Connect.sqf | 2 +-
Addons/Strat_mode/Functions/SM_F_TownDrawConnect.sqf | 2 +-
Addons/Strat_mode/Functions/SM_Mortar.sqf | 4 ++--
Common/Config/Base/Base_East.sqf | 10 +++++-----
Common/Config/Base/Base_West.sqf | 10 +++++-----
Common/Config/Gear/Gear_East.sqf | 2 +-
Common/Config/Gear/Gear_West.sqf | 2 +-
Common/Init/Init_CommonConstants.sqf | 12 ++++++------
init.sqf | 2 +-
9 files changed, 23 insertions(+), 23 deletions(-)
diff --git a/Addons/Strat_mode/Functions/SM_Connect.sqf b/Addons/Strat_mode/Functions/SM_Connect.sqf
index 7e62081b1..019abdce9 100644
--- a/Addons/Strat_mode/Functions/SM_Connect.sqf
+++ b/Addons/Strat_mode/Functions/SM_Connect.sqf
@@ -21,7 +21,7 @@ _dir = atan ( _xdif / _ydif );
_name = format ["CM_%1_%2",floor(time),floor(random(1000))];
_type = "RECTANGLE";
-_l=if !(MADE_FOR_STRATIS) then {20} else {10};
+_l = if (ISLAND != 1) then {20} else {10};
_marker = CreateMarkerLocal [_name, _pos];
_marker setMarkerShapeLocal "RECTANGLE";
diff --git a/Addons/Strat_mode/Functions/SM_F_TownDrawConnect.sqf b/Addons/Strat_mode/Functions/SM_F_TownDrawConnect.sqf
index 41d13298f..2c4c2d2d3 100644
--- a/Addons/Strat_mode/Functions/SM_F_TownDrawConnect.sqf
+++ b/Addons/Strat_mode/Functions/SM_F_TownDrawConnect.sqf
@@ -8,7 +8,7 @@ if (!(CTI_P_SideJoined == resistance))then {
_neigh= _ct getVariable "CTI_Neigh";
sleep 0.3;
};
- _o=if !(MADE_FOR_STRATIS) then {500} else {0};
+ _o = if (ISLAND != 1) then {500} else {0};
{
[getPos _ct,getPos _x,"ColorBlack",_o] call CTI_SM_Connect;
} forEach _neigh;
diff --git a/Addons/Strat_mode/Functions/SM_Mortar.sqf b/Addons/Strat_mode/Functions/SM_Mortar.sqf
index 802a10bda..dafddc44d 100644
--- a/Addons/Strat_mode/Functions/SM_Mortar.sqf
+++ b/Addons/Strat_mode/Functions/SM_Mortar.sqf
@@ -16,7 +16,7 @@ _maingrouploop={
_target=[];
_group=_this select 1;
_town_groups=_this select 2;
- _to_mortar=if !(MADE_FOR_STRATIS) then {120} else {60};
+ _to_mortar=if (ISLAND != 1) then {120} else {60};
diag_log format [ ":: MORTAR :: Starting mortar from group %1 for town %2 linked to %3", _group,_town,_town_groups];
while {count(_group call CTI_CO_FNC_GetLiveUnits)>0 &&( _town getVariable "cti_town_sideID")==CTI_RESISTANCE_ID && (_town getVariable "cti_town_resistance_active")} do
{
@@ -53,7 +53,7 @@ _group= createGroup resistance;
_pos= [_town,1000,1500] call CTI_CO_FNC_GetRandomPosition;
_mp=[];
-_max_mortar=if !(MADE_FOR_STRATIS) then {3} else {1};
+_max_mortar=if (ISLAND != 1) then {3} else {1};
for "_x" from 1 to _max_mortar do {
_pos2= [_pos,100,400] call CTI_CO_FNC_GetRandomPosition;
diff --git a/Common/Config/Base/Base_East.sqf b/Common/Config/Base/Base_East.sqf
index a4500e075..457189389 100644
--- a/Common/Config/Base/Base_East.sqf
+++ b/Common/Config/Base/Base_East.sqf
@@ -36,7 +36,7 @@ missionNamespace setVariable [format["CTI_%1_Commander_Path", _side], [
["upgrade", [CTI_UPGRADE_HALO, 1], {true}],
["build-structures", CTI_RADAR, {true}],
["build-structures", CTI_NAVAL, {true}],
-
+
["upgrade", [CTI_UPGRADE_REST, 1], {true}],
["upgrade", [CTI_UPGRADE_REST, 2], {true}],
["upgrade", [CTI_UPGRADE_REST, 3], {true}],
@@ -54,13 +54,13 @@ missionNamespace setVariable [format["CTI_%1_Commander_Path", _side], [
["upgrade", [CTI_UPGRADE_DATA, 1], {true}],
["upgrade", [CTI_UPGRADE_EXPI, 1], {true}],
["upgrade", [CTI_UPGRADE_EXPI, 2], {true}],
-
+
["upgrade", [CTI_UPGRADE_AIR, 1], {true}],
["upgrade", [CTI_UPGRADE_AIR_CM, 1], {true}],
["upgrade", [CTI_UPGRADE_AIR_AT, 1], {true}],
["upgrade", [CTI_UPGRADE_AIR_FFAR, 1], {true}],
["upgrade", [CTI_UPGRADE_AIR_AA, 1], {true}],
-
+
["upgrade", [CTI_UPGRADE_BARRACKS, 3], {true}],
["upgrade", [CTI_UPGRADE_AAF, 3], {true}],
["upgrade", [CTI_UPGRADE_REST, 4], {true}],
@@ -70,7 +70,7 @@ missionNamespace setVariable [format["CTI_%1_Commander_Path", _side], [
["upgrade", [CTI_UPGRADE_AAF, 4], {true}],
["upgrade", [CTI_UPGRADE_AAF, 5], {true}],
["upgrade", [CTI_UPGRADE_AAF, 6], {true}],
-
+
["upgrade", [CTI_UPGRADE_HEAVY, 2], {true}],
["upgrade", [CTI_UPGRADE_SATELLITE, 1], {true}]
]];
@@ -398,7 +398,7 @@ _classes = _classes + ["O_static_AA_F"];
_prices = _prices + [800];
_placements = _placements + [[180, 5]];
_categories = _categories + ["Defense"];
-if !(MADE_FOR_STRATIS) then {
+if (ISLAND != 1) then {
_headers = _headers + ["Mortar"];
_classes = _classes + ["O_Mortar_01_F"];
_prices = _prices + [3000];
diff --git a/Common/Config/Base/Base_West.sqf b/Common/Config/Base/Base_West.sqf
index 25f3cce80..b0eacd055 100644
--- a/Common/Config/Base/Base_West.sqf
+++ b/Common/Config/Base/Base_West.sqf
@@ -40,7 +40,7 @@ missionNamespace setVariable [format["CTI_%1_Commander_Path", _side], [
["upgrade", [CTI_UPGRADE_HALO, 1], {true}],
["build-structures", CTI_RADAR, {true}],
["build-structures", CTI_NAVAL, {true}],
-
+
["upgrade", [CTI_UPGRADE_REST, 1], {true}],
["upgrade", [CTI_UPGRADE_REST, 2], {true}],
["upgrade", [CTI_UPGRADE_REST, 3], {true}],
@@ -58,13 +58,13 @@ missionNamespace setVariable [format["CTI_%1_Commander_Path", _side], [
["upgrade", [CTI_UPGRADE_DATA, 1], {true}],
["upgrade", [CTI_UPGRADE_EXPI, 1], {true}],
["upgrade", [CTI_UPGRADE_EXPI, 2], {true}],
-
+
["upgrade", [CTI_UPGRADE_AIR, 1], {true}],
["upgrade", [CTI_UPGRADE_AIR_CM, 1], {true}],
["upgrade", [CTI_UPGRADE_AIR_AT, 1], {true}],
["upgrade", [CTI_UPGRADE_AIR_FFAR, 1], {true}],
["upgrade", [CTI_UPGRADE_AIR_AA, 1], {true}],
-
+
["upgrade", [CTI_UPGRADE_BARRACKS, 3], {true}],
["upgrade", [CTI_UPGRADE_AAF, 3], {true}],
["upgrade", [CTI_UPGRADE_REST, 4], {true}],
@@ -74,7 +74,7 @@ missionNamespace setVariable [format["CTI_%1_Commander_Path", _side], [
["upgrade", [CTI_UPGRADE_AAF, 4], {true}],
["upgrade", [CTI_UPGRADE_AAF, 5], {true}],
["upgrade", [CTI_UPGRADE_AAF, 6], {true}],
-
+
["upgrade", [CTI_UPGRADE_HEAVY, 2], {true}],
["upgrade", [CTI_UPGRADE_SATELLITE, 1], {true}]
]];
@@ -400,7 +400,7 @@ _classes = _classes + ["B_static_AA_F"];
_prices = _prices + [800];
_placements = _placements + [[180, 5]];
_categories = _categories + ["Defense"];
-if !(MADE_FOR_STRATIS) then {
+if (ISLAND != 1) then {
_headers = _headers + ["Mortar"];
_classes = _classes + ["B_Mortar_01_F"];
_prices = _prices + [3000];
diff --git a/Common/Config/Gear/Gear_East.sqf b/Common/Config/Gear/Gear_East.sqf
index 51b4d15c0..08eb17753 100644
--- a/Common/Config/Gear/Gear_East.sqf
+++ b/Common/Config/Gear/Gear_East.sqf
@@ -845,7 +845,7 @@ _i = _i + ["B_ViperLightHarness_oli_F"];
_u = _u + [2];
_p = _p + [100];
-if !(MADE_FOR_STRATIS) then {
+if (ISLAND != 1) then {
_i = _i + ["O_Mortar_01_support_F"];
_u = _u + [3];
_p = _p + [5];
diff --git a/Common/Config/Gear/Gear_West.sqf b/Common/Config/Gear/Gear_West.sqf
index 6067c62a1..4ab8b3255 100644
--- a/Common/Config/Gear/Gear_West.sqf
+++ b/Common/Config/Gear/Gear_West.sqf
@@ -1021,7 +1021,7 @@ _i = _i + ["B_Static_Designator_01_weapon_F"];
_u = _u + [2];
_p = _p + [5000];
-if !(MADE_FOR_STRATIS) then {
+if (ISLAND != 1) then {
_i = _i + ["B_Mortar_01_support_F"];
_u = _u + [3];
_p = _p + [5];
diff --git a/Common/Init/Init_CommonConstants.sqf b/Common/Init/Init_CommonConstants.sqf
index 2044f2081..8a9679c11 100644
--- a/Common/Init/Init_CommonConstants.sqf
+++ b/Common/Init/Init_CommonConstants.sqf
@@ -383,8 +383,8 @@ with missionNamespace do {
*/
//--- Base: Area
-//CTI_BASE_AREA_MAX = if !(MADE_FOR_STRATIS) then {4} else {3};
-CTI_BASE_AREA_RANGE = if !(MADE_FOR_STRATIS) then {250} else {100};
+//CTI_BASE_AREA_MAX = if (ISLAND != 1) then {4} else {3};
+CTI_BASE_AREA_RANGE = if (ISLAND != 1) then {250} else {100};
//--- Base: Construction
CTI_BASE_CONSTRUCTION_DECAY_TIMEOUT = 600; //--- Decay starts after x seconds unattended.
@@ -430,8 +430,8 @@ CTI_BASE_WORKERS_WANDER_RANGE_MAX = 225; //--- Worker may wander no further than
//--- Base: Parameters
with missionNamespace do {
- if (isNil 'CTI_BASE_AREA_MAX') then {CTI_BASE_AREA_MAX=if !(MADE_FOR_STRATIS) then {4} else {3};};
- if (isNil 'CTI_BASE_AREA_RANGE') then {CTI_BASE_AREA_MAX=if !(MADE_FOR_STRATIS) then {250} else {100};};
+ if (isNil 'CTI_BASE_AREA_MAX') then {CTI_BASE_AREA_MAX = if (ISLAND != 1) then {4} else {3};};
+ if (isNil 'CTI_BASE_AREA_RANGE') then {CTI_BASE_AREA_MAX = if (ISLAND != 1) then {250} else {100};};
if (isNil 'CTI_BASE_FOB_MAX') then {CTI_BASE_FOB_MAX = 4}; //--- Maximum amount of FOBs which a side may place
if (isNil 'CTI_BASE_HQ_REPAIR') then {CTI_BASE_HQ_REPAIR = 1}; //--- Determine whether the HQ can be repaired or not
if (isNil 'CTI_BASE_STARTUP_PLACEMENT') then {CTI_BASE_STARTUP_PLACEMENT = 10000}; //--- Each side need to be further than x meters
@@ -501,7 +501,7 @@ CTI_ARTILLERY_TIMEOUT = 180; //--- Delay between each fire mission
CTI_ECONOMY_POOL_RESOURCES_PERCENTAGE_MIN = 30; //--- Keep values of 10
CTI_MARKERS_OPACITY = 0.5;
-CTI_MARKERS_TOWN_AREA_RANGE = if !(MADE_FOR_STRATIS) then {250} else {150};
+CTI_MARKERS_TOWN_AREA_RANGE = if (ISLAND != 1) then {250} else {150};
CTI_MARKERS_UNITS_DEAD_DELAY = 50;
CTI_MARKERS_VEHICLES_DEAD_DELAY = 125;
@@ -552,7 +552,7 @@ CTI_HALO_COOLDOWN = 20*60;
CTI_HALO_LASTTIME=-CTI_HALO_COOLDOWN;
CTI_HALO_ALTITUDE = 3000;
CTI_HALO_RATIO = 3;
-CTI_UPGRADE_RATIO=if !(MADE_FOR_STRATIS) then {7} else {2};
+CTI_UPGRADE_RATIO = if (ISLAND != 1) then {7} else {2};
CTI_VOTE_RATIO=0.51;
diff --git a/init.sqf b/init.sqf
index 0274e1ea6..804a49ac4 100644
--- a/init.sqf
+++ b/init.sqf
@@ -4,7 +4,7 @@ setObjectViewDistance 4000;
NET_LOG=False;
-MADE_FOR_STRATIS=false;
+ISLAND = 2; //--- 1: Stratis, 2: Altis, 3: Tanoa, 4: Malden, 5: VR
//--- Early definition, will be override later on in the init files.
CTI_P_SideJoined = civilian;
From 621446d5587f959ffe94697d1ca480335acc1277 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Mon, 3 Dec 2018 22:05:20 +0100
Subject: [PATCH 037/267] MADE_FOR changes
extended islands
From a2800bfac7c5881579f5bab81375d60639e81055 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Mon, 17 Dec 2018 16:23:53 +0100
Subject: [PATCH 038/267] + Save current island
---
Addons/Strat_mode/Functions/PERS_Load.sqf | 2 +-
Addons/Strat_mode/Functions/PERS_save.sqf | 2 ++
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/Functions/PERS_Load.sqf b/Addons/Strat_mode/Functions/PERS_Load.sqf
index 9ec784b4e..88f6a9d6b 100644
--- a/Addons/Strat_mode/Functions/PERS_Load.sqf
+++ b/Addons/Strat_mode/Functions/PERS_Load.sqf
@@ -1,6 +1,6 @@
diag_log " :: SAVE :: Trying to load";
_towns = profileNamespace getVariable ["CTI_SAVE_TOWNS",[]];
-if (count _towns != count CTI_TOWNS) exitWith {diag_log " :: SAVE :: Loading fail";};
+if (count _towns != count CTI_TOWNS) exitWith {diag_log " :: SAVE :: Loading fail / Island changed";};
diag_log ":: SAVE :: Loading";
{ _x setVariable ["cti_town_lastSideID", (_towns select _foreachindex) select 0, true];[_x, ((_towns select _foreachindex) select 1) call CTI_CO_FNC_GetSideFromID] call CTI_SE_FNC_OnTownCaptured;true }foreach (CTI_TOWNS);
diff --git a/Addons/Strat_mode/Functions/PERS_save.sqf b/Addons/Strat_mode/Functions/PERS_save.sqf
index 69cfd5b13..bc4d74fdb 100644
--- a/Addons/Strat_mode/Functions/PERS_save.sqf
+++ b/Addons/Strat_mode/Functions/PERS_save.sqf
@@ -47,6 +47,8 @@ profileNamespace setVariable ["CTI_SAVE_TOWNS",_towns];
_time = round (time/60);
_left = ((_limit * 60) - _time);
_save pushBack _left;
+ //save current island [H]Tom
+ _save pushBack ISLAND;
profileNamespace setVariable [format ["CTI_SAVE_%1", _side],_save];
From fadc64aa74950967937aa0f4ab7ef13b5511862a Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Tue, 18 Dec 2018 16:03:52 +0100
Subject: [PATCH 039/267] Some changes for malden
---
Addons/Strat_mode/init.sqf | 6 +++++-
Server/Init/Init_Server.sqf | 8 ++++----
init.sqf | 2 +-
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/Addons/Strat_mode/init.sqf b/Addons/Strat_mode/init.sqf
index 07fee4d8c..894002ea9 100644
--- a/Addons/Strat_mode/init.sqf
+++ b/Addons/Strat_mode/init.sqf
@@ -273,7 +273,11 @@ if (CTI_IsServer) then {
};
//skipTime _it;
//[H]Tom - loading saved time
- if (!(profileNamespace getvariable ["CTI_SAVE_ENABLED",false])) then {skipTime _it;};
+ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
+ if (!(profileNamespace getvariable ["CTI_SAVE_ENABLED",false]) || ISLAND != (profileNamespace getVariable format ["CTI_SAVE_%1", west] select 12)) then {skipTime _it;};
+ } else {
+ skipTime _it;
+ };
// dynamic wheather
0 spawn WEATHER_HOOK;
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index feb13ac38..bbe075adc 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -163,7 +163,7 @@ while {! (((getMarkerPos format ["HELO_START_%1", _i])select 0) == 0)} do
if (CTI_BASE_FOB_MAX > 0) then {_logic setVariable ["cti_fobs", [], true]};
//--- Startup vehicles
- if (!(profileNamespace getvariable ["CTI_SAVE_ENABLED",false])) then {
+ if (missionNamespace getvariable "CTI_PERSISTANT" != 1 || (missionNamespace getvariable "CTI_PERSISTANT" == 1 && !(profileNamespace getvariable ["CTI_SAVE_ENABLED",false])) || (missionNamespace getvariable "CTI_PERSISTANT" == 1 && (profileNamespace getvariable ["CTI_SAVE_ENABLED",false]) && ISLAND != (profileNamespace getVariable format ["CTI_SAVE_%1", west] select 12))) then {
{
_model = _x select 0;
_equipment = _x select 1;
@@ -315,9 +315,9 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
diag_log "CTI_Mission_Performance: Starting Server";
while {!CTI_GameOver} do {
_towns = count(((east) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_ACTIVE",[]]) + count(((west) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_ACTIVE",[]]);
-
+
_arr = ["CTI_Mission_Performance:",
- ["time", time],
+ ["time", time],
["fps", diag_fps],
["score_east", (scoreSide east)],
["score_west", (scoreSide west)],
@@ -332,7 +332,7 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
["total_objects", count(allMissionObjects "All")],
["active_towns", _towns]
];
-
+
diag_log _arr;
sleep 60;
};
diff --git a/init.sqf b/init.sqf
index 804a49ac4..3172847be 100644
--- a/init.sqf
+++ b/init.sqf
@@ -103,7 +103,7 @@ if (CTI_IsServer) then {
// load player saved informations
CTI_PLAYER_VARIABLES=[];
if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
- if (profileNamespace getvariable ["CTI_SAVE_ENABLED",false]) then {
+ if (profileNamespace getvariable ["CTI_SAVE_ENABLED",false] && ISLAND == (profileNamespace getVariable format ["CTI_SAVE_%1", west] select 12)) then {
_players= profileNamespace getVariable ["CTI_SAVE_PLAYERS",[]];
{ diag_log format [" :: SAVE ::Loading player %1 ",(_x select 1 )];missionNamespace setVariable [_x select 0,_x select 1];CTI_PLAYER_VARIABLES pushBack (_x select 0); true} count _players;
};
From e96676cf21a565f7b33309e6a52cbf3b6283a129 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 18 Dec 2018 16:15:46 +0100
Subject: [PATCH 040/267] Revert "Some changes for malden"
This reverts commit fadc64aa74950967937aa0f4ab7ef13b5511862a.
---
Addons/Strat_mode/init.sqf | 6 +-----
Server/Init/Init_Server.sqf | 8 ++++----
init.sqf | 2 +-
3 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/Addons/Strat_mode/init.sqf b/Addons/Strat_mode/init.sqf
index 894002ea9..07fee4d8c 100644
--- a/Addons/Strat_mode/init.sqf
+++ b/Addons/Strat_mode/init.sqf
@@ -273,11 +273,7 @@ if (CTI_IsServer) then {
};
//skipTime _it;
//[H]Tom - loading saved time
- if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
- if (!(profileNamespace getvariable ["CTI_SAVE_ENABLED",false]) || ISLAND != (profileNamespace getVariable format ["CTI_SAVE_%1", west] select 12)) then {skipTime _it;};
- } else {
- skipTime _it;
- };
+ if (!(profileNamespace getvariable ["CTI_SAVE_ENABLED",false])) then {skipTime _it;};
// dynamic wheather
0 spawn WEATHER_HOOK;
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index bbe075adc..feb13ac38 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -163,7 +163,7 @@ while {! (((getMarkerPos format ["HELO_START_%1", _i])select 0) == 0)} do
if (CTI_BASE_FOB_MAX > 0) then {_logic setVariable ["cti_fobs", [], true]};
//--- Startup vehicles
- if (missionNamespace getvariable "CTI_PERSISTANT" != 1 || (missionNamespace getvariable "CTI_PERSISTANT" == 1 && !(profileNamespace getvariable ["CTI_SAVE_ENABLED",false])) || (missionNamespace getvariable "CTI_PERSISTANT" == 1 && (profileNamespace getvariable ["CTI_SAVE_ENABLED",false]) && ISLAND != (profileNamespace getVariable format ["CTI_SAVE_%1", west] select 12))) then {
+ if (!(profileNamespace getvariable ["CTI_SAVE_ENABLED",false])) then {
{
_model = _x select 0;
_equipment = _x select 1;
@@ -315,9 +315,9 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
diag_log "CTI_Mission_Performance: Starting Server";
while {!CTI_GameOver} do {
_towns = count(((east) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_ACTIVE",[]]) + count(((west) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_ACTIVE",[]]);
-
+
_arr = ["CTI_Mission_Performance:",
- ["time", time],
+ ["time", time],
["fps", diag_fps],
["score_east", (scoreSide east)],
["score_west", (scoreSide west)],
@@ -332,7 +332,7 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
["total_objects", count(allMissionObjects "All")],
["active_towns", _towns]
];
-
+
diag_log _arr;
sleep 60;
};
diff --git a/init.sqf b/init.sqf
index 3172847be..804a49ac4 100644
--- a/init.sqf
+++ b/init.sqf
@@ -103,7 +103,7 @@ if (CTI_IsServer) then {
// load player saved informations
CTI_PLAYER_VARIABLES=[];
if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
- if (profileNamespace getvariable ["CTI_SAVE_ENABLED",false] && ISLAND == (profileNamespace getVariable format ["CTI_SAVE_%1", west] select 12)) then {
+ if (profileNamespace getvariable ["CTI_SAVE_ENABLED",false]) then {
_players= profileNamespace getVariable ["CTI_SAVE_PLAYERS",[]];
{ diag_log format [" :: SAVE ::Loading player %1 ",(_x select 1 )];missionNamespace setVariable [_x select 0,_x select 1];CTI_PLAYER_VARIABLES pushBack (_x select 0); true} count _players;
};
From ba1dd9c009e9020d336ce0a6d25c9cececc4fc32 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 18 Dec 2018 16:15:50 +0100
Subject: [PATCH 041/267] Revert "+ Save current island"
This reverts commit a2800bfac7c5881579f5bab81375d60639e81055.
---
Addons/Strat_mode/Functions/PERS_Load.sqf | 2 +-
Addons/Strat_mode/Functions/PERS_save.sqf | 2 --
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/Addons/Strat_mode/Functions/PERS_Load.sqf b/Addons/Strat_mode/Functions/PERS_Load.sqf
index 88f6a9d6b..9ec784b4e 100644
--- a/Addons/Strat_mode/Functions/PERS_Load.sqf
+++ b/Addons/Strat_mode/Functions/PERS_Load.sqf
@@ -1,6 +1,6 @@
diag_log " :: SAVE :: Trying to load";
_towns = profileNamespace getVariable ["CTI_SAVE_TOWNS",[]];
-if (count _towns != count CTI_TOWNS) exitWith {diag_log " :: SAVE :: Loading fail / Island changed";};
+if (count _towns != count CTI_TOWNS) exitWith {diag_log " :: SAVE :: Loading fail";};
diag_log ":: SAVE :: Loading";
{ _x setVariable ["cti_town_lastSideID", (_towns select _foreachindex) select 0, true];[_x, ((_towns select _foreachindex) select 1) call CTI_CO_FNC_GetSideFromID] call CTI_SE_FNC_OnTownCaptured;true }foreach (CTI_TOWNS);
diff --git a/Addons/Strat_mode/Functions/PERS_save.sqf b/Addons/Strat_mode/Functions/PERS_save.sqf
index bc4d74fdb..69cfd5b13 100644
--- a/Addons/Strat_mode/Functions/PERS_save.sqf
+++ b/Addons/Strat_mode/Functions/PERS_save.sqf
@@ -47,8 +47,6 @@ profileNamespace setVariable ["CTI_SAVE_TOWNS",_towns];
_time = round (time/60);
_left = ((_limit * 60) - _time);
_save pushBack _left;
- //save current island [H]Tom
- _save pushBack ISLAND;
profileNamespace setVariable [format ["CTI_SAVE_%1", _side],_save];
From 98334392463e53af183b741cbbf892f84205a8db Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 18 Dec 2018 16:19:46 +0100
Subject: [PATCH 042/267] Only load persistance only with same number of towns
---
Addons/Strat_mode/Functions/PERS_Load.sqf | 137 +++++++++++-----------
1 file changed, 71 insertions(+), 66 deletions(-)
diff --git a/Addons/Strat_mode/Functions/PERS_Load.sqf b/Addons/Strat_mode/Functions/PERS_Load.sqf
index 9ec784b4e..b10497484 100644
--- a/Addons/Strat_mode/Functions/PERS_Load.sqf
+++ b/Addons/Strat_mode/Functions/PERS_Load.sqf
@@ -1,84 +1,89 @@
diag_log " :: SAVE :: Trying to load";
_towns = profileNamespace getVariable ["CTI_SAVE_TOWNS",[]];
-if (count _towns != count CTI_TOWNS) exitWith {diag_log " :: SAVE :: Loading fail";};
+if (count _towns == count CTI_TOWNS) then {
-diag_log ":: SAVE :: Loading";
-{ _x setVariable ["cti_town_lastSideID", (_towns select _foreachindex) select 0, true];[_x, ((_towns select _foreachindex) select 1) call CTI_CO_FNC_GetSideFromID] call CTI_SE_FNC_OnTownCaptured;true }foreach (CTI_TOWNS);
+ diag_log ":: SAVE :: Loading";
+ { _x setVariable ["cti_town_lastSideID", (_towns select _foreachindex) select 0, true];[_x, ((_towns select _foreachindex) select 1) call CTI_CO_FNC_GetSideFromID] call CTI_SE_FNC_OnTownCaptured;true }foreach (CTI_TOWNS);
-{
- _side=_x;
- _logic= (_side) call CTI_CO_FNC_GetSideLogic;
- _load=profileNamespace getVariable format ["CTI_SAVE_%1", _side];
-
- //hq
- diag_log format [":: SAVE :: Setting up hq",(_load select 0 )];
- _hq=(_side) call CTI_CO_FNC_GetSideHQ;
- _hq setposATL (((_load select 0 ) select 0)select 0);
- _hq setdir (((_load select 0 ) select 0)select 1);
- if !(((_load select 0 ) select 1)) then {_hq setDamage 1};
-
- // com funds
- diag_log format [":: SAVE :: Setting team funds",(_load select 1 )];
- _logic setvariable ["cti_commander_funds",(_load select 1 ),true];
-
- // upgrades
- diag_log format [":: SAVE :: Loading Upgrades",(_load select 2 )];
- _logic setVariable ["cti_upgrades", (_load select 2 ), true];
-
- //base area
- diag_log format [":: SAVE :: Loading Base areas",(_load select 3 )];
- _logic setVariable ["cti_structures_areas", (_load select 3 ), true];
-
- //structures
- {diag_log format [":: SAVE :: Loading %1",_x];
- _build=[(_x select 0), _side,(_x select 1) select 0 ,(_x select 1) select 1 ] call CTI_SE_FNC_BuildStructure;
- sleep 0.1;
- _build setvariable ["cti_completion",100,true];
- true
- } count (_load select 4);
-
- //WIP structures
- {diag_log format [":: SAVE :: Loading %1",_x]; _build=[(_x select 0), _side,(_x select 1) select 0 ,(_x select 1) select 1 ] call CTI_SE_FNC_BuildStructure;_build setvariable ["cti_completion",100,true];true} count (_load select 5);
-
- //defences
- {diag_log format [":: SAVE :: Loading %1",_x]; [_x select 0, _side,(( _x select 1) select 0), (( _x select 1) select 1),objnull, false, _x select 2] call CTI_SE_FNC_BuildDefense;true} count (_load select 6);
-
- //curent upgrade
- diag_log format [":: SAVE :: Loading upgrade %1",(_load select 7)];
- if (((_load select 7) select 0 ) > -1) then {_logic setvariable ["cti_upgrade_lt",((_load select 7) select 2 ),true]; [_side,((_load select 7) select 0 ), ((_load select 7) select 1 )] spawn CTI_SE_FNC_StartUpgrade; };
-
- //bases found
- diag_log format [":: SAVE :: Loading detected bases %1 for side %2",(_load select 10),_x];
- _logic setVariable ["CTI_BASES_FOUND",(_load select 10),true];
+ {
+ _side=_x;
+ _logic= (_side) call CTI_CO_FNC_GetSideLogic;
+ _load=profileNamespace getVariable format ["CTI_SAVE_%1", _side];
-} forEach [east,west];
+ //hq
+ diag_log format [":: SAVE :: Setting up hq",(_load select 0 )];
+ _hq=(_side) call CTI_CO_FNC_GetSideHQ;
+ _hq setposATL (((_load select 0 ) select 0)select 0);
+ _hq setdir (((_load select 0 ) select 0)select 1);
+ if !(((_load select 0 ) select 1)) then {_hq setDamage 1};
+
+ // com funds
+ diag_log format [":: SAVE :: Setting team funds",(_load select 1 )];
+ _logic setvariable ["cti_commander_funds",(_load select 1 ),true];
+
+ // upgrades
+ diag_log format [":: SAVE :: Loading Upgrades",(_load select 2 )];
+ _logic setVariable ["cti_upgrades", (_load select 2 ), true];
+
+ //base area
+ diag_log format [":: SAVE :: Loading Base areas",(_load select 3 )];
+ _logic setVariable ["cti_structures_areas", (_load select 3 ), true];
+
+ //structures
+ {diag_log format [":: SAVE :: Loading %1",_x];
+ _build=[(_x select 0), _side,(_x select 1) select 0 ,(_x select 1) select 1 ] call CTI_SE_FNC_BuildStructure;
+ sleep 0.1;
+ _build setvariable ["cti_completion",100,true];
+ true
+ } count (_load select 4);
+
+ //WIP structures
+ {diag_log format [":: SAVE :: Loading %1",_x]; _build=[(_x select 0), _side,(_x select 1) select 0 ,(_x select 1) select 1 ] call CTI_SE_FNC_BuildStructure;_build setvariable ["cti_completion",100,true];true} count (_load select 5);
+ //defences
+ {diag_log format [":: SAVE :: Loading %1",_x]; [_x select 0, _side,(( _x select 1) select 0), (( _x select 1) select 1),objnull, false, _x select 2] call CTI_SE_FNC_BuildDefense;true} count (_load select 6);
+ //curent upgrade
+ diag_log format [":: SAVE :: Loading upgrade %1",(_load select 7)];
+ if (((_load select 7) select 0 ) > -1) then {_logic setvariable ["cti_upgrade_lt",((_load select 7) select 2 ),true]; [_side,((_load select 7) select 0 ), ((_load select 7) select 1 )] spawn CTI_SE_FNC_StartUpgrade; };
-_loadwest = profileNamespace getVariable format ["CTI_SAVE_%1", west];
-_loadeast = profileNamespace getVariable format ["CTI_SAVE_%1", east];
+ //bases found
+ diag_log format [":: SAVE :: Loading detected bases %1 for side %2",(_load select 10),_x];
+ _logic setVariable ["CTI_BASES_FOUND",(_load select 10),true];
-//current time [H]Tom
-diag_log format [":: SAVE :: Time",(_loadwest select 8)];
-_currenttime = round (daytime);
-if (_currenttime > (_loadwest select 8)) then {skipTime ((24 - _currenttime) + (_loadwest select 8));};
-if (_currenttime < (_loadwest select 8)) then {skipTime ((_loadwest select 8) - _currenttime);};
+ } forEach [east,west];
-//team score west [H]Tom
-diag_log format [":: SAVE :: TeamScoreWest",(_loadwest select 9)];
-west addScoreSide (_loadwest select 9);
+ _loadwest = profileNamespace getVariable format ["CTI_SAVE_%1", west];
+ _loadeast = profileNamespace getVariable format ["CTI_SAVE_%1", east];
-//team score east [H]Tom
-diag_log format [":: SAVE :: TeamScoreEast",(_loadeast select 9)];
-east addScoreSide (_loadeast select 9);
+ //current time [H]Tom
+ diag_log format [":: SAVE :: Time",(_loadwest select 8)];
+ _currenttime = round (daytime);
+ if (_currenttime > (_loadwest select 8)) then {skipTime ((24 - _currenttime) + (_loadwest select 8));};
+ if (_currenttime < (_loadwest select 8)) then {skipTime ((_loadwest select 8) - _currenttime);};
-//Time Left [H]Tom
-diag_log format [":: SAVE :: TimeLimit",(_loadwest select 11)];
-if (_loadwest select 11 > 0) then {
- missionNamespace setVariable ["CTI_MAX_MISSION_TIME",((_loadwest select 11)/60),true];
+
+
+ //team score west [H]Tom
+ diag_log format [":: SAVE :: TeamScoreWest",(_loadwest select 9)];
+ west addScoreSide (_loadwest select 9);
+
+ //team score east [H]Tom
+ diag_log format [":: SAVE :: TeamScoreEast",(_loadeast select 9)];
+ east addScoreSide (_loadeast select 9);
+
+ //Time Left [H]Tom
+ diag_log format [":: SAVE :: TimeLimit",(_loadwest select 11)];
+ if (_loadwest select 11 > 0) then {
+ missionNamespace setVariable ["CTI_MAX_MISSION_TIME",((_loadwest select 11)/60),true];
+ };
+
+} else {
+ diag_log " :: SAVE :: Loading fail";
};
+
{
_side=_x;
_logic= (_side) call CTI_CO_FNC_GetSideLogic;
From e6aa2b6ac430c87c5c96228cc90e0d4e06c0ae48 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 18 Dec 2018 16:43:45 +0100
Subject: [PATCH 043/267] Prenvent spawning of init vehicles on some conditions
---
Server/Init/Init_Server.sqf | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index feb13ac38..60e802631 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -163,7 +163,7 @@ while {! (((getMarkerPos format ["HELO_START_%1", _i])select 0) == 0)} do
if (CTI_BASE_FOB_MAX > 0) then {_logic setVariable ["cti_fobs", [], true]};
//--- Startup vehicles
- if (!(profileNamespace getvariable ["CTI_SAVE_ENABLED",false])) then {
+ if !((profileNamespace getvariable ["CTI_SAVE_ENABLED",false]) &&(count(profileNamespace getVariable ["CTI_SAVE_TOWNS",[]]) == count CTI_TOWNS)) then { (count (profileNamespace getVariable ["CTI_SAVE_TOWNS",[]]) == count CTI_TOWNS)
{
_model = _x select 0;
_equipment = _x select 1;
@@ -315,9 +315,9 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
diag_log "CTI_Mission_Performance: Starting Server";
while {!CTI_GameOver} do {
_towns = count(((east) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_ACTIVE",[]]) + count(((west) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_ACTIVE",[]]);
-
+
_arr = ["CTI_Mission_Performance:",
- ["time", time],
+ ["time", time],
["fps", diag_fps],
["score_east", (scoreSide east)],
["score_west", (scoreSide west)],
@@ -332,7 +332,7 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
["total_objects", count(allMissionObjects "All")],
["active_towns", _towns]
];
-
+
diag_log _arr;
sleep 60;
};
From bcf608473eb84590dc48f17bc403ff5fd4aa3702 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 18 Dec 2018 16:44:31 +0100
Subject: [PATCH 044/267] Small error
---
Server/Init/Init_Server.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index 60e802631..6fa5cdead 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -163,7 +163,7 @@ while {! (((getMarkerPos format ["HELO_START_%1", _i])select 0) == 0)} do
if (CTI_BASE_FOB_MAX > 0) then {_logic setVariable ["cti_fobs", [], true]};
//--- Startup vehicles
- if !((profileNamespace getvariable ["CTI_SAVE_ENABLED",false]) &&(count(profileNamespace getVariable ["CTI_SAVE_TOWNS",[]]) == count CTI_TOWNS)) then { (count (profileNamespace getVariable ["CTI_SAVE_TOWNS",[]]) == count CTI_TOWNS)
+ if !((profileNamespace getvariable ["CTI_SAVE_ENABLED",false]) &&(count(profileNamespace getVariable ["CTI_SAVE_TOWNS",[]]) == count CTI_TOWNS)) then {
{
_model = _x select 0;
_equipment = _x select 1;
From 2661e5fd7b43851da98eb1ec21188b3d44daf4b4 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Wed, 2 Jan 2019 01:21:07 +0100
Subject: [PATCH 045/267] for #264
1. really better if only moving spawn vehicles usable for spawn...
2. Land_Stone_Gate_F in "nearestbuildings" and "nearestbuilding -1" return empty [].
3. stonegate added to "missingspawnpos" variable but maybe have several others too so i do pos counting
I hope this resolve the problem.
---
Client/Functions/UI/Functions_UI_RespawnMenu.sqf | 8 ++++----
Common/Init/Init_CommonConstants.sqf | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/Client/Functions/UI/Functions_UI_RespawnMenu.sqf b/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
index a467acfc1..c00e1d100 100644
--- a/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
+++ b/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
@@ -245,16 +245,16 @@ CTI_UI_Respawn_OnRespawnReady = {
CTI_P_LastRespawnTime=time;
if !(_respawn_ai) then { //--- Stock respawn
- if ((_where isKindOf "Car" || _where isKindOf "Wheeled_APC_F" || _where isKindOf "Land_Pod_Heli_Transport_04_medevac_F") && (_where emptyPositions "cargo")>0 && (locked _where) < 2 && abs (speed _where) < 5) then {
+ if ((_where isKindOf "Car" || _where isKindOf "Wheeled_APC_F" || _where isKindOf "Land_Pod_Heli_Transport_04_medevac_F") && (_where emptyPositions "cargo")>0 && (locked _where) < 2 && abs (speed _where) > 5) then {
//Respawn in vehicles cargo
player moveInCargo _where;
} else {
_spawn_at = [_where, 8, 30] call CTI_CO_FNC_GetRandomPosition;
//try to find and position on building position
- _nearestbuilding= nearestbuilding _spawn_at;
- if (alive _nearestbuilding && ((_spawn_at distance2d _nearestbuilding) < 25) && (!(typeOF _nearestbuilding in CTI_BUILDINGPOS_MISSING))) then {
- _buildingpos = _nearestbuilding buildingPos -1;
+ _nearestbuilding = nearestbuilding _spawn_at;
+ _buildingpos = _nearestbuilding buildingPos -1;
+ if (count _buildingpos > 0 && alive _nearestbuilding && ((_spawn_at distance2d _nearestbuilding) < 25) && (!(typeOF _nearestbuilding in CTI_BUILDINGPOS_MISSING))) then {
if (count _buildingpos > 10) then {
_buildingpos deleteRange [ceil(count _buildingpos / 3), count _buildingpos];
};
diff --git a/Common/Init/Init_CommonConstants.sqf b/Common/Init/Init_CommonConstants.sqf
index 8a9679c11..1e3b2ea70 100644
--- a/Common/Init/Init_CommonConstants.sqf
+++ b/Common/Init/Init_CommonConstants.sqf
@@ -558,7 +558,7 @@ CTI_UPGRADE_RATIO = if (ISLAND != 1) then {7} else {2};
CTI_VOTE_RATIO=0.51;
//Buildings without spawn positions
-CTI_BUILDINGPOS_MISSING = ["Land_Dome_Small_F","Land_Dome_Big_F","Land_FuelStation_Shed_F","Land_fs_roof_F","Land_FuelStation_01_roof_F","Land_FuelStation_02_roof_F","Land_FuelStation_01_roof_malevil_F","Land_SM_01_shelter_wide_F","Land_Shed_Big_F","Land_Shed_Small_F","Land_SM_01_shelter_narrow_F","Land_TentHangar_V1_F","Land_Airport_01_hangar_F","Land_Shed_06_F","Land_MetalShelter_01_F","Land_MetalShelter_02_F","Land_WarehouseShelter_01_F","Land_SCF_01_shed_F"];
+CTI_BUILDINGPOS_MISSING = ["Land_Stone_Gate_F","Land_Dome_Small_F","Land_Dome_Big_F","Land_FuelStation_Shed_F","Land_fs_roof_F","Land_FuelStation_01_roof_F","Land_FuelStation_02_roof_F","Land_FuelStation_01_roof_malevil_F","Land_SM_01_shelter_wide_F","Land_Shed_Big_F","Land_Shed_Small_F","Land_SM_01_shelter_narrow_F","Land_TentHangar_V1_F","Land_Airport_01_hangar_F","Land_Shed_06_F","Land_MetalShelter_01_F","Land_MetalShelter_02_F","Land_WarehouseShelter_01_F","Land_SCF_01_shed_F"];
with missionNamespace do {
if (isNil 'CTI_ARTILLERY_SETUP') then {CTI_ARTILLERY_SETUP = -1}; //--- Artillery status (-2: Disabled, -1: Artillery Computer, 0: Short, 1: Medium, 2: Long, 3: Far)
From 25ef95a6d34bb8d2d04cc5378f6d5bde2c17ae7d Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Thu, 3 Jan 2019 20:37:18 +0100
Subject: [PATCH 046/267] Disable Halo if player waiting for revive
---
Addons/Strat_mode/Tablet/Events_UI_Interact.sqf | 4 ++--
Addons/Strat_mode/Tablet/GUI_TabletMain.sqf | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf b/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf
index 3a03f6d70..5d81fbf64 100644
--- a/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf
+++ b/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf
@@ -59,7 +59,7 @@ switch (_action) do {
_offset=_offset+1;
};
case 5: { // CTI_Icon_halo
- if (vehicle player == player && !CTI_P_PreBuilding && CTI_Base_HaloInRange && [CTI_P_SideJoined, CTI_UPGRADE_HALO, 1] call CTI_CO_FNC_HasUpgrade && ( (missionNamespace getVariable 'CTI_SM_HALO')==1)) then {
+ if (vehicle player == player && !CTI_P_PreBuilding && CTI_Base_HaloInRange && [CTI_P_SideJoined, CTI_UPGRADE_HALO, 1] call CTI_CO_FNC_HasUpgrade && ( (missionNamespace getVariable 'CTI_SM_HALO')==1) && !(player getvariable ["REV_UNC",false])) then {
if (time - CTI_HALO_LASTTIME >= CTI_HALO_COOLDOWN) then {
((uiNamespace getVariable "cti_dialog_ui_interractions") displayCtrl (511000+_i)) ctrlSetTextColor [1,1,0,1];
@@ -755,7 +755,7 @@ switch (_action) do {
if (isNull (driver _target)) then {player moveInDriver _target} else {0 spawn { hint "There is already a pilot";sleep 3;hintSilent "";}};
};
case "OnHalo": {
- if !(vehicle player == player && !CTI_P_PreBuilding && CTI_Base_HaloInRange && [CTI_P_SideJoined, CTI_UPGRADE_HALO, 1] call CTI_CO_FNC_HasUpgrade && ( (missionNamespace getVariable 'CTI_SM_HALO')==1) && (time - CTI_HALO_LASTTIME >= CTI_HALO_COOLDOWN)) exitwith {false};
+ if !(vehicle player == player && !CTI_P_PreBuilding && CTI_Base_HaloInRange && [CTI_P_SideJoined, CTI_UPGRADE_HALO, 1] call CTI_CO_FNC_HasUpgrade && ( (missionNamespace getVariable 'CTI_SM_HALO')==1 && !(player getvariable ["REV_UNC",false])) && (time - CTI_HALO_LASTTIME >= CTI_HALO_COOLDOWN)) exitwith {false};
closedialog 0;
0 execvm "Addons\ATM_airdrop\atm_airdrop.sqf"
};
diff --git a/Addons/Strat_mode/Tablet/GUI_TabletMain.sqf b/Addons/Strat_mode/Tablet/GUI_TabletMain.sqf
index f4f684f4d..42e80d251 100644
--- a/Addons/Strat_mode/Tablet/GUI_TabletMain.sqf
+++ b/Addons/Strat_mode/Tablet/GUI_TabletMain.sqf
@@ -34,7 +34,7 @@ while { true } do {
//if ((CTI_Base_GearInRange || CTI_Base_GearInRange_Mobile || CTI_Base_GearInRange_FOB) && !CTI_P_PreBuilding) then {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210012) ctrlEnable true;} else {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210012) ctrlEnable false;};
if (!CTI_P_PreBuilding &&Client_AN_Connected) then {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210012) ctrlEnable true;} else {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210012) ctrlEnable false;};
if (!CTI_P_PreBuilding &&Client_AN_Connected && (CTI_Base_BarracksInRange || CTI_Base_LightInRange || CTI_Base_HeavyInRange || CTI_Base_AirInRange || CTI_Base_AmmoInRange || CTI_Base_RepairInRange || CTI_Base_NavalInRange)) then {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210013) ctrlEnable true;} else {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210013) ctrlEnable false;};
- if (vehicle player == player && !CTI_P_PreBuilding && CTI_Base_HaloInRange && [CTI_P_SideJoined, CTI_UPGRADE_HALO, 1] call CTI_CO_FNC_HasUpgrade && ( (missionNamespace getVariable 'CTI_SM_HALO')==1)) then {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210014) ctrlEnable true;} else {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210014) ctrlEnable false;};
+ if (vehicle player == player && !CTI_P_PreBuilding && CTI_Base_HaloInRange && [CTI_P_SideJoined, CTI_UPGRADE_HALO, 1] call CTI_CO_FNC_HasUpgrade && ( (missionNamespace getVariable 'CTI_SM_HALO')==1) && !(player getvariable ["REV_UNC",false])) then {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210014) ctrlEnable true;} else {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210014) ctrlEnable false;};
if (vehicle player == player && (CTI_P_SideLogic getVariable "cti_commander") == group player && !CTI_P_PreBuilding && CTI_Base_HQInRange) then {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210015) ctrlEnable true;} else {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210015) ctrlEnable false;};
@@ -45,7 +45,7 @@ while { true } do {
};
//if ((missionNamespace getVariable"CTI_SM_STRATEGIC") >0 ) then {
- //!CTI_P_PreBuilding && ! CTI_P_Repairing
+ //!CTI_P_PreBuilding && ! CTI_P_Repairing
if !(true && CTI_CL_FNC_IsPlayerCommander) then {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210010) ctrlEnable false;};
if !(true && CTI_CL_FNC_IsPlayerCommander && !(isNull ((CTI_P_SideJoined call CTI_CO_FNC_GetSideLogic) getVariable "CTI_PRIORITY") ) && time > (SM_Last_dis +SM_TO_dis) ) then {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210011) ctrlEnable false;};
/*} else {
From bdbaa8d445f0c69b06b93c86a1ac9450e3401b17 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Thu, 3 Jan 2019 21:05:01 +0100
Subject: [PATCH 047/267] Loadout change only if vehicle open
---
Addons/Strat_mode/Tablet/Events_UI_Interact.sqf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf b/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf
index 5d81fbf64..f35e01eeb 100644
--- a/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf
+++ b/Addons/Strat_mode/Tablet/Events_UI_Interact.sqf
@@ -393,7 +393,7 @@ switch (_action) do {
_structures = (CTI_P_SideJoined) call CTI_CO_FNC_GetSideStructures;
_ammo_depots = [CTI_AMMO, _structures] call CTI_CO_FNC_GetSideStructuresByType;
_available_ammo_depots = [_target, _ammo_depots, CTI_SERVICE_AMMO_DEPOT_RANGE] call CTI_UI_Service_GetBaseDepots;
- if (!(_target getVariable ["CTI_AC_AIRCRAFT_LOADOUT_IS_BUSY",true]) && count (_available_ammo_depots) >0 && local _target ) then {
+ if (!(_target getVariable ["CTI_AC_AIRCRAFT_LOADOUT_IS_BUSY",true]) && count (_available_ammo_depots) >0 && local _target && locked _target < 2) then {
((uiNamespace getVariable "cti_dialog_ui_interractions") displayCtrl (511000+_i)) ctrlSetTextColor [0,0,1,1];
} else {
((uiNamespace getVariable "cti_dialog_ui_interractions") displayCtrl (511000+_i)) ctrlSetTextColor [0.3,0.3,0.3,1];
@@ -728,7 +728,7 @@ switch (_action) do {
_ammo_depots = [CTI_AMMO, _structures, player] call CTI_CO_FNC_GetSideStructuresByType;
_available_ammo_depots = [_target, _ammo_depots, CTI_SERVICE_AMMO_DEPOT_RANGE] call CTI_UI_Service_GetBaseDepots;
_available_ammo_trucks = [_target, CTI_SPECIAL_AMMOTRUCK, CTI_SERVICE_AMMO_TRUCK_RANGE] call CTI_CO_FNC_GetNearestSpecialVehicles;
- if (!(_target getVariable ["CTI_AC_AIRCRAFT_LOADOUT_IS_BUSY",true]) && count (_available_ammo_depots + _available_ammo_trucks) >0 && local _target ) then {
+ if (!(_target getVariable ["CTI_AC_AIRCRAFT_LOADOUT_IS_BUSY",true]) && count (_available_ammo_depots + _available_ammo_trucks) >0 && local _target && locked _target < 2) then {
uiNamespace setVariable ['HAL_TARG',_target];
closedialog 0;
createDialog "CTI_RscTabletAircraftLoadoutMenu";
From 8d388d4d9a163a7af43ebdfb045e4361ac9c5788 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Mon, 14 Jan 2019 18:30:30 +0100
Subject: [PATCH 048/267] Forcing run order on inits
---
Addons/Strat_mode/init.sqf | 4 ++++
Client/Init/Init_Client.sqf | 3 +++
2 files changed, 7 insertions(+)
diff --git a/Addons/Strat_mode/init.sqf b/Addons/Strat_mode/init.sqf
index 07fee4d8c..e57ef0f32 100644
--- a/Addons/Strat_mode/init.sqf
+++ b/Addons/Strat_mode/init.sqf
@@ -84,6 +84,10 @@ with missionNamespace do {
};
};
+
+
+waitUntil {CTI_EAST getVariable ["CTI_LOAD_COMPLETED",false]};
+
if (CTI_IsServer) then {
//constants for the server
diff --git a/Client/Init/Init_Client.sqf b/Client/Init/Init_Client.sqf
index 9b8f449d9..971ea7cbf 100644
--- a/Client/Init/Init_Client.sqf
+++ b/Client/Init/Init_Client.sqf
@@ -105,6 +105,9 @@ if (isMultiplayer) then {
};
+waitUntil {CTI_P_SideLogic getVariable ["CTI_LOAD_COMPLETED",false]};
+
+
//--- Initialize the client PV
call compile preprocessFile "Client\Init\Init_PublicVariables.sqf";
From a2ab544b532bc750bd90f8dbafb1477b21c616f4 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Thu, 31 Jan 2019 19:03:06 +0100
Subject: [PATCH 049/267] Ship spawn bug again.
Better ground spawn for ships, if no water pos in 75m.
---
Common/Functions/Common_CreateVehicle.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Common/Functions/Common_CreateVehicle.sqf b/Common/Functions/Common_CreateVehicle.sqf
index e1f2d654c..154525bc5 100644
--- a/Common/Functions/Common_CreateVehicle.sqf
+++ b/Common/Functions/Common_CreateVehicle.sqf
@@ -106,7 +106,7 @@ if (isNull _created) then {
if (_vehicle isKindOf "SHIP" && _side != CTI_RESISTANCE_ID && !(surfaceIsWater position _vehicle)) then {
_wp = [getPos _vehicle, 0, 75, 7, 2, 1, 0] call BIS_fnc_findSafePos;
- if (count _wp == 0 || !(surfaceIsWater _wp)) then {_wp = getPos _vehicle;};
+ if (count _wp == 0 || !(surfaceIsWater _wp)) then {_wp = (getPos _vehicle) findEmptyPosition [0,100,"O_T_VTOL_02_vehicle_dynamicLoadout_F"];};
_vehicle setPos _wp;
};
From f0fb002a685837c41d717755d8c709421d710cc9 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Wed, 6 Feb 2019 19:44:55 +0100
Subject: [PATCH 050/267] Adjust daytime for other islands
3 is Tanoa, all others have good daytime
---
Addons/Strat_mode/init.sqf | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/init.sqf b/Addons/Strat_mode/init.sqf
index e57ef0f32..815600612 100644
--- a/Addons/Strat_mode/init.sqf
+++ b/Addons/Strat_mode/init.sqf
@@ -328,8 +328,11 @@ if (CTI_IsServer) then {
0 spawn {
_day_ratio=14/CTI_WEATHER_FAST;
_nigth_ratio=10/CTI_WEATHER_FAST_NIGTH;
+ _sunrise = 5;
+ _sunset = 19;
+ if (ISLAND == 3) then {_sunrise = 7; _sunset = 18;};
while {!CTI_Gameover} do {
- if (daytime > 5 && daytime <19 ) then {
+ if (daytime > _sunrise && daytime < _sunset) then {
if (timeMultiplier != _day_ratio) then {setTimeMultiplier _day_ratio;};
} else {
if (timeMultiplier != _nigth_ratio) then {setTimeMultiplier _nigth_ratio;};
From e7738f3dc9729df53f6ca1b4d9cfaaca7f2dda8d Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 9 Feb 2019 01:56:01 +0100
Subject: [PATCH 051/267] for #267
Huron container is "Thing"....
---
Common/Functions/Common_CreateVehicle.sqf | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/Common/Functions/Common_CreateVehicle.sqf b/Common/Functions/Common_CreateVehicle.sqf
index 154525bc5..822890fe1 100644
--- a/Common/Functions/Common_CreateVehicle.sqf
+++ b/Common/Functions/Common_CreateVehicle.sqf
@@ -260,7 +260,11 @@ if ((missionNamespace getVariable [format ["%1", typeOf _vehicle],["","","","","
if (_locked && !( _vehicle isKindOf "Thing") && !( _vehicle isKindOf "StaticWeapon") && !( _vehicle isKindOf "UAV") && !( _vehicle isKindOf "UGV_01_base_F") && !( _vehicle isKindOf "B_T_UAV_03_dynamicLoadout_F")) then {_vehicle lock 2} else {_vehicle lock 0};
-if (_net && !( _vehicle isKindOf "Thing")) then {_vehicle setVariable ["cti_net", _side, true]};
+if (_net && !( _vehicle isKindOf "Thing")) then {
+ _vehicle setVariable ["cti_net", _side, true];
+ } else {
+ if (_vehicle isKindOf "Slingload_01_Base_F") then {_vehicle setVariable ["cti_net", _side, true];};
+ };
if (_handle) then {
_vehicle addEventHandler ["killed", format["[_this select 0, _this select 1, %1] spawn CTI_CO_FNC_OnUnitKilled", _side]]; //--- Called on destruction
_vehicle addEventHandler ["hit", {_this spawn CTI_CO_FNC_OnUnitHit}]; //--- Register importants hits
From fa9c11cb81491970527280f40bd8e396cd57a126 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 9 Feb 2019 01:59:49 +0100
Subject: [PATCH 052/267] continue #267
Change respawn menu label for med containers.
---
Client/Functions/UI/Functions_UI_RespawnMenu.sqf | 1 +
1 file changed, 1 insertion(+)
diff --git a/Client/Functions/UI/Functions_UI_RespawnMenu.sqf b/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
index c00e1d100..cad919971 100644
--- a/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
+++ b/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
@@ -92,6 +92,7 @@ CTI_UI_Respawn_GetRespawnLabel = {
_var = missionNamespace getVariable format ["CTI_%1_%2", CTI_P_SideJoined, _location getVariable "cti_structure_type"];
_value = (_var select 0) select 1;
};
+ case (typeOf _location == "B_Slingload_01_Medevac_F"): { _value = "Huron Medical Container" };
case (_location == (leader group player)) : {_value=format ["[LEADER] %1",name _location]};
case (_location isKindOf "AllVehicles"&& !(_location == (leader group player))): { _value = getText(configFile >> "CfgVehicles" >> typeOf _location >> "displayName") };
};
From 651a097bc6d9638fbac157f5a5b700490d2befda Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 9 Feb 2019 15:59:47 +0100
Subject: [PATCH 053/267] Respawn menu correction
Remove pods and containers from Respawn menu when its flying.
---
Client/Functions/UI/Functions_UI_RespawnMenu.sqf | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Client/Functions/UI/Functions_UI_RespawnMenu.sqf b/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
index cad919971..26f644164 100644
--- a/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
+++ b/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
@@ -38,6 +38,11 @@ CTI_UI_Respawn_GetAvailableLocations = {
_ignore_mobile_crew = [];
if ((missionNamespace getVariable "CTI_RESPAWN_MOBILE") > 0) then {
_mobile = (CTI_DeathPosition) call CTI_UI_Respawn_GetMobileRespawn;
+ _mobile_at_sky = [];
+ for "_i" from 0 to ((count _mobile) - 1) do {
+ if ((getposATL (_mobile select _i) select 2) > 4) then {_mobile_at_sky = _mobile_at_sky + [_mobile select _i]};
+ };
+ _mobile = _mobile - _mobile_at_sky;
_list = _list + _mobile;
{{if (group _x == group player) then {_ignore_mobile_crew pushBack _x}} forEach crew _x} forEach _mobile;
};
From e44b98b49775087f48b16c52f26aa3667d7ba50f Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 16 Feb 2019 22:41:15 +0100
Subject: [PATCH 054/267] vehicle recycle delay
40min
---
Rsc/Parameters.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Rsc/Parameters.hpp b/Rsc/Parameters.hpp
index 4a2515ca8..4fb5b3b92 100644
--- a/Rsc/Parameters.hpp
+++ b/Rsc/Parameters.hpp
@@ -153,7 +153,7 @@ class Params {
title = $STR_CTI_VEHICLES_EMPTY_TIMEOUT;
values[] = {60,120,180,240,300,600,1200,1800,2400,3000,3600};
texts[] = {"1 Minute","2 Minutes","3 Minutes","4 Minutes","5 Minutes","10 Minutes","20 Minutes","30 Minutes","40 Minutes","50 Minutes","1 Hour"};
- default = 3600;
+ default = 2400;
};
class CTI_GRAPHICS_TG_MAX {
title = $STR_CTI_GRAPHICS_TG_MAX;
From d7a75ba88cfc0bc4ab4747cd90654dc0a2934cbe Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 9 Mar 2019 18:13:00 +0100
Subject: [PATCH 055/267] First Patrol spawn 4min after start
---
Addons/Strat_mode/PATROL_AI/PAI_ServerLoop.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/PATROL_AI/PAI_ServerLoop.sqf b/Addons/Strat_mode/PATROL_AI/PAI_ServerLoop.sqf
index 24c9803bc..438518e78 100644
--- a/Addons/Strat_mode/PATROL_AI/PAI_ServerLoop.sqf
+++ b/Addons/Strat_mode/PATROL_AI/PAI_ServerLoop.sqf
@@ -4,7 +4,7 @@
#define MIN_FPS 25
waitUntil {CTI_Init_Server && CTI_Init_Strat&& CTI_InitTowns};
-sleep 30;
+sleep 240;
if ((missionNamespace getVariable ["CTI_SM_PATROLS",0])==0) exitWith {false};
while { !CTI_GameOver} do
From 478e1f1d1d5d5f5f20a3686b7b99f49b5a757c27 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 10 Mar 2019 14:22:42 +0100
Subject: [PATCH 056/267] Fix for #268
---
Rsc/Resources.hpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/Rsc/Resources.hpp b/Rsc/Resources.hpp
index fbb66b63b..e7d2c7b02 100644
--- a/Rsc/Resources.hpp
+++ b/Rsc/Resources.hpp
@@ -538,6 +538,7 @@ class RscMapControl {
showCountourInterval = 0;
scaleMin = 0.001;
scaleMax = 1.0;
+ widthRailWay = 4;
scaleDefault = 0.16;
maxSatelliteAlpha = 0.85;
alphaFadeStartScale = 0.35;
From 8a5e7cdcd39d60d884fab3e6b2509b795d861d07 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 10 Mar 2019 14:27:29 +0100
Subject: [PATCH 057/267] Fix for #265
---
Addons/Strat_mode/HUD/HUD_GetTargets.sqf | 1 +
1 file changed, 1 insertion(+)
diff --git a/Addons/Strat_mode/HUD/HUD_GetTargets.sqf b/Addons/Strat_mode/HUD/HUD_GetTargets.sqf
index d4280f225..20c630fe6 100644
--- a/Addons/Strat_mode/HUD/HUD_GetTargets.sqf
+++ b/Addons/Strat_mode/HUD/HUD_GetTargets.sqf
@@ -12,6 +12,7 @@ _a_targs= player nearTargets (HUD_MAX_RANGE);
if ((_x select 4) isKindOf "Air") then {_targs pushBack _x;};
if ((_x select 4) isKindOf "Ship") then {_targs pushBack _x;};
};
+ true
} count _a_targs;
From 2020de2b48eeed7c36d411edda0a644ab5c65041 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 10 Mar 2019 14:33:57 +0100
Subject: [PATCH 058/267] Update SM_F_TownDrawConnect.sqf
---
Addons/Strat_mode/Functions/SM_F_TownDrawConnect.sqf | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/Addons/Strat_mode/Functions/SM_F_TownDrawConnect.sqf b/Addons/Strat_mode/Functions/SM_F_TownDrawConnect.sqf
index 2c4c2d2d3..0db547b42 100644
--- a/Addons/Strat_mode/Functions/SM_F_TownDrawConnect.sqf
+++ b/Addons/Strat_mode/Functions/SM_F_TownDrawConnect.sqf
@@ -8,9 +8,8 @@ if (!(CTI_P_SideJoined == resistance))then {
_neigh= _ct getVariable "CTI_Neigh";
sleep 0.3;
};
- _o = if (ISLAND != 1) then {500} else {0};
{
- [getPos _ct,getPos _x,"ColorBlack",_o] call CTI_SM_Connect;
+ [getPos _ct,getPos _x,"ColorBlack",CTI_MARKERS_TOWN_AREA_RANGE] call CTI_SM_Connect;
} forEach _neigh;
} forEach CTI_Towns;
};
\ No newline at end of file
From 1f5925d392b369226cb57bd480c9929abaab5c0a Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Tue, 12 Mar 2019 21:36:03 +0100
Subject: [PATCH 059/267] small change
---
Server/Init/Init_Server.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index 6fa5cdead..a8749cfc8 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -295,8 +295,8 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
};
0 spawn {
while {!CTi_GameOver} do {
- sleep 270 +random (60);
0 call PERS_SAVE;
+ sleep 270 +random (60);
};
};
} else {
From 5ef16a31412171e776331949875432ba040416da Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Fri, 15 Mar 2019 13:00:24 +0100
Subject: [PATCH 060/267] small change 2
---
Server/Init/Init_Server.sqf | 1 +
1 file changed, 1 insertion(+)
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index a8749cfc8..a79cd3768 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -294,6 +294,7 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
} forEach [east,west];
};
0 spawn {
+ sleep 270;
while {!CTi_GameOver} do {
0 call PERS_SAVE;
sleep 270 +random (60);
From 71345297e5abb4ea1610bc13e29b151f9605c8a9 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sun, 17 Mar 2019 20:36:12 +0100
Subject: [PATCH 061/267] for #240
thx Z
---
Client/Init/Init_PublicVariables.sqf | 3 ++-
Server/Functions/Server_BuildStructure.sqf | 2 +-
Server/Functions/Server_OnBuildingDestroyed.sqf | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/Client/Init/Init_PublicVariables.sqf b/Client/Init/Init_PublicVariables.sqf
index a22da7f69..420c14b7d 100644
--- a/Client/Init/Init_PublicVariables.sqf
+++ b/Client/Init/Init_PublicVariables.sqf
@@ -130,7 +130,8 @@ with missionNamespace do {
_marker setMarkerTypeLocal format["%1installation", CTI_P_MarkerPrefix];
_marker setMarkerColorLocal "ColorBlack";
_marker setMarkerSizeLocal [0.75, 0.75];
- _type = _structure getVariable ["cti_structure_type", ""];
+ //_type = _structure getVariable ["cti_structure_type", ""];
+ _type = (missionNamespace getVariable format ["CTI_%1_%2", CTI_P_SideJoined, _structure getVariable ["cti_structure_type",""]]) select 0 select 2;
_marker setMarkerTextLocal _type;
[_structure,_marker] spawn {
private ["_structure","_marker"];
diff --git a/Server/Functions/Server_BuildStructure.sqf b/Server/Functions/Server_BuildStructure.sqf
index 4ac6ea900..ee13d8d82 100644
--- a/Server/Functions/Server_BuildStructure.sqf
+++ b/Server/Functions/Server_BuildStructure.sqf
@@ -50,7 +50,7 @@ _structure setVariable ["cti_completion", 10,true];
_structure setVariable ["cti_completion_ratio", CTI_BASE_CONSTRUCTION_RATIO_INIT,true];
// _structure setVariable ["cti_structures_iteration", round(CTI_BASE_WORKERS_BUILD_COEFFICIENT / ((_var select 3)/100))];
_structure setVariable ["cti_structures_iteration", (_var select 3)/100,true];
-_structure setVariable ["cti_structure_type", ((_var select 0) select 0)];
+_structure setVariable ["cti_structure_type", ((_var select 0) select 0),true];
_logic = (_side) call CTI_CO_FNC_GetSideLogic;
_logic setVariable ["cti_structures_wip", (_logic getVariable "cti_structures_wip") + [_structure] - [objNull],true];
diff --git a/Server/Functions/Server_OnBuildingDestroyed.sqf b/Server/Functions/Server_OnBuildingDestroyed.sqf
index 7b6c98fff..debfded2c 100644
--- a/Server/Functions/Server_OnBuildingDestroyed.sqf
+++ b/Server/Functions/Server_OnBuildingDestroyed.sqf
@@ -76,7 +76,7 @@ if !(_sell) then {
_structure setVariable ["cti_completion_ratio", _completion_ratio * CTI_BASE_CONSTRUCTION_RATIO_ON_DEATH,true];
// _structure setVariable ["cti_structures_iteration", round(CTI_BASE_WORKERS_BUILD_COEFFICIENT / ((_var select 3)/100))];
_structure setVariable ["cti_structures_iteration", (_var select 3)/100,true];
- _structure setVariable ["cti_structure_type", ((_var select 0) select 0)];
+ _structure setVariable ["cti_structure_type", ((_var select 0) select 0),true];
[_side, _structure, _variable, _position, _direction] spawn CTI_SE_FNC_HandleStructureConstruction;
From c83df4ca327ab212dc5bef18a717f784d3576061 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 19 Mar 2019 19:37:04 +0100
Subject: [PATCH 062/267] Refactoring tasks
tasks are now managed on server
---
Addons/Strat_mode/Functions/TASKS_loop.sqf | 24 ++++++++++++----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/Addons/Strat_mode/Functions/TASKS_loop.sqf b/Addons/Strat_mode/Functions/TASKS_loop.sqf
index 153eaaa31..26eecd672 100644
--- a/Addons/Strat_mode/Functions/TASKS_loop.sqf
+++ b/Addons/Strat_mode/Functions/TASKS_loop.sqf
@@ -13,11 +13,11 @@ CTI_TASK_TYPE_DEFEND=1;
CTI_TASK_TYPE_BUILD=2;
CTI_TASK_TYPE_EVACUATE=3;
-//List of current task the player has
+//List of current task the server has
TASKS_LIST=[];
//other values used but the script
-_side=CTI_P_SideJoined;
+_side=_this;
_logic= CTI_P_SideJoined call CTI_CO_FNC_GetSideLogic;
_sideID = CTI_P_SideJoined call CTI_CO_FNC_GetSideID;
@@ -61,10 +61,10 @@ while {!CTI_GAMEOVER} do
{
_town=_x;
if ((TASKS_LIST findif {(_x select 0) == CTI_TASK_TYPE_ATTACK && (_x select 1) == _town}) == -1) then {
- _taskname=format ["A_%1_%2",ceil(random(100000)),ceil(time)];
- TASKS_LIST pushBack [CTI_TASK_TYPE_ATTACK,_town,_taskname];
+ _taskname=format ["A_%1_%2_%3",_side,ceil(random(100000)),ceil(time)];
_tasktext=format ["Attack %1",_town getvariable ["cti_town_name",""]];
- [player, _taskname, [_tasktext,_tasktext,""], _town, "CREATED", 1, true, "attack", true] call BIS_fnc_taskCreate;
+ waitUntil {_taskname==[_side, _taskname, [_tasktext,_tasktext,""], _town, "CREATED", 1, true, "attack", true] call BIS_fnc_taskCreate};
+ if ([_taskname] call BIS_fnc_taskExists) then {TASKS_LIST pushBack [CTI_TASK_TYPE_ATTACK,_town,_taskname];};
};
true
} count _active_towns;
@@ -89,10 +89,11 @@ while {!CTI_GAMEOVER} do
_town=_x;
if ((_town getvariable ["cti_town_sideID",-1]) == _sideID && (_town getvariable ["cti_town_occupation_active",false]) ) then {
if ((TASKS_LIST findif {(_x select 0) == CTI_TASK_TYPE_DEFEND && (_x select 1) == _town}) == -1) then {
- _taskname=format ["D_%1_%2",ceil(random(100000)),ceil(time)];
- TASKS_LIST pushBack [CTI_TASK_TYPE_DEFEND,_town,_taskname];
+ _taskname=format ["D_%1_%2_%3",_side,ceil(random(100000)),ceil(time)];
_tasktext=format ["Defend %1",_town getvariable ["cti_town_name",""]];
- [player, _taskname, [_tasktext,_tasktext,""], _town, "CREATED", 1, true, "defend", true] call BIS_fnc_taskCreate;
+ waitUntil {_taskname==[_side, _taskname, [_tasktext,_tasktext,""], _town, "CREATED", 1, true, "defend", true] call BIS_fnc_taskCreate};
+ if ([_taskname] call BIS_fnc_taskExists) then {TASKS_LIST pushBack [CTI_TASK_TYPE_DEFEND,_town,_taskname];};
+
};
};
true
@@ -103,12 +104,13 @@ while {!CTI_GAMEOVER} do
{
_task=TASKS_LIST select _x;
- [(_task select 2), "CANCELED", false] call BIS_fnc_taskSetState;
- [(_task select 2) ] call BIS_fnc_deleteTask;
+ [(_task select 2), "CANCELED"] call BIS_fnc_taskSetState;
+ sleep 0.5;
+ waitUntil {[(_task select 2) ] call BIS_fnc_deleteTask};
true
} count _to_delete;
{
- TASKS_LIST deleteAt _x;
+ if !([TASKS_LIST select _x select 2] call BIS_fnc_taskExists) then {TASKS_LIST deleteAt _x};
true
} count _to_delete;
From 25dcb5e661728edc6f074abfd09c7f4462b61ed3 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Tue, 19 Mar 2019 19:40:56 +0100
Subject: [PATCH 063/267] More on tasks
---
Addons/Strat_mode/Functions/TASKS_loop.sqf | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/Addons/Strat_mode/Functions/TASKS_loop.sqf b/Addons/Strat_mode/Functions/TASKS_loop.sqf
index 26eecd672..aa6493d24 100644
--- a/Addons/Strat_mode/Functions/TASKS_loop.sqf
+++ b/Addons/Strat_mode/Functions/TASKS_loop.sqf
@@ -13,8 +13,8 @@ CTI_TASK_TYPE_DEFEND=1;
CTI_TASK_TYPE_BUILD=2;
CTI_TASK_TYPE_EVACUATE=3;
-//List of current task the server has
-TASKS_LIST=[];
+//List of current task
+_TASKS_LIST=[];
//other values used but the script
_side=_this;
@@ -40,7 +40,7 @@ while {!CTI_GAMEOVER} do
};
- } foreach TASKS_LIST;
+ } foreach _TASKS_LIST;
// CLEAN DEFENSE TASKS
{
@@ -49,7 +49,7 @@ while {!CTI_GAMEOVER} do
if ((_town getvariable ["cti_town_sideID",-1]) == _sideID && !(_town getvariable ["cti_town_occupation_active",false]) ) then {_to_delete pushBackUnique _forEachIndex};
};
- } foreach TASKS_LIST;
+ } foreach _TASKS_LIST;
//*****************************************************************
@@ -60,11 +60,11 @@ while {!CTI_GAMEOVER} do
{
_town=_x;
- if ((TASKS_LIST findif {(_x select 0) == CTI_TASK_TYPE_ATTACK && (_x select 1) == _town}) == -1) then {
+ if ((_TASKS_LIST findif {(_x select 0) == CTI_TASK_TYPE_ATTACK && (_x select 1) == _town}) == -1) then {
_taskname=format ["A_%1_%2_%3",_side,ceil(random(100000)),ceil(time)];
_tasktext=format ["Attack %1",_town getvariable ["cti_town_name",""]];
waitUntil {_taskname==[_side, _taskname, [_tasktext,_tasktext,""], _town, "CREATED", 1, true, "attack", true] call BIS_fnc_taskCreate};
- if ([_taskname] call BIS_fnc_taskExists) then {TASKS_LIST pushBack [CTI_TASK_TYPE_ATTACK,_town,_taskname];};
+ if ([_taskname] call BIS_fnc_taskExists) then {_TASKS_LIST pushBack [CTI_TASK_TYPE_ATTACK,_town,_taskname];};
};
true
} count _active_towns;
@@ -88,11 +88,11 @@ while {!CTI_GAMEOVER} do
{
_town=_x;
if ((_town getvariable ["cti_town_sideID",-1]) == _sideID && (_town getvariable ["cti_town_occupation_active",false]) ) then {
- if ((TASKS_LIST findif {(_x select 0) == CTI_TASK_TYPE_DEFEND && (_x select 1) == _town}) == -1) then {
+ if ((_TASKS_LIST findif {(_x select 0) == CTI_TASK_TYPE_DEFEND && (_x select 1) == _town}) == -1) then {
_taskname=format ["D_%1_%2_%3",_side,ceil(random(100000)),ceil(time)];
_tasktext=format ["Defend %1",_town getvariable ["cti_town_name",""]];
waitUntil {_taskname==[_side, _taskname, [_tasktext,_tasktext,""], _town, "CREATED", 1, true, "defend", true] call BIS_fnc_taskCreate};
- if ([_taskname] call BIS_fnc_taskExists) then {TASKS_LIST pushBack [CTI_TASK_TYPE_DEFEND,_town,_taskname];};
+ if ([_taskname] call BIS_fnc_taskExists) then {_TASKS_LIST pushBack [CTI_TASK_TYPE_DEFEND,_town,_taskname];};
};
};
@@ -103,14 +103,14 @@ while {!CTI_GAMEOVER} do
// DO THE CLEANUP
{
- _task=TASKS_LIST select _x;
+ _task=_TASKS_LIST select _x;
[(_task select 2), "CANCELED"] call BIS_fnc_taskSetState;
sleep 0.5;
waitUntil {[(_task select 2) ] call BIS_fnc_deleteTask};
true
} count _to_delete;
{
- if !([TASKS_LIST select _x select 2] call BIS_fnc_taskExists) then {TASKS_LIST deleteAt _x};
+ if !([_TASKS_LIST select _x select 2] call BIS_fnc_taskExists) then {_TASKS_LIST deleteAt _x};
true
} count _to_delete;
From 78841ab2c539a3bb159bb73a19fac1fbed0f0d9f Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Fri, 22 Mar 2019 16:21:55 +0100
Subject: [PATCH 064/267] Updated Stat tracking to new format v2
---
Server/FSM/update_victory.fsm | 44 ++++++++++++++++++++++++++++-------
Server/Init/Init_Server.sqf | 41 ++++++++++++++++++++++++++++----
2 files changed, 72 insertions(+), 13 deletions(-)
diff --git a/Server/FSM/update_victory.fsm b/Server/FSM/update_victory.fsm
index 693775e07..3bcc2fb5f 100644
--- a/Server/FSM/update_victory.fsm
+++ b/Server/FSM/update_victory.fsm
@@ -15,8 +15,8 @@ link3[] = {2,4};
link4[] = {4,5};
link5[] = {5,6};
link6[] = {6,3};
-globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-620.422607,163.824570,138.236649,-571.857727,635,885,1};
-window[] = {2,-1,-1,-1,-1,931,150,1405,150,3,653};
+globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-626.312195,169.713379,529.355530,-580.065979,635,885,1};
+window[] = {2,-1,-1,-1,-1,963,182,1437,182,3,653};
*//*%FSM*/
class FSM
{
@@ -82,20 +82,48 @@ class FSM
" {_townvalue=_townvalue+ (_x getVariable ""cti_town_value""); } ForEach ((_x) call CTI_CO_FNC_GetFriendlyTowns);" \n
" _factories = 0;" \n
" {_factories = _factories + count([_x, _structures] call CTI_CO_FNC_GetSideStructuresByType)} forEach (missionNamespace getVariable format[""CTI_%1_Factories"", _side]);" \n
- " if (( ( time > _max_time && _max_time != 0) || !(alive _hq) && _victory_hq == 1 || (!(alive _hq) && _factories == 0)) && !CTI_GameOver) exitWith { " \n
- " diag_log [""CTI_Mission_Performance: GameOver losse"", _x]; " \n
+ " if (( ( time > _max_time && _max_time != 0) || !(alive _hq) && _victory_hq == 1 || (!(alive _hq) && _factories == 0)) && !CTI_GameOver) exitWith { " \n
+ " diag_log[[""CTI_DataPacket"", ""GameOver""], " \n
+ " [""Version"", 2], //version of DiscordBot logReader" \n
+ " [""Map"", worldName]," \n
+ " [""Side"", _x]," \n
+ " [""Lost"", true]," \n
+ " [""HQ_Alive"", (alive _hq)]," \n
+ " [""Towns_Owned"", _towns]," \n
+ " [""Towns_Total"", _total]," \n
+ " [""Factories"", _factories]," \n
+ " [""Town_Value"", _townvalue]" \n
+ " ]; " \n
" [""CLIENT"", ""Client_OnMissionEnding"", [_x, ""loose""]] call CTI_CO_FNC_NetSend;" \n
" _end=true;" \n
- "" \n
" };" \n
" if (_towns == _total && !CTI_GameOver) exitWith {" \n
- " diag_log [""CTI_Mission_Performance: GameOver win"", _x];" \n
+ " diag_log[[""CTI_DataPacket"", ""GameOver""], " \n
+ " [""Version"", 2], //version of DiscordBot logReader" \n
+ " [""Map"", worldName]," \n
+ " [""Side"", _x]," \n
+ " [""Lost"", false]," \n
+ " [""HQ_Alive"", (alive _hq)]," \n
+ " [""Towns_Owned"", _towns]," \n
+ " [""Towns_Total"", _total]," \n
+ " [""Factories"", _factories]," \n
+ " [""Town_Value"", _townvalue]" \n
+ " ]; " \n
" [""CLIENT"", ""Client_OnMissionEnding"", [_x, ""win""]] call CTI_CO_FNC_NetSend;" \n
" _end=true;" \n
- "" \n
" };" \n
" if (_townvalue > (_total_value*0.75) && !CTI_GameOver) exitWith {" \n
- " diag_log [""CTI_Mission_Performance: GameOver eco win"", _x];" \n
+ " diag_log[[""CTI_DataPacket"", ""GameOver""], " \n
+ " [""Version"", 2], //version of DiscordBot logReader" \n
+ " [""Map"", worldName]," \n
+ " [""Side"", _x]," \n
+ " [""Lost"", false]," \n
+ " [""HQ_Alive"", (alive _hq)]," \n
+ " [""Towns_Owned"", _towns]," \n
+ " [""Towns_Total"", _total]," \n
+ " [""Factories"", _factories]," \n
+ " [""Town_Value"", _townvalue]" \n
+ " ]; " \n
" [""CLIENT"", ""Client_OnMissionEnding"", [_x, ""win""]] call CTI_CO_FNC_NetSend;" \n
" _end=true;" \n
" };" \n
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index a79cd3768..4b5f83aa9 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -313,17 +313,43 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
//Logging of varius values
0 spawn {
sleep 100; //wait for everything to finish loading
- diag_log "CTI_Mission_Performance: Starting Server";
+ _version = 2; //version of DiscordBot logReader
+ _arr = [["CTI_DataPacket", "Header"],
+ ["Version", _version],
+ ["Map", worldName]
+ ];
+ diag_log _arr;
while {!CTI_GameOver} do {
- _towns = count(((east) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_ACTIVE",[]]) + count(((west) call CTI_CO_FNC_GetSideLogic) getVariable ["CTI_ACTIVE",[]]);
-
- _arr = ["CTI_Mission_Performance:",
+ east_sl = (east) call CTI_CO_FNC_GetSideLogic;
+ west_sl = (west) call CTI_CO_FNC_GetSideLogic;
+ _towns = count(east_sl getVariable ["CTI_ACTIVE",[]]) + count(west_sl getVariable ["CTI_ACTIVE",[]]);
+ _players = [];
+ {
+ _players pushBack [name _x, str (side _x), getPlayerUID _x, getPlayerScores _x, getPos _x];
+ } forEach allPlayers - entities "HeadlessClient_F";
+
+ _west_towns = [];
+ {
+ _west_towns pushBack str _x;
+ } forEach (west call CTI_CO_FNC_GetSideTowns);
+ _east_towns = [];
+ {
+ _east_towns pushBack str _x;
+ } forEach (east call CTI_CO_FNC_GetSideTowns);
+
+
+ _arr = [["CTI_DataPacket", "Data"],
["time", time],
["fps", diag_fps],
["score_east", (scoreSide east)],
["score_west", (scoreSide west)],
["player_count_east", (east countSide allPlayers)],
["player_count_west", (west countSide allPlayers)],
+ ["players", _players],
+ ["bases_east", east_sl getVariable ["cti_structures_areas",[]]],
+ ["bases_west", west_sl getVariable ["cti_structures_areas",[]]],
+ ["east_towns", _east_towns],
+ ["west_towns", _west_towns],
["commander_east", (name leader ((east) call CTI_CO_FNC_GetSideCommander))],
["commander_west", (name leader ((west) call CTI_CO_FNC_GetSideCommander))],
["town_count_east", ((east) call CTI_CO_FNC_GetSideTownCount)],
@@ -337,5 +363,10 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
diag_log _arr;
sleep 60;
};
- diag_log "CTI_Mission_Performance: Stopping Server";
+ //Triggerd on Misson end, used when FSM does not trigger. (used for debugging)
+ _arr = [["CTI_DataPacket", "EOF"],
+ ["Version", _version],
+ ["Map", worldName]
+ ];
+ diag_log _arr;
};
From 42fbee566b2b8845c6dc707e0cb06dd31a87e079 Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Fri, 22 Mar 2019 16:26:27 +0100
Subject: [PATCH 065/267] fix: made vars local
---
Server/Init/Init_Server.sqf | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index 4b5f83aa9..13c3d9e29 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -320,8 +320,8 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
];
diag_log _arr;
while {!CTI_GameOver} do {
- east_sl = (east) call CTI_CO_FNC_GetSideLogic;
- west_sl = (west) call CTI_CO_FNC_GetSideLogic;
+ _east_sl = (east) call CTI_CO_FNC_GetSideLogic;
+ _west_sl = (west) call CTI_CO_FNC_GetSideLogic;
_towns = count(east_sl getVariable ["CTI_ACTIVE",[]]) + count(west_sl getVariable ["CTI_ACTIVE",[]]);
_players = [];
{
@@ -346,8 +346,8 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
["player_count_east", (east countSide allPlayers)],
["player_count_west", (west countSide allPlayers)],
["players", _players],
- ["bases_east", east_sl getVariable ["cti_structures_areas",[]]],
- ["bases_west", west_sl getVariable ["cti_structures_areas",[]]],
+ ["bases_east", _east_sl getVariable ["cti_structures_areas",[]]],
+ ["bases_west", _west_sl getVariable ["cti_structures_areas",[]]],
["east_towns", _east_towns],
["west_towns", _west_towns],
["commander_east", (name leader ((east) call CTI_CO_FNC_GetSideCommander))],
From 595dbe456914b1750fdcb52610df511b69a440b8 Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Mon, 25 Mar 2019 20:36:48 +0100
Subject: [PATCH 066/267] fixed var
---
Server/Init/Init_Server.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index 13c3d9e29..a14bc6fb0 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -322,7 +322,7 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
while {!CTI_GameOver} do {
_east_sl = (east) call CTI_CO_FNC_GetSideLogic;
_west_sl = (west) call CTI_CO_FNC_GetSideLogic;
- _towns = count(east_sl getVariable ["CTI_ACTIVE",[]]) + count(west_sl getVariable ["CTI_ACTIVE",[]]);
+ _towns = count(_east_sl getVariable ["CTI_ACTIVE",[]]) + count(_west_sl getVariable ["CTI_ACTIVE",[]]);
_players = [];
{
_players pushBack [name _x, str (side _x), getPlayerUID _x, getPlayerScores _x, getPos _x];
From dabe240afeb0dcbfdff4de08d78f11690f985b7e Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sat, 30 Mar 2019 12:31:51 +0100
Subject: [PATCH 067/267] Remove additionnal spawning vehicles for small
islands
---
Server/Init/Init_Server.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index a79cd3768..72891b22f 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -163,7 +163,7 @@ while {! (((getMarkerPos format ["HELO_START_%1", _i])select 0) == 0)} do
if (CTI_BASE_FOB_MAX > 0) then {_logic setVariable ["cti_fobs", [], true]};
//--- Startup vehicles
- if !((profileNamespace getvariable ["CTI_SAVE_ENABLED",false]) &&(count(profileNamespace getVariable ["CTI_SAVE_TOWNS",[]]) == count CTI_TOWNS)) then {
+ if !((profileNamespace getvariable ["CTI_SAVE_ENABLED",false]) &&(count(profileNamespace getVariable ["CTI_SAVE_TOWNS",[]]) == count CTI_TOWNS) && (ISLAND in [2,3])) then {
{
_model = _x select 0;
_equipment = _x select 1;
From e32c54824de5e92e0b0ae9c75266e44acb1de482 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sat, 30 Mar 2019 12:32:24 +0100
Subject: [PATCH 068/267] Moved tasks to server
---
Addons/Strat_mode/init.sqf | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/Addons/Strat_mode/init.sqf b/Addons/Strat_mode/init.sqf
index 815600612..c74d94230 100644
--- a/Addons/Strat_mode/init.sqf
+++ b/Addons/Strat_mode/init.sqf
@@ -341,6 +341,8 @@ if (CTI_IsServer) then {
};
};
+ // Tasks loop
+ {_x spawn TASKS_LOOP;} foreach [east,west];
};
@@ -481,8 +483,7 @@ if (CTI_IsClient) then {
};
- // Taks loop
- 0 spawn TASKS_LOOP;
+
};
From a1d5e1ffa67905e0259c5a504de1003547cdaca0 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sat, 30 Mar 2019 12:32:42 +0100
Subject: [PATCH 069/267] POrevent disactivation when not full on activations
---
Addons/Strat_mode/Tablet/GUI_TabletMain.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/Tablet/GUI_TabletMain.sqf b/Addons/Strat_mode/Tablet/GUI_TabletMain.sqf
index 42e80d251..9f70479f3 100644
--- a/Addons/Strat_mode/Tablet/GUI_TabletMain.sqf
+++ b/Addons/Strat_mode/Tablet/GUI_TabletMain.sqf
@@ -47,7 +47,7 @@ while { true } do {
//if ((missionNamespace getVariable"CTI_SM_STRATEGIC") >0 ) then {
//!CTI_P_PreBuilding && ! CTI_P_Repairing
if !(true && CTI_CL_FNC_IsPlayerCommander) then {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210010) ctrlEnable false;};
- if !(true && CTI_CL_FNC_IsPlayerCommander && !(isNull ((CTI_P_SideJoined call CTI_CO_FNC_GetSideLogic) getVariable "CTI_PRIORITY") ) && time > (SM_Last_dis +SM_TO_dis) ) then {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210011) ctrlEnable false;};
+ if !(true && CTI_CL_FNC_IsPlayerCommander && !(isNull ((CTI_P_SideJoined call CTI_CO_FNC_GetSideLogic) getVariable "CTI_PRIORITY") ) && time > (SM_Last_dis +SM_TO_dis) && (count ((CTI_P_SideJoined call CTI_CO_FNC_GetSideLogic) getVariable "CTI_ACTIVE"))== CTI_SM_STRATEGIC_NB ) then {((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210011) ctrlEnable false;};
/*} else {
((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210010) ctrlEnable false;
((uiNamespace getVariable "cti_dialog_ui_tabletmain") displayCtrl 210011) ctrlEnable false;
From c0e34ec8c47042d5f2a75bd00674d175959afd8e Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sat, 30 Mar 2019 12:33:15 +0100
Subject: [PATCH 070/267] Moving var to global for construction
---
Server/Functions/Server_HandleStructureConstruction.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Server/Functions/Server_HandleStructureConstruction.sqf b/Server/Functions/Server_HandleStructureConstruction.sqf
index 34b3221b4..c24f9e354 100644
--- a/Server/Functions/Server_HandleStructureConstruction.sqf
+++ b/Server/Functions/Server_HandleStructureConstruction.sqf
@@ -90,7 +90,7 @@ if (_completion >= 100) then {
_structure setPos _position;
_structure setVectorUp [0,0,1];
_structure setVariable ["cti_save", _variable,false];
- _structure setVariable ["cti_structure_type", ((_var select 0) select 0)];
+ _structure setVariable ["cti_structure_type", ((_var select 0) select 0),true];
//--- Do we use our alternative damage system to prevent some bisteries from happening?
_alternative_damages = false;
From cbc4cd17f2a81e445ef0ff46fa8b751fad36f8c0 Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Tue, 2 Apr 2019 12:47:48 +0200
Subject: [PATCH 071/267] updated changes from altis main branch
---
Server/Init/Init_Server.sqf | 70 +++++++++++++++++++++++++++++++++++--
1 file changed, 68 insertions(+), 2 deletions(-)
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index c1581ed92..4e743c1e4 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -290,13 +290,79 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
} forEach [east,west];
};
0 spawn {
+ sleep 270;
while {!CTi_GameOver} do {
- sleep 270 +random (60);
0 call PERS_SAVE;
+ sleep 270 +random (60);
};
};
} else {
CTI_Init_Server=True;
-};
+ {
+ _side=_x;
+ _logic= (_side) call CTI_CO_FNC_GetSideLogic;
+ _logic setVariable ["CTI_LOAD_COMPLETED",true,true];
+ } forEach [east,west];
+};
+//Logging of varius values
+0 spawn {
+ sleep 100; //wait for everything to finish loading
+ _version = 2; //version of DiscordBot logReader
+ _arr = [["CTI_DataPacket", "Header"],
+ ["Version", _version],
+ ["Map", worldName]
+ ];
+ diag_log _arr;
+ while {!CTI_GameOver} do {
+ _east_sl = (east) call CTI_CO_FNC_GetSideLogic;
+ _west_sl = (west) call CTI_CO_FNC_GetSideLogic;
+ _towns = count(_east_sl getVariable ["CTI_ACTIVE",[]]) + count(_west_sl getVariable ["CTI_ACTIVE",[]]);
+ _players = [];
+ {
+ _players pushBack [name _x, str (side _x), getPlayerUID _x, getPlayerScores _x, getPos _x];
+ } forEach allPlayers - entities "HeadlessClient_F";
+
+ _west_towns = [];
+ {
+ _west_towns pushBack str _x;
+ } forEach (west call CTI_CO_FNC_GetSideTowns);
+ _east_towns = [];
+ {
+ _east_towns pushBack str _x;
+ } forEach (east call CTI_CO_FNC_GetSideTowns);
+
+
+ _arr = [["CTI_DataPacket", "Data"],
+ ["time", time],
+ ["fps", diag_fps],
+ ["score_east", (scoreSide east)],
+ ["score_west", (scoreSide west)],
+ ["player_count_east", (east countSide allPlayers)],
+ ["player_count_west", (west countSide allPlayers)],
+ ["players", _players],
+ ["bases_east", _east_sl getVariable ["cti_structures_areas",[]]],
+ ["bases_west", _west_sl getVariable ["cti_structures_areas",[]]],
+ ["east_towns", _east_towns],
+ ["west_towns", _west_towns],
+ ["commander_east", (name leader ((east) call CTI_CO_FNC_GetSideCommander))],
+ ["commander_west", (name leader ((west) call CTI_CO_FNC_GetSideCommander))],
+ ["town_count_east", ((east) call CTI_CO_FNC_GetSideTownCount)],
+ ["town_count_west", ((west) call CTI_CO_FNC_GetSideTownCount)],
+ ["active_SQF_count", count(diag_activeSQFScripts)],
+ ["active_AI", count(allUnits)],
+ ["total_objects", count(allMissionObjects "All")],
+ ["active_towns", _towns]
+ ];
+
+ diag_log _arr;
+ sleep 60;
+ };
+ //Triggerd on Misson end, used when FSM does not trigger. (used for debugging)
+ _arr = [["CTI_DataPacket", "EOF"],
+ ["Version", _version],
+ ["Map", worldName]
+ ];
+ diag_log _arr;
+};
From c5ad125c6279471b991f893e84cc6d90b78b38ca Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Wed, 3 Apr 2019 08:39:44 +0200
Subject: [PATCH 072/267] changed logging format to version3
---
Server/FSM/update_victory.fsm | 10 +++++-----
Server/Init/Init_Server.sqf | 25 +++++++++++++------------
2 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/Server/FSM/update_victory.fsm b/Server/FSM/update_victory.fsm
index 3bcc2fb5f..e75ba0442 100644
--- a/Server/FSM/update_victory.fsm
+++ b/Server/FSM/update_victory.fsm
@@ -15,8 +15,8 @@ link3[] = {2,4};
link4[] = {4,5};
link5[] = {5,6};
link6[] = {6,3};
-globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-626.312195,169.713379,529.355530,-580.065979,635,885,1};
-window[] = {2,-1,-1,-1,-1,963,182,1437,182,3,653};
+globals[] = {0.000000,0,0,0,0,640,480,1,164,6316128,1,-626.312195,169.713379,529.355530,-580.065979,635,884,1};
+window[] = {2,-1,-1,-1,-1,833,52,1307,52,3,653};
*//*%FSM*/
class FSM
{
@@ -84,7 +84,7 @@ class FSM
" {_factories = _factories + count([_x, _structures] call CTI_CO_FNC_GetSideStructuresByType)} forEach (missionNamespace getVariable format[""CTI_%1_Factories"", _side]);" \n
" if (( ( time > _max_time && _max_time != 0) || !(alive _hq) && _victory_hq == 1 || (!(alive _hq) && _factories == 0)) && !CTI_GameOver) exitWith { " \n
" diag_log[[""CTI_DataPacket"", ""GameOver""], " \n
- " [""Version"", 2], //version of DiscordBot logReader" \n
+ " [""Version"", 3], //version of DiscordBot logReader" \n
" [""Map"", worldName]," \n
" [""Side"", _x]," \n
" [""Lost"", true]," \n
@@ -99,7 +99,7 @@ class FSM
" };" \n
" if (_towns == _total && !CTI_GameOver) exitWith {" \n
" diag_log[[""CTI_DataPacket"", ""GameOver""], " \n
- " [""Version"", 2], //version of DiscordBot logReader" \n
+ " [""Version"", 3], //version of DiscordBot logReader" \n
" [""Map"", worldName]," \n
" [""Side"", _x]," \n
" [""Lost"", false]," \n
@@ -114,7 +114,7 @@ class FSM
" };" \n
" if (_townvalue > (_total_value*0.75) && !CTI_GameOver) exitWith {" \n
" diag_log[[""CTI_DataPacket"", ""GameOver""], " \n
- " [""Version"", 2], //version of DiscordBot logReader" \n
+ " [""Version"", 3], //version of DiscordBot logReader" \n
" [""Map"", worldName]," \n
" [""Side"", _x]," \n
" [""Lost"", false]," \n
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index 148a484e3..dfc1d11f9 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -313,7 +313,7 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
//Logging of varius values
0 spawn {
sleep 100; //wait for everything to finish loading
- _version = 2; //version of DiscordBot logReader
+ _version = 3; //version of DiscordBot logReader
_arr = [["CTI_DataPacket", "Header"],
["Version", _version],
["Map", worldName]
@@ -325,7 +325,7 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
_towns = count(_east_sl getVariable ["CTI_ACTIVE",[]]) + count(_west_sl getVariable ["CTI_ACTIVE",[]]);
_players = [];
{
- _players pushBack [name _x, str (side _x), getPlayerUID _x, getPlayerScores _x, getPos _x];
+ _players pushBack [name _x, str (side _x), getPlayerScores _x, getPos _x];
} forEach allPlayers - entities "HeadlessClient_F";
_west_towns = [];
@@ -337,19 +337,14 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
_east_towns pushBack str _x;
} forEach (east call CTI_CO_FNC_GetSideTowns);
-
- _arr = [["CTI_DataPacket", "Data"],
+ //Data for general mission performance
+ diag_log[["CTI_DataPacket", "Data_1"],
["time", time],
["fps", diag_fps],
["score_east", (scoreSide east)],
["score_west", (scoreSide west)],
["player_count_east", (east countSide allPlayers)],
["player_count_west", (west countSide allPlayers)],
- ["players", _players],
- ["bases_east", _east_sl getVariable ["cti_structures_areas",[]]],
- ["bases_west", _west_sl getVariable ["cti_structures_areas",[]]],
- ["east_towns", _east_towns],
- ["west_towns", _west_towns],
["commander_east", (name leader ((east) call CTI_CO_FNC_GetSideCommander))],
["commander_west", (name leader ((west) call CTI_CO_FNC_GetSideCommander))],
["town_count_east", ((east) call CTI_CO_FNC_GetSideTownCount)],
@@ -357,10 +352,16 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
["active_SQF_count", count(diag_activeSQFScripts)],
["active_AI", count(allUnits)],
["total_objects", count(allMissionObjects "All")],
- ["active_towns", _towns]
- ];
+ ["active_towns", _towns]];
+ //Data for Replay
+ diag_log[["CTI_DataPacket", "Data_2"],
+ ["players", _players]];
+ diag_log[["CTI_DataPacket", "Data_3"],
+ ["bases_east", _east_sl getVariable ["cti_structures_areas",[]]],
+ ["bases_west", _west_sl getVariable ["cti_structures_areas",[]]],
+ ["east_towns", _east_towns],
+ ["west_towns", _west_towns]];
- diag_log _arr;
sleep 60;
};
//Triggerd on Misson end, used when FSM does not trigger. (used for debugging)
From e198e77fc6b6b0644a9a49a3205393e86ca8b093 Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Sat, 6 Apr 2019 23:01:16 +0200
Subject: [PATCH 073/267] updated logging format again
---
Server/Init/Init_Server.sqf | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index dfc1d11f9..5fbd72aa7 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -323,11 +323,23 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
_east_sl = (east) call CTI_CO_FNC_GetSideLogic;
_west_sl = (west) call CTI_CO_FNC_GetSideLogic;
_towns = count(_east_sl getVariable ["CTI_ACTIVE",[]]) + count(_west_sl getVariable ["CTI_ACTIVE",[]]);
+
+ //build player array, splitting at 800 to ensure char limit of 1000 is not reached
_players = [];
+ _players_sub = [];
{
- _players pushBack [name _x, str (side _x), getPlayerScores _x, getPos _x];
+ if(count (_players_sub joinString ", ") >= 800) then {
+ _players pushBack _players_sub;
+ _players_sub = [];
+ };
+ _players_sub pushBack [name _x, str (side _x), getPlayerScores _x, getPos _x];
} forEach allPlayers - entities "HeadlessClient_F";
+ if(count (_players_sub joinString ", ") >= 10) then {
+ _players pushBack _players_sub;
+ _players_sub = [];
+ };
+ //Build town arrays
_west_towns = [];
{
_west_towns pushBack str _x;
@@ -337,6 +349,7 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
_east_towns pushBack str _x;
} forEach (east call CTI_CO_FNC_GetSideTowns);
+ //Post Data to .rpt log
//Data for general mission performance
diag_log[["CTI_DataPacket", "Data_1"],
["time", time],
@@ -353,10 +366,15 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
["active_AI", count(allUnits)],
["total_objects", count(allMissionObjects "All")],
["active_towns", _towns]];
- //Data for Replay
- diag_log[["CTI_DataPacket", "Data_2"],
- ["players", _players]];
- diag_log[["CTI_DataPacket", "Data_3"],
+ _dataP = 2; //next data packet index
+ {
+ //Data for Replay
+ diag_log[["CTI_DataPacket", (format ["Data_%1", _dataP])],
+ ["players", _x]];
+ _dataP = _dataP+1;
+ } forEach _players;
+
+ diag_log[["CTI_DataPacket", format ["Data_EOD_%1", _dataP]], //Marking package as "last"
["bases_east", _east_sl getVariable ["cti_structures_areas",[]]],
["bases_west", _west_sl getVariable ["cti_structures_areas",[]]],
["east_towns", _east_towns],
From a30830aadc69e745800d4814ac3b2fcaf3fb6323 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sun, 14 Apr 2019 15:10:37 +0200
Subject: [PATCH 074/267] -
-
---
mission.sqm | 8144 +++++++++++++++++++++++----------------------------
1 file changed, 3597 insertions(+), 4547 deletions(-)
diff --git a/mission.sqm b/mission.sqm
index 86755b155..8b37a39da 100644
--- a/mission.sqm
+++ b/mission.sqm
@@ -1,4547 +1,3597 @@
-version=53;
-class EditorData
-{
- moveGridStep=1;
- angleGridStep=0.2617994;
- scaleGridStep=1;
- autoGroupingDist=10;
- toggles=1;
- class ItemIDProvider
- {
- nextID=180;
- };
- class MarkerIDProvider
- {
- nextID=62;
- };
- class Camera
- {
- pos[]={2752.4963,392.94116,2267.8635};
- dir[]={0.64523667,-0.56169516,0.51804209};
- up[]={0.43804976,0.82728094,0.35169992};
- aside[]={0.62612563,1.1271914e-007,-0.77985692};
- };
-};
-binarizationWanted=0;
-addons[]=
-{
- "A3_Ui_F",
- "A3_Structures_F_Mil_Flags",
- "A3_Modules_F",
- "A3_Characters_F",
- "A3_Modules_F_Curator_Curator",
- "A3_Boat_F_Jets_Carrier_01"
-};
-class AddonsMetaData
-{
- class List
- {
- items=6;
- class Item0
- {
- className="A3_Ui_F";
- name="Arma 3 - User Interface";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- class Item1
- {
- className="A3_Structures_F_Mil";
- name="Arma 3 - Military Buildings and Structures";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- class Item2
- {
- className="A3_Modules_F";
- name="Arma 3 Alpha - Scripted Modules";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- class Item3
- {
- className="A3_Characters_F";
- name="Arma 3 Alpha - Characters and Clothing";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- class Item4
- {
- className="A3_Modules_F_Curator";
- name="Arma 3 Zeus Update - Scripted Modules";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- class Item5
- {
- className="A3_Boat_F_Jets";
- name="Arma 3 Jets - Boats and Submersibles";
- author="Bohemia Interactive";
- url="https://www.arma3.com";
- };
- };
-};
-randomSeed=3001308;
-class ScenarioData
-{
- author="Tom";
-};
-class Intro
-{
- class Intel
- {
- timeOfChanges=1800.0002;
- startWeather=0.30000001;
- startWind=0.1;
- startWaves=0.1;
- forecastWeather=0.30000001;
- forecastWind=0.1;
- forecastWaves=0.1;
- forecastLightnings=0.1;
- year=2035;
- month=7;
- day=6;
- hour=14;
- minute=15;
- startFogBase=0.001;
- forecastFogBase=0.001;
- startFogDecay=0.0049999999;
- forecastFogDecay=0.0049999999;
- };
-};
-class Mission
-{
- class Intel
- {
- briefingName="BECTI BE 0.97 - Zerty 1.3.4.5";
- overviewText="By Benny - Adapted from OFP era MFCTI (Mike Melvin)";
- resistanceWest=0;
- timeOfChanges=24720;
- startWind=0;
- startWaves=0.099999994;
- forecastWind=0;
- forecastWaves=0.099999994;
- forecastLightnings=0.099999994;
- rainForced=1;
- year=2035;
- month=6;
- hour=4;
- startFogDecay=0;
- forecastFogDecay=0;
- };
- class Entities
- {
- items=56;
- class Item0
- {
- dataType="Marker";
- position[]={11288.212,14.554405,4659.4922};
- name="CTI_EastRespawn";
- type="Empty";
- colorName="ColorRed";
- fillName="Border";
- drawBorder=1;
- id=0;
- };
- class Item1
- {
- dataType="Marker";
- position[]={10867.6,14.611816,3849.8416};
- name="CTI_WestRespawn";
- type="Empty";
- colorName="ColorRed";
- fillName="Border";
- drawBorder=1;
- id=1;
- atlOffset=-2.5643883;
- };
- class Item2
- {
- dataType="Marker";
- position[]={9931.5684,2.0193732,5942.4219};
- name="Prison";
- type="Empty";
- colorName="ColorPink";
- id=2;
- };
- class Item3
- {
- dataType="Marker";
- position[]={6113.103,0,6452.269};
- name="CENTER_POS";
- markerType="ELLIPSE";
- type="Empty";
- a=8000;
- b=8000;
- id=3;
- atlOffset=-355.95911;
- };
- class Item4
- {
- dataType="Marker";
- position[]={8048.7817,232.85887,10447.706};
- name="HELO_START_0";
- type="Empty";
- colorName="ColorGreen";
- id=4;
- atlOffset=202.47562;
- };
- class Item5
- {
- dataType="Marker";
- position[]={5666.728,366.88507,6911.4629};
- name="HELO_START_1";
- type="Empty";
- colorName="ColorGreen";
- id=5;
- atlOffset=30.71524;
- };
- class Item6
- {
- dataType="Marker";
- position[]={5074.2397,57.330524,2595.5024};
- name="HELO_START_2";
- type="Empty";
- colorName="ColorGreen";
- id=7;
- };
- class Item7
- {
- dataType="Marker";
- position[]={6310.3545,79.747299,3741.1113};
- name="HELO_START_3";
- type="Empty";
- colorName="ColorGreen";
- id=8;
- };
- class Item8
- {
- dataType="Marker";
- position[]={6880.8032,92.093384,7267.0029};
- name="HELO_START_4";
- type="Empty";
- colorName="ColorGreen";
- id=9;
- };
- class Item9
- {
- dataType="Marker";
- position[]={3644.0125,171.00302,8755.6426};
- name="HELO_START_5";
- type="Empty";
- colorName="ColorGreen";
- id=10;
- atlOffset=39.339203;
- };
- class Item10
- {
- dataType="Marker";
- position[]={7227.0454,66.153236,6112.1108};
- name="HELO_START_6";
- type="Empty";
- colorName="ColorGreen";
- id=11;
- };
- class Item11
- {
- dataType="Marker";
- position[]={3122.9133,355.63477,6521.2852};
- name="HELO_START_7";
- type="Empty";
- colorName="ColorGreen";
- id=12;
- atlOffset=122.17253;
- };
- class Item12
- {
- dataType="Marker";
- position[]={4057.4487,34.650162,3270.5313};
- name="HELO_START_8";
- type="Empty";
- colorName="ColorGreen";
- id=13;
- };
- class Item13
- {
- dataType="Marker";
- position[]={7270.1929,166.74646,8210.4082};
- name="HELO_START_9";
- type="Empty";
- colorName="ColorGreen";
- id=14;
- };
- class Item14
- {
- dataType="Marker";
- position[]={6202.1963,121.75577,8853.623};
- name="HELO_START_10";
- type="Empty";
- colorName="ColorGreen";
- id=15;
- };
- class Item15
- {
- dataType="Marker";
- position[]={8186.9155,21.156494,2971.0085};
- name="HELO_START_11";
- type="Empty";
- colorName="ColorGreen";
- id=16;
- atlOffset=-1.0235062;
- };
- class Item16
- {
- dataType="Marker";
- position[]={5445.9541,64.598518,11224.89};
- name="HELO_START_12";
- type="Empty";
- colorName="ColorGreen";
- id=17;
- };
- class Item17
- {
- dataType="Marker";
- position[]={696.65045,25.772217,12179.188};
- name="HELO_START_13";
- type="Empty";
- colorName="ColorGreen";
- id=18;
- atlOffset=-3.1477833;
- };
- class Item18
- {
- dataType="Marker";
- position[]={6808.0088,107.74664,8867.6797};
- name="HELO_START_14";
- type="Empty";
- colorName="ColorGreen";
- id=19;
- atlOffset=7.6293945e-006;
- };
- class Item19
- {
- dataType="Marker";
- position[]={5348.6553,160.02304,4129.0796};
- name="HELO_START_15";
- type="Empty";
- colorName="ColorGreen";
- id=20;
- atlOffset=39.84304;
- };
- class Item20
- {
- dataType="Marker";
- position[]={3229.1746,272.54126,6759.9316};
- name="HELO_START_16";
- type="Empty";
- colorName="ColorGreen";
- id=21;
- atlOffset=45.522095;
- };
- class Item21
- {
- dataType="Marker";
- position[]={12044.02,38.268066,4128.9272};
- name="CTI_HELP";
- type="Empty";
- colorName="ColorUNKNOWN";
- id=59;
- atlOffset=27.431581;
- };
- class Item22
- {
- dataType="Marker";
- position[]={10113.527,2.1769152,2213.2898};
- name="CTI_TUTORIAL";
- type="Empty";
- id=60;
- };
- class Item23
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={8141.9028,32.866806,10032.275};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Airport"", resistance, 350] execVM ""Common\Init\Init_Location.sqf""";
- name="Town0";
- };
- id=61;
- type="FlagPole_F";
- atlOffset=1.9073486e-006;
- };
- class Item24
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={5526.2373,339.83679,6982.5664};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Arudy"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town1";
- };
- id=62;
- type="FlagPole_F";
- };
- class Item25
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={5337.7021,45.364891,2796.292};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Cancon"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town2";
- };
- id=63;
- type="FlagPole_F";
- atlOffset=-3.8146973e-006;
- };
- class Item26
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={5905.499,58.962273,3578.531};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Chapoi"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town3";
- };
- id=64;
- type="FlagPole_F";
- atlOffset=-3.8146973e-006;
- };
- class Item27
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7125.938,75.791107,6122.4321};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Houdan"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town6";
- };
- id=65;
- type="FlagPole_F";
- };
- class Item28
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7062.2842,83.649132,7100.2358};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Dourdan"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town4";
- };
- id=66;
- type="FlagPole_F";
- };
- class Item29
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={3580.99,132.93045,8521.291};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Goisse"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town5";
- };
- id=67;
- type="FlagPole_F";
- };
- class Item30
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={3149.092,228.3168,6335.374};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""La Passagne"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town7";
- };
- id=68;
- type="FlagPole_F";
- };
- class Item31
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={3766.947,22.658308,3241.3359};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""La Riviere"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
- name="Town8";
- };
- id=69;
- type="FlagPole_F";
- };
- class Item32
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7302.6274,171.54681,7990.9468};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""La Trinite"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
- name="Town9";
- };
- id=70;
- type="FlagPole_F";
- };
- class Item33
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={5558.4565,75.736809,11184.31};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Lolisse"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town12";
- };
- id=71;
- type="FlagPole_F";
- };
- class Item34
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={766.15063,32.896805,12132.624};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Moray"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
- name="Town13";
- };
- id=72;
- type="FlagPole_F";
- };
- class Item35
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={3098.9939,234.082,6852.1948};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Vigny"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town16";
- };
- id=73;
- type="FlagPole_F";
- };
- class Item36
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7117.3838,109.22265,8962.2412};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Saint Louis"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town14";
- };
- id=77;
- type="FlagPole_F";
- atlOffset=7.6293945e-006;
- };
- class Item37
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={5597.0229,107.30638,4232.4102};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Sainte Marie"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town15";
- };
- id=78;
- type="FlagPole_F";
- };
- class Item38
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={8207.4014,25.557577,3157.1941};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Le Port"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
- name="Town11";
- };
- id=81;
- type="FlagPole_F";
- };
- class Item39
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={6029.3882,129.0968,8605.4844};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Larche"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
- name="Town10";
- };
- id=82;
- type="FlagPole_F";
- atlOffset=-7.6293945e-006;
- };
- class Item40
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={1182.1709,28.492928,584.47247};
- };
- name="CTI_WEST";
- id=111;
- type="Logic";
- atlOffset=6.3029652;
- };
- class Item41
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={7173.7769,15.405507,12288.153};
- };
- name="CTI_EAST";
- id=112;
- type="Logic";
- atlOffset=6.8918867;
- };
- class Item42
- {
- dataType="Group";
- side="East";
- class Entities
- {
- items=25;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7161.1045,8.4507074,12309.42};
- angles[]={0.019199125,0,6.2408099};
- };
- side="East";
- flags=6;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=114;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male02PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.01;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7165.8135,8.1746759,12306.356};
- angles[]={0.019199125,0,6.2001762};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="COLONEL";
- init="this allowDamage false; (group this) setGroupID [""Default Team""];this disableAI ""MOVE"";this disableAI ""AUTOTARGET"";this disableAI ""TARGET"";";
- name="CTI_EAST_DEFAULT_GROUP";
- };
- id=115;
- type="O_Soldier_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male03PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.99000001;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7155.8135,8.729907,12306.356};
- angles[]={0.0087958695,0,6.2511969};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayer=1;
- isPlayable=1;
- };
- id=116;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male01PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.97000003;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7170.8135,7.8547201,12301.356};
- angles[]={0.019199125,0,6.2001762};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=117;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male01PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.04;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7150.8135,8.933919,12301.356};
- angles[]={0.0087958695,0,6.2511969};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=118;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male01PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.03;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item5
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7175.8135,7.7079811,12296.356};
- angles[]={0.074263111,0,6.1629682};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=119;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male03PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item6
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7145.8135,9.3286066,12296.356};
- angles[]={0.056739714,0,6.2480001};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=120;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male02PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.03;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item7
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7180.8135,7.4759669,12291.356};
- angles[]={0.074263111,0,6.1629682};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=121;
- type="O_Soldier_SL_F";
- atlOffset=-4.7683716e-007;
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male03PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.03;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item8
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7140.8135,9.8660831,12291.356};
- angles[]={0.071080439,0,6.2336264};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=122;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male01PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item9
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7185.8135,7.3185496,12286.356};
- angles[]={0.13595572,0,6.1629682};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=123;
- type="O_Soldier_SL_F";
- atlOffset=-4.7683716e-007;
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male02PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item10
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7135.8135,10.537416,12286.356};
- angles[]={0.016798066,0,6.1558776};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=124;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male01PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.95999998;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item11
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7190.8135,7.8040166,12281.356};
- angles[]={0.13595572,0,0.0015822123};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=125;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male02PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item12
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7130.8135,11.252232,12281.356};
- angles[]={6.2759929,0,6.1795583};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=126;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male01PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.97000003;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item13
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7195.8135,8.4960575,12276.356};
- angles[]={0.13595572,0,0.0015822123};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=127;
- type="O_Soldier_SL_F";
- atlOffset=-9.5367432e-007;
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male03PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item14
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7125.8135,11.736261,12276.356};
- angles[]={6.2759929,0,6.1795583};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=128;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male03PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item15
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7200.8135,8.66574,12271.356};
- angles[]={0.0072011296,0,6.2312322};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=129;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male01PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.99000001;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item16
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7120.8135,11.677279,12271.356};
- angles[]={6.2631893,0,0.014398213};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=130;
- type="O_Soldier_SL_F";
- atlOffset=9.5367432e-007;
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male03PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.03;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item17
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7205.8135,8.4417267,12266.356};
- angles[]={0.0072011296,0,6.2312322};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=131;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male02PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.97000003;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item18
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7115.8135,11.216897,12266.356};
- angles[]={6.2097178,0,0.067896426};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=132;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male01PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.95999998;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item19
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7210.8135,8.3237801,12261.356};
- angles[]={0.095706634,0,6.2312331};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=133;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male02PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item20
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7110.8135,10.807887,12261.356};
- angles[]={0.047963165,0,6.2599902};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=134;
- type="O_Soldier_SL_F";
- atlOffset=9.5367432e-007;
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male01PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.97000003;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item21
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7215.8135,8.5675764,12256.356};
- angles[]={0.095706634,0,6.2384138};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=135;
- type="O_Soldier_SL_F";
- atlOffset=-9.5367432e-007;
- };
- class Item12
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={14497.858,10.133352,5847.647};
- angles[]={0.042641956,0,5.9590368};
- };
- side="East";
- flags=4;
- class Attributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male01PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.99000001;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item22
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7105.8135,11.148048,12256.356};
- angles[]={0.0064037596,0,0.018396867};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=136;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male03PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.97000003;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item23
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7220.8135,8.8236265,12251.356};
- angles[]={0.095706634,0,6.2384138};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=137;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male03PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.95999998;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item24
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={7100.8135,11.088045,12251.356};
- angles[]={0.0064037596,0,0.018396867};
- };
- side="East";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=138;
- type="O_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male02PER";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.02;
- };
- };
- };
- nAttributes=2;
- };
- };
- };
- class Attributes
- {
- };
- id=113;
- };
- class Item43
- {
- dataType="Group";
- side="West";
- class Entities
- {
- items=25;
- class Item0
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1208.968,24.919378,587.54797};
- angles[]={6.0981278,0,0.1020494};
- };
- side="West";
- flags=6;
- class Attributes
- {
- skill=0.60000002;
- rank="COLONEL";
- init="this allowDamage false;(group this) setGroupIDGlobal [""Default Team""];this disableAI ""MOVE"";this disableAI ""AUTOTARGET"";this disableAI ""TARGET"";";
- name="CTI_WEST_DEFAULT_GROUP";
- };
- id=140;
- type="B_Soldier_F";
- atlOffset=1.9073486e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male10ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item1
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1213.968,24.431927,582.59796};
- angles[]={6.0981278,0,0.052743852};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=141;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male08ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.97000003;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item2
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1203.968,23.526396,582.59796};
- angles[]={6.1432967,0,0.055937801};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=142;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male12ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.03;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item3
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1218.968,23.759932,577.59796};
- angles[]={6.0981278,0,0.052743852};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=143;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male08ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.03;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item4
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1198.968,22.503601,577.59796};
- angles[]={6.1432967,0,0.093322754};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=144;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male11ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item5
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1223.968,22.86038,572.59796};
- angles[]={6.010181,0,0.052743852};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=145;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male05ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.97000003;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item6
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1193.968,21.324379,572.59796};
- angles[]={6.060534,0,0.059934605};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=146;
- type="B_Soldier_SL_F";
- atlOffset=1.9073486e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male07ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.94999999;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item7
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1228.968,20.924431,567.59796};
- angles[]={6.010181,0,6.1354609};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=137;
- type="O_Soldier_SL_F";
- atlOffset=-4.7683716e-007;
- };
- class Item8
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1188.968,20.308863,567.59796};
- angles[]={6.1276588,0,6.2735863};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=148;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male10ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.05;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item9
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1233.968,18.780436,562.59796};
- angles[]={6.010181,0,6.1354609};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=149;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male07ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.94999999;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item10
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1183.968,19.785736,562.59796};
- angles[]={6.1661263,0,6.2129006};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=150;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male05ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.99000001;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item11
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1238.968,16.87989,557.59796};
- angles[]={6.0981278,0,5.9953976};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=151;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male02ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item12
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1178.968,19.102779,557.59796};
- angles[]={6.0880923,0,6.2001772};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=152;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male09ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.02;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item13
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1243.968,14.46389,552.59796};
- angles[]={6.0981278,0,5.9953976};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=153;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male06ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.02;
- };
- };
- };
- nAttributes=2;
- };
- id=153;
- type="B_Soldier_SL_F";
- atlOffset=-9.5367432e-007;
- };
- class Item14
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1173.968,18.497755,552.59796};
- angles[]={6.0880923,0,6.2320294};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=154;
- type="B_Soldier_SL_F";
- atlOffset=-1.9073486e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male12ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.02;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item15
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1248.968,11.892912,547.59796};
- angles[]={6.0378265,0,5.9953976};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=155;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male02ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.94999999;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item16
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1168.968,18.226578,547.59796};
- angles[]={6.0758057,0,6.1511512};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=156;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male12ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item17
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1253.968,10.151331,542.59796};
- angles[]={6.0378265,0,6.2368116};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=157;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male04ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.99000001;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item18
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1163.968,18.657196,542.59796};
- angles[]={6.2097239,0,6.0198498};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=158;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male02ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.01;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item19
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1258.968,8.6673365,537.59796};
- angles[]={6.0378265,0,6.2368116};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=159;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male09ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.97000003;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item20
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1158.968,20.325314,537.59796};
- angles[]={6.2376146,0,5.8480926};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=160;
- type="B_Soldier_SL_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male11ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item21
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1263.968,7.0660634,532.59796};
- angles[]={6.0280704,0,6.1922359};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=161;
- type="B_Soldier_SL_F";
- atlOffset=4.7683716e-007;
- };
- class Item22
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1153.968,22.202339,532.59796};
- angles[]={6.2312269,0,5.8099918};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=162;
- type="B_Soldier_SL_F";
- atlOffset=4.7683716e-007;
- };
- class Item23
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1268.968,5.3060699,527.59796};
- angles[]={6.0280704,0,6.1922359};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=163;
- type="B_Soldier_SL_F";
- atlOffset=4.7683716e-007;
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male10ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0.98000002;
- };
- };
- };
- nAttributes=2;
- };
- };
- class Item24
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={1148.968,24.480839,527.59796};
- angles[]={6.2312269,0,5.8266072};
- };
- side="West";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- rank="CAPTAIN";
- isPlayable=1;
- };
- id=164;
- type="B_Soldier_SL_F";
- atlOffset=1.9073486e-006;
- class CustomAttributes
- {
- class Attribute0
- {
- property="speaker";
- expression="_this setspeaker _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="Male10ENG";
- };
- };
- };
- class Attribute1
- {
- property="pitch";
- expression="_this setpitch _value;";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=1.01;
- };
- };
- };
- nAttributes=2;
- };
- };
- };
- class Attributes
- {
- };
- id=139;
- atlOffset=1.9073486e-006;
- };
- class Item44
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={1232.6871,30.013901,12319.944};
- };
- name="ADMIN_ZEUS";
- id=165;
- type="ModuleCurator_F";
- atlOffset=1.0839005;
- class CustomAttributes
- {
- class Attribute0
- {
- property="ModuleCurator_F_Owner";
- expression="_this setVariable ['Owner',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="";
- };
- };
- };
- class Attribute1
- {
- property="ModuleCurator_F_Forced";
- expression="_this setVariable ['Forced',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
- };
- };
- class Attribute2
- {
- property="ModuleCurator_F_Name";
- expression="_this setVariable ['Name',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="";
- };
- };
- };
- class Attribute3
- {
- property="ModuleCurator_F_Addons";
- expression="_this setVariable ['Addons',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "SCALAR"
- };
- };
- value=0;
- };
- };
- };
- nAttributes=4;
- };
- };
- class Item45
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={1240.7799,28.93,12320.001};
- };
- id=166;
- type="ModuleCuratorAddAddons_F";
- class CustomAttributes
- {
- class Attribute0
- {
- property="ModuleCuratorAddAddons_F_Curator";
- expression="_this setVariable ['Curator',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="";
- };
- };
- };
- class Attribute1
- {
- property="ModuleCuratorAddAddons_F_Addons";
- expression="_this setVariable ['Addons',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="""A3_Modules_F_Curator_Environment"",""A3_Modules_F_Curator_Smokeshells"",""A3_Characters_F_Civil"",""A3_Modules_F_Curator_Effects"",""A3_Modules_F_Curator_Misc"",""A3_Modules_F_Curator_Lightning""";
- };
- };
- };
- class Attribute2
- {
- property="ModuleCuratorAddAddons_F_Text";
- expression="_this setVariable ['Text',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "STRING"
- };
- };
- value="";
- };
- };
- };
- class Attribute3
- {
- property="ModuleCuratorAddAddons_F_Mode";
- expression="_this setVariable ['Mode',_value,true];";
- class Value
- {
- class data
- {
- class type
- {
- type[]=
- {
- "BOOL"
- };
- };
- value=1;
- };
- };
- };
- nAttributes=4;
- };
- };
- class Item46
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={1172.2943,34.174339,12322.352};
- };
- name="HC2";
- init="this allowDamage false;";
- isPlayable=1;
- id=167;
- type="HeadlessClient_F";
- atlOffset=5.244339;
- };
- class Item47
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={1183.4916,32.132164,12322.127};
- };
- name="HC3";
- init="this allowDamage false;";
- isPlayable=1;
- id=168;
- type="HeadlessClient_F";
- atlOffset=3.2021637;
- };
- class Item48
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={1195.809,30.169785,12322.574};
- };
- name="HC4";
- init="this allowDamage false;";
- isPlayable=1;
- id=169;
- type="HeadlessClient_F";
- atlOffset=1.2397842;
- };
- class Item49
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={1205.2152,28.93,12323.023};
- };
- name="HC5";
- init="this allowDamage false;";
- isPlayable=1;
- id=170;
- type="HeadlessClient_F";
- };
- class Item50
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={1162.4398,36.620186,12322.352};
- };
- name="HC1";
- init="this allowDamage false;";
- isPlayable=1;
- id=171;
- type="HeadlessClient_F";
- atlOffset=7.6901855;
- };
- class Item51
- {
- dataType="Logic";
- class PositionInfo
- {
- position[]={1187.1615,31.614197,12355.488};
- };
- name="CTI_GUER";
- id=172;
- type="Logic";
- atlOffset=2.6844673;
- };
- class Item52
- {
- dataType="Marker";
- position[]={9926.1279,0,3990.7314};
- name="HELO_START_18";
- type="Empty";
- colorName="ColorGreen";
- id=173;
- atlOffset=-40.932705;
- };
- class Item53
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={9746.9238,42.866806,3947.8401};
- };
- side="Empty";
- flags=4;
- class Attributes
- {
- skill=0.60000002;
- init="nullReturn = [this, ""Military Base"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
- name="Town17";
- };
- id=174;
- type="FlagPole_F";
- };
- class Item54
- {
- dataType="Object";
- class PositionInfo
- {
- position[]={3215.5969,0.00044250488,2598.6411};
- angles[]={0,3.7178655,0};
- };
- side="Empty";
- class Attributes
- {
- name="carrier";
- };
- id=178;
- type="Land_Carrier_01_base_F";
- atlOffset=73.230003;
- };
- class Item55
- {
- dataType="Marker";
- position[]={10113.068,2.1960001,2211.3149};
- name="marker_61";
- text="Wellcome area (Do not enter)";
- markerType="ELLIPSE";
- type="ellipse";
- colorName="ColorCIV";
- fillName="DiagGrid";
- a=500;
- b=500;
- id=179;
- atlOffset=-0.00027227402;
- };
- };
- class Connections
- {
- class LinkIDProvider
- {
- nextID=49;
- };
- class Links
- {
- items=49;
- class Item0
- {
- linkID=0;
- item0=142;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item1
- {
- linkID=1;
- item0=144;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item2
- {
- linkID=2;
- item0=143;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item3
- {
- linkID=3;
- item0=145;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item4
- {
- linkID=4;
- item0=146;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item5
- {
- linkID=5;
- item0=147;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item6
- {
- linkID=6;
- item0=148;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item7
- {
- linkID=7;
- item0=156;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item8
- {
- linkID=8;
- item0=155;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item9
- {
- linkID=9;
- item0=154;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item10
- {
- linkID=10;
- item0=153;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item11
- {
- linkID=11;
- item0=152;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item12
- {
- linkID=12;
- item0=151;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item13
- {
- linkID=13;
- item0=150;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item14
- {
- linkID=14;
- item0=149;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item15
- {
- linkID=15;
- item0=157;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item16
- {
- linkID=16;
- item0=158;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item17
- {
- linkID=17;
- item0=159;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item18
- {
- linkID=18;
- item0=160;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item19
- {
- linkID=19;
- item0=161;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item20
- {
- linkID=20;
- item0=162;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item21
- {
- linkID=21;
- item0=163;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item22
- {
- linkID=22;
- item0=164;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item23
- {
- linkID=23;
- item0=141;
- item1=111;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item24
- {
- linkID=24;
- item0=114;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item25
- {
- linkID=25;
- item0=117;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item26
- {
- linkID=26;
- item0=118;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item27
- {
- linkID=27;
- item0=119;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item28
- {
- linkID=28;
- item0=120;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item29
- {
- linkID=29;
- item0=121;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item30
- {
- linkID=30;
- item0=122;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item31
- {
- linkID=31;
- item0=123;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item32
- {
- linkID=32;
- item0=124;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item33
- {
- linkID=33;
- item0=125;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item34
- {
- linkID=34;
- item0=126;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item35
- {
- linkID=35;
- item0=127;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item36
- {
- linkID=36;
- item0=128;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item37
- {
- linkID=37;
- item0=129;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item38
- {
- linkID=38;
- item0=130;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item39
- {
- linkID=39;
- item0=131;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item40
- {
- linkID=40;
- item0=132;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item41
- {
- linkID=41;
- item0=133;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item42
- {
- linkID=42;
- item0=134;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item43
- {
- linkID=43;
- item0=135;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item44
- {
- linkID=44;
- item0=136;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item45
- {
- linkID=45;
- item0=137;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item46
- {
- linkID=46;
- item0=138;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item47
- {
- linkID=47;
- item0=116;
- item1=112;
- class CustomData
- {
- type="Sync";
- };
- };
- class Item48
- {
- linkID=48;
- item0=166;
- item1=165;
- class CustomData
- {
- type="Sync";
- };
- };
- };
- };
-};
-class OutroLoose
-{
- class Intel
- {
- timeOfChanges=1800.0002;
- startWeather=0.30000001;
- startWind=0.1;
- startWaves=0.1;
- forecastWeather=0.30000001;
- forecastWind=0.1;
- forecastWaves=0.1;
- forecastLightnings=0.1;
- year=2035;
- month=7;
- day=6;
- hour=14;
- minute=15;
- startFogBase=0.001;
- forecastFogBase=0.001;
- startFogDecay=0.0049999999;
- forecastFogDecay=0.0049999999;
- };
-};
-class OutroWin
-{
- class Intel
- {
- timeOfChanges=1800.0002;
- startWeather=0.30000001;
- startWind=0.1;
- startWaves=0.1;
- forecastWeather=0.30000001;
- forecastWind=0.1;
- forecastWaves=0.1;
- forecastLightnings=0.1;
- year=2035;
- month=7;
- day=6;
- hour=14;
- minute=15;
- startFogBase=0.001;
- forecastFogBase=0.001;
- startFogDecay=0.0049999999;
- forecastFogDecay=0.0049999999;
- };
-};
\ No newline at end of file
+version=53;
+class EditorData
+{
+ moveGridStep=1;
+ angleGridStep=0.2617994;
+ scaleGridStep=1;
+ autoGroupingDist=10;
+ toggles=1025;
+ class ItemIDProvider
+ {
+ nextID=178;
+ };
+ class MarkerIDProvider
+ {
+ nextID=62;
+ };
+ class Camera
+ {
+ pos[]={14608.123,155.19696,5895.5967};
+ dir[]={-0.80275387,-0.42684528,0.41648361};
+ up[]={-0.37890467,0.90431285,0.19658338};
+ aside[]={0.46054059,-1.7105776e-008,0.887676};
+ };
+};
+binarizationWanted=0;
+addons[]=
+{
+ "A3_Ui_F",
+ "A3_Structures_F_Mil_Flags",
+ "A3_Modules_F",
+ "A3_Characters_F",
+ "A3_Modules_F_Curator_Curator"
+};
+class AddonsMetaData
+{
+ class List
+ {
+ items=5;
+ class Item0
+ {
+ className="A3_Ui_F";
+ name="Arma 3 - User Interface";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item1
+ {
+ className="A3_Structures_F_Mil";
+ name="Arma 3 - Military Buildings and Structures";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item2
+ {
+ className="A3_Modules_F";
+ name="Arma 3 Alpha - Scripted Modules";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item3
+ {
+ className="A3_Characters_F";
+ name="Arma 3 Alpha - Characters and Clothing";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ class Item4
+ {
+ className="A3_Modules_F_Curator";
+ name="Arma 3 Zeus Update - Scripted Modules";
+ author="Bohemia Interactive";
+ url="https://www.arma3.com";
+ };
+ };
+};
+randomSeed=2773227;
+class ScenarioData
+{
+ author="Yoshi_E";
+};
+class Intro
+{
+ class Intel
+ {
+ timeOfChanges=1800.0002;
+ startWeather=0.30000001;
+ startWind=0.1;
+ startWaves=0.1;
+ forecastWeather=0.30000001;
+ forecastWind=0.1;
+ forecastWaves=0.1;
+ forecastLightnings=0.1;
+ year=2035;
+ month=7;
+ day=6;
+ hour=14;
+ minute=15;
+ startFogBase=0.001;
+ forecastFogBase=0.001;
+ startFogDecay=0.0049999999;
+ forecastFogDecay=0.0049999999;
+ };
+};
+class Mission
+{
+ class Intel
+ {
+ briefingName="BECTI BE 0.97 - Zerty 1.3.4.5";
+ overviewText="By Benny - Adapted from OFP era MFCTI (Mike Melvin)";
+ resistanceWest=0;
+ timeOfChanges=24720;
+ startWind=0;
+ startWaves=0.099999994;
+ forecastWind=0;
+ forecastWaves=0.099999994;
+ forecastLightnings=0.099999994;
+ rainForced=1;
+ year=2035;
+ month=6;
+ hour=4;
+ startFogDecay=0;
+ forecastFogDecay=0;
+ };
+ class Entities
+ {
+ items=124;
+ class Item0
+ {
+ dataType="Marker";
+ position[]={14491.973,9.0812836,5886.626};
+ name="CTI_EastRespawn";
+ type="Empty";
+ colorName="ColorRed";
+ fillName="Border";
+ drawBorder=1;
+ id=0;
+ };
+ class Item1
+ {
+ dataType="Marker";
+ position[]={2323.0264,13.272663,9262.7939};
+ name="CTI_WestRespawn";
+ type="Empty";
+ colorName="ColorRed";
+ fillName="Border";
+ drawBorder=1;
+ id=1;
+ };
+ class Item2
+ {
+ dataType="Marker";
+ position[]={16708.023,13.68144,13597.649};
+ name="Prison";
+ type="Empty";
+ colorName="ColorPink";
+ id=2;
+ };
+ class Item3
+ {
+ dataType="Marker";
+ position[]={15861.336,14.276582,16812.896};
+ name="CENTER_POS";
+ markerType="ELLIPSE";
+ type="Empty";
+ a=15000;
+ b=15000;
+ id=3;
+ };
+ class Item4
+ {
+ dataType="Marker";
+ position[]={5610.021,309.28171,21723.725};
+ name="HELO_START_0";
+ type="Empty";
+ colorName="ColorGreen";
+ id=4;
+ };
+ class Item5
+ {
+ dataType="Marker";
+ position[]={4639.3633,200.80589,22353.711};
+ name="HELO_START_1";
+ type="Empty";
+ colorName="ColorGreen";
+ id=5;
+ };
+ class Item6
+ {
+ dataType="Marker";
+ position[]={4653.5127,226.72784,18192.236};
+ name="HELO_START";
+ type="Empty";
+ colorName="ColorGreen";
+ id=6;
+ };
+ class Item7
+ {
+ dataType="Marker";
+ position[]={4651.3667,226.31035,18209.645};
+ name="HELO_START_2";
+ type="Empty";
+ colorName="ColorGreen";
+ id=7;
+ };
+ class Item8
+ {
+ dataType="Marker";
+ position[]={7621.6284,208.08614,13325.232};
+ name="HELO_START_3";
+ type="Empty";
+ colorName="ColorGreen";
+ id=8;
+ };
+ class Item9
+ {
+ dataType="Marker";
+ position[]={10515.029,84.02951,14144.914};
+ name="HELO_START_4";
+ type="Empty";
+ colorName="ColorGreen";
+ id=9;
+ };
+ class Item10
+ {
+ dataType="Marker";
+ position[]={8501.5254,42.18084,22591.121};
+ name="HELO_START_5";
+ type="Empty";
+ colorName="ColorGreen";
+ id=10;
+ };
+ class Item11
+ {
+ dataType="Marker";
+ position[]={8281.4951,67.853317,19906.736};
+ name="HELO_START_6";
+ type="Empty";
+ colorName="ColorGreen";
+ id=11;
+ };
+ class Item12
+ {
+ dataType="Marker";
+ position[]={11651.426,27.650551,22131.984};
+ name="HELO_START_7";
+ type="Empty";
+ colorName="ColorGreen";
+ id=12;
+ };
+ class Item13
+ {
+ dataType="Marker";
+ position[]={3745.71,21.729914,10576.94};
+ name="HELO_START_8";
+ type="Empty";
+ colorName="ColorGreen";
+ id=13;
+ };
+ class Item14
+ {
+ dataType="Marker";
+ position[]={5824.6914,21.924395,10721.572};
+ name="HELO_START_9";
+ type="Empty";
+ colorName="ColorGreen";
+ id=14;
+ };
+ class Item15
+ {
+ dataType="Marker";
+ position[]={6316.9219,30.09,15471.258};
+ name="HELO_START_10";
+ type="Empty";
+ colorName="ColorGreen";
+ id=15;
+ };
+ class Item16
+ {
+ dataType="Marker";
+ position[]={9742.7783,107.65765,14512.511};
+ name="HELO_START_11";
+ type="Empty";
+ colorName="ColorGreen";
+ id=16;
+ atlOffset=7.6293945e-006;
+ };
+ class Item17
+ {
+ dataType="Marker";
+ position[]={11516.446,53.074879,17410.16};
+ name="HELO_START_12";
+ type="Empty";
+ colorName="ColorGreen";
+ id=17;
+ };
+ class Item18
+ {
+ dataType="Marker";
+ position[]={13560.321,5.5936675,14878.066};
+ name="HELO_START_13";
+ type="Empty";
+ colorName="ColorGreen";
+ id=18;
+ };
+ class Item19
+ {
+ dataType="Marker";
+ position[]={13922.415,13.724786,17478.414};
+ name="HELO_START_14";
+ type="Empty";
+ colorName="ColorGreen";
+ id=19;
+ };
+ class Item20
+ {
+ dataType="Marker";
+ position[]={16620.469,12.391303,19819.42};
+ name="HELO_START_15";
+ type="Empty";
+ colorName="ColorGreen";
+ id=20;
+ };
+ class Item21
+ {
+ dataType="Marker";
+ position[]={15752.398,26.8323,20257.74};
+ name="HELO_START_16";
+ type="Empty";
+ colorName="ColorGreen";
+ id=21;
+ };
+ class Item22
+ {
+ dataType="Marker";
+ position[]={10057.669,13.515329,9724.3926};
+ name="HELO_START_17";
+ type="Empty";
+ colorName="ColorGreen";
+ id=22;
+ };
+ class Item23
+ {
+ dataType="Marker";
+ position[]={18950.08,22.684326,6172.5068};
+ name="HELO_START_18";
+ type="Empty";
+ colorName="ColorGreen";
+ id=23;
+ };
+ class Item24
+ {
+ dataType="Marker";
+ position[]={22839.02,59.218605,7644.248};
+ name="HELO_START_19";
+ type="Empty";
+ colorName="ColorGreen";
+ id=24;
+ };
+ class Item25
+ {
+ dataType="Marker";
+ position[]={19747.805,59.847923,8550.9883};
+ name="HELO_START_20";
+ type="Empty";
+ colorName="ColorGreen";
+ id=25;
+ };
+ class Item26
+ {
+ dataType="Marker";
+ position[]={19319.139,117.28299,11713.374};
+ name="HELO_START_21";
+ type="Empty";
+ colorName="ColorGreen";
+ id=26;
+ };
+ class Item27
+ {
+ dataType="Marker";
+ position[]={13606.947,18.530624,13178.719};
+ name="HELO_START_22";
+ type="Empty";
+ colorName="ColorGreen";
+ id=27;
+ };
+ class Item28
+ {
+ dataType="Marker";
+ position[]={3647.2109,274.09607,20110.045};
+ name="HELO_START_23";
+ type="Empty";
+ colorName="ColorGreen";
+ id=28;
+ };
+ class Item29
+ {
+ dataType="Marker";
+ position[]={13592.26,35.56068,20475.77};
+ name="HELO_START_24";
+ type="Empty";
+ colorName="ColorGreen";
+ id=29;
+ };
+ class Item30
+ {
+ dataType="Marker";
+ position[]={8954.123,191.4641,17143.156};
+ name="HELO_START_25";
+ type="Empty";
+ colorName="ColorGreen";
+ id=30;
+ };
+ class Item31
+ {
+ dataType="Marker";
+ position[]={8176.6768,116.04903,12137.798};
+ name="HELO_START_26";
+ type="Empty";
+ colorName="ColorGreen";
+ id=31;
+ atlOffset=-7.6293945e-006;
+ };
+ class Item32
+ {
+ dataType="Marker";
+ position[]={17605.617,86.35125,17227.758};
+ name="HELO_START_27";
+ type="Empty";
+ colorName="ColorGreen";
+ id=32;
+ };
+ class Item33
+ {
+ dataType="Marker";
+ position[]={16834.674,46.78714,16838.703};
+ name="HELO_START_28";
+ type="Empty";
+ colorName="ColorGreen";
+ id=33;
+ };
+ class Item34
+ {
+ dataType="Marker";
+ position[]={15425.264,43.708084,18878.059};
+ name="HELO_START_29";
+ type="Empty";
+ colorName="ColorGreen";
+ id=34;
+ };
+ class Item35
+ {
+ dataType="Marker";
+ position[]={6342.0215,197.7972,14024.557};
+ name="HELO_START_30";
+ type="Empty";
+ colorName="ColorGreen";
+ id=35;
+ };
+ class Item36
+ {
+ dataType="Marker";
+ position[]={4550.7393,57.666843,12503.57};
+ name="HELO_START_31";
+ type="Empty";
+ colorName="ColorGreen";
+ id=36;
+ };
+ class Item37
+ {
+ dataType="Marker";
+ position[]={6447.0005,207.68181,18311.395};
+ name="HELO_START_32";
+ type="Empty";
+ colorName="ColorGreen";
+ id=37;
+ };
+ class Item38
+ {
+ dataType="Marker";
+ position[]={27734.271,16.79051,21368.125};
+ name="HELO_START_33";
+ type="Empty";
+ colorName="ColorGreen";
+ id=38;
+ };
+ class Item39
+ {
+ dataType="Marker";
+ position[]={25227.996,29.664711,22464.543};
+ name="HELO_START_34";
+ type="Empty";
+ colorName="ColorGreen";
+ id=39;
+ };
+ class Item40
+ {
+ dataType="Marker";
+ position[]={26212.406,15.518887,24303};
+ name="HELO_START_35";
+ type="Empty";
+ colorName="ColorGreen";
+ id=40;
+ };
+ class Item41
+ {
+ dataType="Marker";
+ position[]={22729.473,32.199425,21095.527};
+ name="HELO_START_36";
+ type="Empty";
+ colorName="ColorGreen";
+ id=41;
+ };
+ class Item42
+ {
+ dataType="Marker";
+ position[]={16182.315,79.453537,10507.869};
+ name="HELO_START_37";
+ type="Empty";
+ colorName="ColorGreen";
+ id=42;
+ };
+ class Item43
+ {
+ dataType="Marker";
+ position[]={16720.092,12.791599,11673.385};
+ name="HELO_START_38";
+ type="Empty";
+ colorName="ColorGreen";
+ id=43;
+ };
+ class Item44
+ {
+ dataType="Marker";
+ position[]={20047.928,24.676178,16424.217};
+ name="HELO_START_39";
+ type="Empty";
+ colorName="ColorGreen";
+ id=44;
+ };
+ class Item45
+ {
+ dataType="Marker";
+ position[]={18892.809,23.786053,14574.043};
+ name="HELO_START_40";
+ type="Empty";
+ colorName="ColorGreen";
+ id=45;
+ };
+ class Item46
+ {
+ dataType="Marker";
+ position[]={22313.209,9.2807226,14070.693};
+ name="HELO_START_41";
+ type="Empty";
+ colorName="ColorGreen";
+ id=46;
+ };
+ class Item47
+ {
+ dataType="Marker";
+ position[]={19955.602,23.347048,13878.775};
+ name="HELO_START_42";
+ type="Empty";
+ colorName="ColorGreen";
+ id=47;
+ };
+ class Item48
+ {
+ dataType="Marker";
+ position[]={17819.961,15.659065,13623.636};
+ name="HELO_START_43";
+ type="Empty";
+ colorName="ColorGreen";
+ id=48;
+ };
+ class Item49
+ {
+ dataType="Marker";
+ position[]={21335.037,2.6161816,10734.353};
+ name="HELO_START_44";
+ type="Empty";
+ colorName="ColorGreen";
+ id=49;
+ };
+ class Item50
+ {
+ dataType="Marker";
+ position[]={18920.131,182.50348,10011.912};
+ name="HELO_START_45";
+ type="Empty";
+ colorName="ColorGreen";
+ id=50;
+ };
+ class Item51
+ {
+ dataType="Marker";
+ position[]={22030.188,21.254408,19726.084};
+ name="HELO_START_46";
+ type="Empty";
+ colorName="ColorGreen";
+ id=51;
+ };
+ class Item52
+ {
+ dataType="Marker";
+ position[]={22960.787,3.1900001,16952.262};
+ name="HELO_START_47";
+ type="Empty";
+ colorName="ColorGreen";
+ id=52;
+ };
+ class Item53
+ {
+ dataType="Marker";
+ position[]={24311.746,3.0870998,18266.453};
+ name="HELO_START_48";
+ type="Empty";
+ colorName="ColorGreen";
+ id=53;
+ };
+ class Item54
+ {
+ dataType="Marker";
+ position[]={25688.229,11.664829,20209.816};
+ name="HELO_START_49";
+ type="Empty";
+ colorName="ColorGreen";
+ id=54;
+ };
+ class Item55
+ {
+ dataType="Marker";
+ position[]={19638.189,29.112429,19299.75};
+ name="HELO_START_50";
+ type="Empty";
+ colorName="ColorGreen";
+ id=55;
+ };
+ class Item56
+ {
+ dataType="Marker";
+ position[]={10258.585,16.741814,12662.652};
+ name="HELO_START_51";
+ type="Empty";
+ colorName="ColorGreen";
+ id=56;
+ };
+ class Item57
+ {
+ dataType="Marker";
+ position[]={13411.286,72.199524,21926.582};
+ name="HELO_START_52";
+ type="Empty";
+ colorName="ColorGreen";
+ id=57;
+ };
+ class Item58
+ {
+ dataType="Marker";
+ position[]={20674.021,30.730125,18458.713};
+ name="HELO_START_53";
+ type="Empty";
+ colorName="ColorGreen";
+ id=58;
+ };
+ class Item59
+ {
+ dataType="Marker";
+ position[]={499.56848,-190.99652,30213.908};
+ name="CTI_HELP";
+ type="Empty";
+ colorName="ColorUNKNOWN";
+ id=59;
+ };
+ class Item60
+ {
+ dataType="Marker";
+ position[]={8457.709,105.3129,25118.77};
+ name="CTI_TUTORIAL";
+ type="Empty";
+ id=60;
+ atlOffset=-7.6293945e-006;
+ };
+ class Item61
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={20826.033,36.789253,6824.6987};
+ angles[]={0.014664836,0,6.2046804};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_selakano0"", resistance, 500,""Town33""] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town0";
+ };
+ id=61;
+ type="FlagPole_F";
+ atlOffset=0.012802124;
+ };
+ class Item62
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={16820.996,26.518801,12713.124};
+ angles[]={0.045302324,0,6.2725158};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_pyrgos0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town1";
+ };
+ id=62;
+ type="FlagPole_F";
+ atlOffset=0.0042667389;
+ };
+ class Item63
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={19407.914,42.663628,13262.551};
+ angles[]={0.018663859,0,0.022662206};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_dorida0"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town2";
+ };
+ id=63;
+ type="FlagPole_F";
+ atlOffset=0.0011024475;
+ };
+ class Item64
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={18089.914,26.811056,15200.277};
+ angles[]={6.2578578,0,0.012000273};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_charkia0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town3";
+ };
+ id=64;
+ type="FlagPole_F";
+ atlOffset=0.0015525818;
+ };
+ class Item65
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={21381.674,26.061756,16414.758};
+ angles[]={6.2405448,0,0.0146689};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_kalochori0"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town6";
+ };
+ id=65;
+ type="FlagPole_F";
+ atlOffset=0.0040168762;
+ };
+ class Item66
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={18810.496,35.676094,16633.451};
+ angles[]={6.2299027,0,6.2511969};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_rodopoli0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town4";
+ };
+ id=66;
+ type="FlagPole_F";
+ atlOffset=0.007686615;
+ };
+ class Item67
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={20945.688,47.213638,16965.613};
+ angles[]={0.0040116427,0,6.1888003};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_paros0"", resistance, 350,""Town39""] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town5";
+ };
+ id=67;
+ type="FlagPole_F";
+ atlOffset=0.017852783;
+ };
+ class Item68
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={27018.002,25.26956,23167.574};
+ angles[]={6.2711854,0,0.051953323};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_molos0"", resistance, 145,""Town47""] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town7";
+ };
+ id=68;
+ type="FlagPole_F";
+ atlOffset=0.0063037872;
+ };
+ class Item69
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={16640.928,19.293343,16056.638};
+ angles[]={6.272521,0,0.0093286335};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_anthrakia0"", resistance, 125] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town8";
+ };
+ id=69;
+ type="FlagPole_F";
+ atlOffset=0.00038051605;
+ };
+ class Item70
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={16244.04,29.379099,17314.234};
+ angles[]={6.2113094,0,0.037316564};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_telos0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town9";
+ };
+ id=70;
+ type="FlagPole_F";
+ atlOffset=0.013177872;
+ };
+ class Item71
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14032.271,30.131212,18737};
+ angles[]={0.039977662,0,6.2778587};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_athira0"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town12";
+ };
+ id=71;
+ type="FlagPole_F";
+ atlOffset=0.0032463074;
+ };
+ class Item72
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={11745.446,57.814919,18331.873};
+ angles[]={6.213963,0,6.253861};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_koroni0"", resistance, 125] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town13";
+ };
+ id=72;
+ type="FlagPole_F";
+ atlOffset=0.01134491;
+ };
+ class Item73
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={10292.485,134.56599,19118.633};
+ angles[]={6.1980581,0,6.2618537};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_galati0"", resistance, 125] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town16";
+ };
+ id=73;
+ type="FlagPole_F";
+ atlOffset=0.015487671;
+ };
+ class Item74
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4588.5151,303.55054,21381.932};
+ angles[]={6.2791886,0,6.2791886};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_oreokastro0"", resistance, 500,""Town38""] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town21";
+ };
+ id=74;
+ type="FlagPole_F";
+ atlOffset=3.0517578e-005;
+ };
+ class Item75
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={8649.4277,184.71611,18285.018};
+ angles[]={0.074527748,0,6.2671871};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_syrta0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town17";
+ };
+ id=75;
+ type="FlagPole_F";
+ atlOffset=0.011825562;
+ };
+ class Item76
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={9298.0059,119.61528,15932.003};
+ angles[]={0.081154868,0,0.037314966};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_agiosdionysios0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town18";
+ };
+ id=76;
+ type="FlagPole_F";
+ atlOffset=0.016075134;
+ };
+ class Item77
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={12362.523,25.348881,15765.438};
+ angles[]={0.0053265258,0,0.017329043};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_lakka0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town14";
+ };
+ id=77;
+ type="FlagPole_F";
+ atlOffset=0.00066947937;
+ };
+ class Item78
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={12608.428,16.056833,14320.253};
+ angles[]={6.1927657,0,6.2405434};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_neochori0"", resistance, 350] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town15";
+ };
+ id=78;
+ type="FlagPole_F";
+ atlOffset=0.019950867;
+ };
+ class Item79
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={9038.1826,26.646751,11954.574};
+ angles[]={0.021328852,0,6.1782389};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_zaros0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town19";
+ };
+ id=79;
+ type="FlagPole_F";
+ atlOffset=0.021104813;
+ };
+ class Item80
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={3507.7151,12.373648,12996.904};
+ angles[]={6.2671871,0,0.010664274};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_kavala0"", resistance, 500,""Town46""] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town20";
+ };
+ id=80;
+ type="FlagPole_F";
+ atlOffset=0.00073432922;
+ };
+ class Item81
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14181.469,23.505833,16286.399};
+ angles[]={0.012000273,0,6.2778587};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_airbase010"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town11";
+ };
+ id=81;
+ type="FlagPole_F";
+ atlOffset=0.00033187866;
+ };
+ class Item82
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={15191.061,21.902496,17301.797};
+ angles[]={0.0013372133,0,0.0013372133};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""STR_Map_Military_Base"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town10";
+ };
+ id=82;
+ type="FlagPole_F";
+ atlOffset=3.8146973e-006;
+ };
+ class Item83
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={20274.463,52.501724,11714.725};
+ angles[]={0.042640556,0,6.2778587};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_chalkeia0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town22";
+ };
+ id=83;
+ type="FlagPole_F";
+ atlOffset=0.0036773682;
+ };
+ class Item84
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={12842.514,46.522461,19633.301};
+ angles[]={6.253861,0,6.2645216};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_ifestiona0"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town23";
+ };
+ id=84;
+ type="FlagPole_F";
+ atlOffset=0.0023727417;
+ };
+ class Item85
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={4864.3594,82.693581,16151.614};
+ angles[]={0.02399601,0,6.2445378};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_negades0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town24";
+ };
+ id=85;
+ type="FlagPole_F";
+ atlOffset=0.0040969849;
+ };
+ class Item86
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={25623.484,22.950079,21285.391};
+ angles[]={6.249866,0,0.0079935296};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_sofia0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town25";
+ };
+ id=86;
+ type="FlagPole_F";
+ atlOffset=0.0023212433;
+ };
+ class Item87
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={20516.811,38.253426,8883.252};
+ angles[]={6.1219311,0,0.23175959};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_panagia0"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town26";
+ };
+ id=87;
+ type="FlagPole_F";
+ atlOffset=0.15982437;
+ };
+ class Item88
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={7118.8721,116.19866,16439.533};
+ angles[]={6.1637564,0,0.071875811};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_kore0"", resistance, 300] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town27";
+ };
+ id=88;
+ type="FlagPole_F";
+ atlOffset=0.038856506;
+ };
+ class Item89
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={22950.141,9.1006737,18859.719};
+ angles[]={0.0093350215,0,6.259192};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_almyra0"", resistance, 500] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town28";
+ };
+ id=89;
+ type="FlagPole_F";
+ atlOffset=0.00093460083;
+ };
+ class Item90
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={13587.634,19.314034,12209.913};
+ angles[]={0.0039967569,0,0.0013372133};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_makrynisiisland0"", resistance, 25] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town29";
+ };
+ id=90;
+ type="FlagPole_F";
+ atlOffset=3.9100647e-005;
+ };
+ class Item91
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14964.189,10.588233,11105.679};
+ angles[]={0.017332481,0,6.2046804};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_faronaki0"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town30";
+ };
+ id=91;
+ type="FlagPole_F";
+ atlOffset=0.012816429;
+ };
+ class Item92
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={17745.547,6.3756104,18107.686};
+ angles[]={0.0093286335,0,6.2711902};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_kalithea0"", resistance, 125] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town32";
+ };
+ id=92;
+ type="FlagPole_F";
+ atlOffset=0.00044631958;
+ };
+ class Item93
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={11574.771,23.315058,9442.752};
+ angles[]={6.2711902,0,6.2765174};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_vikos0"", resistance, 145,""Town42""] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town33";
+ };
+ id=93;
+ type="FlagPole_F";
+ atlOffset=0.0027294159;
+ };
+ class Item94
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={17077.311,23.238556,10059.891};
+ angles[]={0.031988446,0,0.027993103};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_ekali0"", resistance, 200,""Town33""] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town31";
+ };
+ id=94;
+ type="FlagPole_F";
+ atlOffset=0.0035552979;
+ };
+ class Item95
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14651.969,49.779419,20758.879};
+ angles[]={6.272521,0,6.2338929};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_frini0"", resistance, 175] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town34";
+ };
+ id=95;
+ type="FlagPole_F";
+ atlOffset=0.005065918;
+ };
+ class Item96
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={16854.336,14.130496,21871.979};
+ angles[]={0.022662206,0,6.2818484};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_nychi0"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town35";
+ };
+ id=96;
+ type="FlagPole_F";
+ atlOffset=0.0010061264;
+ };
+ class Item97
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={20113.703,22.211153,20032.137};
+ angles[]={0.0039967569,0,0.038647637};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""STR_Map_Theater_Ruins"", resistance, 150] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town36";
+ };
+ id=97;
+ type="FlagPole_F";
+ atlOffset=0.0030250549;
+ };
+ class Item98
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={20943.436,17.919567,19257.873};
+ angles[]={0.0093350215,0,0.075854406};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""STR_Map_Military_Outpost"", resistance, 250] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town37";
+ };
+ id=98;
+ type="FlagPole_F";
+ atlOffset=0.011717796;
+ };
+ class Item99
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={9220.6602,19.509701,21622.859};
+ angles[]={0.022664838,0,0.027993103};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""STR_Map_North_Airfield"", resistance, 500,""Town41""] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town38";
+ };
+ id=99;
+ type="FlagPole_F";
+ atlOffset=0.007390976;
+ };
+ class Item100
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={23199.52,18.140114,19971.23};
+ angles[]={6.272521,0,6.2765174};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_ioannina0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town39";
+ };
+ id=100;
+ type="FlagPole_F";
+ atlOffset=0.00032138824;
+ };
+ class Item101
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={11623.219,27.020689,11943.426};
+ angles[]={6.2352223,0,6.2179451};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_aacairfield0"", resistance, 500] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town40";
+ };
+ id=101;
+ type="FlagPole_F";
+ atlOffset=0.013057709;
+ };
+ class Item102
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={26851.094,30.606556,24466.365};
+ angles[]={0.031988446,0,0.0013372133};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_molosairfield0"", resistance, 500] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town41";
+ };
+ id=102;
+ type="FlagPole_F";
+ atlOffset=0.0020027161;
+ };
+ class Item103
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={5068.5044,56.909691,11306.087};
+ angles[]={6.2551947,0,6.2325621};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_panochori0"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town42";
+ };
+ id=103;
+ type="FlagPole_F";
+ atlOffset=0.0066490173;
+ };
+ class Item104
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={21895.934,26.782196,21010.182};
+ angles[]={6.129735,0,0.0066592805};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""STR_Map_Hotel_Complex"", resistance, 200] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town43";
+ };
+ id=104;
+ type="FlagPole_F";
+ atlOffset=0.047597885;
+ };
+ class Item105
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={5475.6577,31.276804,14999.543};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_stadium0"", resistance, 140] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town44";
+ };
+ id=105;
+ type="FlagPole_F";
+ };
+ class Item106
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={21091.016,5.8291836,14768.472};
+ angles[]={0.017332481,0,0.12468339};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_limni0"", resistance, 140] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town45";
+ };
+ id=106;
+ type="FlagPole_F";
+ atlOffset=0.03186357;
+ };
+ class Item107
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={3853.6687,19.174381,17472.664};
+ angles[]={6.2192721,0,0.077179179};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_agioskonstantinos0"", resistance, 140,""Town21""] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town46";
+ };
+ id=107;
+ type="FlagPole_F";
+ atlOffset=0.019934654;
+ };
+ class Item108
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={21752.174,19.689096,7520.2725};
+ angles[]={0.0093286335,0,6.2791886};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_feres0"", resistance, 140] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town47";
+ };
+ id=108;
+ type="FlagPole_F";
+ atlOffset=0.000207901;
+ };
+ class Item109
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={5853.1182,229.927,20094.025};
+ angles[]={6.2738504,0,0.069221549};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_dump0"", resistance, 175,""Town17""] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town48";
+ };
+ id=109;
+ type="FlagPole_F";
+ atlOffset=0.0097351074;
+ };
+ class Item110
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={23236.664,38.75779,21794.523};
+ angles[]={0.038647637,0,0.045302324};
+ };
+ side="Empty";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ init="nullReturn = [this, localize ""str_a3_nidasos0"", resistance, 145] execVM ""Common\Init\Init_Location.sqf""";
+ name="Town49";
+ };
+ id=110;
+ type="FlagPole_F";
+ atlOffset=0.0071182251;
+ };
+ class Item111
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={2288.1289,7.7944555,9280.5264};
+ };
+ name="CTI_WEST";
+ id=111;
+ type="Logic";
+ };
+ class Item112
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={14497.438,10.97437,5865.5117};
+ };
+ name="CTI_EAST";
+ id=112;
+ type="Logic";
+ };
+ class Item113
+ {
+ dataType="Group";
+ side="East";
+ class Entities
+ {
+ items=25;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14482.121,9.8335609,5893.3213};
+ angles[]={0.30364406,0,6.0730028};
+ };
+ side="East";
+ flags=6;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=114;
+ type="O_Soldier_SL_F";
+ };
+ class Item1
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14487.121,9.6155596,5888.3711};
+ angles[]={0.30364406,0,5.9329162};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="COLONEL";
+ init="this allowDamage false; (group this) setGroupID [""Default Team""];this disableAI ""MOVE"";this disableAI ""AUTOTARGET"";this disableAI ""TARGET"";";
+ name="CTI_EAST_DEFAULT_GROUP";
+ };
+ id=115;
+ type="O_Soldier_F";
+ };
+ class Item2
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14482.121,12.04697,5883.3711};
+ angles[]={0.10626491,0,6.1782393};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayer=1;
+ isPlayable=1;
+ };
+ id=116;
+ type="O_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male03PER";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.98000002;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item3
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14487.121,11.690472,5878.3711};
+ angles[]={0.21018261,0,6.0640931};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=117;
+ type="O_Soldier_SL_F";
+ };
+ class Item4
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14482.121,13.243651,5873.3711};
+ angles[]={0.12993059,0,6.2578578};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=118;
+ type="O_Soldier_SL_F";
+ };
+ class Item5
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14484.867,12.719265,5869.4692};
+ angles[]={6.1637559,0,6.1769204};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=119;
+ type="O_Soldier_SL_F";
+ };
+ class Item6
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14486.079,12.085032,5862.3247};
+ angles[]={0.0093350215,0,6.1769209};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=120;
+ type="O_Soldier_SL_F";
+ };
+ class Item7
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14489.289,11.779264,5858.4019};
+ angles[]={0.0093350215,0,6.1769209};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=121;
+ type="O_Soldier_SL_F";
+ };
+ class Item8
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14493.111,11.269214,5857.0439};
+ angles[]={6.2046804,0,6.1545658};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=122;
+ type="O_Soldier_SL_F";
+ };
+ class Item9
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14493.116,11.102674,5854.936};
+ angles[]={6.2046804,0,6.1545658};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=123;
+ type="O_Soldier_SL_F";
+ };
+ class Item10
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14491.64,10.838742,5852.5313};
+ angles[]={6.127131,0,6.2325611};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=124;
+ type="O_Soldier_SL_F";
+ };
+ class Item11
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14493.937,10.517456,5851.2285};
+ angles[]={6.127131,0,6.2325611};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=125;
+ type="O_Soldier_SL_F";
+ atlOffset=-9.5367432e-007;
+ };
+ class Item12
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14497.858,10.133352,5847.647};
+ angles[]={0.042641956,0,5.9590368};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=126;
+ type="O_Soldier_SL_F";
+ };
+ class Item13
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14512.12,7.1621251,5893.0957};
+ angles[]={6.2166171,0,6.1756024};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=127;
+ type="O_Soldier_SL_F";
+ atlOffset=4.7683716e-007;
+ };
+ class Item14
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14507.12,7.5813837,5888.0957};
+ angles[]={6.2605233,0,6.1323404};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=128;
+ type="O_Soldier_SL_F";
+ };
+ class Item15
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14512.12,6.4824553,5883.0957};
+ angles[]={6.2099824,0,6.13234};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=129;
+ type="O_Soldier_SL_F";
+ atlOffset=4.7683716e-007;
+ };
+ class Item16
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14507.12,7.4580698,5878.0957};
+ angles[]={6.256525,0,5.9929523};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=130;
+ type="O_Soldier_SL_F";
+ atlOffset=-0.29771471;
+ };
+ class Item17
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14512.12,6.1292048,5873.0957};
+ angles[]={6.256525,0,5.9929523};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=131;
+ type="O_Soldier_SL_F";
+ };
+ class Item18
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14507.12,7.3394032,5868.0957};
+ angles[]={6.2578578,0,5.9905057};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=132;
+ type="O_Soldier_SL_F";
+ };
+ class Item19
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14512.12,5.8589268,5863.0957};
+ angles[]={0.22543514,0,5.9905062};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=133;
+ type="O_Soldier_SL_F";
+ atlOffset=-0.34478331;
+ };
+ class Item20
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14507.12,8.399498,5858.0957};
+ angles[]={0.13386136,0,6.0793881};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=134;
+ type="O_Soldier_SL_F";
+ };
+ class Item21
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14512.12,7.0922318,5853.0957};
+ angles[]={6.2685208,0,6.0793877};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=135;
+ type="O_Soldier_SL_F";
+ atlOffset=-0.28221989;
+ };
+ class Item22
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14507.12,7.9941993,5848.0957};
+ angles[]={6.2046804,0,6.1180367};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=136;
+ type="O_Soldier_SL_F";
+ };
+ class Item23
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14509.348,7.3115125,5844.0229};
+ angles[]={6.2099833,0,6.1128521};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=137;
+ type="O_Soldier_SL_F";
+ atlOffset=-4.7683716e-007;
+ };
+ class Item24
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={14502.701,8.7139492,5842.7749};
+ angles[]={0.042641956,0,5.9590368};
+ };
+ side="East";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=138;
+ type="O_Soldier_SL_F";
+ };
+ };
+ class Attributes
+ {
+ formation="STAG COLUMN";
+ };
+ id=113;
+ };
+ class Item114
+ {
+ dataType="Group";
+ side="West";
+ class Entities
+ {
+ items=25;
+ class Item0
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2314.9258,12.648989,9283.7012};
+ angles[]={0.057271164,0,0.1312411};
+ };
+ side="West";
+ flags=6;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="COLONEL";
+ init="this allowDamage false;(group this) setGroupIDGlobal [""Default Team""];this disableAI ""MOVE"";this disableAI ""AUTOTARGET"";this disableAI ""TARGET"";";
+ name="CTI_WEST_DEFAULT_GROUP";
+ };
+ id=140;
+ type="B_Soldier_F";
+ };
+ class Item1
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2319.9258,13.644493,9278.751};
+ angles[]={0.057271164,0,0.15214813};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=141;
+ type="B_Soldier_SL_F";
+ };
+ class Item2
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2314.9258,12.525521,9273.751};
+ angles[]={6.2139621,0,0.2114578};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=142;
+ type="B_Soldier_SL_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="speaker";
+ expression="_this setspeaker _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="Male07ENG";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="pitch";
+ expression="_this setpitch _value;";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0.99000001;
+ };
+ };
+ };
+ nAttributes=2;
+ };
+ };
+ class Item3
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2319.9258,13.049868,9268.751};
+ angles[]={6.2498641,0,0.11153467};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=143;
+ type="B_Soldier_SL_F";
+ };
+ class Item4
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2314.9258,12.819977,9263.751};
+ angles[]={0.010664274,0,0.02666023};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=144;
+ type="B_Soldier_SL_F";
+ };
+ class Item5
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2319.9258,12.771416,9258.751};
+ angles[]={6.2285728,0,0.031988446};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=145;
+ type="B_Soldier_SL_F";
+ };
+ class Item6
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2314.9258,12.317031,9253.751};
+ angles[]={6.1861577,0,0.018667053};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=146;
+ type="B_Soldier_SL_F";
+ };
+ class Item7
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2319.9258,11.765233,9248.751};
+ angles[]={6.1861577,0,6.2365522};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=147;
+ type="B_Soldier_SL_F";
+ };
+ class Item8
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2314.9258,11.481448,9243.751};
+ angles[]={6.1782393,0,6.2365537};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=148;
+ type="B_Soldier_SL_F";
+ };
+ class Item9
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2319.9258,9.8097668,9238.751};
+ angles[]={5.8206048,0,6.0742788};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=149;
+ type="B_Soldier_SL_F";
+ };
+ class Item10
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2314.9258,8.4945126,9233.751};
+ angles[]={6.0755548,0,6.0213389};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=150;
+ type="B_Soldier_SL_F";
+ };
+ class Item11
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2337.5042,16.200138,9289.0645};
+ angles[]={0.018663859,0,0.074528553};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=151;
+ type="B_Soldier_SL_F";
+ atlOffset=3.8146973e-006;
+ };
+ class Item12
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2332.5042,15.609912,9284.0645};
+ angles[]={6.2405448,0,0.11548408};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=152;
+ type="B_Soldier_SL_F";
+ };
+ class Item13
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2337.5042,15.976583,9279.0645};
+ angles[]={6.2405448,0,0.11548408};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=153;
+ type="B_Soldier_SL_F";
+ atlOffset=-9.5367432e-007;
+ };
+ class Item14
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2332.5042,15.201583,9274.0645};
+ angles[]={6.2458687,0,0.053282689};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=154;
+ type="B_Soldier_SL_F";
+ };
+ class Item15
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2337.5042,15.643533,9269.0645};
+ };
+ side="West";
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=155;
+ type="B_Soldier_SL_F";
+ atlOffset=0.33308029;
+ };
+ class Item16
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2332.5042,14.609595,9264.0645};
+ angles[]={6.1914434,0,0.13647979};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=156;
+ type="B_Soldier_SL_F";
+ atlOffset=0.10816097;
+ };
+ class Item17
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2335,13.910367,9259.4766};
+ angles[]={6.1769204,0,6.233892};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=157;
+ type="B_Soldier_SL_F";
+ };
+ class Item18
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2332.5042,12.691146,9254.0645};
+ angles[]={5.8400087,0,6.0768318};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=158;
+ type="B_Soldier_SL_F";
+ atlOffset=-0.4017849;
+ };
+ class Item19
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2337.5042,9.6730919,9249.0645};
+ angles[]={5.8400087,0,6.0768318};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=159;
+ type="B_Soldier_SL_F";
+ };
+ class Item20
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2325.0005,10.993038,9246.0049};
+ angles[]={6.0188522,0,5.8026171};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=160;
+ type="B_Soldier_SL_F";
+ };
+ class Item21
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2327.6113,6.3763151,9235.6641};
+ angles[]={5.8206053,0,5.9795418};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=161;
+ type="B_Soldier_SL_F";
+ atlOffset=4.7683716e-007;
+ };
+ class Item22
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2329.3284,6.8502789,9239.1045};
+ angles[]={6.0003133,0,5.8026171};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=162;
+ type="B_Soldier_SL_F";
+ atlOffset=4.7683716e-007;
+ };
+ class Item23
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2332.2759,3.347275,9232.4805};
+ angles[]={6.0768318,0,5.9795418};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=163;
+ type="B_Soldier_SL_F";
+ };
+ class Item24
+ {
+ dataType="Object";
+ class PositionInfo
+ {
+ position[]={2321.0681,5.4266376,9229.5781};
+ angles[]={5.894659,0,6.0338197};
+ };
+ side="West";
+ flags=4;
+ class Attributes
+ {
+ skill=0.60000002;
+ rank="CAPTAIN";
+ isPlayable=1;
+ };
+ id=164;
+ type="B_Soldier_SL_F";
+ };
+ };
+ class Attributes
+ {
+ formation="STAG COLUMN";
+ };
+ id=139;
+ };
+ class Item115
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={8504.5732,33.204266,24831.566};
+ };
+ name="ADMIN_ZEUS";
+ id=165;
+ type="ModuleCurator_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ModuleCurator_F_Owner";
+ expression="_this setVariable ['Owner',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="ModuleCurator_F_Forced";
+ expression="_this setVariable ['Forced',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ModuleCurator_F_Name";
+ expression="_this setVariable ['Name',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="";
+ };
+ };
+ };
+ class Attribute3
+ {
+ property="ModuleCurator_F_Addons";
+ expression="_this setVariable ['Addons',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "SCALAR"
+ };
+ };
+ value=0;
+ };
+ };
+ };
+ nAttributes=4;
+ };
+ };
+ class Item116
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={8512.666,32.878616,24831.623};
+ };
+ id=166;
+ type="ModuleCuratorAddAddons_F";
+ class CustomAttributes
+ {
+ class Attribute0
+ {
+ property="ModuleCuratorAddAddons_F_Curator";
+ expression="_this setVariable ['Curator',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="";
+ };
+ };
+ };
+ class Attribute1
+ {
+ property="ModuleCuratorAddAddons_F_Addons";
+ expression="_this setVariable ['Addons',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="""A3_Modules_F_Curator_Environment"",""A3_Modules_F_Curator_Smokeshells"",""A3_Characters_F_Civil"",""A3_Modules_F_Curator_Effects"",""A3_Modules_F_Curator_Misc"",""A3_Modules_F_Curator_Lightning""";
+ };
+ };
+ };
+ class Attribute2
+ {
+ property="ModuleCuratorAddAddons_F_Text";
+ expression="_this setVariable ['Text',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "STRING"
+ };
+ };
+ value="";
+ };
+ };
+ };
+ class Attribute3
+ {
+ property="ModuleCuratorAddAddons_F_Mode";
+ expression="_this setVariable ['Mode',_value,true];";
+ class Value
+ {
+ class data
+ {
+ class type
+ {
+ type[]=
+ {
+ "BOOL"
+ };
+ };
+ value=1;
+ };
+ };
+ };
+ nAttributes=4;
+ };
+ };
+ class Item117
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={8428.5938,23.294439,24806.621};
+ };
+ name="HC2";
+ init="this allowDamage false;";
+ isPlayable=1;
+ id=167;
+ type="HeadlessClient_F";
+ };
+ class Item118
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={8439.791,22.404831,24806.396};
+ };
+ name="HC3";
+ init="this allowDamage false;";
+ isPlayable=1;
+ id=168;
+ type="HeadlessClient_F";
+ };
+ class Item119
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={8452.1084,23.873102,24806.844};
+ };
+ name="HC4";
+ init="this allowDamage false;";
+ isPlayable=1;
+ id=169;
+ type="HeadlessClient_F";
+ };
+ class Item120
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={8461.5146,24.935966,24807.293};
+ };
+ name="HC5";
+ init="this allowDamage false;";
+ isPlayable=1;
+ id=170;
+ type="HeadlessClient_F";
+ };
+ class Item121
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={8418.7393,24.140474,24806.621};
+ };
+ name="HC1";
+ init="this allowDamage false;";
+ isPlayable=1;
+ id=171;
+ type="HeadlessClient_F";
+ };
+ class Item122
+ {
+ dataType="Logic";
+ class PositionInfo
+ {
+ position[]={8443.4609,37.155445,24839.758};
+ };
+ name="CTI_GUER";
+ id=172;
+ type="Logic";
+ };
+ class Item123
+ {
+ dataType="Marker";
+ position[]={505.74133,0,30224.15};
+ name="marker_61";
+ text="Visit our Discord: https://discord.gg/YhBUUSr";
+ type="mil_warning";
+ colorName="ColorWEST";
+ id=177;
+ atlOffset=191.07422;
+ };
+ };
+ class Connections
+ {
+ class LinkIDProvider
+ {
+ nextID=49;
+ };
+ class Links
+ {
+ items=49;
+ class Item0
+ {
+ linkID=0;
+ item0=142;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item1
+ {
+ linkID=1;
+ item0=144;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item2
+ {
+ linkID=2;
+ item0=143;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item3
+ {
+ linkID=3;
+ item0=145;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item4
+ {
+ linkID=4;
+ item0=146;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item5
+ {
+ linkID=5;
+ item0=147;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item6
+ {
+ linkID=6;
+ item0=148;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item7
+ {
+ linkID=7;
+ item0=156;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item8
+ {
+ linkID=8;
+ item0=155;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item9
+ {
+ linkID=9;
+ item0=154;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item10
+ {
+ linkID=10;
+ item0=153;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item11
+ {
+ linkID=11;
+ item0=152;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item12
+ {
+ linkID=12;
+ item0=151;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item13
+ {
+ linkID=13;
+ item0=150;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item14
+ {
+ linkID=14;
+ item0=149;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item15
+ {
+ linkID=15;
+ item0=157;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item16
+ {
+ linkID=16;
+ item0=158;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item17
+ {
+ linkID=17;
+ item0=159;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item18
+ {
+ linkID=18;
+ item0=160;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item19
+ {
+ linkID=19;
+ item0=161;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item20
+ {
+ linkID=20;
+ item0=162;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item21
+ {
+ linkID=21;
+ item0=163;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item22
+ {
+ linkID=22;
+ item0=164;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item23
+ {
+ linkID=23;
+ item0=141;
+ item1=111;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item24
+ {
+ linkID=24;
+ item0=114;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item25
+ {
+ linkID=25;
+ item0=117;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item26
+ {
+ linkID=26;
+ item0=118;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item27
+ {
+ linkID=27;
+ item0=119;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item28
+ {
+ linkID=28;
+ item0=120;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item29
+ {
+ linkID=29;
+ item0=121;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item30
+ {
+ linkID=30;
+ item0=122;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item31
+ {
+ linkID=31;
+ item0=123;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item32
+ {
+ linkID=32;
+ item0=124;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item33
+ {
+ linkID=33;
+ item0=125;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item34
+ {
+ linkID=34;
+ item0=126;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item35
+ {
+ linkID=35;
+ item0=127;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item36
+ {
+ linkID=36;
+ item0=128;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item37
+ {
+ linkID=37;
+ item0=129;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item38
+ {
+ linkID=38;
+ item0=130;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item39
+ {
+ linkID=39;
+ item0=131;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item40
+ {
+ linkID=40;
+ item0=132;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item41
+ {
+ linkID=41;
+ item0=133;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item42
+ {
+ linkID=42;
+ item0=134;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item43
+ {
+ linkID=43;
+ item0=135;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item44
+ {
+ linkID=44;
+ item0=136;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item45
+ {
+ linkID=45;
+ item0=137;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item46
+ {
+ linkID=46;
+ item0=138;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item47
+ {
+ linkID=47;
+ item0=116;
+ item1=112;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ class Item48
+ {
+ linkID=48;
+ item0=166;
+ item1=165;
+ class CustomData
+ {
+ type="Sync";
+ };
+ };
+ };
+ };
+};
+class OutroLoose
+{
+ class Intel
+ {
+ timeOfChanges=1800.0002;
+ startWeather=0.30000001;
+ startWind=0.1;
+ startWaves=0.1;
+ forecastWeather=0.30000001;
+ forecastWind=0.1;
+ forecastWaves=0.1;
+ forecastLightnings=0.1;
+ year=2035;
+ month=7;
+ day=6;
+ hour=14;
+ minute=15;
+ startFogBase=0.001;
+ forecastFogBase=0.001;
+ startFogDecay=0.0049999999;
+ forecastFogDecay=0.0049999999;
+ };
+};
+class OutroWin
+{
+ class Intel
+ {
+ timeOfChanges=1800.0002;
+ startWeather=0.30000001;
+ startWind=0.1;
+ startWaves=0.1;
+ forecastWeather=0.30000001;
+ forecastWind=0.1;
+ forecastWaves=0.1;
+ forecastLightnings=0.1;
+ year=2035;
+ month=7;
+ day=6;
+ hour=14;
+ minute=15;
+ startFogBase=0.001;
+ forecastFogBase=0.001;
+ startFogDecay=0.0049999999;
+ forecastFogDecay=0.0049999999;
+ };
+};
From 122b3f23db84b8ad67b60d715bf3bb215ecc53eb Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Sun, 14 Apr 2019 15:13:04 +0200
Subject: [PATCH 075/267] fixed map mixup
---
README.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/README.md b/README.md
index 4de6821e4..74a83d1a7 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,4 @@
# Benny-Edition-CTI-0.97-Zerty-Modification
-# Malden Version
## Monetization
This mission (or code that I own inside) __cannot__ be used in a monetization process as defined by BiS at http://www.bistudio.com/monetization & http://www.bistudio.com/monetization/faq
From 98274ac9468333d74673b3cb61219189b0fc7ca4 Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Sun, 14 Apr 2019 15:53:34 +0200
Subject: [PATCH 076/267] fixed Free flares bug
---
.../Henroth_AirLoadout/Common_ACRefreshLoadoutMounted.sqf | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/Addons/Henroth_AirLoadout/Common_ACRefreshLoadoutMounted.sqf b/Addons/Henroth_AirLoadout/Common_ACRefreshLoadoutMounted.sqf
index c7f31c621..2a2f34661 100644
--- a/Addons/Henroth_AirLoadout/Common_ACRefreshLoadoutMounted.sqf
+++ b/Addons/Henroth_AirLoadout/Common_ACRefreshLoadoutMounted.sqf
@@ -141,9 +141,10 @@ for [ {_mount_index = 0},{ _mount_index < ( count ( _all_mountpoint_options ))},
{
_vehicle addWeaponTurret [ _weapon_classname , _turret_position ];
};
-
- _vehicle addMagazineTurret [ _magazine_classname , _turret_position ];
-
+ if ( not _not_resreached_magzine ) then
+ {
+ _vehicle addMagazineTurret [ _magazine_classname , _turret_position ];
+ };
if ( not _mount_loadout_enabled ) then
{
_vehicle setAmmo [ _weapon_classname , 0 ];
From 2874a1bb5d6f7a37ad347be83e7e00cffa501e9f Mon Sep 17 00:00:00 2001
From: Yoshi-E
Date: Sun, 14 Apr 2019 20:52:48 +0200
Subject: [PATCH 077/267] attemped fix for joining problem (when groups bug
out)
---
Server/Functions/Server_OnPlayerConnected.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Server/Functions/Server_OnPlayerConnected.sqf b/Server/Functions/Server_OnPlayerConnected.sqf
index 265323f77..35f9f2b37 100644
--- a/Server/Functions/Server_OnPlayerConnected.sqf
+++ b/Server/Functions/Server_OnPlayerConnected.sqf
@@ -47,7 +47,7 @@ while {isNull _unit && !((side _unit) in [east,west]) && _try <10} do {
{
_unit = _x;
};
- } forEach allUnits + allDead ;
+ } forEach allPlayers; // allUnits + allDead
From 2f97f46c71273933820263129cfd9bc9bd422cac Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Wed, 24 Apr 2019 19:31:33 +0200
Subject: [PATCH 078/267] should fix #272
To test
---
Client/Events/Events_UI_UnitsCamera.sqf | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/Client/Events/Events_UI_UnitsCamera.sqf b/Client/Events/Events_UI_UnitsCamera.sqf
index 7fc1252c1..ba0bb03c7 100644
--- a/Client/Events/Events_UI_UnitsCamera.sqf
+++ b/Client/Events/Events_UI_UnitsCamera.sqf
@@ -147,8 +147,13 @@ switch (_action) do {
case "onUnitsAILBSelChanged": {
_changeto = _this select 1;
- _ai = (uiNamespace getVariable "cti_dialog_ui_unitscam_groups_ai") select _changeto;
- if (alive _ai) then {
+ if (count (uiNamespace getVariable "cti_dialog_ui_unitscam_groups_ai") >= (_changeto +1) ) then {
+ _ai = (uiNamespace getVariable "cti_dialog_ui_unitscam_groups_ai") select _changeto;
+ } else {
+ _ai =objnull;
+ };
+
+ if ( alive _ai) then {
uiNamespace setVariable ["cti_dialog_ui_unitscam_focus", _ai];
switch (uiNamespace getVariable "cti_dialog_ui_unitscam_camview") do { case "internal": {vehicle _ai switchCamera "INTERNAL"}; case "ironsight": {vehicle _ai switchCamera "GUNNER"}};
((uiNamespace getVariable "cti_dialog_ui_unitscam") displayCtrl 180011) ctrlSetText format["Feed: %1", _ai];
From 2e1f4fe5d59a4fe76b51adb5b50c489e59434e42 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Wed, 24 Apr 2019 20:04:59 +0200
Subject: [PATCH 079/267] follow up on #272
---
Client/Events/Events_UI_UnitsCamera.sqf | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/Client/Events/Events_UI_UnitsCamera.sqf b/Client/Events/Events_UI_UnitsCamera.sqf
index ba0bb03c7..5e92d3a7c 100644
--- a/Client/Events/Events_UI_UnitsCamera.sqf
+++ b/Client/Events/Events_UI_UnitsCamera.sqf
@@ -146,11 +146,9 @@ switch (_action) do {
};
case "onUnitsAILBSelChanged": {
_changeto = _this select 1;
-
- if (count (uiNamespace getVariable "cti_dialog_ui_unitscam_groups_ai") >= (_changeto +1) ) then {
+ _ai =objnull;
+ if (count (uiNamespace getVariable "cti_dialog_ui_unitscam_groups_ai") > _changeto) then {
_ai = (uiNamespace getVariable "cti_dialog_ui_unitscam_groups_ai") select _changeto;
- } else {
- _ai =objnull;
};
if ( alive _ai) then {
From a70486f7961e56c298993651ac2d9e7470a34141 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Wed, 24 Apr 2019 20:05:26 +0200
Subject: [PATCH 080/267] Name fix in string table
---
stringtable.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/stringtable.xml b/stringtable.xml
index b36c42d64..3fc756372 100644
--- a/stringtable.xml
+++ b/stringtable.xml
@@ -2174,7 +2174,7 @@
- Barracks
+ Factory: Barracks
Казармы
From 9f7b4e4cb9b31dc62a2762c48c9e93b9c01db612 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 11 May 2019 01:09:54 +0200
Subject: [PATCH 081/267] fix for #275
new game update changes
---
Common/Config/Gear/Gear_East.sqf | 24 +++++++++++
Common/Config/Gear/Gear_West.sqf | 74 +++++++++++++++++++++++++++++++-
2 files changed, 97 insertions(+), 1 deletion(-)
diff --git a/Common/Config/Gear/Gear_East.sqf b/Common/Config/Gear/Gear_East.sqf
index 08eb17753..2e51235dc 100644
--- a/Common/Config/Gear/Gear_East.sqf
+++ b/Common/Config/Gear/Gear_East.sqf
@@ -159,6 +159,14 @@ _i = _i + ["30Rnd_762x39_Mag_Tracer_Green_F"];
_u = _u + [1];
_p = _p + [30];
+_i = _i + ["30Rnd_762x39_AK12_Mag_F"];
+_u = _u + [1];
+_p = _p + [30];
+
+_i = _i + ["30Rnd_762x39_AK12_Mag_Tracer_F"];
+_u = _u + [1];
+_p = _p + [30];
+
_i = _i + ["30Rnd_65x39_caseless_green"];
_u = _u + [1];
_p = _p + [30];
@@ -204,6 +212,22 @@ _i = _i + ["100Rnd_580x42_Mag_Tracer_F"];
_u = _u + [1];
_p = _p + [30];
+_i = _i + ["100Rnd_580x42_hex_Mag_F"];
+_u = _u + [1];
+_p = _p + [30];
+
+_i = _i + ["100Rnd_580x42_hex_Mag_Tracer_F"];
+_u = _u + [1];
+_p = _p + [30];
+
+_i = _i + ["100Rnd_580x42_ghex_Mag_F"];
+_u = _u + [1];
+_p = _p + [30];
+
+_i = _i + ["100Rnd_580x42_ghex_Mag_Tracer_F"];
+_u = _u + [1];
+_p = _p + [30];
+
//Sniper rifles Ammo
_i = _i + ["10Rnd_762x54_Mag"];
_u = _u + [2];
diff --git a/Common/Config/Gear/Gear_West.sqf b/Common/Config/Gear/Gear_West.sqf
index 4ab8b3255..5dc4a98c4 100644
--- a/Common/Config/Gear/Gear_West.sqf
+++ b/Common/Config/Gear/Gear_West.sqf
@@ -145,7 +145,23 @@ _p = _p + [20];
_i = _i + ["30Rnd_65x39_caseless_green_mag_Tracer"];
_u = _u + [1];
-_p = _p + [10];
+_p = _p + [20];
+
+_i = _i + ["30Rnd_65x39_caseless_black_mag"];
+_u = _u + [1];
+_p = _p + [20];
+
+_i = _i + ["30Rnd_65x39_caseless_khaki_mag"];
+_u = _u + [1];
+_p = _p + [20];
+
+_i = _i + ["30Rnd_65x39_caseless_black_mag_Tracer"];
+_u = _u + [1];
+_p = _p + [20];
+
+_i = _i + ["30Rnd_65x39_caseless_khaki_mag_Tracer"];
+_u = _u + [1];
+_p = _p + [20];
_i = _i + ["30Rnd_556x45_Stanag"];
_u = _u + [0];
@@ -171,6 +187,30 @@ _i = _i + ["30Rnd_556x45_Stanag_Tracer_Green"];
_u = _u + [0];
_p = _p + [10];
+_i = _i + ["30Rnd_556x45_Stanag_Sand"];
+_u = _u + [0];
+_p = _p + [10];
+
+_i = _i + ["30Rnd_556x45_Stanag_Sand_green"];
+_u = _u + [0];
+_p = _p + [10];
+
+_i = _i + ["30Rnd_556x45_Stanag_Sand_red"];
+_u = _u + [0];
+_p = _p + [10];
+
+_i = _i + ["30Rnd_556x45_Stanag_Sand_Tracer_Red"];
+_u = _u + [0];
+_p = _p + [10];
+
+_i = _i + ["30Rnd_556x45_Stanag_Sand_Tracer_Green"];
+_u = _u + [0];
+_p = _p + [10];
+
+_i = _i + ["30Rnd_556x45_Stanag_Sand_Tracer_Yellow"];
+_u = _u + [0];
+_p = _p + [10];
+
_i = _i + ["20Rnd_556x45_UW_mag"];
_u = _u + [2];
_p = _p + [50];
@@ -184,6 +224,22 @@ _i = _i + ["100Rnd_65x39_caseless_mag_Tracer"];
_u = _u + [1];
_p = _p + [30];
+_i = _i + ["100Rnd_65x39_caseless_black_mag"];
+_u = _u + [1];
+_p = _p + [30];
+
+_i = _i + ["100Rnd_65x39_caseless_black_mag_tracer"];
+_u = _u + [1];
+_p = _p + [30];
+
+_i = _i + ["100Rnd_65x39_caseless_khaki_mag"];
+_u = _u + [1];
+_p = _p + [30];
+
+_i = _i + ["100Rnd_65x39_caseless_khaki_mag_tracer"];
+_u = _u + [1];
+_p = _p + [30];
+
_i = _i + ["200Rnd_65x39_cased_Box"];
_u = _u + [2];
_p = _p + [40];
@@ -216,6 +272,22 @@ _i = _i + ["150Rnd_556x45_Drum_Mag_Tracer_F"];
_u = _u + [1];
_p = _p + [30];
+_i = _i + ["150Rnd_556x45_Drum_Sand_Mag_F"];
+_u = _u + [1];
+_p = _p + [30];
+
+_i = _i + ["150Rnd_556x45_Drum_Sand_Mag_Tracer_F"];
+_u = _u + [1];
+_p = _p + [30];
+
+_i = _i + ["150Rnd_556x45_Drum_Green_Mag_F"];
+_u = _u + [1];
+_p = _p + [30];
+
+_i = _i + ["150Rnd_556x45_Drum_Green_Mag_Tracer_F"];
+_u = _u + [1];
+_p = _p + [30];
+
_i = _i + ["130Rnd_338_Mag"];
_u = _u + [2];
_p = _p + [100];
From 4f3d27428d6b38e7241ed4fbe4a44187d83ba171 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 11 May 2019 12:06:42 +0200
Subject: [PATCH 082/267] Continue stringtable...
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Reason: missing barracks at factorys… everything used STR_UP_barracks (map markers, build menu….)
---
Common/Config/Base/Base_East.sqf | 2 +-
Common/Config/Base/Base_West.sqf | 2 +-
stringtable.xml | 8 ++++++++
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/Common/Config/Base/Base_East.sqf b/Common/Config/Base/Base_East.sqf
index 457189389..b6d2cfd26 100644
--- a/Common/Config/Base/Base_East.sqf
+++ b/Common/Config/Base/Base_East.sqf
@@ -153,7 +153,7 @@ _placements =_placements + [[180, 30]];
_specials = _specials + [[["DMG_Reduce", 1.5]]];*/
-_headers = _headers + [[CTI_BARRACKS, localize "STR_Up_Barracks", localize "STR_Up_Barracks"]];
+_headers = _headers + [[CTI_BARRACKS, localize "STR_Barracks", localize "STR_Barracks_1"]];
_classes = _classes + [["Land_Cargo_House_V1_F", "Land_Cargo_House_V1_ruins_F"]];
_prices = _prices + [1000];
_times = _times + [60];
diff --git a/Common/Config/Base/Base_West.sqf b/Common/Config/Base/Base_West.sqf
index b0eacd055..c4fea8b2f 100644
--- a/Common/Config/Base/Base_West.sqf
+++ b/Common/Config/Base/Base_West.sqf
@@ -158,7 +158,7 @@ _times = _times +[120];
_placements =_placements + [[180, 30]];
_specials = _specials + [[["DMG_Reduce", 1.5]]];*/
-_headers = _headers + [[CTI_BARRACKS, localize "STR_Up_Barracks", localize "STR_Up_Barracks"]];
+_headers = _headers + [[CTI_BARRACKS, localize "STR_Barracks", localize "STR_Barracks_1"]];
_classes = _classes + [["Land_Cargo_House_V1_F", "Land_Cargo_House_V1_ruins_F"]];
_prices = _prices + [1000];
_times = _times + [60];
diff --git a/stringtable.xml b/stringtable.xml
index 3fc756372..cde393450 100644
--- a/stringtable.xml
+++ b/stringtable.xml
@@ -2353,6 +2353,14 @@
+
+ Barracks
+ Казармы
+
+
+ Barracks
+ Казармы
+
Light Vehicle Factory
Завод Легкой Техники
From 85dbe265dfd2c44ceb3cfe7770d0709748957176 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sat, 11 May 2019 14:56:33 +0200
Subject: [PATCH 083/267] Update TASKS_loop.sqf
---
Addons/Strat_mode/Functions/TASKS_loop.sqf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Addons/Strat_mode/Functions/TASKS_loop.sqf b/Addons/Strat_mode/Functions/TASKS_loop.sqf
index aa6493d24..31022641c 100644
--- a/Addons/Strat_mode/Functions/TASKS_loop.sqf
+++ b/Addons/Strat_mode/Functions/TASKS_loop.sqf
@@ -18,8 +18,8 @@ _TASKS_LIST=[];
//other values used but the script
_side=_this;
-_logic= CTI_P_SideJoined call CTI_CO_FNC_GetSideLogic;
-_sideID = CTI_P_SideJoined call CTI_CO_FNC_GetSideID;
+_logic= _side call CTI_CO_FNC_GetSideLogic;
+_sideID = _side call CTI_CO_FNC_GetSideID;
// main Loop
waitUntil { (_logic getVariable ["CTI_LOAD_COMPLETED",false])};
From 00faf571d2d9d72c99f7567dc8d91f8e3d74abb0 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sat, 11 May 2019 23:13:53 +0200
Subject: [PATCH 084/267] Hide progessbar in map
---
Addons/Strat_mode/HUD/HUD_UpdateInfo.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/HUD/HUD_UpdateInfo.sqf b/Addons/Strat_mode/HUD/HUD_UpdateInfo.sqf
index 98d8fbaf3..93a396831 100644
--- a/Addons/Strat_mode/HUD/HUD_UpdateInfo.sqf
+++ b/Addons/Strat_mode/HUD/HUD_UpdateInfo.sqf
@@ -10,7 +10,7 @@ if (!(profileNamespace getVariable ["HUD_Normal",true]) ||visiblemap) exitWith {
_basic ctrlShow true;
// capture
_town=((player) call CTI_CO_FNC_GetClosestTown);
-if ( player distance _town < CTI_MARKERS_TOWN_AREA_RANGE) then {
+if ( player distance _town < CTI_MARKERS_TOWN_AREA_RANGE && (!visibleMap )) then {
_pro ctrlShow true;
_pb=((_town getVariable "cti_town_capture")) / CTI_TOWNS_CAPTURE_VALUE_CEIL ;
if ((_town getVariable ["cti_town_occupation_active",true]) || (_town getVariable ["cti_town_resistance_active",true])) then
From d9877d3f91c0df917b123e44fb9e7cc1efac9a2c Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 12 May 2019 00:04:56 +0200
Subject: [PATCH 085/267] Fix for base area loading
---
Addons/Strat_mode/Functions/SM_BP_Hook.sqf | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/Addons/Strat_mode/Functions/SM_BP_Hook.sqf b/Addons/Strat_mode/Functions/SM_BP_Hook.sqf
index 39862fa79..daed9aff8 100644
--- a/Addons/Strat_mode/Functions/SM_BP_Hook.sqf
+++ b/Addons/Strat_mode/Functions/SM_BP_Hook.sqf
@@ -1,13 +1,20 @@
private ["_side","_sidelogic","_count_bases","_bases"];
+
+
_side = _this ;
_sidelogic= (_side) call CTI_CO_FNC_GetSideLogic;
-_count_bases=0;
+_index=-1;
+
+
while {!CTI_GameOver} do {
_bases = (_sidelogic getVariable "cti_structures_areas");
- if (count _bases > _count_bases) then {
- if ( (missionNamespace getVariable 'CTI_SM_BASEP_M')!=0) then {[_bases select ((count _bases) -1),_side, ((count _bases) -1)] spawn SM_BP_Init};
- _count_bases= count _bases;
- [["CLIENT",_side], "Client_Base_Zone",[_side,((count _bases) -1),_bases select ((count _bases) -1)]] call CTI_CO_FNC_NetSend;
+ if (_index < ((count _bases) -1) ) then {
+ if ( (missionNamespace getVariable 'CTI_SM_BASEP_M')!=0) then
+ {
+ [_bases select _index,_side, _index] spawn SM_BP_Init;
+ };
+ [["CLIENT",_side], "Client_Base_Zone",[_side,_index,_bases select _index]] call CTI_CO_FNC_NetSend;
+ _index = _index +1;
};
sleep 1;
};
From 81db551a94a35bd15e23ddfab24e372ac79c8cd2 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 12 May 2019 09:43:18 +0200
Subject: [PATCH 086/267] Update SM_BP_Hook.sqf
---
Addons/Strat_mode/Functions/SM_BP_Hook.sqf | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/Functions/SM_BP_Hook.sqf b/Addons/Strat_mode/Functions/SM_BP_Hook.sqf
index daed9aff8..048d87c77 100644
--- a/Addons/Strat_mode/Functions/SM_BP_Hook.sqf
+++ b/Addons/Strat_mode/Functions/SM_BP_Hook.sqf
@@ -9,12 +9,13 @@ _index=-1;
while {!CTI_GameOver} do {
_bases = (_sidelogic getVariable "cti_structures_areas");
if (_index < ((count _bases) -1) ) then {
+ _index = _index +1;
if ( (missionNamespace getVariable 'CTI_SM_BASEP_M')!=0) then
{
[_bases select _index,_side, _index] spawn SM_BP_Init;
};
[["CLIENT",_side], "Client_Base_Zone",[_side,_index,_bases select _index]] call CTI_CO_FNC_NetSend;
- _index = _index +1;
+
};
sleep 1;
};
From 9d2249b9a391d2f634aa865f36c52a05a1f06452 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 12 May 2019 13:05:21 +0200
Subject: [PATCH 087/267] Buggy lines needs rewrite
---
Server/Functions/Server_SpawnTownResistance.sqf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Server/Functions/Server_SpawnTownResistance.sqf b/Server/Functions/Server_SpawnTownResistance.sqf
index 5dcfb092b..699f7fe86 100644
--- a/Server/Functions/Server_SpawnTownResistance.sqf
+++ b/Server/Functions/Server_SpawnTownResistance.sqf
@@ -169,8 +169,8 @@ _positions = [];
//diag_log _x;
_maxSpawnRange = CTI_TOWNS_RESISTANCE_SPAWN_RANGE;
- if (name _town == "Town29") then {_maxSpawnRange = 50;}; //--- Makrynisi
- if (name _town == "Town9") then {_maxSpawnRange = 150;}; //--- Telos
+ //if (name _town == "Town29" && ISLAND == 2) then {_maxSpawnRange = 50;}; //--- Makrynisi
+ //if (name _town == "Town9" && ISLAND == 2) then {_maxSpawnRange = 150;}; //--- Telos
_position = [getPos _town, 25, _maxSpawnRange] call CTI_CO_FNC_GetRandomPosition;
// _position = [getPos _town, 25, CTI_TOWNS_RESISTANCE_SPAWN_RANGE] call CTI_CO_FNC_GetRandomPosition;
From 96f45c64d73b47eaaa654dce20ad337d83f167c1 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 12 May 2019 13:23:02 +0200
Subject: [PATCH 088/267] Prevent marker spam to clients
---
.../Strat_mode/Functions/SM_BP_DetectLoop.sqf | 27 ++++++++++---------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/Addons/Strat_mode/Functions/SM_BP_DetectLoop.sqf b/Addons/Strat_mode/Functions/SM_BP_DetectLoop.sqf
index 19c486f7e..fdf258861 100644
--- a/Addons/Strat_mode/Functions/SM_BP_DetectLoop.sqf
+++ b/Addons/Strat_mode/Functions/SM_BP_DetectLoop.sqf
@@ -8,20 +8,23 @@ _enemy = switch (_side) do
case east: {west };
};
_enemylogic= (_enemy) call CTI_CO_FNC_GetSideLogic;
+_found=false;
-while {!CTI_GameOver} do {
+
+while {!CTI_GameOver && ! _found} do {
if (( _enemy countSide (((_base) nearEntities ["AllVehicles", (CTI_BASE_AREA_RANGE)]) unitsBelowHeight 40)) >0) then {
- _ind = (_sidelogic getVariable "cti_structures_areas") find _base;
- if (_ind>=0) exitWith {
- _temp= +(_enemylogic getVariable ["CTI_BASES_FOUND",[]]);
- _temp pushBackUnique _ind;
- _enemylogic setVariable ["CTI_BASES_FOUND",_temp,true];
- _neigh_vect=( _sidelogic getVariable "CTI_BASES_NEIGH") select _ind;
- [["CLIENT",_enemy], "Client_Base_Zone",[_side,_ind,_base]] call CTI_CO_FNC_NetSend;
- {
- [["CLIENT",_enemy], "Client_Connect",[_base,getPos _x,((_side) call CTI_CO_FNC_GetSideColoration),(CTI_BASE_AREA_RANGE)*2]] call CTI_CO_FNC_NetSend;true
- } count _neigh_vect;
- true };
+ _ind = (_sidelogic getVariable "cti_structures_areas") find _base;
+ if (_ind>=0) then {
+ _temp= +(_enemylogic getVariable ["CTI_BASES_FOUND",[]]);
+ _temp pushBackUnique _ind;
+ _enemylogic setVariable ["CTI_BASES_FOUND",_temp,true];
+ _neigh_vect=( _sidelogic getVariable "CTI_BASES_NEIGH") select _ind;
+ [["CLIENT",_enemy], "Client_Base_Zone",[_side,_ind,_base]] call CTI_CO_FNC_NetSend;
+ {
+ [["CLIENT",_enemy], "Client_Connect",[_base,getPos _x,((_side) call CTI_CO_FNC_GetSideColoration),(CTI_BASE_AREA_RANGE)*2]] call CTI_CO_FNC_NetSend;true
+ } count _neigh_vect;
+ _found=true;
+ };
};
sleep 5;
};
From b42d54b45d3328d352cda68a259f26389ee104be Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 12 May 2019 13:58:21 +0200
Subject: [PATCH 089/267] Changing version number
---
Rsc/Game.hpp | 4 ++--
mission.sqm | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Rsc/Game.hpp b/Rsc/Game.hpp
index d8005f666..9529c9381 100644
--- a/Rsc/Game.hpp
+++ b/Rsc/Game.hpp
@@ -4,11 +4,11 @@ respawnDelay = 10;
respawnDialog = false;
//--- Require briefing.html to show up.
-onLoadMission = "BECTI - Zerty/HTom/Yoshi_E 1.3.4.5";
+onLoadMission = "BECTI - Zerty/HTom/Yoshi_E 1.3.5.0";
onLoadMissionTime = false;
onLoadName = "BECTI - Zerty/HTom/Yoshi_E";
-briefingName = "BECTI - Zerty/HTom/Yoshi_E 1.3.4.5";
+briefingName = "BECTI - Zerty/HTom/Yoshi_E 1.3.5.0";
//--- ArmA 3 Specifics
dev = "Benny";
diff --git a/mission.sqm b/mission.sqm
index 8b37a39da..bf5e85d48 100644
--- a/mission.sqm
+++ b/mission.sqm
@@ -16,7 +16,7 @@ class EditorData
};
class Camera
{
- pos[]={14608.123,155.19696,5895.5967};
+ pos[]={14700.625,180.32924,5894.1079};
dir[]={-0.80275387,-0.42684528,0.41648361};
up[]={-0.37890467,0.90431285,0.19658338};
aside[]={0.46054059,-1.7105776e-008,0.887676};
@@ -105,7 +105,7 @@ class Mission
{
class Intel
{
- briefingName="BECTI BE 0.97 - Zerty 1.3.4.5";
+ briefingName="BECTI BE 0.97 - Zerty 1.3.5.0";
overviewText="By Benny - Adapted from OFP era MFCTI (Mike Melvin)";
resistanceWest=0;
timeOfChanges=24720;
From 6fd8caa92a74e57cd755a6e1179a1266bfb2f3ab Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 12 May 2019 14:12:36 +0200
Subject: [PATCH 090/267] Still fixing Base area loading
---
Addons/Strat_mode/init.sqf | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/Addons/Strat_mode/init.sqf b/Addons/Strat_mode/init.sqf
index c74d94230..8c2729fdd 100644
--- a/Addons/Strat_mode/init.sqf
+++ b/Addons/Strat_mode/init.sqf
@@ -98,10 +98,12 @@ if (CTI_IsServer) then {
_sl setVariable ["CTI_PREVENT",objNull,false];
_sl setVariable ["CTI_PRIORITY",objNull,true];
_sl setVariable ["CTI_HUD_SHARED",[],true];
- CTI_BASES_NEIGH=[];
- for "_i" from 1 to CTI_BASE_AREA_MAX do { CTI_BASES_NEIGH=CTI_BASES_NEIGH + [[]]; };
- _sl setVariable ["CTI_BASES_NEIGH",CTI_BASES_NEIGH,true];
- _sl setVariable ["CTI_BASES_FOUND",[],true];
+ if (count (_sl getVariable ["CTI_BASES_FOUND",[]]) >0) then {
+ CTI_BASES_NEIGH=[];
+ for "_i" from 1 to CTI_BASE_AREA_MAX do { CTI_BASES_NEIGH=CTI_BASES_NEIGH + [[]]; };
+ _sl setVariable ["CTI_BASES_NEIGH",CTI_BASES_NEIGH,true];
+ _sl setVariable ["CTI_BASES_FOUND",[],true];
+ };
} count [east,west];
//dynamic group loop
From fe041efb16299e7f736c4a703eae27a081aefb79 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 12 May 2019 14:32:01 +0200
Subject: [PATCH 091/267] Base loading continued
---
Addons/Strat_mode/Functions/PERS_save.sqf | 2 +-
Addons/Strat_mode/init.sqf | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Addons/Strat_mode/Functions/PERS_save.sqf b/Addons/Strat_mode/Functions/PERS_save.sqf
index 69cfd5b13..416aab43a 100644
--- a/Addons/Strat_mode/Functions/PERS_save.sqf
+++ b/Addons/Strat_mode/Functions/PERS_save.sqf
@@ -40,7 +40,7 @@ profileNamespace setVariable ["CTI_SAVE_TOWNS",_towns];
_teamscore = scoreSide _side;
_save pushBack _teamscore;
//save found bases [H]Tom
- _bases_found = (_logic getVariable "CTI_BASES_FOUND");
+ _bases_found = (_logic getVariable ["CTI_BASES_FOUND",[]]);
_save pushBack _bases_found;
//save Time Left [H]Tom
_limit = (missionNamespace getVariable "CTI_MAX_MISSION_TIME");
diff --git a/Addons/Strat_mode/init.sqf b/Addons/Strat_mode/init.sqf
index 8c2729fdd..f074b7116 100644
--- a/Addons/Strat_mode/init.sqf
+++ b/Addons/Strat_mode/init.sqf
@@ -98,10 +98,10 @@ if (CTI_IsServer) then {
_sl setVariable ["CTI_PREVENT",objNull,false];
_sl setVariable ["CTI_PRIORITY",objNull,true];
_sl setVariable ["CTI_HUD_SHARED",[],true];
+ CTI_BASES_NEIGH=[];
+ for "_i" from 1 to CTI_BASE_AREA_MAX do { CTI_BASES_NEIGH=CTI_BASES_NEIGH + [[]]; };
+ _sl setVariable ["CTI_BASES_NEIGH",CTI_BASES_NEIGH,true];
if (count (_sl getVariable ["CTI_BASES_FOUND",[]]) >0) then {
- CTI_BASES_NEIGH=[];
- for "_i" from 1 to CTI_BASE_AREA_MAX do { CTI_BASES_NEIGH=CTI_BASES_NEIGH + [[]]; };
- _sl setVariable ["CTI_BASES_NEIGH",CTI_BASES_NEIGH,true];
_sl setVariable ["CTI_BASES_FOUND",[],true];
};
} count [east,west];
From f9c62c5aa2936497d73ad5a671a23a24753197b0 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 12 May 2019 14:37:58 +0200
Subject: [PATCH 092/267] should fix #108
---
Server/Functions/Server_OnBuildingHandleDamage.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Server/Functions/Server_OnBuildingHandleDamage.sqf b/Server/Functions/Server_OnBuildingHandleDamage.sqf
index 372afe3d0..b2f17812e 100644
--- a/Server/Functions/Server_OnBuildingHandleDamage.sqf
+++ b/Server/Functions/Server_OnBuildingHandleDamage.sqf
@@ -46,7 +46,7 @@ _side = (_sideID) call CTI_CO_FNC_GetSideFromID;
_ratio=if (_damaged getvariable ["CTI_protected",false]&& CTI_SM_BASEP_M > 0) then { CTI_SM_BASEP_M} else {1};
_currentdmg = getDammage _damaged;
_damage = _currentdmg + ((_damage - _currentdmg) / _ratio);
-if (CTI_BASE_NOOBPROTECTION == 1 && side _shooter in [_side, sideEnemy]) exitWith {0};
+if (CTI_BASE_NOOBPROTECTION == 1 && side _shooter in [_side, sideEnemy,civilian]) exitWith {0};
if (_reduce_damages > 0) then {_currentdmg = getDammage _damaged; _damage = _currentdmg + ((_damage - _currentdmg) / _reduce_damages)};
if (_damaged getvariable ["CTI_protected",false]&& CTI_SM_BASEP_M > 0) then { CTI_SM_BASEP_M} else {1};
_logic = (_side) call CTI_CO_FNC_GetSideLogic;
From 4bbe14fe07ed9fc493c4d9fe5ab53206ee5fd650 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sun, 12 May 2019 14:59:50 +0200
Subject: [PATCH 093/267] Logic fail
---
Addons/Strat_mode/init.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/init.sqf b/Addons/Strat_mode/init.sqf
index f074b7116..013af11dc 100644
--- a/Addons/Strat_mode/init.sqf
+++ b/Addons/Strat_mode/init.sqf
@@ -101,7 +101,7 @@ if (CTI_IsServer) then {
CTI_BASES_NEIGH=[];
for "_i" from 1 to CTI_BASE_AREA_MAX do { CTI_BASES_NEIGH=CTI_BASES_NEIGH + [[]]; };
_sl setVariable ["CTI_BASES_NEIGH",CTI_BASES_NEIGH,true];
- if (count (_sl getVariable ["CTI_BASES_FOUND",[]]) >0) then {
+ if (count (_sl getVariable ["CTI_BASES_FOUND",[]]) == 0) then {
_sl setVariable ["CTI_BASES_FOUND",[],true];
};
} count [east,west];
From 0b71ebe1d2fcb22a3cedfbd80c32ec0772445185 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Tue, 21 May 2019 14:37:03 +0200
Subject: [PATCH 094/267] Add Resistance mortar to Arty menu
for use stolen res mortar with arty menu
---
Common/Config/Artillery/Artillery.sqf | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Common/Config/Artillery/Artillery.sqf b/Common/Config/Artillery/Artillery.sqf
index db3a9fe31..e6f5077e0 100644
--- a/Common/Config/Artillery/Artillery.sqf
+++ b/Common/Config/Artillery/Artillery.sqf
@@ -13,6 +13,11 @@ _m = _m + [["8Rnd_82mm_Mo_shells", "8Rnd_82mm_Mo_Smoke_white", "8Rnd_82mm_Mo_Fla
_b = _b + [[1, 2, 4, 8]];
_r = _r + [[[100,2500], [100,3000], [100,3500], [100,4000]]];
+_c = _c + ["I_Mortar_01_F"];
+_m = _m + [["8Rnd_82mm_Mo_shells", "8Rnd_82mm_Mo_Smoke_white", "8Rnd_82mm_Mo_Flare_white", "8Rnd_82mm_Mo_LG"]];
+_b = _b + [[1, 2, 4, 8]];
+_r = _r + [[[100,2500], [100,3000], [100,3500], [100,4000]]];
+
_c = _c + ["B_MBT_01_arty_F"];
_m = _m + [["32Rnd_155mm_Mo_shells", "2Rnd_155mm_Mo_Cluster", "2Rnd_155mm_Mo_guided", "2Rnd_155mm_Mo_LG", "6Rnd_155mm_Mo_smoke", "6Rnd_155mm_Mo_mine", "6Rnd_155mm_Mo_AT_mine"]];
_b = _b + [[2, 4, 8, 12]];
From 970e360c4fe4c3f1f272ce047e3245ac399697e4 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 25 May 2019 15:16:54 +0200
Subject: [PATCH 095/267] fix for #276
fix (or just step1)
remote not working if Revive Disabled in parameters.. sry :]
---
Common/Functions/Common_CreateUnit.sqf | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Common/Functions/Common_CreateUnit.sqf b/Common/Functions/Common_CreateUnit.sqf
index 732ca0785..ad5a207ea 100644
--- a/Common/Functions/Common_CreateUnit.sqf
+++ b/Common/Functions/Common_CreateUnit.sqf
@@ -241,15 +241,15 @@ if (missionNamespace getVariable "CTI_SM_RADAR" == 1) then {
_unit addAction [localize "STR_Common_CreateUnit_Remote_Control","
player connectTerminalToUAV ( vehicle(_this select 0));
(_this select 0) spawn {
- waitUntil { uavControl ( vehicle(_this)) select 1 == 'GUNNER' || ! (driver (vehicle _this)==_this) || (vehicle _this ==_this) || ! alive _this || ! alive player};
+ waitUntil {uavControl ( vehicle(_this)) select 1 == 'GUNNER' || ! (driver (vehicle _this)==_this) || (vehicle _this ==_this) || ! alive _this || ! alive player || (player getvariable 'REV_UNC')};
sleep 1;
- player connectTerminalToUAV objNull;
+ player connectTerminalToUAV objNull;
objNull remoteControl cameraon;
vehicle (player) switchCamera 'Internal'
-
};
+ if (!(player getvariable 'REV_UNC')) then {
player remoteControl (driver vehicle (_this select 0));
- ( vehicle(_this select 0)) switchCamera 'Internal';
+ ( vehicle(_this select 0)) switchCamera 'Internal';};
","",100, false, true, "", "(vehicle _this) == (vehicle _target) && ! (vehicle _this ==_this) && driver (vehicle _this)==_this && isnull gunner (vehicle _this) && !((vehicle _this) == vehicle (player)) &&! (uavControl ( vehicle(_this)) select 0 == player)"];
// returnvehicle objNull remoteControl cameraon; player connectTerminalToUAV objNull; (player) switchCamera 'Internal';
From 297d094110eb376bb82f94c40eab84cb93e87191 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sun, 26 May 2019 14:45:43 +0200
Subject: [PATCH 096/267] Buggy Lines nr.2
like on spawntownresistance
---
Server/Functions/Server_SpawnTownOccupation.sqf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Server/Functions/Server_SpawnTownOccupation.sqf b/Server/Functions/Server_SpawnTownOccupation.sqf
index 0e1942686..3344cb5c7 100644
--- a/Server/Functions/Server_SpawnTownOccupation.sqf
+++ b/Server/Functions/Server_SpawnTownOccupation.sqf
@@ -243,8 +243,8 @@ _positions = [];
//diag_log _x;
_maxSpawnRange = CTI_TOWNS_OCCUPATION_SPAWN_RANGE;
- if (name _town == "Town29") then {_maxSpawnRange = 25}; //--- Makrynisi
- if (name _town == "Town9") then {_maxSpawnRange = 125}; //--- Telos
+ //if (name _town == "Town29" && ISLAND == 2) then {_maxSpawnRange = 50;}; //--- Makrynisi
+ //if (name _town == "Town9" && ISLAND == 2) then {_maxSpawnRange = 150;}; //--- Telos
_position = [getPos _town, 25, _maxSpawnRange] call CTI_CO_FNC_GetRandomPosition;
// _position = [getPos _town, 25, CTI_TOWNS_OCCUPATION_SPAWN_RANGE] call CTI_CO_FNC_GetRandomPosition;
From 010e2aafc860faa74ad93ed8cc521613fc690b68 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sun, 26 May 2019 20:09:34 +0200
Subject: [PATCH 097/267] While - sleep
add some rest time
---
Addons/Strat_mode/Radar/AIRR_init.sqf | 1 +
.../UI/Functions_UI_ArtilleryMenu.sqf | 1 +
Client/Functions/UI/Functions_UI_GearMenu.sqf | 22 +++++++++----------
3 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/Addons/Strat_mode/Radar/AIRR_init.sqf b/Addons/Strat_mode/Radar/AIRR_init.sqf
index 5aa0c8e6c..6b2d04feb 100644
--- a/Addons/Strat_mode/Radar/AIRR_init.sqf
+++ b/Addons/Strat_mode/Radar/AIRR_init.sqf
@@ -57,6 +57,7 @@ if (CTI_IsClient) then {
};
//update
_marker setMarkerPosLocal (getPos _obj);
+ sleep 0.5;
};
deleteMarkerLocal _marker;
};
diff --git a/Client/Functions/UI/Functions_UI_ArtilleryMenu.sqf b/Client/Functions/UI/Functions_UI_ArtilleryMenu.sqf
index ce7939db4..f67dc7593 100644
--- a/Client/Functions/UI/Functions_UI_ArtilleryMenu.sqf
+++ b/Client/Functions/UI/Functions_UI_ArtilleryMenu.sqf
@@ -115,6 +115,7 @@ CTI_UI_Artillery_UpdateArtilleryMarker = {
while {alive _artillery} do {
{_x setMarkerPosLocal getPos _artillery} forEach [_marker_min, _marker_max];
+ sleep 0.5;
};
{deleteMarkerLocal _x} forEach [_marker_min, _marker_max];
diff --git a/Client/Functions/UI/Functions_UI_GearMenu.sqf b/Client/Functions/UI/Functions_UI_GearMenu.sqf
index a9bd4547b..4f8b20591 100644
--- a/Client/Functions/UI/Functions_UI_GearMenu.sqf
+++ b/Client/Functions/UI/Functions_UI_GearMenu.sqf
@@ -353,8 +353,8 @@ CTI_UI_Gear_TryContainerAddItem = {
CTI_UI_Gear_AddItem = {
private ["_current", "_get", "_gear", "_index", "_item", "_slot", "_sub_type", "_type", "_updated"];
-
-
+
+
_item = toLower(_this);
_target = uiNamespace getVariable "cti_dialog_ui_gear_target";
_get = missionNamespace getVariable _item;
@@ -395,8 +395,8 @@ CTI_UI_Gear_AddItem = {
((uiNamespace getVariable "cti_dialog_ui_gear") displayCtrl (70006+_index)) ctrlSetTooltip getText(configFile >> 'CfgWeapons' >> _item >> 'displayName');
((_gear select 3) select 0) set [_index, _item];
-
-
+
+
//Test if Special Helmet is present
_helmet = (_gear select 2) select 0;
if(_helmet == "H_HelmetO_ViperSP_hex_F" || _helmet == "H_HelmetO_ViperSP_ghex_F") then {
@@ -413,13 +413,13 @@ CTI_UI_Gear_AddItem = {
(_gear select 2) set [_slot, ""];
call CTI_UI_Gear_UpdatePrice;
};
-
+
//delet helmet 6:06:43 "removing item: 0 70004 \A3\Ui_f\data\GUI\Rsc\RscDisplayGear\ui_gear_helmet_gs.paa"
-
+
//delete NVG 16:05:31 "removing item: [0,0] 70006 \A3\Ui_f\data\GUI\Rsc\RscDisplayGear\ui_gear_nvg_gs.paa"
};
_updated = true;
-
+
};
};
case "Item": { //--- Uniform, vest, helm, gps, compass, toolkit...
@@ -460,9 +460,9 @@ CTI_UI_Gear_AddItem = {
if (_current != _item) then {
((uiNamespace getVariable "cti_dialog_ui_gear") displayCtrl 70004) ctrlSetText getText(configFile >> 'CfgWeapons' >> _item >> 'picture');
((uiNamespace getVariable "cti_dialog_ui_gear") displayCtrl 70004) ctrlSetTooltip getText(configFile >> 'CfgWeapons' >> _item >> 'displayName');
-
+
(_gear select 2) set [0, _item];
-
+
//Test if NVG googles is present (dont work with special helmet)
if(_item == "H_HelmetO_ViperSP_hex_F" || _item == "H_HelmetO_ViperSP_ghex_F") then {
//remove nvg
@@ -480,7 +480,7 @@ CTI_UI_Gear_AddItem = {
};
};
_updated = true;
-
+
};
};
case (_sub_type in ["Uniform","Vest"]): {
@@ -642,7 +642,7 @@ CTI_UI_Gear_CheckMagazines = {
_freespace = _container_capacity - _container_items_mass;
_expected_mass = _count * _magazine_new_mass;
- while { _expected_mass > _freespace && _expected_mass > 0 } do { _expected_mass = _expected_mass - _magazine_new_mass };
+ while { _expected_mass > _freespace && _expected_mass > 0 } do { _expected_mass = _expected_mass - _magazine_new_mass; sleep 0.2;};
if (_expected_mass > 0) then {
for '_k' from 1 to (_expected_mass/_magazine_new_mass) do {
From 2503b3fe29dd0a57b4b39bb45201cba381aec7a3 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sun, 26 May 2019 20:36:19 +0200
Subject: [PATCH 098/267] was bugged - change back
---
Client/Functions/UI/Functions_UI_GearMenu.sqf | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Client/Functions/UI/Functions_UI_GearMenu.sqf b/Client/Functions/UI/Functions_UI_GearMenu.sqf
index 4f8b20591..b9cc78517 100644
--- a/Client/Functions/UI/Functions_UI_GearMenu.sqf
+++ b/Client/Functions/UI/Functions_UI_GearMenu.sqf
@@ -642,7 +642,7 @@ CTI_UI_Gear_CheckMagazines = {
_freespace = _container_capacity - _container_items_mass;
_expected_mass = _count * _magazine_new_mass;
- while { _expected_mass > _freespace && _expected_mass > 0 } do { _expected_mass = _expected_mass - _magazine_new_mass; sleep 0.2;};
+ while { _expected_mass > _freespace && _expected_mass > 0 } do { _expected_mass = _expected_mass - _magazine_new_mass };
if (_expected_mass > 0) then {
for '_k' from 1 to (_expected_mass/_magazine_new_mass) do {
@@ -1365,4 +1365,4 @@ CTI_UI_Gear_RemoveProfileTemplate = {
profileNamespace setVariable [format["CTI_PERSISTENT_GEAR_TEMPLATE_%1", CTI_P_SideJoined], _templates];
saveProfileNamespace;
};
-};
\ No newline at end of file
+};
From 803d8baea08f2675530c7a72f9995f0d722e0bdd Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sun, 26 May 2019 22:12:26 +0200
Subject: [PATCH 099/267] rgr boss
no sleep in ui
---
Client/Functions/UI/Functions_UI_ArtilleryMenu.sqf | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/Client/Functions/UI/Functions_UI_ArtilleryMenu.sqf b/Client/Functions/UI/Functions_UI_ArtilleryMenu.sqf
index f67dc7593..d46874529 100644
--- a/Client/Functions/UI/Functions_UI_ArtilleryMenu.sqf
+++ b/Client/Functions/UI/Functions_UI_ArtilleryMenu.sqf
@@ -115,7 +115,6 @@ CTI_UI_Artillery_UpdateArtilleryMarker = {
while {alive _artillery} do {
{_x setMarkerPosLocal getPos _artillery} forEach [_marker_min, _marker_max];
- sleep 0.5;
};
{deleteMarkerLocal _x} forEach [_marker_min, _marker_max];
@@ -129,4 +128,4 @@ CTI_UI_Artillery_GetSelectedArtilleryArray = {
{_return pushBack (_artillery_array select _x)} forEach (lbSelection ((uiNamespace getVariable "cti_dialog_ui_artillerymenu") displayCtrl 290014));
_return
-};
\ No newline at end of file
+};
From 5cf5fc3ba270363f6331a271c5493951c4c89a7a Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Mon, 27 May 2019 21:11:47 +0200
Subject: [PATCH 100/267] true - count thing
check plz where need
---
Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf | 3 ++-
.../Functions/SM_Draw_Map_Icons.sqf | 1 +
.../Functions/SM_Draw_Map_Lines.sqf | 1 +
Addons/Strat_mode/Functions/SM_Maps_Hook.sqf | 2 +-
Addons/Strat_mode/HUD/HUD_GetRevive.sqf | 1 +
Addons/Strat_mode/HUD/HUD_GetTowns.sqf | 2 +-
.../Strat_mode/HUD/HUD_ShowNotifications.sqf | 1 +
Addons/Strat_mode/HUD/HUD_ShowRevive.sqf | 1 +
Addons/Strat_mode/HUD/HUD_init.sqf | 1 +
Addons/Strat_mode/PATROL_AI/PAI_PatrolAI.sqf | 2 +-
Addons/Strat_mode/init.sqf | 1 +
.../Functions/UI/Functions_UI_RespawnMenu.sqf | 2 +-
Server/Functions/Server_OnTownCaptured.sqf | 1 +
Server/Init/Init_Server.sqf | 21 ++++++++++---------
14 files changed, 25 insertions(+), 15 deletions(-)
diff --git a/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf b/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
index 2a6984d78..25784c4d8 100644
--- a/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
+++ b/Addons/Strat_mode/AdvNet/AN_Reconfigure.sqf
@@ -71,7 +71,7 @@ if (count _candidates == 0 ) then {
{
_candidates set [count _candidates,_town];
};
-
+ true
} count ( (_side_id) call CTI_CO_FNC_GetSideTowns);
};
@@ -85,6 +85,7 @@ if ((count _candidates == 0) && _side in [east,west]) then {
if (!(_vehicle isKindOf "FlagPole_F")) then {
{
if (!(_x == _vehicle) && !(_x ==(_side) call CTI_CO_FNC_GetSideHQ) && alive _x && (_x getVariable "AN_iNet" == _side_id ) && ! (_x getVariable "AN_Conn" == _vehicle) && {_x == _vehicle} count (_x getVariable ["AN_Parrents",[]]) == 0 ) then {_candidates set [count _candidates,_x]};
+ true
} count vehicles;
};
diff --git a/Addons/Strat_mode/Functions/SM_Draw_Map_Icons.sqf b/Addons/Strat_mode/Functions/SM_Draw_Map_Icons.sqf
index 13cd8b716..846818cbc 100644
--- a/Addons/Strat_mode/Functions/SM_Draw_Map_Icons.sqf
+++ b/Addons/Strat_mode/Functions/SM_Draw_Map_Icons.sqf
@@ -6,4 +6,5 @@ _map=_this select 0;
_x set [0 , objNull];
_x=_x-[objNull];
_map drawIcon _x ;
+true
}count (SHOWTOMAP select 1)+(SHOWTOMAP select 0);
\ No newline at end of file
diff --git a/Addons/Strat_mode/Functions/SM_Draw_Map_Lines.sqf b/Addons/Strat_mode/Functions/SM_Draw_Map_Lines.sqf
index c35b801d9..ad9d5c87b 100644
--- a/Addons/Strat_mode/Functions/SM_Draw_Map_Lines.sqf
+++ b/Addons/Strat_mode/Functions/SM_Draw_Map_Lines.sqf
@@ -5,4 +5,5 @@ _map=_this select 0;
_x set [0 , objNull];
_x=_x-[objNull];
_map drawLine _x ;
+true
}count (SHOWTOMAP select 2);
\ No newline at end of file
diff --git a/Addons/Strat_mode/Functions/SM_Maps_Hook.sqf b/Addons/Strat_mode/Functions/SM_Maps_Hook.sqf
index 0874367cc..902225feb 100644
--- a/Addons/Strat_mode/Functions/SM_Maps_Hook.sqf
+++ b/Addons/Strat_mode/Functions/SM_Maps_Hook.sqf
@@ -29,7 +29,7 @@ if (missionNamespace getVariable "CTI_EW_ANET" == 1) then {
while {isNull _map2} do {
_frames =[];
{_frames set [count _frames,_x select 0]; true} count (missionNameSpace getVariable ["BIS_stackedEventHandlers_onEachFrame", []]);
- {if !(isNil {_x displayctrl 101}) then {_map2= _x displayctrl 101};} count (uiNamespace getVariable "IGUI_Displays");
+ {if !(isNil {_x displayctrl 101}) then {_map2= _x displayctrl 101}; true} count (uiNamespace getVariable "IGUI_Displays");
sleep 0.1;
};
_map2 ctrlAddEventHandler ["Draw", "
diff --git a/Addons/Strat_mode/HUD/HUD_GetRevive.sqf b/Addons/Strat_mode/HUD/HUD_GetRevive.sqf
index 157648b7b..a72cdf49d 100644
--- a/Addons/Strat_mode/HUD/HUD_GetRevive.sqf
+++ b/Addons/Strat_mode/HUD/HUD_GetRevive.sqf
@@ -9,5 +9,6 @@ _ob= player nearEntities ["Man",150];
_scale = 1*(1-(_dis/150)*0.7);
_rev set[count _rev,[_x,_fade,_scale]];
};
+true
} count _ob;
_rev
\ No newline at end of file
diff --git a/Addons/Strat_mode/HUD/HUD_GetTowns.sqf b/Addons/Strat_mode/HUD/HUD_GetTowns.sqf
index 3125a9d64..1e45f92a4 100644
--- a/Addons/Strat_mode/HUD/HUD_GetTowns.sqf
+++ b/Addons/Strat_mode/HUD/HUD_GetTowns.sqf
@@ -28,7 +28,7 @@
_vt=_vt+[[_town,_text,_color,_fade]];
};
-
+ true
}count CTI_Towns;
_vt
\ No newline at end of file
diff --git a/Addons/Strat_mode/HUD/HUD_ShowNotifications.sqf b/Addons/Strat_mode/HUD/HUD_ShowNotifications.sqf
index 9e8da5204..273179498 100644
--- a/Addons/Strat_mode/HUD/HUD_ShowNotifications.sqf
+++ b/Addons/Strat_mode/HUD/HUD_ShowNotifications.sqf
@@ -36,6 +36,7 @@ if (time- (_reverse select 0 select 3) < 7 || !isNil {uiNamespace getVariable ['
//_text=_text + format [" (+) ",if (((_x select 1) - time)>3) then {"ff"} else {(99 min ((floor (((_x select 1) - time)*100/4)) max 10))},_x select 2]+ (_x select 0) + "
";
_text=_text +format ["(+) %2
",_x select 2,(_x select 0)];
+ true
} count _reverse;
} else {
(_hud displayCtrl (HUD_IDC+7)) ctrlShow false;
diff --git a/Addons/Strat_mode/HUD/HUD_ShowRevive.sqf b/Addons/Strat_mode/HUD/HUD_ShowRevive.sqf
index 6c10c0669..e8acb244f 100644
--- a/Addons/Strat_mode/HUD/HUD_ShowRevive.sqf
+++ b/Addons/Strat_mode/HUD/HUD_ShowRevive.sqf
@@ -6,4 +6,5 @@
_fade=_x select 1;
_size=_x select 2;
drawIcon3D ['A3\ui_f\data\IGUI\Cfg\Actions\heal_ca.paa', [1,0,0,_fade], _pos , _size, _size, 0,"", 0, 0, "PuristaMedium"];
+true
} count HUD_Revives;
\ No newline at end of file
diff --git a/Addons/Strat_mode/HUD/HUD_init.sqf b/Addons/Strat_mode/HUD/HUD_init.sqf
index 0da87d2db..a2c8a1901 100644
--- a/Addons/Strat_mode/HUD/HUD_init.sqf
+++ b/Addons/Strat_mode/HUD/HUD_init.sqf
@@ -82,6 +82,7 @@ with missionNamespace do {
{
_o= _x;
(group player) reveal [_o,(missionNamespace getVariable "CTI_EW_HUD_S")];
+ true
} count _this;
};
};
\ No newline at end of file
diff --git a/Addons/Strat_mode/PATROL_AI/PAI_PatrolAI.sqf b/Addons/Strat_mode/PATROL_AI/PAI_PatrolAI.sqf
index aa9460598..bcf75d9e1 100644
--- a/Addons/Strat_mode/PATROL_AI/PAI_PatrolAI.sqf
+++ b/Addons/Strat_mode/PATROL_AI/PAI_PatrolAI.sqf
@@ -22,7 +22,7 @@ while {!CTI_GameOver && ! isNull _group && alive _vehicle && !isNull _vehicle &&
_neigh=_neigh- _not_valid -[_previous] ;
_next_target=if (count _priority >0) then { _priority select floor random (count _priority)} else {_neigh select floor random (count _neigh)};
if (isNil "_next_target") then {_next_target= CTI_Towns select floor random (count CTI_Towns)};
- {deleteWaypoint _x } count (waypoints _group);
+ {deleteWaypoint _x; true} count (waypoints _group);
_wp=_group addWaypoint [(getPos _next_target),0];
_wp setWaypointType "MOVE";
_wp setWaypointBehaviour "AWARE" ;
diff --git a/Addons/Strat_mode/init.sqf b/Addons/Strat_mode/init.sqf
index 013af11dc..c46a9bcdd 100644
--- a/Addons/Strat_mode/init.sqf
+++ b/Addons/Strat_mode/init.sqf
@@ -104,6 +104,7 @@ if (CTI_IsServer) then {
if (count (_sl getVariable ["CTI_BASES_FOUND",[]]) == 0) then {
_sl setVariable ["CTI_BASES_FOUND",[],true];
};
+ true
} count [east,west];
//dynamic group loop
diff --git a/Client/Functions/UI/Functions_UI_RespawnMenu.sqf b/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
index 26f644164..c37aa3246 100644
--- a/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
+++ b/Client/Functions/UI/Functions_UI_RespawnMenu.sqf
@@ -21,7 +21,7 @@ CTI_UI_Respawn_GetAvailableLocations = {
_sid = (CTI_P_SideJoined) call CTI_CO_FNC_GetSideID;
_c_towns = ( _sid ) call CTI_CO_FNC_GetSideTowns;
_posible =[];
- {if ((_x getVariable "cti_town_capture") == CTI_TOWNS_CAPTURE_VALUE_CEIL) then{ _posible set [count _posible,_x]};} count _c_towns;
+ {if ((_x getVariable "cti_town_capture") == CTI_TOWNS_CAPTURE_VALUE_CEIL) then{ _posible set [count _posible,_x]}; true} count _c_towns;
_t = [CTI_DeathPosition, _posible ] call CTI_CO_FNC_GetClosestEntity;
if (! (isNull _t) ) then {_towns pushBack _t;};
diff --git a/Server/Functions/Server_OnTownCaptured.sqf b/Server/Functions/Server_OnTownCaptured.sqf
index a24fb715a..2f56ff706 100644
--- a/Server/Functions/Server_OnTownCaptured.sqf
+++ b/Server/Functions/Server_OnTownCaptured.sqf
@@ -78,6 +78,7 @@ if (count _award_teams > 0) then {
_mult=if ((missionNamespace getVariable "CTI_GROUP_AWARD_MULT") == 1) then {{isplayer _x}count (units _x)} else {1};
{if (isplayer _x )then {[["CLIENT", _x], "Client_OnMessageReceived", ["town_award",[( _value*_mult), (_town getVariable "cti_town_name")]],true] call CTI_CO_FNC_NetSend};true} count (units _x);
[_x, _newSide,( _value*_mult)] call CTI_CO_FNC_ChangeFunds;
+ true
} count _award_teams;
};
diff --git a/Server/Init/Init_Server.sqf b/Server/Init/Init_Server.sqf
index 5fbd72aa7..3cc5e7254 100644
--- a/Server/Init/Init_Server.sqf
+++ b/Server/Init/Init_Server.sqf
@@ -216,6 +216,7 @@ while {! (((getMarkerPos format ["HELO_START_%1", _i])select 0) == 0)} do
};
+ true
}count (playableUnits+switchableUnits);
sleep 10;
};
@@ -315,7 +316,7 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
sleep 100; //wait for everything to finish loading
_version = 3; //version of DiscordBot logReader
_arr = [["CTI_DataPacket", "Header"],
- ["Version", _version],
+ ["Version", _version],
["Map", worldName]
];
diag_log _arr;
@@ -323,7 +324,7 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
_east_sl = (east) call CTI_CO_FNC_GetSideLogic;
_west_sl = (west) call CTI_CO_FNC_GetSideLogic;
_towns = count(_east_sl getVariable ["CTI_ACTIVE",[]]) + count(_west_sl getVariable ["CTI_ACTIVE",[]]);
-
+
//build player array, splitting at 800 to ensure char limit of 1000 is not reached
_players = [];
_players_sub = [];
@@ -338,20 +339,20 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
_players pushBack _players_sub;
_players_sub = [];
};
-
+
//Build town arrays
_west_towns = [];
{
_west_towns pushBack str _x;
- } forEach (west call CTI_CO_FNC_GetSideTowns);
+ } forEach (west call CTI_CO_FNC_GetSideTowns);
_east_towns = [];
{
_east_towns pushBack str _x;
} forEach (east call CTI_CO_FNC_GetSideTowns);
-
+
//Post Data to .rpt log
//Data for general mission performance
- diag_log[["CTI_DataPacket", "Data_1"],
+ diag_log[["CTI_DataPacket", "Data_1"],
["time", time],
["fps", diag_fps],
["score_east", (scoreSide east)],
@@ -367,13 +368,13 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
["total_objects", count(allMissionObjects "All")],
["active_towns", _towns]];
_dataP = 2; //next data packet index
- {
- //Data for Replay
+ {
+ //Data for Replay
diag_log[["CTI_DataPacket", (format ["Data_%1", _dataP])],
["players", _x]];
_dataP = _dataP+1;
} forEach _players;
-
+
diag_log[["CTI_DataPacket", format ["Data_EOD_%1", _dataP]], //Marking package as "last"
["bases_east", _east_sl getVariable ["cti_structures_areas",[]]],
["bases_west", _west_sl getVariable ["cti_structures_areas",[]]],
@@ -383,7 +384,7 @@ if (missionNamespace getvariable "CTI_PERSISTANT" == 1) then {
sleep 60;
};
//Triggerd on Misson end, used when FSM does not trigger. (used for debugging)
- _arr = [["CTI_DataPacket", "EOF"],
+ _arr = [["CTI_DataPacket", "EOF"],
["Version", _version],
["Map", worldName]
];
From 17f932435d1cb44833abee5e7ec7e1a4aa8ace69 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Wed, 29 May 2019 19:42:01 +0200
Subject: [PATCH 101/267] -
-
---
Addons/Strat_mode/Radar/AIRR_init.sqf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Addons/Strat_mode/Radar/AIRR_init.sqf b/Addons/Strat_mode/Radar/AIRR_init.sqf
index 6b2d04feb..e5c45e98f 100644
--- a/Addons/Strat_mode/Radar/AIRR_init.sqf
+++ b/Addons/Strat_mode/Radar/AIRR_init.sqf
@@ -57,7 +57,7 @@ if (CTI_IsClient) then {
};
//update
_marker setMarkerPosLocal (getPos _obj);
- sleep 0.5;
+ sleep 1;
};
deleteMarkerLocal _marker;
};
From 597294b2d2626f797b4dfb64d3ab7bbd5e629405 Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Wed, 29 May 2019 21:33:51 +0200
Subject: [PATCH 102/267] Fix for REV_UNC
---
Common/Functions/Common_CreateUnit.sqf | 4 ++--
Common/Init/Init_CommonConstants.sqf | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Common/Functions/Common_CreateUnit.sqf b/Common/Functions/Common_CreateUnit.sqf
index ad5a207ea..0a799a852 100644
--- a/Common/Functions/Common_CreateUnit.sqf
+++ b/Common/Functions/Common_CreateUnit.sqf
@@ -241,13 +241,13 @@ if (missionNamespace getVariable "CTI_SM_RADAR" == 1) then {
_unit addAction [localize "STR_Common_CreateUnit_Remote_Control","
player connectTerminalToUAV ( vehicle(_this select 0));
(_this select 0) spawn {
- waitUntil {uavControl ( vehicle(_this)) select 1 == 'GUNNER' || ! (driver (vehicle _this)==_this) || (vehicle _this ==_this) || ! alive _this || ! alive player || (player getvariable 'REV_UNC')};
+ waitUntil {uavControl ( vehicle(_this)) select 1 == 'GUNNER' || ! (driver (vehicle _this)==_this) || (vehicle _this ==_this) || ! alive _this || ! alive player || (player getvariable ['REV_UNC',false])};
sleep 1;
player connectTerminalToUAV objNull;
objNull remoteControl cameraon;
vehicle (player) switchCamera 'Internal'
};
- if (!(player getvariable 'REV_UNC')) then {
+ if (!(player getvariable ['REV_UNC',false])) then {
player remoteControl (driver vehicle (_this select 0));
( vehicle(_this select 0)) switchCamera 'Internal';};
","",100, false, true, "", "(vehicle _this) == (vehicle _target) && ! (vehicle _this ==_this) && driver (vehicle _this)==_this && isnull gunner (vehicle _this) && !((vehicle _this) == vehicle (player)) &&! (uavControl ( vehicle(_this)) select 0 == player)"];
diff --git a/Common/Init/Init_CommonConstants.sqf b/Common/Init/Init_CommonConstants.sqf
index 1e3b2ea70..72c7dac61 100644
--- a/Common/Init/Init_CommonConstants.sqf
+++ b/Common/Init/Init_CommonConstants.sqf
@@ -624,11 +624,11 @@ with missionNamespace do {
- if (isNil "CTI_SM_BASEP_M") then {CTI_SM_BASEP_M=0};
+ if (isNil "CTI_SM_BASEP_M") then {CTI_SM_BASEP_M=-1};
if (isNil "CTI_SM_REPAIR") then {CTI_SM_REPAIR=1};
if (isNil "CTI_SM_MORTARS") then {CTI_SM_MORTARS=1};
if (isNil "CTI_SM_MINES") then {CTI_SM_MINES=1};
- if (isNil "CTI_SM_STRATEGIC") then {CTI_SM_STRATEGIC=0};
+ if (isNil "CTI_SM_STRATEGIC") then {CTI_SM_STRATEGIC=1};
if (isNil "CTI_SM_STRATEGIC_NB") then {CTI_SM_STRATEGIC_NB=3};
if (isNil "CTI_SM_HALO") then {CTI_SM_HALO=1};
if (isNil "CTI_SM_RADAR") then {CTI_SM_RADAR=1};
From 20977a7547dbef392b5336771b82e3398d7a8b32 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Mon, 10 Jun 2019 14:49:18 +0200
Subject: [PATCH 103/267] Add disable parameter for town_ship
---
Addons/Strat_mode/FSM/town_resistance.fsm | 33 ++++++++++++++---------
Rsc/Parameters.hpp | 7 ++++-
stringtable.xml | 4 +++
3 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/Addons/Strat_mode/FSM/town_resistance.fsm b/Addons/Strat_mode/FSM/town_resistance.fsm
index 33ea87a4b..ce60f12b6 100644
--- a/Addons/Strat_mode/FSM/town_resistance.fsm
+++ b/Addons/Strat_mode/FSM/town_resistance.fsm
@@ -3,7 +3,7 @@
/*
item0[] = {"Start_FSM",0,250,-86.275269,-615.525940,13.724731,-565.525940,0.000000,"Start FSM"};
item1[] = {"Cycle",4,218,-100.000000,-400.000000,0.000000,-350.000000,1.000000,"Cycle"};
-item2[] = {"Resistance_hold",2,4346,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Resistance hold" \n "the town?"};
+item2[] = {"Resistance_hold",2,250,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Resistance hold" \n "the town?"};
item3[] = {"End_FSM",1,250,-250.000000,-100.000000,-150.000000,-50.000000,0.000000,"End FSM"};
item4[] = {"Held_by_Resistan",4,218,-100.000000,-100.000000,0.000000,-50.000000,2.000000,"Held by" \n "Resistance"};
item5[] = {"Gameover",8,218,-250.000000,-200.000000,-150.000000,-150.000000,0.000000,"Gameover"};
@@ -15,7 +15,7 @@ item10[] = {"Inactive",4,218,175.000000,-100.000000,275.000000,-50.000000,1.0000
item11[] = {"Still_active",8,218,300.000000,0.000000,400.000000,50.000000,0.000000,"Still active"};
item12[] = {"Timed_out",4,218,475.000000,100.000000,575.000000,150.000000,1.000000,"Timed out"};
item13[] = {"Skip",2,250,302.287354,-265.039612,402.287354,-215.039612,0.000000,"Skip"};
-item14[] = {"Cleanup",2,250,475.000000,-400.000000,575.000000,-350.000000,0.000000,"Cleanup"};
+item14[] = {"Cleanup",2,4346,475.000000,-400.000000,575.000000,-350.000000,0.000000,"Cleanup"};
item15[] = {"Resistance_Active",2,250,50.000000,-100.000000,150.000000,-50.000000,0.000000,"Resistance" \n "Active?"};
item16[] = {"Contact",8,218,-100.000000,100.000000,0.000000,150.000000,0.000000,"Contact"};
item17[] = {"Clear",4,218,50.000000,0.000000,150.000000,50.000000,1.000000,"Clear"};
@@ -55,8 +55,8 @@ link26[] = {20,18};
link27[] = {21,8};
link28[] = {22,1};
link29[] = {23,13};
-globals[] = {0.000000,0,0,0,0,640,480,1,173,6316128,1,-1091.492065,1056.436035,832.636719,-1191.768555,939,885,1};
-window[] = {2,-1,-1,-1,-1,662,50,1086,50,3,957};
+globals[] = {0.000000,0,0,0,0,640,480,1,173,6316128,1,-984.095642,949.039673,729.243164,-1090.662720,939,884,1};
+window[] = {2,-1,-1,-32000,-32000,794,182,1218,182,3,957};
*//*%FSM*/
class FSM
{
@@ -304,15 +304,15 @@ class FSM
" };" \n
" } forEach _town_groups;" \n
"" \n
- "" \n
"_town setVariable [""cti_town_resistance_active_vehicles"", [],true];" \n
+ "" \n
"_mortars = _town getVariable ""cti_town_mortars_units"";" \n
"//diag_log _mortars;" \n
"if ((count _mortars) >0) then {" \n
"" \n
" {deleteVehicle _x} forEach units (_mortars select 1) ;" \n
" {deleteVehicle _x} forEach (_mortars select 0) ; " \n
- " deleteGroup (_mortars select 1);" \n
+ " deleteGroup (_mortars select 1);" \n
"" \n
"};" \n
"" \n
@@ -321,14 +321,18 @@ class FSM
" if ((count _mines) >0) then {" \n
" {deleteVehicle _x} forEach _mines;" \n
" };" \n
- "_town setVariable [""cti_town_mines"",[],true];" \n
+ " _town setVariable [""cti_town_mines"",[],true];" \n
"};" \n
"" \n
"if ( (missionNamespace getVariable 'CTI_SM_TCAS') <= (_town getVariable ""cti_town_value"")) then {" \n
" (_town getVariable [""CTI_CAS"",[]]) call SM_TCAS_CLEANUP;" \n
"};" \n
"" \n
- "if ((_town getVariable ""cti_town_name"" == ""Makrynisi"") || (_town getVariable ""cti_town_name"" == ""Tuadua Island"") || (_town getVariable ""cti_town_name"" == ""Yani Islets"") || (_town getVariable ""cti_town_name"" == ""Ile Sainte-Marie"") || (_town getVariable ""cti_town_name"" == ""Northern Island"") || (_town getVariable ""cti_town_name"" == ""Rock Island"")) then {(_town getVariable [""CTI_Ship"",[]]) call SM_TShip_CLEANUP;};" \n
+ "if ((missionNamespace getVariable 'CTI_SM_SHIP')==1) then {" \n
+ " if (ISLAND == 2 || ISLAND == 3) then {" \n
+ " if ((_town getVariable ""cti_town_name"" == ""Makrynisi"") || (_town getVariable ""cti_town_name"" == ""Tuadua Island"") || (_town getVariable ""cti_town_name"" == ""Yani Islets"") || (_town getVariable ""cti_town_name"" == ""Ile Sainte-Marie"") || (_town getVariable ""cti_town_name"" == ""Northern Island"") || (_town getVariable ""cti_town_name"" == ""Rock Island"")) then {(_town getVariable [""CTI_Ship"",[]]) call SM_TShip_CLEANUP;};" \n
+ " };" \n
+ "};" \n
"" \n
"//_town setVariable [""cti_town_disactivate"",true];" \n
"" \n
@@ -410,23 +414,28 @@ class FSM
"_town setVariable [""cti_town_resistance_active"", true,true];" \n
"" \n
"" \n
- "if ( (missionNamespace getVariable 'CTI_SM_MORTARS')==1) then {" \n
+ "if ((missionNamespace getVariable 'CTI_SM_MORTARS')==1) then {" \n
" _mortars=[_town,_town_groups] call CTI_SM_Mortars_script;" \n
" [""CLIENT"", ""Client_Update_Mortars"",[_town,(_mortars select 2)]] call CTI_CO_FNC_NetSend;" \n
" _town setVariable [""cti_town_mortars"",(_mortars select 2),true];" \n
" _town setVariable [""cti_town_mortars_units"",(_mortars),true];" \n
"};" \n
+ "" \n
"_town setVariable [""cti_town_resistance_active"", true,true];" \n
+ "" \n
"if ( (missionNamespace getVariable 'CTI_SM_TCAS') <= (_town getVariable ""cti_town_value"")) then {" \n
" _town setVariable[""CTI_CAS"",(_town) call SM_TCAS_CREATE,true];" \n
- "" \n
"};" \n
+ "" \n
"if ((missionNamespace getVariable 'CTI_SM_MINES')==1) then {" \n
" [_town] call CTI_SM_Mines_script;" \n
"};" \n
"" \n
- "if ((_town getVariable ""cti_town_name"" == ""Makrynisi"") || (_town getVariable ""cti_town_name"" == ""Tuadua Island"") || (_town getVariable ""cti_town_name"" == ""Yani Islets"") || (_town getVariable ""cti_town_name"" == ""Ile Sainte-Marie"") || (_town getVariable ""cti_town_name"" == ""Northern Island"") || (_town getVariable ""cti_town_name"" == ""Rock Island"")) then {_town setVariable [""CTI_Ship"",(_town) call SM_TShip_CREATE,true];};" \n
- "" \n
+ "if ((missionNamespace getVariable 'CTI_SM_SHIP')==1) then {" \n
+ " if (ISLAND == 2 || ISLAND == 3) then {" \n
+ " if ((_town getVariable ""cti_town_name"" == ""Makrynisi"") || (_town getVariable ""cti_town_name"" == ""Tuadua Island"") || (_town getVariable ""cti_town_name"" == ""Yani Islets"") || (_town getVariable ""cti_town_name"" == ""Ile Sainte-Marie"") || (_town getVariable ""cti_town_name"" == ""Northern Island"") || (_town getVariable ""cti_town_name"" == ""Rock Island"")) then {_town setVariable [""CTI_Ship"",(_town) call SM_TShip_CREATE,true];};" \n
+ " };" \n
+ "};" \n
"" \n
"if ( _town in (CTI_WEST getvariable ""CTI_ACTIVE"")) then {" \n
" [[""CLIENT"",west],""SM_message"",format [localize ""STR_TownActive"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
diff --git a/Rsc/Parameters.hpp b/Rsc/Parameters.hpp
index 4fb5b3b92..ac9e5bc1b 100644
--- a/Rsc/Parameters.hpp
+++ b/Rsc/Parameters.hpp
@@ -475,7 +475,12 @@ class Params {
texts[] = {"0","100","150","200","250","300","350","400","500","600"};
default = 250;
};
-
+ class CTI_SM_SHIP {
+ title = $STR_CTI_SM_SHIP;
+ values[] = {0,1};
+ texts[] = {$STR_CTI_DISABLED,$STR_CTI_ENABLED};
+ default = 1;
+ };
class SEPARATOR3 {
title = $STR_CTI_SEPARATOR3;
diff --git a/stringtable.xml b/stringtable.xml
index cde393450..2a9b01030 100644
--- a/stringtable.xml
+++ b/stringtable.xml
@@ -665,6 +665,10 @@
Zerty: Strategic: Town CAS if value above
Разрешить поддержку с воздуха если стоимость города больше
+
+ [H] Tom: Strategic: Patrol Ships near small islands
+ Патрульные корабли возле небольших островов
+
===================== Electronic Warfare =======================
===================== Electronic Warfare =======================
From e82574b98499a69f73d20886e905b96d93cc1b5f Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Mon, 10 Jun 2019 20:48:31 +0200
Subject: [PATCH 104/267] Replace some code
BIS_FNC_ArrayShuffle 6-10 times faster than CTI_CO_FNC_ArrayShuffle (save 2x0.5ms at kavala)
"isEqualType" 2 times faster than "typename"
---
Server/Functions/Server_SpawnTownOccupation.sqf | 6 +++---
Server/Functions/Server_SpawnTownResistance.sqf | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Server/Functions/Server_SpawnTownOccupation.sqf b/Server/Functions/Server_SpawnTownOccupation.sqf
index 3344cb5c7..f57e0406a 100644
--- a/Server/Functions/Server_SpawnTownOccupation.sqf
+++ b/Server/Functions/Server_SpawnTownOccupation.sqf
@@ -151,7 +151,7 @@ _pool_u = [];
};
};
} forEach (_pool_units select 0);
-_pool_u = _pool_u call CTI_CO_FNC_ArrayShuffle;
+_pool_u = _pool_u call BIS_fnc_arrayShuffle;
_pool_v = [];
{
@@ -195,7 +195,7 @@ _pool_v = [];
};
} forEach (_pool_units select 1);
-_pool_v = _pool_v call CTI_CO_FNC_ArrayShuffle;
+_pool_v = _pool_v call BIS_fnc_arrayShuffle;
_pool=_pool_v+_pool_u;
@@ -223,7 +223,7 @@ for '_i' from 1 to _totalGroups do {
};
if (_can_use) then {
- if (typeName _unit == "ARRAY") then { _unit = _unit select floor(random count _unit) };
+ if (_unit isEqualType []) then { _unit = _unit select floor(random count _unit) };
_units pushBack _unit;
_pool_group_size_current = _pool_group_size_current - 1;
diff --git a/Server/Functions/Server_SpawnTownResistance.sqf b/Server/Functions/Server_SpawnTownResistance.sqf
index 699f7fe86..e637ad647 100644
--- a/Server/Functions/Server_SpawnTownResistance.sqf
+++ b/Server/Functions/Server_SpawnTownResistance.sqf
@@ -111,7 +111,7 @@ _pool_u = [];
for '_i' from 1 to _presence do { _pool_u pushBack [missionNamespace getVariable _unit, if (count _x > 2) then {_x select 2} else {100}] };
};
} forEach (_pool_units select 0);
-_pool_u = _pool_u call CTI_CO_FNC_ArrayShuffle;
+_pool_u = _pool_u call BIS_fnc_arrayShuffle;
_pool_v = [];
{
@@ -121,7 +121,7 @@ _pool_v = [];
for '_i' from 1 to _presence do { _pool_v pushBack [missionNamespace getVariable _unit, if (count _x > 2) then {_x select 2} else {100}]};
};
} forEach (_pool_units select 1);
-_pool_v =_pool_v call CTI_CO_FNC_ArrayShuffle;
+_pool_v =_pool_v call BIS_fnc_arrayShuffle;
//--- Shuffle!
_pool = _pool_v + _pool_u;
@@ -148,7 +148,7 @@ for '_i' from 1 to _totalGroups do {
};
//diag_log [_unit,_probability,_can_use];
if (_can_use) then {
- if (typeName _unit == "ARRAY") then { _unit = _unit select floor(random count _unit) };
+ if (_unit isEqualType []) then { _unit = _unit select floor(random count _unit) };
_units pushBack _unit;
_pool_group_size_current = _pool_group_size_current - 1;
From 08a02211a7065de38eb3d2038f0526cf0e4ceb16 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Mon, 10 Jun 2019 21:14:05 +0200
Subject: [PATCH 105/267] continue replace
...
---
Server/Functions/Server_SpawnTownOccupation.sqf | 4 ++--
Server/Functions/Server_SpawnTownResistance.sqf | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Server/Functions/Server_SpawnTownOccupation.sqf b/Server/Functions/Server_SpawnTownOccupation.sqf
index f57e0406a..e88c6bd08 100644
--- a/Server/Functions/Server_SpawnTownOccupation.sqf
+++ b/Server/Functions/Server_SpawnTownOccupation.sqf
@@ -223,7 +223,7 @@ for '_i' from 1 to _totalGroups do {
};
if (_can_use) then {
- if (_unit isEqualType []) then { _unit = _unit select floor(random count _unit) };
+ if (_unit isEqualType []) then { _unit = selectRandom _unit; };
_units pushBack _unit;
_pool_group_size_current = _pool_group_size_current - 1;
@@ -250,7 +250,7 @@ _positions = [];
// _position = [getPos _town, 25, CTI_TOWNS_OCCUPATION_SPAWN_RANGE] call CTI_CO_FNC_GetRandomPosition;
_position = [_position, 50] call CTI_CO_FNC_GetEmptyPosition;
_road_pos=(_position nearRoads 100);
- if (count _road_pos > 0) then {_position = _road_pos select floor random (count _road_pos);};
+ if (count _road_pos > 0) then {_position = selectRandom _road_pos;};
_positions pushBack _position;
_group = createGroup _side;
diff --git a/Server/Functions/Server_SpawnTownResistance.sqf b/Server/Functions/Server_SpawnTownResistance.sqf
index e637ad647..54e081df1 100644
--- a/Server/Functions/Server_SpawnTownResistance.sqf
+++ b/Server/Functions/Server_SpawnTownResistance.sqf
@@ -148,7 +148,7 @@ for '_i' from 1 to _totalGroups do {
};
//diag_log [_unit,_probability,_can_use];
if (_can_use) then {
- if (_unit isEqualType []) then { _unit = _unit select floor(random count _unit) };
+ if (_unit isEqualType []) then { _unit = selectRandom _unit; };
_units pushBack _unit;
_pool_group_size_current = _pool_group_size_current - 1;
@@ -176,7 +176,7 @@ _positions = [];
// _position = [getPos _town, 25, CTI_TOWNS_RESISTANCE_SPAWN_RANGE] call CTI_CO_FNC_GetRandomPosition;
_position = [_position, 50] call CTI_CO_FNC_GetEmptyPosition;
_road_pos=(_position nearRoads 100);
- if (count _road_pos > 0) then {_position = _road_pos select floor random (count _road_pos);};
+ if (count _road_pos > 0) then {_position = selectRandom _road_pos;};
_positions pushBack _position;
_group = createGroup resistance;
From 972495bef193f73a1ca16b8863970a113d1fc163 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Wed, 12 Jun 2019 00:11:34 +0200
Subject: [PATCH 106/267] Not need on all cars
Not need on all cars (trucks, vans, wheeled_apcs, ect...)
only offroads and 4wd jeeps
---
Common/Functions/Common_CreateVehicle.sqf | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/Common/Functions/Common_CreateVehicle.sqf b/Common/Functions/Common_CreateVehicle.sqf
index 822890fe1..b27017425 100644
--- a/Common/Functions/Common_CreateVehicle.sqf
+++ b/Common/Functions/Common_CreateVehicle.sqf
@@ -212,11 +212,13 @@ if (isNull _created) then {
if (_vehicle isKindOf "O_MBT_02_cannon_F" || _vehicle isKindOf "O_T_MBT_02_cannon_ghex_F") then {[_vehicle, nil, ["showLog",1]] call BIS_fnc_initVehicle;};
if (_vehicle isKindOf "O_APC_Tracked_02_AA_F" || _vehicle isKindOf "O_T_APC_Tracked_02_AA_ghex_F") then {[_vehicle, nil, ["showTracks",1]] call BIS_fnc_initVehicle;};
};
- if (_vehicle isKindOf "Car") then {
+ if (_vehicle isKindOf "Offroad_01_base_F") then {
_offroads = ["I_G_Offroad_01_F", "I_G_Offroad_01_armed_F", "I_G_Offroad_01_AT_F", "B_G_Offroad_01_F", "B_G_Offroad_01_armed_F", "B_G_Offroad_01_AT_F", "O_G_Offroad_01_F", "O_G_Offroad_01_armed_F", "O_G_Offroad_01_AT_F"];
if ((typeOf _vehicle) in _offroads) then {
_offroadcolors = ["Guerilla_01", "Guerilla_02", "Guerilla_03", "Guerilla_04", "Guerilla_05", "Guerilla_06", "Guerilla_07", "Guerilla_08", "Guerilla_09", "Guerilla_10", "Guerilla_11", "Guerilla_12"];
[_vehicle, [(selectRandom _offroadcolors),1], nil] call BIS_fnc_initVehicle;};
+ };
+ if (_vehicle isKindOf "Offroad_02_base_F") then {
_4wds = ["I_C_Offroad_02_unarmed_F", "I_C_Offroad_02_LMG_F", "I_C_Offroad_02_AT_F", "C_Offroad_02_unarmed_F"];
if ((typeOf _vehicle) in _4wds) then {
_4wdcolors = ["Green", "Olive", "Black", "Brown"];
From b28af1dad5f8214252b08e1c9c83d6808da5205a Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 15 Jun 2019 23:14:23 +0200
Subject: [PATCH 107/267] FSM update
- Town Patrol FSM for new short road waypoints
- Town OCC and Town Res for town activation lag fix
kavala activation 6-7FPS with original fsm (6 group), 15FPS with new FSM with (sleep 0.3) or 20FPS with (sleep 0.5)
---
Addons/Strat_mode/FSM/town_occupation.fsm | 266 +++++++++++--
Addons/Strat_mode/FSM/town_resistance.fsm | 353 ++++++++++++++---
Server/FSM/town_patrol.fsm | 443 ++++++++++++----------
3 files changed, 759 insertions(+), 303 deletions(-)
diff --git a/Addons/Strat_mode/FSM/town_occupation.fsm b/Addons/Strat_mode/FSM/town_occupation.fsm
index 95a7d0aea..53478b6d1 100644
--- a/Addons/Strat_mode/FSM/town_occupation.fsm
+++ b/Addons/Strat_mode/FSM/town_occupation.fsm
@@ -3,7 +3,7 @@
/*
item0[] = {"Start_FSM",0,250,-100.000000,-800.000000,0.000000,-750.000000,0.000000,"Start FSM"};
item1[] = {"Cycle",4,218,-100.000000,-400.000000,0.000000,-350.000000,1.000000,"Cycle"};
-item2[] = {"Occupation_hold",2,4346,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Occupation hold" \n "the town?"};
+item2[] = {"Occupation_hold",2,250,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Occupation hold" \n "the town?"};
item3[] = {"End_FSM",1,250,-250.000000,-100.000000,-150.000000,-50.000000,0.000000,"End FSM"};
item4[] = {"Held_by_Occupati",4,218,-100.000000,-100.000000,0.000000,-50.000000,2.000000,"Held by" \n "Occupation"};
item5[] = {"Gameover",8,218,-250.000000,-200.000000,-150.000000,-150.000000,0.000000,"Gameover"};
@@ -19,12 +19,24 @@ item14[] = {"Cleanup",2,250,425.000000,-400.000000,525.000000,-350.000000,0.0000
item15[] = {"Occupation_Active",2,250,50.000000,-100.000000,150.000000,-50.000000,0.000000,"Occupation" \n "Active?"};
item16[] = {"Contact",8,218,-100.000000,100.000000,0.000000,150.000000,0.000000,"Contact"};
item17[] = {"Clear",4,218,50.000000,0.000000,150.000000,50.000000,1.000000,"Clear"};
-item18[] = {"Create",2,250,-400.000000,200.000000,-300.000000,250.000000,0.000000,"Create"};
+item18[] = {"Calc",2,250,-400.000000,200.000000,-300.000000,250.000000,0.000000,"Calc"};
item19[] = {"Occupation_Active_1",2,250,-100.000000,200.000000,0.000000,250.000000,0.000000,"Occupation" \n "Active?"};
item20[] = {"Inactive",4,218,-250.000000,200.000000,-150.000000,250.000000,1.000000,"Inactive"};
item21[] = {"Active",4,218,175.000000,200.000000,275.000000,250.000000,2.000000,"Active"};
item22[] = {"",7,210,-354.000000,-379.000000,-346.000000,-371.000000,0.000000,""};
item23[] = {"_",8,218,350.000000,325.000000,450.000000,375.000000,0.000000,""};
+item24[] = {"Wait",4,218,-396.344360,169.054321,-301.266876,191.365082,1.000000,"Wait"};
+item25[] = {"Wait",4,218,-393.071930,80.698349,-297.994446,103.009109,1.000000,"Wait"};
+item26[] = {"Wait",4,218,-394.045837,-9.293777,-298.968353,13.016983,1.000000,"Wait"};
+item27[] = {"Wait",4,218,-396.998413,-95.932709,-301.920929,-73.621948,1.000000,"Wait"};
+item28[] = {"Wait",4,218,-395.419861,-187.748001,-300.342377,-165.437241,1.000000,"Wait"};
+item29[] = {"Wait",4,218,-396.455292,-278.932922,-301.377808,-256.622192,1.000000,"Wait"};
+item30[] = {"Create_G1",2,250,-397.530731,112.138672,-297.530731,162.138672,0.000000,"Create G1"};
+item31[] = {"Create_G2",2,4346,-395.610718,21.793152,-295.610718,71.793152,0.000000,"Create G2"};
+item32[] = {"Create_G3",2,250,-397.553162,-64.800392,-297.553162,-14.800392,0.000000,"Create G3"};
+item33[] = {"Create_G4",2,250,-398.123474,-156.634659,-298.123474,-106.634666,0.000000,"Create G4"};
+item34[] = {"Create_G5",2,250,-398.309631,-244.824005,-298.309631,-194.824005,0.000000,"Create G5"};
+item35[] = {"Create_M__Warn",2,250,-399.250671,-339.790894,-299.250671,-289.790894,0.000000,"Create M, Warn"};
link0[] = {0,1};
link1[] = {1,2};
link2[] = {2,4};
@@ -47,7 +59,7 @@ link18[] = {15,9};
link19[] = {15,10};
link20[] = {16,19};
link21[] = {17,15};
-link22[] = {18,22};
+link22[] = {18,24};
link23[] = {19,20};
link24[] = {19,21};
link25[] = {19,23};
@@ -55,8 +67,20 @@ link26[] = {20,18};
link27[] = {21,8};
link28[] = {22,1};
link29[] = {23,13};
-globals[] = {0.000000,0,0,0,0,640,480,1,177,6316128,1,-582.603027,790.527588,465.883545,-1210.282837,725,885,1};
-window[] = {2,-1,-1,-1,-1,812,200,1236,200,3,743};
+link30[] = {24,30};
+link31[] = {25,31};
+link32[] = {26,32};
+link33[] = {27,33};
+link34[] = {28,34};
+link35[] = {29,35};
+link36[] = {30,25};
+link37[] = {31,26};
+link38[] = {32,27};
+link39[] = {33,28};
+link40[] = {34,29};
+link41[] = {35,22};
+globals[] = {0.000000,0,0,0,0,640,480,1,198,6316128,1,-712.383606,50.215027,402.539001,-527.305359,725,884,1};
+window[] = {2,-1,-1,-32000,-32000,716,104,1140,104,3,743};
*//*%FSM*/
class FSM
{
@@ -376,10 +400,10 @@ class FSM
};
};
/*%FSM*/
- /*%FSM*/
- class Create
+ /*%FSM*/
+ class Calc
{
- name = "Create";
+ name = "Calc";
itemno = 18;
init = /*%FSM*/"//--- We get the main information first (The teams, the groups and the positions)" \n
"_return = [_town, _side] call CTI_SE_FNC_SpawnTownOccupation;" \n
@@ -390,43 +414,20 @@ class FSM
"" \n
"_town setvariable [""CTI_TOWN_GROUPS"",_town_groups,true];" \n
"" \n
- "//--- Warn" \n
- "[[""CLIENT"", _side], ""Client_OnMessageReceived"", [""town-hostilenear"", _town]] call CTI_CO_FNC_NetSend;" \n
- "" \n
- "if (count _town_groups > 0) then {" \n
- " _town_vehicles_groups = [_town, _side, _town_teams, _town_groups, _town_positions] call CTI_CO_FNC_CreateTownUnits;" \n
- " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups select 0),true];" \n
- " _town setvariable [""CTI_TOWN_GROUPS"",_town_vehicles_groups select 1,true];" \n
- "};" \n
+ "_size = count _town_groups;" \n
"" \n
- "_town setVariable [""cti_town_occupation_active"", true,true];" \n
- "_town setVariable [""cti_town_occupation_active_sideID"", _sideID,true];" \n
- "" \n
- "if (_town in (CTI_WEST getvariable ""CTI_ACTIVE"")) then {" \n
- " [[""CLIENT"",west],""SM_message"",format [""Town is %1 is now Active"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
- "};" \n
- "" \n
- "if (_town in (CTI_EAST getvariable ""CTI_ACTIVE"")) then {" \n
- " [[""CLIENT"",east],""SM_message"",format [""Town is %1 is now Active"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
- "};" \n
- "" \n
- "if ((missionNamespace getVariable 'CTI_SM_MINES')==1) then {" \n
- " [_town] call CTI_SM_Mines_script;" \n
- "};" \n
- "" \n
- "_town setVariable [""cti_town_timeofspawn"", time,true];"/*%FSM*/;
+ "_wait = time + 0.5;"/*%FSM*/;
precondition = /*%FSM*/""/*%FSM*/;
class Links
{
- /*%FSM*/
- class Cycle
+ /*%FSM*/
+ class Wait
{
- itemno = 1;
+ itemno = 24;
priority = 1.000000;
- to="Occupation_hold";
+ to="Create_G1";
precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _ncycle " \n
- "//&& !( _town getVariable ""cti_town_disactivate"");"/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
action=/*%FSM*/""/*%FSM*/;
};
/*%FSM*/
@@ -458,7 +459,7 @@ class FSM
{
itemno = 20;
priority = 1.000000;
- to="Create";
+ to="Calc";
precondition = /*%FSM*/""/*%FSM*/;
condition=/*%FSM*/"(_town getVariable ""cti_town_sideID"") ==_sideID && !(_town getVariable ""cti_town_occupation_active"") && !(_town getVariable ""cti_town_resistance_active"") &&" \n
"(" \n
@@ -486,6 +487,193 @@ class FSM
};
};
/*%FSM*/
+ /*%FSM*/
+ class Create_G1
+ {
+ name = "Create_G1";
+ itemno = 30;
+ init = /*%FSM*/"if (_size > 0) then {" \n
+ " _town_vehicles_groups_1 = [_town, _side, [_town_teams select 0], [_town_groups select 0], [_town_positions select 0]] call CTI_CO_FNC_CreateTownUnits;" \n
+ " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups_1 select 0),true];" \n
+ " _town setvariable [""CTI_TOWN_GROUPS"",_town_vehicles_groups_1 select 1,true];" \n
+ "" \n
+ "_wait = time + 0.5;" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait
+ {
+ itemno = 25;
+ priority = 1.000000;
+ to="Create_G2";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Create_G2
+ {
+ name = "Create_G2";
+ itemno = 31;
+ init = /*%FSM*/"if (_size > 1) then {" \n
+ " _town_vehicles_groups_2 = [_town, _side, [_town_teams select 1], [_town_groups select 1], [_town_positions select 1]] call CTI_CO_FNC_CreateTownUnits;" \n
+ " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups_2 select 0),true];" \n
+ " _town setvariable [""CTI_TOWN_GROUPS"", (_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_2 select 1),true];" \n
+ "" \n
+ "_wait = time + 0.5;" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait
+ {
+ itemno = 26;
+ priority = 1.000000;
+ to="Create_G3";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Create_G3
+ {
+ name = "Create_G3";
+ itemno = 32;
+ init = /*%FSM*/"if (_size > 2) then {" \n
+ " _town_vehicles_groups_3 = [_town, _side, [_town_teams select 2], [_town_groups select 2], [_town_positions select 2]] call CTI_CO_FNC_CreateTownUnits;" \n
+ " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups_3 select 0),true];" \n
+ " _town setvariable [""CTI_TOWN_GROUPS"", (_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_3 select 1),true];" \n
+ "" \n
+ "_wait = time + 0.5;" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait
+ {
+ itemno = 27;
+ priority = 1.000000;
+ to="Create_G4";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Create_G4
+ {
+ name = "Create_G4";
+ itemno = 33;
+ init = /*%FSM*/"if (_size > 3) then {" \n
+ " _town_vehicles_groups_4 = [_town, _side, [_town_teams select 3], [_town_groups select 3], [_town_positions select 3]] call CTI_CO_FNC_CreateTownUnits;" \n
+ " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups_4 select 0),true];" \n
+ " _town setvariable [""CTI_TOWN_GROUPS"", (_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_4 select 1),true];" \n
+ "" \n
+ "_wait = time + 0.5;" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait
+ {
+ itemno = 28;
+ priority = 1.000000;
+ to="Create_G5";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Create_G5
+ {
+ name = "Create_G5";
+ itemno = 34;
+ init = /*%FSM*/"if (_size > 4) then {" \n
+ " _town_vehicles_groups_5 = [_town, _side, [_town_teams select 4], [_town_groups select 4], [_town_positions select 4]] call CTI_CO_FNC_CreateTownUnits;" \n
+ " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups_5 select 0),true];" \n
+ " _town setvariable [""CTI_TOWN_GROUPS"", (_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_5 select 1),true];" \n
+ "" \n
+ "_wait = time + 0.5;" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait
+ {
+ itemno = 29;
+ priority = 1.000000;
+ to="Create_M__Warn";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Create_M__Warn
+ {
+ name = "Create_M__Warn";
+ itemno = 35;
+ init = /*%FSM*/"//--- Warn" \n
+ "[[""CLIENT"", _side], ""Client_OnMessageReceived"", [""town-hostilenear"", _town]] call CTI_CO_FNC_NetSend;" \n
+ "" \n
+ "_town setVariable [""cti_town_occupation_active"", true,true];" \n
+ "_town setVariable [""cti_town_occupation_active_sideID"", _sideID,true];" \n
+ "" \n
+ "if (_town in (CTI_WEST getvariable ""CTI_ACTIVE"")) then {" \n
+ " [[""CLIENT"",west],""SM_message"",format [""Town is %1 is now Active"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
+ "};" \n
+ "" \n
+ "if (_town in (CTI_EAST getvariable ""CTI_ACTIVE"")) then {" \n
+ " [[""CLIENT"",east],""SM_message"",format [""Town is %1 is now Active"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
+ "};" \n
+ "" \n
+ "if ((missionNamespace getVariable 'CTI_SM_MINES')==1) then {" \n
+ " [_town] call CTI_SM_Mines_script;" \n
+ "};" \n
+ "" \n
+ "_town setVariable [""cti_town_timeofspawn"", time,true];"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Cycle
+ {
+ itemno = 1;
+ priority = 1.000000;
+ to="Occupation_hold";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _ncycle " \n
+ "//&& !( _town getVariable ""cti_town_disactivate"");"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
};
initState="Start_FSM";
finalStates[] =
diff --git a/Addons/Strat_mode/FSM/town_resistance.fsm b/Addons/Strat_mode/FSM/town_resistance.fsm
index ce60f12b6..fa82b5711 100644
--- a/Addons/Strat_mode/FSM/town_resistance.fsm
+++ b/Addons/Strat_mode/FSM/town_resistance.fsm
@@ -15,17 +15,32 @@ item10[] = {"Inactive",4,218,175.000000,-100.000000,275.000000,-50.000000,1.0000
item11[] = {"Still_active",8,218,300.000000,0.000000,400.000000,50.000000,0.000000,"Still active"};
item12[] = {"Timed_out",4,218,475.000000,100.000000,575.000000,150.000000,1.000000,"Timed out"};
item13[] = {"Skip",2,250,302.287354,-265.039612,402.287354,-215.039612,0.000000,"Skip"};
-item14[] = {"Cleanup",2,4346,475.000000,-400.000000,575.000000,-350.000000,0.000000,"Cleanup"};
+item14[] = {"Cleanup",2,250,475.000000,-400.000000,575.000000,-350.000000,0.000000,"Cleanup"};
item15[] = {"Resistance_Active",2,250,50.000000,-100.000000,150.000000,-50.000000,0.000000,"Resistance" \n "Active?"};
item16[] = {"Contact",8,218,-100.000000,100.000000,0.000000,150.000000,0.000000,"Contact"};
item17[] = {"Clear",4,218,50.000000,0.000000,150.000000,50.000000,1.000000,"Clear"};
-item18[] = {"Create",2,250,-400.000000,200.000000,-300.000000,250.000000,0.000000,"Create"};
+item18[] = {"Calc",2,250,-405.286591,200.000000,-305.286591,250.000000,0.000000,"Calc"};
item19[] = {"Resistance_Active_1",2,250,-100.000000,200.000000,0.000000,250.000000,0.000000,"Resistance" \n "Active?"};
item20[] = {"Inactive",4,218,-250.000000,200.000000,-150.000000,250.000000,1.000000,"Inactive"};
item21[] = {"Active",4,218,175.000000,200.000000,275.000000,250.000000,2.000000,"Active"};
-item22[] = {"",7,210,-354.000000,-379.000000,-346.000000,-371.000000,0.000000,""};
+item22[] = {"",7,210,-351.746582,-418.493622,-343.746582,-410.493622,0.000000,""};
item23[] = {"_",8,218,300.000000,275.000000,400.000000,325.000000,0.000000,""};
-link0[] = {0,1};
+item24[] = {"Create_G1",2,250,-403.897888,112.289322,-303.897888,162.289322,0.000000,"Create G1"};
+item25[] = {"Wait",4,218,-402.292999,83.576782,-303.756409,105.971649,1.000000,"Wait"};
+item26[] = {"",7,210,-40.530235,-569.115356,-32.530251,-561.115356,0.000000,""};
+item27[] = {"Create_G2",2,250,-403.032166,26.257862,-303.032166,76.257881,0.000000,"Create G2"};
+item28[] = {"Wait",4,218,-404.894409,170.550903,-306.357819,192.945770,1.000000,"Wait"};
+item29[] = {"Create_G3",2,250,-401.294312,-56.101166,-301.294312,-6.101151,0.000000,"Create G3"};
+item30[] = {"Wait",4,218,-401.987091,-1.587708,-303.450500,20.807159,1.000000,"Wait"};
+item31[] = {"Create_G4",2,250,-400.878967,-141.958054,-300.878906,-91.958038,0.000000,"Create G4"};
+item32[] = {"Create_G5",2,250,-397.118561,-226.637772,-297.118561,-176.637802,0.000000,"Create G5"};
+item33[] = {"Create_G6",2,4346,-398.124298,-312.866913,-298.124298,-262.866913,0.000000,"Create G6"};
+item34[] = {"Wait",4,218,-399.633942,-84.102051,-301.097351,-61.707184,1.000000,"Wait"};
+item35[] = {"Wait",4,218,-398.621429,-170.179230,-300.084839,-147.784363,1.000000,"Wait"};
+item36[] = {"Wait",4,218,-396.509552,-255.200638,-297.972961,-232.805847,1.000000,"Wait"};
+item37[] = {"Create_C__M__M_",2,250,-398.652588,-399.085297,-298.652588,-349.085297,0.000000,"Create C, M, M, S"};
+item38[] = {"Wait",4,218,-397.133728,-342.601624,-298.597107,-320.206787,1.000000,"Wait"};
+link0[] = {0,26};
link1[] = {1,2};
link2[] = {2,4};
link3[] = {2,5};
@@ -47,7 +62,7 @@ link18[] = {15,9};
link19[] = {15,10};
link20[] = {16,19};
link21[] = {17,15};
-link22[] = {18,22};
+link22[] = {18,28};
link23[] = {19,20};
link24[] = {19,21};
link25[] = {19,23};
@@ -55,8 +70,23 @@ link26[] = {20,18};
link27[] = {21,8};
link28[] = {22,1};
link29[] = {23,13};
-globals[] = {0.000000,0,0,0,0,640,480,1,173,6316128,1,-984.095642,949.039673,729.243164,-1090.662720,939,884,1};
-window[] = {2,-1,-1,-32000,-32000,794,182,1218,182,3,957};
+link30[] = {24,25};
+link31[] = {25,27};
+link32[] = {26,1};
+link33[] = {27,30};
+link34[] = {28,24};
+link35[] = {29,34};
+link36[] = {30,29};
+link37[] = {31,35};
+link38[] = {32,36};
+link39[] = {33,38};
+link40[] = {34,31};
+link41[] = {35,32};
+link42[] = {36,33};
+link43[] = {37,22};
+link44[] = {38,37};
+globals[] = {0.000000,0,0,0,0,640,480,1,197,6316128,1,-531.517700,-94.375397,293.288269,-925.745911,317,884,1};
+window[] = {2,-1,-1,-1,-1,1134,104,1127,104,3,335};
*//*%FSM*/
class FSM
{
@@ -389,10 +419,10 @@ class FSM
};
};
/*%FSM*/
- /*%FSM*/
- class Create
+ /*%FSM*/
+ class Calc
{
- name = "Create";
+ name = "Calc";
itemno = 18;
init = /*%FSM*/"//--- We get the main information first (The teams, the groups and the positions)" \n
"_return = (_town) call CTI_SE_FNC_SpawnTownResistance;" \n
@@ -401,63 +431,21 @@ class FSM
"_town_positions = _return select 2;" \n
"" \n
"_town setvariable [""CTI_TOWN_GROUPS"",_town_groups,true];" \n
- "//--- Warn" \n
- "//[[""CLIENT"",resistance], ""Client_OnMessageReceived"", [""town-hostilenear"", _town]] call CTI_CO_FNC_NetSend;" \n
"" \n
+ "_size = count _town_groups; " \n
"" \n
- "_town_vehicles_groups = [_town, resistance, _town_teams, _town_groups, _town_positions] call CTI_CO_FNC_CreateTownUnits;" \n
- "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups];" \n
- "" \n
- "_town setvariable [""CTI_TOWN_GROUPS"",_town_vehicles_groups select 1,true];" \n
- "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups select 0),true];" \n
- "_town setVariable [""cti_town_mortars_units"",[],true];" \n
- "_town setVariable [""cti_town_resistance_active"", true,true];" \n
- "" \n
- "" \n
- "if ((missionNamespace getVariable 'CTI_SM_MORTARS')==1) then {" \n
- " _mortars=[_town,_town_groups] call CTI_SM_Mortars_script;" \n
- " [""CLIENT"", ""Client_Update_Mortars"",[_town,(_mortars select 2)]] call CTI_CO_FNC_NetSend;" \n
- " _town setVariable [""cti_town_mortars"",(_mortars select 2),true];" \n
- " _town setVariable [""cti_town_mortars_units"",(_mortars),true];" \n
- "};" \n
- "" \n
- "_town setVariable [""cti_town_resistance_active"", true,true];" \n
- "" \n
- "if ( (missionNamespace getVariable 'CTI_SM_TCAS') <= (_town getVariable ""cti_town_value"")) then {" \n
- " _town setVariable[""CTI_CAS"",(_town) call SM_TCAS_CREATE,true];" \n
- "};" \n
- "" \n
- "if ((missionNamespace getVariable 'CTI_SM_MINES')==1) then {" \n
- " [_town] call CTI_SM_Mines_script;" \n
- "};" \n
- "" \n
- "if ((missionNamespace getVariable 'CTI_SM_SHIP')==1) then {" \n
- " if (ISLAND == 2 || ISLAND == 3) then {" \n
- " if ((_town getVariable ""cti_town_name"" == ""Makrynisi"") || (_town getVariable ""cti_town_name"" == ""Tuadua Island"") || (_town getVariable ""cti_town_name"" == ""Yani Islets"") || (_town getVariable ""cti_town_name"" == ""Ile Sainte-Marie"") || (_town getVariable ""cti_town_name"" == ""Northern Island"") || (_town getVariable ""cti_town_name"" == ""Rock Island"")) then {_town setVariable [""CTI_Ship"",(_town) call SM_TShip_CREATE,true];};" \n
- " };" \n
- "};" \n
- "" \n
- "if ( _town in (CTI_WEST getvariable ""CTI_ACTIVE"")) then {" \n
- " [[""CLIENT"",west],""SM_message"",format [localize ""STR_TownActive"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
- "};" \n
- "" \n
- "if ( _town in (CTI_EAST getvariable ""CTI_ACTIVE"")) then {" \n
- " [[""CLIENT"",east],""SM_message"",format [localize ""STR_TownActive"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
- "};" \n
- "" \n
- "_town setVariable [""cti_town_timeofspawn"", time,true];"/*%FSM*/;
+ "_wait = time + 0.5;"/*%FSM*/;
precondition = /*%FSM*/""/*%FSM*/;
class Links
{
- /*%FSM*/
- class Cycle
+ /*%FSM*/
+ class Wait
{
- itemno = 1;
+ itemno = 28;
priority = 1.000000;
- to="Resistance_hold";
+ to="Create_G1";
precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _ncycle" \n
- "// && !( _town getVariable ""cti_town_disactivate"");"/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
action=/*%FSM*/""/*%FSM*/;
};
/*%FSM*/
@@ -489,7 +477,7 @@ class FSM
{
itemno = 20;
priority = 1.000000;
- to="Create";
+ to="Calc";
precondition = /*%FSM*/""/*%FSM*/;
condition=/*%FSM*/"_sideID == CTI_RESISTANCE_ID &&!(_town getVariable ""cti_town_resistance_active"") &&(_town in ((CTI_WEST getvariable ""CTI_ACTIVE"") + (CTI_EAST getvariable ""CTI_ACTIVE"") )) && !(_town getVariable ""cti_town_occupation_active"")" \n
""/*%FSM*/;
@@ -510,6 +498,251 @@ class FSM
};
};
/*%FSM*/
+ /*%FSM*/
+ class Create_G1
+ {
+ name = "Create_G1";
+ itemno = 24;
+ init = /*%FSM*/"if (_size > 0) then {" \n
+ "_town_vehicles_groups_1 = [_town, resistance, [_town_teams select 0], [_town_groups select 0], [_town_positions select 0]] call CTI_CO_FNC_CreateTownUnits;" \n
+ "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_1];" \n
+ "" \n
+ "_town setvariable [""CTI_TOWN_GROUPS"",_town_vehicles_groups_1 select 1,true];" \n
+ "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_1 select 0),true];" \n
+ "" \n
+ "_wait = time + 0.5;" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait
+ {
+ itemno = 25;
+ priority = 1.000000;
+ to="Create_G2";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Create_G2
+ {
+ name = "Create_G2";
+ itemno = 27;
+ init = /*%FSM*/"if (_size > 1) then {" \n
+ "_town_vehicles_groups_2 = [_town, resistance, [_town_teams select 1], [_town_groups select 1], [_town_positions select 1]] call CTI_CO_FNC_CreateTownUnits;" \n
+ "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_2];" \n
+ "" \n
+ "_town setvariable [""CTI_TOWN_GROUPS"",(_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_2 select 1),true];" \n
+ "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_2 select 0),true];" \n
+ "" \n
+ "_wait = time + 0.5;" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait
+ {
+ itemno = 30;
+ priority = 1.000000;
+ to="Create_G3";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Create_G3
+ {
+ name = "Create_G3";
+ itemno = 29;
+ init = /*%FSM*/"if (_size > 2) then {" \n
+ "_town_vehicles_groups_3 = [_town, resistance, [_town_teams select 2], [_town_groups select 2], [_town_positions select 2]] call CTI_CO_FNC_CreateTownUnits;" \n
+ "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_3];" \n
+ "" \n
+ "_town setvariable [""CTI_TOWN_GROUPS"",(_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_3 select 1),true];" \n
+ "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_3 select 0),true];" \n
+ "" \n
+ "_wait = time + 0.5;" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait
+ {
+ itemno = 34;
+ priority = 1.000000;
+ to="Create_G4";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Create_G4
+ {
+ name = "Create_G4";
+ itemno = 31;
+ init = /*%FSM*/"if (_size > 3) then {" \n
+ "_town_vehicles_groups_4 = [_town, resistance, [_town_teams select 3], [_town_groups select 3], [_town_positions select 3]] call CTI_CO_FNC_CreateTownUnits;" \n
+ "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_4];" \n
+ "" \n
+ "_town setvariable [""CTI_TOWN_GROUPS"",(_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_4 select 1),true];" \n
+ "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_4 select 0),true];" \n
+ "" \n
+ "_wait = time + 0.5;" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait
+ {
+ itemno = 35;
+ priority = 1.000000;
+ to="Create_G5";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Create_G5
+ {
+ name = "Create_G5";
+ itemno = 32;
+ init = /*%FSM*/"if (_size > 4) then {" \n
+ "_town_vehicles_groups_5 = [_town, resistance, [_town_teams select 4], [_town_groups select 4], [_town_positions select 4]] call CTI_CO_FNC_CreateTownUnits;" \n
+ "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_5];" \n
+ "" \n
+ "_town setvariable [""CTI_TOWN_GROUPS"",(_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_5 select 1),true];" \n
+ "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_5 select 0),true];" \n
+ "" \n
+ "_wait = time + 0.5;" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait
+ {
+ itemno = 36;
+ priority = 1.000000;
+ to="Create_G6";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Create_G6
+ {
+ name = "Create_G6";
+ itemno = 33;
+ init = /*%FSM*/"if (_size > 5) then {" \n
+ "_town_vehicles_groups_6 = [_town, resistance, [_town_teams select 5], [_town_groups select 5], [_town_positions select 5]] call CTI_CO_FNC_CreateTownUnits;" \n
+ "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_6];" \n
+ "" \n
+ "_town setvariable [""CTI_TOWN_GROUPS"",(_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_6 select 1),true];" \n
+ "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_6 select 0),true];" \n
+ "" \n
+ "_wait = time + 0.5;" \n
+ "};" \n
+ "" \n
+ "_town setVariable [""cti_town_resistance_active"", true,true];" \n
+ "" \n
+ "//diag_log (_town getVariable ""CTI_TOWN_GROUPS"");"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Wait
+ {
+ itemno = 38;
+ priority = 1.000000;
+ to="Create_C__M__M_";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Create_C__M__M_
+ {
+ name = "Create_C__M__M_";
+ itemno = 37;
+ init = /*%FSM*/"_town setVariable [""cti_town_mortars_units"",[],true];" \n
+ "" \n
+ "if ((missionNamespace getVariable 'CTI_SM_MORTARS')==1) then {" \n
+ " _mortars=[_town,_town_groups] call CTI_SM_Mortars_script;" \n
+ " [""CLIENT"", ""Client_Update_Mortars"",[_town,(_mortars select 2)]] call CTI_CO_FNC_NetSend;" \n
+ " _town setVariable [""cti_town_mortars"",(_mortars select 2),true];" \n
+ " _town setVariable [""cti_town_mortars_units"",(_mortars),true];" \n
+ "};" \n
+ "" \n
+ "if ( (missionNamespace getVariable 'CTI_SM_TCAS') <= (_town getVariable ""cti_town_value"")) then {" \n
+ " _town setVariable[""CTI_CAS"",(_town) call SM_TCAS_CREATE,true];" \n
+ "};" \n
+ "" \n
+ "if ((missionNamespace getVariable 'CTI_SM_MINES')==1) then {" \n
+ " [_town] call CTI_SM_Mines_script;" \n
+ "};" \n
+ "" \n
+ "if ((missionNamespace getVariable 'CTI_SM_SHIP')==1) then {" \n
+ " if (ISLAND == 2 || ISLAND == 3) then {" \n
+ " if ((_town getVariable ""cti_town_name"" == ""Makrynisi"") || (_town getVariable ""cti_town_name"" == ""Tuadua Island"") || (_town getVariable ""cti_town_name"" == ""Yani Islets"") || (_town getVariable ""cti_town_name"" == ""Ile Sainte-Marie"") || (_town getVariable ""cti_town_name"" == ""Northern Island"") || (_town getVariable ""cti_town_name"" == ""Rock Island"")) then {_town setVariable [""CTI_Ship"",(_town) call SM_TShip_CREATE,true];};" \n
+ " };" \n
+ "};" \n
+ "" \n
+ "if ( _town in (CTI_WEST getvariable ""CTI_ACTIVE"")) then {" \n
+ " [[""CLIENT"",west],""SM_message"",format [localize ""STR_TownActive"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
+ "};" \n
+ "" \n
+ "if ( _town in (CTI_EAST getvariable ""CTI_ACTIVE"")) then {" \n
+ " [[""CLIENT"",east],""SM_message"",format [localize ""STR_TownActive"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
+ "};" \n
+ "" \n
+ "_town setVariable [""cti_town_timeofspawn"", time,true];"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Cycle
+ {
+ itemno = 1;
+ priority = 1.000000;
+ to="Resistance_hold";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _ncycle" \n
+ "// && !( _town getVariable ""cti_town_disactivate"");"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
};
initState="Start_FSM";
finalStates[] =
diff --git a/Server/FSM/town_patrol.fsm b/Server/FSM/town_patrol.fsm
index 4be1e9965..19cb58e1f 100644
--- a/Server/FSM/town_patrol.fsm
+++ b/Server/FSM/town_patrol.fsm
@@ -3,225 +3,260 @@
/*
item0[] = {"Init",0,250,-25.000000,-475.000000,75.000000,-425.000000,0.000000,"Init"};
item1[] = {"Cycle",4,218,125.000000,-475.000000,225.000000,-425.000000,0.000000,"Cycle"};
-item2[] = {"Check",2,250,275.000000,-475.000000,375.000000,-425.000000,0.000000,"Check"};
+item2[] = {"Check",2,250,275.000031,-473.715515,375.000031,-423.715515,0.000000,"Check"};
item3[] = {"Renew_Path",4,218,275.000000,-575.000000,375.000000,-525.000000,3.000000,"Renew" \n "Path"};
item4[] = {"Process_Action",4,218,275.000000,-375.000000,375.000000,-325.000000,2.000000,"Process" \n "Action"};
item5[] = {"Done",8,218,425.000000,-475.000000,525.000000,-425.000000,0.000000,"Done"};
item6[] = {"End",1,250,575.000000,-475.000000,675.000000,-425.000000,0.000000,"End"};
-item7[] = {"Patrol",2,4346,125.000000,-575.000000,225.000000,-525.000000,0.000000,"Patrol"};
-item8[] = {"Defend",2,250,125.000000,-375.000000,225.000000,-325.000000,0.000000,"Defend"};
-item9[] = {"_",4,218,450.000000,-300.000000,550.000000,-250.000000,1.000000,""};
-item10[] = {"SKIP",2,250,-25.000000,-300.000000,75.000000,-250.000000,0.000000,"SKIP"};
+item7[] = {"Patrol",2,250,125.000000,-575.000000,225.000000,-525.000000,0.000000,"Patrol"};
+item8[] = {"Defend",2,4346,125.000000,-375.000000,225.000000,-325.000000,0.000000,"Defend"};
link0[] = {0,1};
link1[] = {1,2};
link2[] = {2,3};
link3[] = {2,4};
link4[] = {2,5};
-link5[] = {2,9};
-link6[] = {3,7};
-link7[] = {4,8};
-link8[] = {5,6};
-link9[] = {7,1};
-link10[] = {8,1};
-link11[] = {9,10};
-link12[] = {10,1};
-globals[] = {25.000000,1,0,0,0,640,480,1,45,6316128,1,-49.166565,679.138794,-34.083618,-705.564575,769,709,1};
-window[] = {0,-1,-1,-1,-1,961,10,1470,107,1,787};
+link5[] = {3,7};
+link6[] = {4,8};
+link7[] = {5,6};
+link8[] = {7,1};
+link9[] = {8,1};
+globals[] = {0.000000,0,0,0,0,640,480,1,49,6316128,1,-65.822006,695.793152,454.302429,-733.118652,567,884,1};
+window[] = {2,-1,-1,-32000,-32000,958,104,1564,104,3,585};
*//*%FSM*/
class FSM
{
- fsmName = "town_patrol.fsm";
- class States
- {
- /*%FSM*/
- class Init
- {
- name = "Init";
- init = /*%FSM*/"_town = _this select 0;" \n
- "_team = _this select 1;" \n
- "_sideID = _this select 2;" \n
- "" \n
- "_ncycle = time + random(5) ;" \n
- "" \n
- "_last_action = """";"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Cycle
+ fsmName = "town_patrol.fsm";
+ class States
{
- priority = 0.000000;
- to="Check";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
+ /*%FSM*/
+ class Init
+ {
+ name = "Init";
+ itemno = 0;
+ init = /*%FSM*/"_town = _this select 0;" \n
+ "_team = _this select 1;" \n
+ "_sideID = _this select 2;" \n
+ "" \n
+ "_ncycle = time + random [0,5,1];" \n
+ "" \n
+ "_roads_town = [];" \n
+ "_roads_near_team = [];" \n
+ "_wp0 = [];" \n
+ "_veh = false;" \n
+ "_current_wp = -1;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Cycle
+ {
+ itemno = 1;
+ priority = 0.000000;
+ to="Check";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Check
+ {
+ name = "Check";
+ itemno = 2;
+ init = /*%FSM*/"_aliveTeam = if ({alive _x} count units _team < 1 || isNull _team) then {false} else {true};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Renew_Path
+ {
+ itemno = 3;
+ priority = 3.000000;
+ to="Patrol";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"((_town getVariable 'cti_town_capture') >= CTI_TOWNS_CAPTURE_VALUE_CEIL) && _aliveTeam && _sideID == (_town getVariable 'cti_town_sideID')"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Process_Action
+ {
+ itemno = 4;
+ priority = 2.000000;
+ to="Defend";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"_aliveTeam && ( ((_town getVariable 'cti_town_capture') < CTI_TOWNS_CAPTURE_VALUE_CEIL) || _sideID != (_town getVariable 'cti_town_sideID') )"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Done
+ {
+ itemno = 5;
+ priority = 0.000000;
+ to="End";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class End
+ {
+ name = "End";
+ itemno = 6;
+ init = /*%FSM*/""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Patrol
+ {
+ name = "Patrol";
+ itemno = 7;
+ init = /*%FSM*/"_ncycle = time + 10;" \n
+ "" \n
+ "// ais usually not complete defend box's waypoint types so need remove or change" \n
+ "if (waypointType [_team, currentWaypoint _team] != ""MOVE"") then {{_x setwaypointtype ""MOVE""} forEach (waypoints _team);};" \n
+ "" \n
+ "// need wp or not" \n
+ "if ((currentWaypoint _team) != _current_wp) then {" \n
+ "" \n
+ "// remove all waypoints" \n
+ "{deleteWaypoint [_team, _forEachIndex];} forEach (waypoints _team);" \n
+ "" \n
+ "// position of team leader" \n
+ "_pos = getPos (leader _team);" \n
+ "" \n
+ "// vehicle?" \n
+ "if (vehicle (leader _team) != leader _team) then {_veh = true;} else {_veh = false;};" \n
+ "" \n
+ "// roads near leader 60-80m inside patrol range" \n
+ "_roads_town = (getPos _town) nearRoads CTI_TOWNS_PATROL_RANGE;" \n
+ "" \n
+ "if (!_veh) then {" \n
+ " _roads_near_team = ((_pos nearRoads 80) - (_pos nearRoads 60));" \n
+ " } else {" \n
+ " _roads_near_team = ((_pos nearRoads 140) - (_pos nearRoads 100));" \n
+ " };" \n
+ "" \n
+ "_roads = (_roads_town arrayIntersect _roads_near_team);" \n
+ "" \n
+ "// make waypoint" \n
+ "if (count _roads > 0) then {" \n
+ " _wp0 = _team addWaypoint [getPos (selectRandom _roads), 3];" \n
+ " } else {" \n
+ " _wp0 = _team addWaypoint [getPos _town, CTI_TOWNS_PATROL_RANGE];" \n
+ " };" \n
+ "" \n
+ "// set wp 0.5m height (because sometimes ais can't find path on ground or inside object)" \n
+ "_wp0 setWaypointPosition [[(waypointPosition _wp0) select 0, (waypointPosition _wp0) select 1, 0.5], 0];" \n
+ "" \n
+ "_wp0 setwaypointtype ""MOVE"";" \n
+ "_team setCurrentWaypoint _wp0;" \n
+ "_current_wp = (currentWaypoint _team);" \n
+ "" \n
+ "_team setCombatMode ""RED"";" \n
+ "_team setBehaviour ""AWARE"";" \n
+ "_team setSpeedMode ""LIMITED"";" \n
+ "" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Cycle
+ {
+ itemno = 1;
+ priority = 0.000000;
+ to="Check";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Defend
+ {
+ name = "Defend";
+ itemno = 8;
+ init = /*%FSM*/"_ncycle = time + 10;" \n
+ "" \n
+ "if ((currentWaypoint _team) != _current_wp) then {" \n
+ "" \n
+ "if (count (waypoints _team) > 0) then" \n
+ " {" \n
+ " {deleteWaypoint [_team, _forEachIndex];} forEach (waypoints _team);" \n
+ " };" \n
+ "" \n
+ "_pos = getPos (leader _team);" \n
+ "" \n
+ "if (vehicle (leader _team) != leader _team) then {_veh = true;} else {_veh = false;};" \n
+ "" \n
+ "// roads near flag (50m)" \n
+ "_roads_town = (getPos _town) nearRoads (CTI_TOWNS_PATROL_RANGE / 4);" \n
+ "" \n
+ "if (!_veh) then {" \n
+ " _roads_near_team = ((_pos nearRoads 100) - (_pos nearRoads 30));" \n
+ " } else {" \n
+ " _roads_near_team = ((_pos nearRoads 140) - (_pos nearRoads 50));" \n
+ " };" \n
+ "" \n
+ "_roads = (_roads_town arrayIntersect _roads_near_team);" \n
+ "" \n
+ "// make waypoint" \n
+ "if (count _roads > 0) then {" \n
+ " _wp0 = _team addWaypoint [getPos (selectRandom _roads), 3];" \n
+ " } else {" \n
+ " _wp0 = _team addWaypoint [getPos _town, (CTI_TOWNS_PATROL_RANGE / 4)];" \n
+ " };" \n
+ "" \n
+ "_wp0 setWaypointPosition [[(waypointPosition _wp0) select 0, (waypointPosition _wp0) select 1, 0.5], 0];" \n
+ "" \n
+ "_types = [""HOLD"", ""SENTRY"", ""GUARD"", ""SAD""];" \n
+ "_wp0 setwaypointtype (selectRandom _types);" \n
+ "_team setCurrentWaypoint _wp0;" \n
+ "_current_wp = (currentWaypoint _team);" \n
+ "" \n
+ "_team setCombatMode ""RED"";" \n
+ "_team setBehaviour ""COMBAT"";" \n
+ "_team setSpeedMode ""NORMAL"";" \n
+ "" \n
+ "};"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Cycle
+ {
+ itemno = 1;
+ priority = 0.000000;
+ to="Check";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
};
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Check
- {
- name = "Check";
- init = /*%FSM*/"_aliveTeam = if ({alive _x} count units _team < 1 || isNull _team) then {false} else {true};" \n
- ""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Renew_Path
+ initState="Init";
+ finalStates[] =
{
- priority = 3.000000;
- to="Patrol";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"((_town getVariable 'cti_town_capture') >= CTI_TOWNS_CAPTURE_VALUE_CEIL) && _last_action != ""patrol"" && _aliveTeam && _sideID == (_town getVariable 'cti_town_sideID')"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
+ "End",
};
- /*%FSM*/
- /*%FSM*/
- class Process_Action
- {
- priority = 2.000000;
- to="Defend";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"_aliveTeam && _last_action != ""defend"" && ( ( (_town getVariable 'cti_town_capture') < CTI_TOWNS_CAPTURE_VALUE_CEIL ) || _sideID != (_town getVariable 'cti_town_sideID') )"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class _
- {
- priority = 1.000000;
- to="SKIP";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"_aliveTeam "/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Done
- {
- priority = 0.000000;
- to="End";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class End
- {
- name = "End";
- init = /*%FSM*/""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Patrol
- {
- name = "Patrol";
- init = /*%FSM*/"_ncycle = time +20;" \n
- "" \n
- "while {(count (waypoints _team)) > 0} do" \n
- " {" \n
- " deleteWaypoint ((waypoints _team) select 0);" \n
- " };" \n
- "_wp0= _team addwaypoint [_town,CTI_TOWNS_PATROL_RANGE];" \n
- "_wp0 setwaypointtype ""MOVE"";" \n
- "for '_i' from 1 to CTI_TOWNS_PATROL_HOPS do {" \n
- " _wp= _team addwaypoint [_town,CTI_TOWNS_PATROL_RANGE];" \n
- " _wp setwaypointtype ""MOVE"";" \n
- "};" \n
- "_wp = _team addwaypoint [_town,CTI_TOWNS_PATROL_RANGE];" \n
- "_wp setwaypointtype ""CYCLE"";" \n
- "_team setCurrentWaypoint _wp0;" \n
- "_last_action = ""patrol"";" \n
- "_team setCombatMode ""RED"";" \n
- "_team setBehaviour ""AWARE"";" \n
- "_team setSpeedMode ""LIMITED"";"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Cycle
- {
- priority = 0.000000;
- to="Check";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Defend
- {
- name = "Defend";
- init = /*%FSM*/"_ncycle = time +20;" \n
- "" \n
- "while {(count (waypoints _team)) > 0} do" \n
- " {" \n
- " deleteWaypoint ((waypoints _team) select 0);" \n
- " };" \n
- "" \n
- "_wp0= _team addwaypoint [_town,25];" \n
- "_wp0 setwaypointtype ""HOLD"";" \n
- "_team setCurrentWaypoint _wp0;" \n
- "_last_action = ""defend"";" \n
- "_team setCombatMode ""RED"";" \n
- "_team setBehaviour ""COMBAT"";" \n
- "_team setSpeedMode ""NORMAL"";"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Cycle
- {
- priority = 0.000000;
- to="Check";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class SKIP
- {
- name = "SKIP";
- init = /*%FSM*/"_ncycle = time +30;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Cycle
- {
- priority = 0.000000;
- to="Check";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- };
- initState="Init";
- finalStates[] =
- {
- "End"
- };
};
/*%FSM*/
\ No newline at end of file
From 719172b923dbe12e26341224b154978f2222b0bf Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Sat, 29 Jun 2019 11:07:03 +0200
Subject: [PATCH 108/267] Revert "FSM update"
This reverts commit b28af1dad5f8214252b08e1c9c83d6808da5205a.
---
Addons/Strat_mode/FSM/town_occupation.fsm | 266 ++-----------
Addons/Strat_mode/FSM/town_resistance.fsm | 353 +++--------------
Server/FSM/town_patrol.fsm | 443 ++++++++++------------
3 files changed, 303 insertions(+), 759 deletions(-)
diff --git a/Addons/Strat_mode/FSM/town_occupation.fsm b/Addons/Strat_mode/FSM/town_occupation.fsm
index 53478b6d1..95a7d0aea 100644
--- a/Addons/Strat_mode/FSM/town_occupation.fsm
+++ b/Addons/Strat_mode/FSM/town_occupation.fsm
@@ -3,7 +3,7 @@
/*
item0[] = {"Start_FSM",0,250,-100.000000,-800.000000,0.000000,-750.000000,0.000000,"Start FSM"};
item1[] = {"Cycle",4,218,-100.000000,-400.000000,0.000000,-350.000000,1.000000,"Cycle"};
-item2[] = {"Occupation_hold",2,250,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Occupation hold" \n "the town?"};
+item2[] = {"Occupation_hold",2,4346,-100.000000,-200.000000,0.000000,-150.000000,0.000000,"Occupation hold" \n "the town?"};
item3[] = {"End_FSM",1,250,-250.000000,-100.000000,-150.000000,-50.000000,0.000000,"End FSM"};
item4[] = {"Held_by_Occupati",4,218,-100.000000,-100.000000,0.000000,-50.000000,2.000000,"Held by" \n "Occupation"};
item5[] = {"Gameover",8,218,-250.000000,-200.000000,-150.000000,-150.000000,0.000000,"Gameover"};
@@ -19,24 +19,12 @@ item14[] = {"Cleanup",2,250,425.000000,-400.000000,525.000000,-350.000000,0.0000
item15[] = {"Occupation_Active",2,250,50.000000,-100.000000,150.000000,-50.000000,0.000000,"Occupation" \n "Active?"};
item16[] = {"Contact",8,218,-100.000000,100.000000,0.000000,150.000000,0.000000,"Contact"};
item17[] = {"Clear",4,218,50.000000,0.000000,150.000000,50.000000,1.000000,"Clear"};
-item18[] = {"Calc",2,250,-400.000000,200.000000,-300.000000,250.000000,0.000000,"Calc"};
+item18[] = {"Create",2,250,-400.000000,200.000000,-300.000000,250.000000,0.000000,"Create"};
item19[] = {"Occupation_Active_1",2,250,-100.000000,200.000000,0.000000,250.000000,0.000000,"Occupation" \n "Active?"};
item20[] = {"Inactive",4,218,-250.000000,200.000000,-150.000000,250.000000,1.000000,"Inactive"};
item21[] = {"Active",4,218,175.000000,200.000000,275.000000,250.000000,2.000000,"Active"};
item22[] = {"",7,210,-354.000000,-379.000000,-346.000000,-371.000000,0.000000,""};
item23[] = {"_",8,218,350.000000,325.000000,450.000000,375.000000,0.000000,""};
-item24[] = {"Wait",4,218,-396.344360,169.054321,-301.266876,191.365082,1.000000,"Wait"};
-item25[] = {"Wait",4,218,-393.071930,80.698349,-297.994446,103.009109,1.000000,"Wait"};
-item26[] = {"Wait",4,218,-394.045837,-9.293777,-298.968353,13.016983,1.000000,"Wait"};
-item27[] = {"Wait",4,218,-396.998413,-95.932709,-301.920929,-73.621948,1.000000,"Wait"};
-item28[] = {"Wait",4,218,-395.419861,-187.748001,-300.342377,-165.437241,1.000000,"Wait"};
-item29[] = {"Wait",4,218,-396.455292,-278.932922,-301.377808,-256.622192,1.000000,"Wait"};
-item30[] = {"Create_G1",2,250,-397.530731,112.138672,-297.530731,162.138672,0.000000,"Create G1"};
-item31[] = {"Create_G2",2,4346,-395.610718,21.793152,-295.610718,71.793152,0.000000,"Create G2"};
-item32[] = {"Create_G3",2,250,-397.553162,-64.800392,-297.553162,-14.800392,0.000000,"Create G3"};
-item33[] = {"Create_G4",2,250,-398.123474,-156.634659,-298.123474,-106.634666,0.000000,"Create G4"};
-item34[] = {"Create_G5",2,250,-398.309631,-244.824005,-298.309631,-194.824005,0.000000,"Create G5"};
-item35[] = {"Create_M__Warn",2,250,-399.250671,-339.790894,-299.250671,-289.790894,0.000000,"Create M, Warn"};
link0[] = {0,1};
link1[] = {1,2};
link2[] = {2,4};
@@ -59,7 +47,7 @@ link18[] = {15,9};
link19[] = {15,10};
link20[] = {16,19};
link21[] = {17,15};
-link22[] = {18,24};
+link22[] = {18,22};
link23[] = {19,20};
link24[] = {19,21};
link25[] = {19,23};
@@ -67,20 +55,8 @@ link26[] = {20,18};
link27[] = {21,8};
link28[] = {22,1};
link29[] = {23,13};
-link30[] = {24,30};
-link31[] = {25,31};
-link32[] = {26,32};
-link33[] = {27,33};
-link34[] = {28,34};
-link35[] = {29,35};
-link36[] = {30,25};
-link37[] = {31,26};
-link38[] = {32,27};
-link39[] = {33,28};
-link40[] = {34,29};
-link41[] = {35,22};
-globals[] = {0.000000,0,0,0,0,640,480,1,198,6316128,1,-712.383606,50.215027,402.539001,-527.305359,725,884,1};
-window[] = {2,-1,-1,-32000,-32000,716,104,1140,104,3,743};
+globals[] = {0.000000,0,0,0,0,640,480,1,177,6316128,1,-582.603027,790.527588,465.883545,-1210.282837,725,885,1};
+window[] = {2,-1,-1,-1,-1,812,200,1236,200,3,743};
*//*%FSM*/
class FSM
{
@@ -400,10 +376,10 @@ class FSM
};
};
/*%FSM*/
- /*%FSM*/
- class Calc
+ /*%FSM*/
+ class Create
{
- name = "Calc";
+ name = "Create";
itemno = 18;
init = /*%FSM*/"//--- We get the main information first (The teams, the groups and the positions)" \n
"_return = [_town, _side] call CTI_SE_FNC_SpawnTownOccupation;" \n
@@ -414,20 +390,43 @@ class FSM
"" \n
"_town setvariable [""CTI_TOWN_GROUPS"",_town_groups,true];" \n
"" \n
- "_size = count _town_groups;" \n
+ "//--- Warn" \n
+ "[[""CLIENT"", _side], ""Client_OnMessageReceived"", [""town-hostilenear"", _town]] call CTI_CO_FNC_NetSend;" \n
+ "" \n
+ "if (count _town_groups > 0) then {" \n
+ " _town_vehicles_groups = [_town, _side, _town_teams, _town_groups, _town_positions] call CTI_CO_FNC_CreateTownUnits;" \n
+ " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups select 0),true];" \n
+ " _town setvariable [""CTI_TOWN_GROUPS"",_town_vehicles_groups select 1,true];" \n
+ "};" \n
"" \n
- "_wait = time + 0.5;"/*%FSM*/;
+ "_town setVariable [""cti_town_occupation_active"", true,true];" \n
+ "_town setVariable [""cti_town_occupation_active_sideID"", _sideID,true];" \n
+ "" \n
+ "if (_town in (CTI_WEST getvariable ""CTI_ACTIVE"")) then {" \n
+ " [[""CLIENT"",west],""SM_message"",format [""Town is %1 is now Active"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
+ "};" \n
+ "" \n
+ "if (_town in (CTI_EAST getvariable ""CTI_ACTIVE"")) then {" \n
+ " [[""CLIENT"",east],""SM_message"",format [""Town is %1 is now Active"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
+ "};" \n
+ "" \n
+ "if ((missionNamespace getVariable 'CTI_SM_MINES')==1) then {" \n
+ " [_town] call CTI_SM_Mines_script;" \n
+ "};" \n
+ "" \n
+ "_town setVariable [""cti_town_timeofspawn"", time,true];"/*%FSM*/;
precondition = /*%FSM*/""/*%FSM*/;
class Links
{
- /*%FSM*/
- class Wait
+ /*%FSM*/
+ class Cycle
{
- itemno = 24;
+ itemno = 1;
priority = 1.000000;
- to="Create_G1";
+ to="Occupation_hold";
precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ condition=/*%FSM*/"time > _ncycle " \n
+ "//&& !( _town getVariable ""cti_town_disactivate"");"/*%FSM*/;
action=/*%FSM*/""/*%FSM*/;
};
/*%FSM*/
@@ -459,7 +458,7 @@ class FSM
{
itemno = 20;
priority = 1.000000;
- to="Calc";
+ to="Create";
precondition = /*%FSM*/""/*%FSM*/;
condition=/*%FSM*/"(_town getVariable ""cti_town_sideID"") ==_sideID && !(_town getVariable ""cti_town_occupation_active"") && !(_town getVariable ""cti_town_resistance_active"") &&" \n
"(" \n
@@ -487,193 +486,6 @@ class FSM
};
};
/*%FSM*/
- /*%FSM*/
- class Create_G1
- {
- name = "Create_G1";
- itemno = 30;
- init = /*%FSM*/"if (_size > 0) then {" \n
- " _town_vehicles_groups_1 = [_town, _side, [_town_teams select 0], [_town_groups select 0], [_town_positions select 0]] call CTI_CO_FNC_CreateTownUnits;" \n
- " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups_1 select 0),true];" \n
- " _town setvariable [""CTI_TOWN_GROUPS"",_town_vehicles_groups_1 select 1,true];" \n
- "" \n
- "_wait = time + 0.5;" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait
- {
- itemno = 25;
- priority = 1.000000;
- to="Create_G2";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Create_G2
- {
- name = "Create_G2";
- itemno = 31;
- init = /*%FSM*/"if (_size > 1) then {" \n
- " _town_vehicles_groups_2 = [_town, _side, [_town_teams select 1], [_town_groups select 1], [_town_positions select 1]] call CTI_CO_FNC_CreateTownUnits;" \n
- " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups_2 select 0),true];" \n
- " _town setvariable [""CTI_TOWN_GROUPS"", (_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_2 select 1),true];" \n
- "" \n
- "_wait = time + 0.5;" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait
- {
- itemno = 26;
- priority = 1.000000;
- to="Create_G3";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Create_G3
- {
- name = "Create_G3";
- itemno = 32;
- init = /*%FSM*/"if (_size > 2) then {" \n
- " _town_vehicles_groups_3 = [_town, _side, [_town_teams select 2], [_town_groups select 2], [_town_positions select 2]] call CTI_CO_FNC_CreateTownUnits;" \n
- " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups_3 select 0),true];" \n
- " _town setvariable [""CTI_TOWN_GROUPS"", (_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_3 select 1),true];" \n
- "" \n
- "_wait = time + 0.5;" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait
- {
- itemno = 27;
- priority = 1.000000;
- to="Create_G4";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Create_G4
- {
- name = "Create_G4";
- itemno = 33;
- init = /*%FSM*/"if (_size > 3) then {" \n
- " _town_vehicles_groups_4 = [_town, _side, [_town_teams select 3], [_town_groups select 3], [_town_positions select 3]] call CTI_CO_FNC_CreateTownUnits;" \n
- " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups_4 select 0),true];" \n
- " _town setvariable [""CTI_TOWN_GROUPS"", (_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_4 select 1),true];" \n
- "" \n
- "_wait = time + 0.5;" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait
- {
- itemno = 28;
- priority = 1.000000;
- to="Create_G5";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Create_G5
- {
- name = "Create_G5";
- itemno = 34;
- init = /*%FSM*/"if (_size > 4) then {" \n
- " _town_vehicles_groups_5 = [_town, _side, [_town_teams select 4], [_town_groups select 4], [_town_positions select 4]] call CTI_CO_FNC_CreateTownUnits;" \n
- " _town setVariable [""cti_town_occupation_active_vehicles"", (_town getVariable ""cti_town_occupation_active_vehicles"") + (_town_vehicles_groups_5 select 0),true];" \n
- " _town setvariable [""CTI_TOWN_GROUPS"", (_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_5 select 1),true];" \n
- "" \n
- "_wait = time + 0.5;" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait
- {
- itemno = 29;
- priority = 1.000000;
- to="Create_M__Warn";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Create_M__Warn
- {
- name = "Create_M__Warn";
- itemno = 35;
- init = /*%FSM*/"//--- Warn" \n
- "[[""CLIENT"", _side], ""Client_OnMessageReceived"", [""town-hostilenear"", _town]] call CTI_CO_FNC_NetSend;" \n
- "" \n
- "_town setVariable [""cti_town_occupation_active"", true,true];" \n
- "_town setVariable [""cti_town_occupation_active_sideID"", _sideID,true];" \n
- "" \n
- "if (_town in (CTI_WEST getvariable ""CTI_ACTIVE"")) then {" \n
- " [[""CLIENT"",west],""SM_message"",format [""Town is %1 is now Active"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
- "};" \n
- "" \n
- "if (_town in (CTI_EAST getvariable ""CTI_ACTIVE"")) then {" \n
- " [[""CLIENT"",east],""SM_message"",format [""Town is %1 is now Active"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
- "};" \n
- "" \n
- "if ((missionNamespace getVariable 'CTI_SM_MINES')==1) then {" \n
- " [_town] call CTI_SM_Mines_script;" \n
- "};" \n
- "" \n
- "_town setVariable [""cti_town_timeofspawn"", time,true];"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Cycle
- {
- itemno = 1;
- priority = 1.000000;
- to="Occupation_hold";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _ncycle " \n
- "//&& !( _town getVariable ""cti_town_disactivate"");"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
};
initState="Start_FSM";
finalStates[] =
diff --git a/Addons/Strat_mode/FSM/town_resistance.fsm b/Addons/Strat_mode/FSM/town_resistance.fsm
index fa82b5711..ce60f12b6 100644
--- a/Addons/Strat_mode/FSM/town_resistance.fsm
+++ b/Addons/Strat_mode/FSM/town_resistance.fsm
@@ -15,32 +15,17 @@ item10[] = {"Inactive",4,218,175.000000,-100.000000,275.000000,-50.000000,1.0000
item11[] = {"Still_active",8,218,300.000000,0.000000,400.000000,50.000000,0.000000,"Still active"};
item12[] = {"Timed_out",4,218,475.000000,100.000000,575.000000,150.000000,1.000000,"Timed out"};
item13[] = {"Skip",2,250,302.287354,-265.039612,402.287354,-215.039612,0.000000,"Skip"};
-item14[] = {"Cleanup",2,250,475.000000,-400.000000,575.000000,-350.000000,0.000000,"Cleanup"};
+item14[] = {"Cleanup",2,4346,475.000000,-400.000000,575.000000,-350.000000,0.000000,"Cleanup"};
item15[] = {"Resistance_Active",2,250,50.000000,-100.000000,150.000000,-50.000000,0.000000,"Resistance" \n "Active?"};
item16[] = {"Contact",8,218,-100.000000,100.000000,0.000000,150.000000,0.000000,"Contact"};
item17[] = {"Clear",4,218,50.000000,0.000000,150.000000,50.000000,1.000000,"Clear"};
-item18[] = {"Calc",2,250,-405.286591,200.000000,-305.286591,250.000000,0.000000,"Calc"};
+item18[] = {"Create",2,250,-400.000000,200.000000,-300.000000,250.000000,0.000000,"Create"};
item19[] = {"Resistance_Active_1",2,250,-100.000000,200.000000,0.000000,250.000000,0.000000,"Resistance" \n "Active?"};
item20[] = {"Inactive",4,218,-250.000000,200.000000,-150.000000,250.000000,1.000000,"Inactive"};
item21[] = {"Active",4,218,175.000000,200.000000,275.000000,250.000000,2.000000,"Active"};
-item22[] = {"",7,210,-351.746582,-418.493622,-343.746582,-410.493622,0.000000,""};
+item22[] = {"",7,210,-354.000000,-379.000000,-346.000000,-371.000000,0.000000,""};
item23[] = {"_",8,218,300.000000,275.000000,400.000000,325.000000,0.000000,""};
-item24[] = {"Create_G1",2,250,-403.897888,112.289322,-303.897888,162.289322,0.000000,"Create G1"};
-item25[] = {"Wait",4,218,-402.292999,83.576782,-303.756409,105.971649,1.000000,"Wait"};
-item26[] = {"",7,210,-40.530235,-569.115356,-32.530251,-561.115356,0.000000,""};
-item27[] = {"Create_G2",2,250,-403.032166,26.257862,-303.032166,76.257881,0.000000,"Create G2"};
-item28[] = {"Wait",4,218,-404.894409,170.550903,-306.357819,192.945770,1.000000,"Wait"};
-item29[] = {"Create_G3",2,250,-401.294312,-56.101166,-301.294312,-6.101151,0.000000,"Create G3"};
-item30[] = {"Wait",4,218,-401.987091,-1.587708,-303.450500,20.807159,1.000000,"Wait"};
-item31[] = {"Create_G4",2,250,-400.878967,-141.958054,-300.878906,-91.958038,0.000000,"Create G4"};
-item32[] = {"Create_G5",2,250,-397.118561,-226.637772,-297.118561,-176.637802,0.000000,"Create G5"};
-item33[] = {"Create_G6",2,4346,-398.124298,-312.866913,-298.124298,-262.866913,0.000000,"Create G6"};
-item34[] = {"Wait",4,218,-399.633942,-84.102051,-301.097351,-61.707184,1.000000,"Wait"};
-item35[] = {"Wait",4,218,-398.621429,-170.179230,-300.084839,-147.784363,1.000000,"Wait"};
-item36[] = {"Wait",4,218,-396.509552,-255.200638,-297.972961,-232.805847,1.000000,"Wait"};
-item37[] = {"Create_C__M__M_",2,250,-398.652588,-399.085297,-298.652588,-349.085297,0.000000,"Create C, M, M, S"};
-item38[] = {"Wait",4,218,-397.133728,-342.601624,-298.597107,-320.206787,1.000000,"Wait"};
-link0[] = {0,26};
+link0[] = {0,1};
link1[] = {1,2};
link2[] = {2,4};
link3[] = {2,5};
@@ -62,7 +47,7 @@ link18[] = {15,9};
link19[] = {15,10};
link20[] = {16,19};
link21[] = {17,15};
-link22[] = {18,28};
+link22[] = {18,22};
link23[] = {19,20};
link24[] = {19,21};
link25[] = {19,23};
@@ -70,23 +55,8 @@ link26[] = {20,18};
link27[] = {21,8};
link28[] = {22,1};
link29[] = {23,13};
-link30[] = {24,25};
-link31[] = {25,27};
-link32[] = {26,1};
-link33[] = {27,30};
-link34[] = {28,24};
-link35[] = {29,34};
-link36[] = {30,29};
-link37[] = {31,35};
-link38[] = {32,36};
-link39[] = {33,38};
-link40[] = {34,31};
-link41[] = {35,32};
-link42[] = {36,33};
-link43[] = {37,22};
-link44[] = {38,37};
-globals[] = {0.000000,0,0,0,0,640,480,1,197,6316128,1,-531.517700,-94.375397,293.288269,-925.745911,317,884,1};
-window[] = {2,-1,-1,-1,-1,1134,104,1127,104,3,335};
+globals[] = {0.000000,0,0,0,0,640,480,1,173,6316128,1,-984.095642,949.039673,729.243164,-1090.662720,939,884,1};
+window[] = {2,-1,-1,-32000,-32000,794,182,1218,182,3,957};
*//*%FSM*/
class FSM
{
@@ -419,10 +389,10 @@ class FSM
};
};
/*%FSM*/
- /*%FSM*/
- class Calc
+ /*%FSM*/
+ class Create
{
- name = "Calc";
+ name = "Create";
itemno = 18;
init = /*%FSM*/"//--- We get the main information first (The teams, the groups and the positions)" \n
"_return = (_town) call CTI_SE_FNC_SpawnTownResistance;" \n
@@ -431,21 +401,63 @@ class FSM
"_town_positions = _return select 2;" \n
"" \n
"_town setvariable [""CTI_TOWN_GROUPS"",_town_groups,true];" \n
+ "//--- Warn" \n
+ "//[[""CLIENT"",resistance], ""Client_OnMessageReceived"", [""town-hostilenear"", _town]] call CTI_CO_FNC_NetSend;" \n
"" \n
- "_size = count _town_groups; " \n
"" \n
- "_wait = time + 0.5;"/*%FSM*/;
+ "_town_vehicles_groups = [_town, resistance, _town_teams, _town_groups, _town_positions] call CTI_CO_FNC_CreateTownUnits;" \n
+ "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups];" \n
+ "" \n
+ "_town setvariable [""CTI_TOWN_GROUPS"",_town_vehicles_groups select 1,true];" \n
+ "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups select 0),true];" \n
+ "_town setVariable [""cti_town_mortars_units"",[],true];" \n
+ "_town setVariable [""cti_town_resistance_active"", true,true];" \n
+ "" \n
+ "" \n
+ "if ((missionNamespace getVariable 'CTI_SM_MORTARS')==1) then {" \n
+ " _mortars=[_town,_town_groups] call CTI_SM_Mortars_script;" \n
+ " [""CLIENT"", ""Client_Update_Mortars"",[_town,(_mortars select 2)]] call CTI_CO_FNC_NetSend;" \n
+ " _town setVariable [""cti_town_mortars"",(_mortars select 2),true];" \n
+ " _town setVariable [""cti_town_mortars_units"",(_mortars),true];" \n
+ "};" \n
+ "" \n
+ "_town setVariable [""cti_town_resistance_active"", true,true];" \n
+ "" \n
+ "if ( (missionNamespace getVariable 'CTI_SM_TCAS') <= (_town getVariable ""cti_town_value"")) then {" \n
+ " _town setVariable[""CTI_CAS"",(_town) call SM_TCAS_CREATE,true];" \n
+ "};" \n
+ "" \n
+ "if ((missionNamespace getVariable 'CTI_SM_MINES')==1) then {" \n
+ " [_town] call CTI_SM_Mines_script;" \n
+ "};" \n
+ "" \n
+ "if ((missionNamespace getVariable 'CTI_SM_SHIP')==1) then {" \n
+ " if (ISLAND == 2 || ISLAND == 3) then {" \n
+ " if ((_town getVariable ""cti_town_name"" == ""Makrynisi"") || (_town getVariable ""cti_town_name"" == ""Tuadua Island"") || (_town getVariable ""cti_town_name"" == ""Yani Islets"") || (_town getVariable ""cti_town_name"" == ""Ile Sainte-Marie"") || (_town getVariable ""cti_town_name"" == ""Northern Island"") || (_town getVariable ""cti_town_name"" == ""Rock Island"")) then {_town setVariable [""CTI_Ship"",(_town) call SM_TShip_CREATE,true];};" \n
+ " };" \n
+ "};" \n
+ "" \n
+ "if ( _town in (CTI_WEST getvariable ""CTI_ACTIVE"")) then {" \n
+ " [[""CLIENT"",west],""SM_message"",format [localize ""STR_TownActive"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
+ "};" \n
+ "" \n
+ "if ( _town in (CTI_EAST getvariable ""CTI_ACTIVE"")) then {" \n
+ " [[""CLIENT"",east],""SM_message"",format [localize ""STR_TownActive"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
+ "};" \n
+ "" \n
+ "_town setVariable [""cti_town_timeofspawn"", time,true];"/*%FSM*/;
precondition = /*%FSM*/""/*%FSM*/;
class Links
{
- /*%FSM*/
- class Wait
+ /*%FSM*/
+ class Cycle
{
- itemno = 28;
+ itemno = 1;
priority = 1.000000;
- to="Create_G1";
+ to="Resistance_hold";
precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
+ condition=/*%FSM*/"time > _ncycle" \n
+ "// && !( _town getVariable ""cti_town_disactivate"");"/*%FSM*/;
action=/*%FSM*/""/*%FSM*/;
};
/*%FSM*/
@@ -477,7 +489,7 @@ class FSM
{
itemno = 20;
priority = 1.000000;
- to="Calc";
+ to="Create";
precondition = /*%FSM*/""/*%FSM*/;
condition=/*%FSM*/"_sideID == CTI_RESISTANCE_ID &&!(_town getVariable ""cti_town_resistance_active"") &&(_town in ((CTI_WEST getvariable ""CTI_ACTIVE"") + (CTI_EAST getvariable ""CTI_ACTIVE"") )) && !(_town getVariable ""cti_town_occupation_active"")" \n
""/*%FSM*/;
@@ -498,251 +510,6 @@ class FSM
};
};
/*%FSM*/
- /*%FSM*/
- class Create_G1
- {
- name = "Create_G1";
- itemno = 24;
- init = /*%FSM*/"if (_size > 0) then {" \n
- "_town_vehicles_groups_1 = [_town, resistance, [_town_teams select 0], [_town_groups select 0], [_town_positions select 0]] call CTI_CO_FNC_CreateTownUnits;" \n
- "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_1];" \n
- "" \n
- "_town setvariable [""CTI_TOWN_GROUPS"",_town_vehicles_groups_1 select 1,true];" \n
- "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_1 select 0),true];" \n
- "" \n
- "_wait = time + 0.5;" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait
- {
- itemno = 25;
- priority = 1.000000;
- to="Create_G2";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Create_G2
- {
- name = "Create_G2";
- itemno = 27;
- init = /*%FSM*/"if (_size > 1) then {" \n
- "_town_vehicles_groups_2 = [_town, resistance, [_town_teams select 1], [_town_groups select 1], [_town_positions select 1]] call CTI_CO_FNC_CreateTownUnits;" \n
- "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_2];" \n
- "" \n
- "_town setvariable [""CTI_TOWN_GROUPS"",(_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_2 select 1),true];" \n
- "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_2 select 0),true];" \n
- "" \n
- "_wait = time + 0.5;" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait
- {
- itemno = 30;
- priority = 1.000000;
- to="Create_G3";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Create_G3
- {
- name = "Create_G3";
- itemno = 29;
- init = /*%FSM*/"if (_size > 2) then {" \n
- "_town_vehicles_groups_3 = [_town, resistance, [_town_teams select 2], [_town_groups select 2], [_town_positions select 2]] call CTI_CO_FNC_CreateTownUnits;" \n
- "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_3];" \n
- "" \n
- "_town setvariable [""CTI_TOWN_GROUPS"",(_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_3 select 1),true];" \n
- "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_3 select 0),true];" \n
- "" \n
- "_wait = time + 0.5;" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait
- {
- itemno = 34;
- priority = 1.000000;
- to="Create_G4";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Create_G4
- {
- name = "Create_G4";
- itemno = 31;
- init = /*%FSM*/"if (_size > 3) then {" \n
- "_town_vehicles_groups_4 = [_town, resistance, [_town_teams select 3], [_town_groups select 3], [_town_positions select 3]] call CTI_CO_FNC_CreateTownUnits;" \n
- "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_4];" \n
- "" \n
- "_town setvariable [""CTI_TOWN_GROUPS"",(_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_4 select 1),true];" \n
- "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_4 select 0),true];" \n
- "" \n
- "_wait = time + 0.5;" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait
- {
- itemno = 35;
- priority = 1.000000;
- to="Create_G5";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Create_G5
- {
- name = "Create_G5";
- itemno = 32;
- init = /*%FSM*/"if (_size > 4) then {" \n
- "_town_vehicles_groups_5 = [_town, resistance, [_town_teams select 4], [_town_groups select 4], [_town_positions select 4]] call CTI_CO_FNC_CreateTownUnits;" \n
- "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_5];" \n
- "" \n
- "_town setvariable [""CTI_TOWN_GROUPS"",(_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_5 select 1),true];" \n
- "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_5 select 0),true];" \n
- "" \n
- "_wait = time + 0.5;" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait
- {
- itemno = 36;
- priority = 1.000000;
- to="Create_G6";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Create_G6
- {
- name = "Create_G6";
- itemno = 33;
- init = /*%FSM*/"if (_size > 5) then {" \n
- "_town_vehicles_groups_6 = [_town, resistance, [_town_teams select 5], [_town_groups select 5], [_town_positions select 5]] call CTI_CO_FNC_CreateTownUnits;" \n
- "diag_log format["":: %1 :: %2"",(_town getVariable ""cti_town_name""),_town_vehicles_groups_6];" \n
- "" \n
- "_town setvariable [""CTI_TOWN_GROUPS"",(_town getVariable ""CTI_TOWN_GROUPS"") + (_town_vehicles_groups_6 select 1),true];" \n
- "_town setVariable [""cti_town_resistance_active_vehicles"", (_town getVariable ""cti_town_resistance_active_vehicles"") + (_town_vehicles_groups_6 select 0),true];" \n
- "" \n
- "_wait = time + 0.5;" \n
- "};" \n
- "" \n
- "_town setVariable [""cti_town_resistance_active"", true,true];" \n
- "" \n
- "//diag_log (_town getVariable ""CTI_TOWN_GROUPS"");"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Wait
- {
- itemno = 38;
- priority = 1.000000;
- to="Create_C__M__M_";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _wait"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Create_C__M__M_
- {
- name = "Create_C__M__M_";
- itemno = 37;
- init = /*%FSM*/"_town setVariable [""cti_town_mortars_units"",[],true];" \n
- "" \n
- "if ((missionNamespace getVariable 'CTI_SM_MORTARS')==1) then {" \n
- " _mortars=[_town,_town_groups] call CTI_SM_Mortars_script;" \n
- " [""CLIENT"", ""Client_Update_Mortars"",[_town,(_mortars select 2)]] call CTI_CO_FNC_NetSend;" \n
- " _town setVariable [""cti_town_mortars"",(_mortars select 2),true];" \n
- " _town setVariable [""cti_town_mortars_units"",(_mortars),true];" \n
- "};" \n
- "" \n
- "if ( (missionNamespace getVariable 'CTI_SM_TCAS') <= (_town getVariable ""cti_town_value"")) then {" \n
- " _town setVariable[""CTI_CAS"",(_town) call SM_TCAS_CREATE,true];" \n
- "};" \n
- "" \n
- "if ((missionNamespace getVariable 'CTI_SM_MINES')==1) then {" \n
- " [_town] call CTI_SM_Mines_script;" \n
- "};" \n
- "" \n
- "if ((missionNamespace getVariable 'CTI_SM_SHIP')==1) then {" \n
- " if (ISLAND == 2 || ISLAND == 3) then {" \n
- " if ((_town getVariable ""cti_town_name"" == ""Makrynisi"") || (_town getVariable ""cti_town_name"" == ""Tuadua Island"") || (_town getVariable ""cti_town_name"" == ""Yani Islets"") || (_town getVariable ""cti_town_name"" == ""Ile Sainte-Marie"") || (_town getVariable ""cti_town_name"" == ""Northern Island"") || (_town getVariable ""cti_town_name"" == ""Rock Island"")) then {_town setVariable [""CTI_Ship"",(_town) call SM_TShip_CREATE,true];};" \n
- " };" \n
- "};" \n
- "" \n
- "if ( _town in (CTI_WEST getvariable ""CTI_ACTIVE"")) then {" \n
- " [[""CLIENT"",west],""SM_message"",format [localize ""STR_TownActive"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
- "};" \n
- "" \n
- "if ( _town in (CTI_EAST getvariable ""CTI_ACTIVE"")) then {" \n
- " [[""CLIENT"",east],""SM_message"",format [localize ""STR_TownActive"",(_town getVariable ""cti_town_name"")]] call CTI_CO_FNC_NetSend ;" \n
- "};" \n
- "" \n
- "_town setVariable [""cti_town_timeofspawn"", time,true];"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Cycle
- {
- itemno = 1;
- priority = 1.000000;
- to="Resistance_hold";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _ncycle" \n
- "// && !( _town getVariable ""cti_town_disactivate"");"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
};
initState="Start_FSM";
finalStates[] =
diff --git a/Server/FSM/town_patrol.fsm b/Server/FSM/town_patrol.fsm
index 19cb58e1f..4be1e9965 100644
--- a/Server/FSM/town_patrol.fsm
+++ b/Server/FSM/town_patrol.fsm
@@ -3,260 +3,225 @@
/*
item0[] = {"Init",0,250,-25.000000,-475.000000,75.000000,-425.000000,0.000000,"Init"};
item1[] = {"Cycle",4,218,125.000000,-475.000000,225.000000,-425.000000,0.000000,"Cycle"};
-item2[] = {"Check",2,250,275.000031,-473.715515,375.000031,-423.715515,0.000000,"Check"};
+item2[] = {"Check",2,250,275.000000,-475.000000,375.000000,-425.000000,0.000000,"Check"};
item3[] = {"Renew_Path",4,218,275.000000,-575.000000,375.000000,-525.000000,3.000000,"Renew" \n "Path"};
item4[] = {"Process_Action",4,218,275.000000,-375.000000,375.000000,-325.000000,2.000000,"Process" \n "Action"};
item5[] = {"Done",8,218,425.000000,-475.000000,525.000000,-425.000000,0.000000,"Done"};
item6[] = {"End",1,250,575.000000,-475.000000,675.000000,-425.000000,0.000000,"End"};
-item7[] = {"Patrol",2,250,125.000000,-575.000000,225.000000,-525.000000,0.000000,"Patrol"};
-item8[] = {"Defend",2,4346,125.000000,-375.000000,225.000000,-325.000000,0.000000,"Defend"};
+item7[] = {"Patrol",2,4346,125.000000,-575.000000,225.000000,-525.000000,0.000000,"Patrol"};
+item8[] = {"Defend",2,250,125.000000,-375.000000,225.000000,-325.000000,0.000000,"Defend"};
+item9[] = {"_",4,218,450.000000,-300.000000,550.000000,-250.000000,1.000000,""};
+item10[] = {"SKIP",2,250,-25.000000,-300.000000,75.000000,-250.000000,0.000000,"SKIP"};
link0[] = {0,1};
link1[] = {1,2};
link2[] = {2,3};
link3[] = {2,4};
link4[] = {2,5};
-link5[] = {3,7};
-link6[] = {4,8};
-link7[] = {5,6};
-link8[] = {7,1};
-link9[] = {8,1};
-globals[] = {0.000000,0,0,0,0,640,480,1,49,6316128,1,-65.822006,695.793152,454.302429,-733.118652,567,884,1};
-window[] = {2,-1,-1,-32000,-32000,958,104,1564,104,3,585};
+link5[] = {2,9};
+link6[] = {3,7};
+link7[] = {4,8};
+link8[] = {5,6};
+link9[] = {7,1};
+link10[] = {8,1};
+link11[] = {9,10};
+link12[] = {10,1};
+globals[] = {25.000000,1,0,0,0,640,480,1,45,6316128,1,-49.166565,679.138794,-34.083618,-705.564575,769,709,1};
+window[] = {0,-1,-1,-1,-1,961,10,1470,107,1,787};
*//*%FSM*/
class FSM
{
- fsmName = "town_patrol.fsm";
- class States
+ fsmName = "town_patrol.fsm";
+ class States
+ {
+ /*%FSM*/
+ class Init
+ {
+ name = "Init";
+ init = /*%FSM*/"_town = _this select 0;" \n
+ "_team = _this select 1;" \n
+ "_sideID = _this select 2;" \n
+ "" \n
+ "_ncycle = time + random(5) ;" \n
+ "" \n
+ "_last_action = """";"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Cycle
{
- /*%FSM*/
- class Init
- {
- name = "Init";
- itemno = 0;
- init = /*%FSM*/"_town = _this select 0;" \n
- "_team = _this select 1;" \n
- "_sideID = _this select 2;" \n
- "" \n
- "_ncycle = time + random [0,5,1];" \n
- "" \n
- "_roads_town = [];" \n
- "_roads_near_team = [];" \n
- "_wp0 = [];" \n
- "_veh = false;" \n
- "_current_wp = -1;"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Cycle
- {
- itemno = 1;
- priority = 0.000000;
- to="Check";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Check
- {
- name = "Check";
- itemno = 2;
- init = /*%FSM*/"_aliveTeam = if ({alive _x} count units _team < 1 || isNull _team) then {false} else {true};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Renew_Path
- {
- itemno = 3;
- priority = 3.000000;
- to="Patrol";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"((_town getVariable 'cti_town_capture') >= CTI_TOWNS_CAPTURE_VALUE_CEIL) && _aliveTeam && _sideID == (_town getVariable 'cti_town_sideID')"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Process_Action
- {
- itemno = 4;
- priority = 2.000000;
- to="Defend";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"_aliveTeam && ( ((_town getVariable 'cti_town_capture') < CTI_TOWNS_CAPTURE_VALUE_CEIL) || _sideID != (_town getVariable 'cti_town_sideID') )"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- /*%FSM*/
- class Done
- {
- itemno = 5;
- priority = 0.000000;
- to="End";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/""/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class End
- {
- name = "End";
- itemno = 6;
- init = /*%FSM*/""/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Patrol
- {
- name = "Patrol";
- itemno = 7;
- init = /*%FSM*/"_ncycle = time + 10;" \n
- "" \n
- "// ais usually not complete defend box's waypoint types so need remove or change" \n
- "if (waypointType [_team, currentWaypoint _team] != ""MOVE"") then {{_x setwaypointtype ""MOVE""} forEach (waypoints _team);};" \n
- "" \n
- "// need wp or not" \n
- "if ((currentWaypoint _team) != _current_wp) then {" \n
- "" \n
- "// remove all waypoints" \n
- "{deleteWaypoint [_team, _forEachIndex];} forEach (waypoints _team);" \n
- "" \n
- "// position of team leader" \n
- "_pos = getPos (leader _team);" \n
- "" \n
- "// vehicle?" \n
- "if (vehicle (leader _team) != leader _team) then {_veh = true;} else {_veh = false;};" \n
- "" \n
- "// roads near leader 60-80m inside patrol range" \n
- "_roads_town = (getPos _town) nearRoads CTI_TOWNS_PATROL_RANGE;" \n
- "" \n
- "if (!_veh) then {" \n
- " _roads_near_team = ((_pos nearRoads 80) - (_pos nearRoads 60));" \n
- " } else {" \n
- " _roads_near_team = ((_pos nearRoads 140) - (_pos nearRoads 100));" \n
- " };" \n
- "" \n
- "_roads = (_roads_town arrayIntersect _roads_near_team);" \n
- "" \n
- "// make waypoint" \n
- "if (count _roads > 0) then {" \n
- " _wp0 = _team addWaypoint [getPos (selectRandom _roads), 3];" \n
- " } else {" \n
- " _wp0 = _team addWaypoint [getPos _town, CTI_TOWNS_PATROL_RANGE];" \n
- " };" \n
- "" \n
- "// set wp 0.5m height (because sometimes ais can't find path on ground or inside object)" \n
- "_wp0 setWaypointPosition [[(waypointPosition _wp0) select 0, (waypointPosition _wp0) select 1, 0.5], 0];" \n
- "" \n
- "_wp0 setwaypointtype ""MOVE"";" \n
- "_team setCurrentWaypoint _wp0;" \n
- "_current_wp = (currentWaypoint _team);" \n
- "" \n
- "_team setCombatMode ""RED"";" \n
- "_team setBehaviour ""AWARE"";" \n
- "_team setSpeedMode ""LIMITED"";" \n
- "" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Cycle
- {
- itemno = 1;
- priority = 0.000000;
- to="Check";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
- /*%FSM*/
- class Defend
- {
- name = "Defend";
- itemno = 8;
- init = /*%FSM*/"_ncycle = time + 10;" \n
- "" \n
- "if ((currentWaypoint _team) != _current_wp) then {" \n
- "" \n
- "if (count (waypoints _team) > 0) then" \n
- " {" \n
- " {deleteWaypoint [_team, _forEachIndex];} forEach (waypoints _team);" \n
- " };" \n
- "" \n
- "_pos = getPos (leader _team);" \n
- "" \n
- "if (vehicle (leader _team) != leader _team) then {_veh = true;} else {_veh = false;};" \n
- "" \n
- "// roads near flag (50m)" \n
- "_roads_town = (getPos _town) nearRoads (CTI_TOWNS_PATROL_RANGE / 4);" \n
- "" \n
- "if (!_veh) then {" \n
- " _roads_near_team = ((_pos nearRoads 100) - (_pos nearRoads 30));" \n
- " } else {" \n
- " _roads_near_team = ((_pos nearRoads 140) - (_pos nearRoads 50));" \n
- " };" \n
- "" \n
- "_roads = (_roads_town arrayIntersect _roads_near_team);" \n
- "" \n
- "// make waypoint" \n
- "if (count _roads > 0) then {" \n
- " _wp0 = _team addWaypoint [getPos (selectRandom _roads), 3];" \n
- " } else {" \n
- " _wp0 = _team addWaypoint [getPos _town, (CTI_TOWNS_PATROL_RANGE / 4)];" \n
- " };" \n
- "" \n
- "_wp0 setWaypointPosition [[(waypointPosition _wp0) select 0, (waypointPosition _wp0) select 1, 0.5], 0];" \n
- "" \n
- "_types = [""HOLD"", ""SENTRY"", ""GUARD"", ""SAD""];" \n
- "_wp0 setwaypointtype (selectRandom _types);" \n
- "_team setCurrentWaypoint _wp0;" \n
- "_current_wp = (currentWaypoint _team);" \n
- "" \n
- "_team setCombatMode ""RED"";" \n
- "_team setBehaviour ""COMBAT"";" \n
- "_team setSpeedMode ""NORMAL"";" \n
- "" \n
- "};"/*%FSM*/;
- precondition = /*%FSM*/""/*%FSM*/;
- class Links
- {
- /*%FSM*/
- class Cycle
- {
- itemno = 1;
- priority = 0.000000;
- to="Check";
- precondition = /*%FSM*/""/*%FSM*/;
- condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
- action=/*%FSM*/""/*%FSM*/;
- };
- /*%FSM*/
- };
- };
- /*%FSM*/
+ priority = 0.000000;
+ to="Check";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
};
- initState="Init";
- finalStates[] =
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Check
+ {
+ name = "Check";
+ init = /*%FSM*/"_aliveTeam = if ({alive _x} count units _team < 1 || isNull _team) then {false} else {true};" \n
+ ""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Renew_Path
{
- "End",
+ priority = 3.000000;
+ to="Patrol";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"((_town getVariable 'cti_town_capture') >= CTI_TOWNS_CAPTURE_VALUE_CEIL) && _last_action != ""patrol"" && _aliveTeam && _sideID == (_town getVariable 'cti_town_sideID')"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
};
+ /*%FSM*/
+ /*%FSM*/
+ class Process_Action
+ {
+ priority = 2.000000;
+ to="Defend";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"_aliveTeam && _last_action != ""defend"" && ( ( (_town getVariable 'cti_town_capture') < CTI_TOWNS_CAPTURE_VALUE_CEIL ) || _sideID != (_town getVariable 'cti_town_sideID') )"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class _
+ {
+ priority = 1.000000;
+ to="SKIP";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"_aliveTeam "/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Done
+ {
+ priority = 0.000000;
+ to="End";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/""/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class End
+ {
+ name = "End";
+ init = /*%FSM*/""/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Patrol
+ {
+ name = "Patrol";
+ init = /*%FSM*/"_ncycle = time +20;" \n
+ "" \n
+ "while {(count (waypoints _team)) > 0} do" \n
+ " {" \n
+ " deleteWaypoint ((waypoints _team) select 0);" \n
+ " };" \n
+ "_wp0= _team addwaypoint [_town,CTI_TOWNS_PATROL_RANGE];" \n
+ "_wp0 setwaypointtype ""MOVE"";" \n
+ "for '_i' from 1 to CTI_TOWNS_PATROL_HOPS do {" \n
+ " _wp= _team addwaypoint [_town,CTI_TOWNS_PATROL_RANGE];" \n
+ " _wp setwaypointtype ""MOVE"";" \n
+ "};" \n
+ "_wp = _team addwaypoint [_town,CTI_TOWNS_PATROL_RANGE];" \n
+ "_wp setwaypointtype ""CYCLE"";" \n
+ "_team setCurrentWaypoint _wp0;" \n
+ "_last_action = ""patrol"";" \n
+ "_team setCombatMode ""RED"";" \n
+ "_team setBehaviour ""AWARE"";" \n
+ "_team setSpeedMode ""LIMITED"";"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Cycle
+ {
+ priority = 0.000000;
+ to="Check";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class Defend
+ {
+ name = "Defend";
+ init = /*%FSM*/"_ncycle = time +20;" \n
+ "" \n
+ "while {(count (waypoints _team)) > 0} do" \n
+ " {" \n
+ " deleteWaypoint ((waypoints _team) select 0);" \n
+ " };" \n
+ "" \n
+ "_wp0= _team addwaypoint [_town,25];" \n
+ "_wp0 setwaypointtype ""HOLD"";" \n
+ "_team setCurrentWaypoint _wp0;" \n
+ "_last_action = ""defend"";" \n
+ "_team setCombatMode ""RED"";" \n
+ "_team setBehaviour ""COMBAT"";" \n
+ "_team setSpeedMode ""NORMAL"";"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Cycle
+ {
+ priority = 0.000000;
+ to="Check";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ /*%FSM*/
+ class SKIP
+ {
+ name = "SKIP";
+ init = /*%FSM*/"_ncycle = time +30;"/*%FSM*/;
+ precondition = /*%FSM*/""/*%FSM*/;
+ class Links
+ {
+ /*%FSM*/
+ class Cycle
+ {
+ priority = 0.000000;
+ to="Check";
+ precondition = /*%FSM*/""/*%FSM*/;
+ condition=/*%FSM*/"time > _ncycle"/*%FSM*/;
+ action=/*%FSM*/""/*%FSM*/;
+ };
+ /*%FSM*/
+ };
+ };
+ /*%FSM*/
+ };
+ initState="Init";
+ finalStates[] =
+ {
+ "End"
+ };
};
/*%FSM*/
\ No newline at end of file
From 1a6478c76483c10b90d55e7433923e56844ae6ba Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Sat, 29 Jun 2019 14:44:33 +0200
Subject: [PATCH 109/267] tutorial area
- mark tutorial area like other islands
- destroy vehicle only if under 100m AGL (no enough time for land and fly away)
---
Common/Functions/Common_CreateVehicle.sqf | 2 +-
mission.sqm | 18 ++++++++++++++++--
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/Common/Functions/Common_CreateVehicle.sqf b/Common/Functions/Common_CreateVehicle.sqf
index b27017425..b3bdfd3d8 100644
--- a/Common/Functions/Common_CreateVehicle.sqf
+++ b/Common/Functions/Common_CreateVehicle.sqf
@@ -347,7 +347,7 @@ _vehicle setRepairCargo 0;
_vehicle spawn {
while { !isNull _this && alive _this && ! cti_gameover } do {
sleep 20;
- if ((([_this,getMarkerPos "CTI_TUTORIAL"] call BIS_fnc_distance2D) < 1000) && !isNull _this && alive _this) then {_this setDamage 1};
+ if ((([_this,getMarkerPos "CTI_TUTORIAL"] call BIS_fnc_distance2D) < 1000) && !isNull _this && alive _this && (getPos _this select 2) < 100) then {_this setDamage 1};
};
};
diff --git a/mission.sqm b/mission.sqm
index bf5e85d48..2ed5d17bc 100644
--- a/mission.sqm
+++ b/mission.sqm
@@ -8,7 +8,7 @@ class EditorData
toggles=1025;
class ItemIDProvider
{
- nextID=178;
+ nextID=179;
};
class MarkerIDProvider
{
@@ -123,7 +123,7 @@ class Mission
};
class Entities
{
- items=124;
+ items=125;
class Item0
{
dataType="Marker";
@@ -3046,6 +3046,20 @@ class Mission
id=177;
atlOffset=191.07422;
};
+ class Item124
+ {
+ dataType="Marker";
+ position[]={8457.834,105.3189,25118.711};
+ name="marker_0";
+ text="Welcome Area (Do not enter)";
+ markerType="ELLIPSE";
+ type="rectangle";
+ colorName="ColorCIV";
+ fillName="DiagGrid";
+ a=1000;
+ b=1000;
+ id=178;
+ };
};
class Connections
{
From ae6cf0b656f7df60d9504e7fcd0b88283b4d816f Mon Sep 17 00:00:00 2001
From: Zerty <4232921+zerty@users.noreply.github.com>
Date: Wed, 24 Jul 2019 18:49:42 +0200
Subject: [PATCH 110/267] Prenvent team detection using mortars
YOu now need to be less that town activation range to see mortar area from that town
---
Addons/Strat_mode/FSM/town_markers.fsm | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/Addons/Strat_mode/FSM/town_markers.fsm b/Addons/Strat_mode/FSM/town_markers.fsm
index de2732474..7f2b08782 100644
--- a/Addons/Strat_mode/FSM/town_markers.fsm
+++ b/Addons/Strat_mode/FSM/town_markers.fsm
@@ -12,7 +12,7 @@ link2[] = {2,1};
link3[] = {2,4};
link4[] = {4,3};
globals[] = {0.000000,0,0,0,0,640,480,1,133,6316128,1,-422.283691,326.652069,345.310455,-698.696411,632,884,1};
-window[] = {2,-1,-1,-32000,-32000,794,182,1218,182,3,650};
+window[] = {2,-1,-1,-1,-1,768,156,1192,156,3,650};
*//*%FSM*/
class FSM
{
@@ -85,8 +85,13 @@ class FSM
" " \n
" if (CTI_RESISTANCE_ID == _sideID) then {" \n
" _marker_area setMarkerColorLocal ""ColorWhite"";" \n
- " if (markerAlpha _mortar == 0) then { _mortar setMarkerAlphaLocal 1 };" \n
- " if (markerAlpha _mortar_zone == 0) then { _mortar_zone setMarkerAlphaLocal 1 };" \n
+ " if (player distance _town <= CTI_TOWNS_OCCUPATION_DETECTION_RANGE) then {" \n
+ " if (markerAlpha _mortar == 0) then { _mortar setMarkerAlphaLocal 1 };" \n
+ " if (markerAlpha _mortar_zone == 0) then { _mortar_zone setMarkerAlphaLocal 1 };" \n
+ " } else { " \n
+ " if (markerAlpha _mortar != 0) then { _mortar setMarkerAlphaLocal 0 };" \n
+ " if (markerAlpha _mortar_zone != 0) then { _mortar_zone setMarkerAlphaLocal 0 };" \n
+ " };" \n
" } else { " \n
" if (markerAlpha _mortar != 0) then { _mortar setMarkerAlphaLocal 0 };" \n
" if (markerAlpha _mortar_zone != 0) then { _mortar_zone setMarkerAlphaLocal 0 };" \n
From d1684f272ad6f7795768ef4d0de057d35d880c38 Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Thu, 1 Aug 2019 12:15:53 +0200
Subject: [PATCH 111/267] Livonia
i know... its not "island" :)
---
Addons/Strat_mode/init.sqf | 5 ++++-
init.sqf | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/Addons/Strat_mode/init.sqf b/Addons/Strat_mode/init.sqf
index c46a9bcdd..30f74573d 100644
--- a/Addons/Strat_mode/init.sqf
+++ b/Addons/Strat_mode/init.sqf
@@ -333,7 +333,10 @@ if (CTI_IsServer) then {
_nigth_ratio=10/CTI_WEATHER_FAST_NIGTH;
_sunrise = 5;
_sunset = 19;
- if (ISLAND == 3) then {_sunrise = 7; _sunset = 18;};
+ switch (true) do {
+ case (ISLAND == 3): {_sunrise = 7; _sunset = 18;};
+ case (ISLAND == 6): {_sunrise = 4; _sunset = 20;};
+ };
while {!CTI_Gameover} do {
if (daytime > _sunrise && daytime < _sunset) then {
if (timeMultiplier != _day_ratio) then {setTimeMultiplier _day_ratio;};
diff --git a/init.sqf b/init.sqf
index 804a49ac4..93714927d 100644
--- a/init.sqf
+++ b/init.sqf
@@ -4,7 +4,7 @@ setObjectViewDistance 4000;
NET_LOG=False;
-ISLAND = 2; //--- 1: Stratis, 2: Altis, 3: Tanoa, 4: Malden, 5: VR
+ISLAND = 2; //--- 1: Stratis, 2: Altis, 3: Tanoa, 4: Malden, 5: VR, 6: Livonia
//--- Early definition, will be override later on in the init files.
CTI_P_SideJoined = civilian;
From 5c07a941fa66dc2e68bd3b703693008c207975be Mon Sep 17 00:00:00 2001
From: Tom <31548102+HTomJMW@users.noreply.github.com>
Date: Thu, 1 Aug 2019 20:19:48 +0200
Subject: [PATCH 112/267] Add files via upload
---
banner.jpg | Bin 64469 -> 35923 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/banner.jpg b/banner.jpg
index 6a148103a8c56f294c973de2b36fd8a9afaca259..59aecd9efd756c202185b9cffc22144e7950b81c 100644
GIT binary patch
literal 35923
zcmbTd2UwHO@-P|%L=Z%fB3H|6DSe*B-j+|8RGss2sn?2Jeaw;k+vNz>r<>jR*5YoOuUVaWxX)j-)f6@3ik^3&bPA|aE{lMN{
z{}6MbH2#06{hx&UTk|jJ{*6zs_V>jdlNVqY3gN#LG#-0Dmwx8r>Zd0Af2pEyP5%#u
zrKyXr_cQ;0VJOT01N+}E{|naY{|@%QU;Y>D{{nsD1@_a>_i}Rohxq?i^ItgH6cNl_
zUikjy{%`);KZR@ZGIIYQ|2N2gVd^|{@O6I(hW-!s|CIkjfuaZhQ23v!{{j6kDq7yp
zykD46RK-Q(iI%O**uAaVu
z+2beX7M51lPR=f_Zth?YUqAnVKxoj*@HY{WQPDB6DXH($(lg#?W)&0`6_=ELD*Iep
zSKrWxXlich>h9_7>;E?JeSG5Q|9Jx8
zt;QFJ#o0%p_fRH38{RwoENY6J*QM_eee@+)er9_kM6!-qdom?#tTDYsTK`?M#VxtO
zAlEFkLU#FN8)%V!t(W7
zndGR^FnDschm|B!GG(>BqUvzlH}`hKfZqp%+IF`*+&Z$=B+mZI1WBwqB)xC3=$P8@
z;)_vMD(V2hvoMvf8U;ArL?!_N1FNA9@)CE3VEIZ
z4$WSF9cd5wfUP6b%XcWA0m8JP7<|=~#x>D!&&3b^e$uktpkGLLPyZi{W8R!Pi!_#C
z^lP@9yTA8ez7nK
zU4FFyA+d!oBk^#JBtM-3^-?{aFbE#tFiiCjcA!sAW3l=X9C$gFet@B!HUN1L)lRA;
zyxN{nLxXE2iRXrvee9M&UG5&%1#4EcUcLtzI_5M{(
zrpI967_oRY=obPCBgFGT^=sa*PS?5#e0|uCVVzGZv9VD^?REHz&&H3lM4YRL#rrNg
zdkrlm(*?f?Rk7l;A(Ha?=Z;;I7JEZpQ)m)SqsV+D)6?8gY1j+GVkH!1L@>kVte*s1
z5;UdZ2sOy+b4I@x3u>fVQ!oR;x87=99?em)G*>qWRU
zsaV-A-do8%8(dIOZsD&4$bgiB~
z(I&JL$)};=VSncg@CK+wPMgfT_PmjP1QL
zJjf7u)50_XY2X=}96AodYBPrcYX_m-on*n&`ZhY|zFnF%d5_to@FHx;vJ&%)^e$f~
zj?WW8Cbyg=#L`6^zg~T}qPt2O!=jZ#)z=boXV>A9LG0hRGMU&~nM7Rm9%-`y9_fgG
zJQw@#hfZ#w_fA%8Or^A}R?C!|rKjg=Q*w*2yJg<@)|&+DG?zgmyI50wd+o|}IIryhBg$~30%viT##G)SzU*6KcOMt`ewwAp
z75lJN({_Q~vnUahJo|~D+i3{PzC9uUHm1
zD`2GEw^j`JC+o;l7augXvw(8*@n?KbRx_X%xQiTaR=2zB_v#@=lG#*e1TNMk|71!H^C23?4}mxeA=p~fJo(T9N(gQPsYS)(f3}vH;Yd0W5rM0EU3YlsU4GTrP=jb!ySbc
z^G7yCX{6nN?R|}8fE%OYGkiLMg`IX&fpDhGVr&BH>&eBGv?8e;%)zCXU&>k>IxEY0=#%
zEf(gtCKw?j+K9Lu7qY3~;&@&@IX&U)9IMklkj&%TJ4n3z8%C8ltrgWdJugoYV|5RA
zErV!^Kd?T{bV|{>p7ibUahTN8-Q}9~hopehIyHUVCLTu6#g06jfB}mMZVN+cr@65T
zzuXcb-NDagWW<`mBK|?vnv)!g)Cu)EN}w0^`XbNYSuCOU*D~@?9EeZX?__Mx5sl!T
z%6%gd)|cbKx$jsCDLXP6{)2#t}hq&)QzS8
zg5~60y1v%>!A{z3qCpE!JJA@_f2i0!kv{Vi@=!@=LG
zC{@(7!^zESl%uU0|KhYs&5n3;9mt+Py5+}rkBFg*sA?0c@UV{eH4K8d`E4AXpDRpb
zcX?Z|Qe<_W4&Yzt;+54nnzTJPlmZJ?{rNUbZcsCPnc*rDX~8sm5KKA+8cXBUsEAwy)PjAs+ajS&
z5_i$2X4*e)HO#E+2ma|X$CAmd!OM}V-}VN*$T#IBx0zYV^GuX^`Uj?=79p>Xlgx*Vdf0$f%J!$Z33u-IWpRcKVBQ1~ZH}&ed&N2+&00I@*U*MG
zADCJfYxO*qv_`*P0%D)!p*Fk|fY^sdzC9rN!)>$fP$sNQhQKQ|PX9vt0k>{ggs=k`2p{7a+DRL6*=%Fy-ObVH5^CVJ3WfzfKQMg-OK!!7b`^crnx^n19=PWvE
zJIg!nLd0s+)=5NemOapmT4lxOn!V>Lx^iGy(o~`VuGmx?z`a`xcqLpD44L^;5zVrirV2
zG^utsJ03pM!rtCj-$(V+*}9vl1tAn%T2`G*0^zd1!m;K_1ev5HlEYG*Du^v~1X+s?
zJG2XYFe(VJ+T;$14QKcyU&(fqLN6DucAX^>o!+5x`X0H^p2vf9M*kABIQ>B4b6N-n
zUfh_XctlgnwXNj&TAR6faF}zmWm+WuS0Af|%J5yGt}}qc2&%9Tgf&4Yj6*j&1IT=n
zGO`M&51eM>YMP~Sr?NI*ngB)+-%Bg53HUNqJCniqg}1J9N2qnz=~S>JDK@FI>ZlgXD@D
zoohi(F28&FIDG~NgUE%%XV7pm{Vj?aJUz{P7RvW)t;M8wHzwocPa-Gir^0*xi+Rk}
z>isiLSyQU-pec|z=#u7*d-n~+ZG$4pSI`taw=szoxOxU~@#cZC*I?mYz^F3-Bg`Fd
zs{fIo+Fe;}1FrOZF2nWloU7FSx0+0QxZ<~%bF~1?Wtbr@mC_1NWMhH!uq)M&Jcdx-
zSpr>W<2=Kdtp5iyBAr%!?Uz_94x94qOyP4&rg~BrF0BBbe16nAVK}26XlQ=w#lN#R
zHPkSplwyFMDxF8O!xt)%^}1X86nXRslGWBEgDC}MH2P{=;1ZK5la92~FozxgOk0`5
z{mXB(Q+9mCUGC~jhXHz(@yVz88WQkM1*8Wu0$7u`)zRV>btnnp6
zoiAlGGd@bO70Q%;6L=vuJM9VgUE@ikJc`M6I(Dc+b*)q{QnqgnxIE!>`X|eiBFYF=o7F8i*w!&DDAX^&JqLBV(uRdij_`tK2;$%b6
zvGeSIskH(dqI%<27d_EEf)nWcW7Ry)s<5|YnduhuA|~R}cjsAvl=cJf
z!SDE%fL%{1+oI!lQ!R>Xb4aaq6M^+1A}fVpan_}%GO2WpYo~>39$BBQ^*B_r#>A{r
zJd0Ke-4!-n8L5_5HF~&7gQwAO2>fzr7qTHREL0lmH9vf0iM2Ze%wif^xgvLzbYk5t
z6CbM?uQ$DDtyMYKVuI=>Gic$QC~hcDkg_&pS6n;1q0nTF(wmT$o|
zib6A!RLfvugv>?0d#XUT89P0s!?f3v%9Q&e&r|dU{aF$h*|~M>QbaM$!AZQ}03=pF
z#D<~=-2#zkfCk;IGXR#ZtApvw#2-R_W1mrQf2jE6%9GrcDrwU`*OWQO=U?uLXfyos
zDo5&T2?B%|{Li5lC#=#?SyTX$h3D(mX#fxd`^yi^kZQ9$>H#fw{)
zs6BsE@#)3@7n*Z#5@JeFzoD1~?=2*br*G=S?+&a(38(uCUaz>h$Y{uB`nx8_W<;Xk
zb7abS8i}wA=SnBEgNqJrXwwQgb_-iK%gu>NUpmf*P6}Lv(HFrxHGvQlYLfc6O=ru>
zeCnbsjeAz#`|}^*zJbb_&)phKFZYahvrl|AX84fssz*ST03zDK{u);;yi*$fEKVS1
zb~#iYHy!bebYqE+RnM>7MwtVT*w>ZPXRmmakK(PMnzcNBKP(5L?j?E>zL2}?V1USx
zZhQw*3oe5s#%bYW^Q|Rqa;=um^
zn7zP6;LFmml6FXM9`>R4dGbi^bwZ3Ajv60!noF`HDi3|!ur>)N)57FN6RVjHWO;O5
z*!Huprp&tB&eC805aWN1SN=6&6B~y|5z??`_@+9-N+C3Mu|vdaV;_>@F>N3QL1iAD
z77m*)PPwFL`(q@9s1oJY^Xd^Kwsj;}Ad(vqxp}-cNes^#o(acY
zXE9RPzxez|lhe6;2`k_FWbIv?*OB2c>ZM@)YRil@S}cI<_G=p5m=}#)NCjbafHN5;
zl(s8a2Xc0Zf;Mwi?BI{a9e#SjfbK^EE{PD!okvUhRo4=QS>FlYuZ`$`Z;g};y-vD6
z*&zkfnpS(Vbg>!%=@3CSO)5%O-w-5f|JYMV8K^l|uoK|aaQ9ITfR24#pdo6zW@!X<
z3BA~+AyPN$hXO`)T&l$y$3TiTr5;_Bv?Ge7{z$nu(fq=$6Y%zCc`UBFO=EYewA|ay
zt}X2V^xQqIaD#-JJndmCJ1P?|6MnC2alJOUnd7#TYjQNhXLY|0KP_F
zAz?-*WPqen{juXRNwltJe6gc$@6fO;l6&=5^J82Z=z$weZivr#`&KnIcN#oIC8Iujo3W(KCegasor666*T#2(h0K`XMxJeb)Z9)8eKGqNX8o
zN_MAU0r4}}1~*V{p~RVfOZSh}oEF3%(A?0JBA-0pzdFbQjUlcHM{3W@7pJ`v4!5?y
z+B7=xB%w|7QjJnxUJkgnpO-QbzOT3is&P>XrC-STf-`NHmap@yw4MSi;t>;ri|^@OS}HaoSI*qq043(D(6ep6n5cx
zzBk9MWTFr>kmN|QNQ&Fn3G_qHm@No|ll#5>%M~)FtxIEJ52XxHy#a5FILw!2c57$1
zTibu}MbEt&S4eE`J$)N`a~*kJO(lrA6CRDev`sRqPPkvOx_Ic3HPR!XXSv>xH9PI>OO%#WOI`JCxh3N^Qj&CB**D-&}Fi~I$5da6#vVskVf}8ozM)j
zP4X*D`=c$?#w=@i11O_6;`OB8k@-1%1hHUi^tO%3M)swwD^hGGuh2!MUhdsa`;7GT
z@m0S^+A#esTDC`b&%6IUz!_qDNTuUm@QQIPOZ+3Xf@`cepy2=E8RGf}iDtOTv%%N6
zE`_{v+aaMi-Id{Up|70UQ)cVxl|S?C!3)fWorI>Yuo;_Q+B}LKC+lJ
zSxpcP+_GCh&j#WlHc8x24ey$@mnoh3(6H|-TQ1X5H~9@M+`oahm);IAv^vuW-kyQg
zA@(of2e3X^a{>PWB;gZ|!D3_R#MXXfVFxH)(^E~^d}Cu!*z9Acc|wiDQWk;GaiTdcvT3Y7)pGrd{_?%3
zWvL3ee%QkPbdE*)BB=(-D_9(pk{VzzP+HL1j%wW*R@+FBvcKK}?$tF%jm@olUW$ct
ztd}n}`T3u&EXP`PiSJ>)iZOf)c
zkM*GMk6mm-7A(MYbV6ApSg|*4`JX(j+u~ay%dUK;_)J#Z8i5Az)*P%ckawxleO5OL
z#_kq$n(E_38Mqz@4t41ZHC|%znGlHgG{(TvX$k=%qf_KpK?7|vCcu`}qlh?1gFB>o2-rICoRR}&*k&egw
zkyD$skK)g(gu1fVJtW)4Z}Vn%II75=uKv0DRWWbT@Ni5fn+VjM*j1#b7JfRg+D!Ka
zbTg?nhg5`HgRE}o_?3$p7|RS;4>h=a)<=g%`GLFqW<56TKaUJG{5pxVp^V@6L&q%0
z!Yw%6ZV>YtlA}!t!G)NHQ7_pry&QkBr88P%^yh|j8cJBN|0>EhFBYbZVU7%Vdj{xo
zSO8sxx-Q!G2J)8{{J%(y;C&!Wf0cPwB%beaitm*oll5h|0^GtZ7YUyL2;F*n_5
zXsPKSN~H?j4Ajx}tnIS0ko(51^p)l^Q|P
z!2S1+jBHwfN@lhVdQ*C<<_WJPz8=!$pE$M$;~$+yh29LEvlogoBG@d1*w`V!YR!i+
zW?Qq`i5j@{^{?@se^zLVo?ZUb^OTH+THxWQ@6G@oz!^j@nyrJ2BuC(&_`dJxL&}YC
z=Pp!l`$^mH+~Xc6!ipWhf>@*S4g8hYB{P+>gJOLeKKxSusNx9gp$tk;^qtZV)9Nt)vejf&<5R51{5b
zE+Z;-0Xw13NOF`ey9J}8{CY6~mpHe5aM|66Y4e)Q?KYv(F8=9ME|zw8Q>wVFAiteiR78B4Ha2QWBwnd`U&i8ob4wln(yEBNo<{!2ry;lW#dRl(`rgMc
z-qnK}Q?^Soo6`e6$RDTX-yw4t?_XDJ3FVXxBg|-(Ao*W)pBGy?L{u#HHO%
zbcFrIrirbsXQ3SH7A>9?W30|dW$T3A{XwyO{+E4#5f*AR^^72;yKA7?kL%hdNLJYC
zMU$j9)ez1o9wM_nVluRwc0Q^!;m+_OZ39U@XylpFgNjwI;GXle<~fx?bAb(KfN!7X
z4Cl9|ht~_IHCW)C)c(xezvit8iD&692WoJ%n!f;Ggk4LP$(+w53`{$#@lzegSuN#m{626suulBe~IR6<#OM?<7GQDHZ*
zp)^y_GAy6pYwrqYClafhaPQB8a&*H8C(IP<9TqBNMbO#r&k}e=iLUaJZLs6+Gknw9
z)YK9y_TGAOqfZMr%7#mOGaXgd0$aU(cC7zc4nY4mtP@ZOp#!LF=4YJ
zP!7buf|uGI6w@ZN_1lOKp;@Y)Iy_3wHqB3jl~7+%DZRcH;xjKQw~%akt4}l%ZS0U~
z+ulvpaEk7K!099}=3NfTW6|J1B&ta++L&DRm_MKBX>R1z^?hwNnq|d?y7YJ(j{?nI
z?CKr{EWW00JFNyT#4EvT0y~j3gw{R*ZZ*}`$2du-Z_f$Lp7-a|><7;8rH<}s{Vuvu
z)#;Vpb}SvM%UdjTiP)XwPWVFvS;4NKCaAeAd7AZu>bzq$5)^48kBt?14RK{4Y6_6XTh*TAz7?b+BEW3IUOP*|i;Ww3Te9lk&ljLcYUUWU_l
zoSz{d7wmY}8C+m4V<;H>iTqX=!#tq;-ccNYLRC1*5L;GHIIA-F$_%yDW$)3PKwPQvN$
z3-SfZXeLe4B;K`|8CuL^cW;UKa5x>k-7zlcpD4TasWRTncUY#V4Uqug0?C>D2z`hK
zz&q{8qEI27v3hhJArzuc*SQD1H^4nJJ!m?na3>sg22flEx-~ow<@Bt7T1}Iyi>GXP
zghfI3@y-M{<_MTl%bj%}Ldit$gMFJiTeYd}DYtw4k56TQe%gLOTA6De-jkOpCEjL
zZ>YV^v~T*{?CdS>d%F#hw^9Ha$3)%G@s|Qy$OZIy(ycLn<|rh0Jrs6zRxCPdR#tSp
zYMS`sk6G;v=?bh7?^t19uPNy54_uRoo*m?ICBLP1@JK+~xcSr%Kld@;cPQH$Yd_C9
z8(qRXHED{u#!MV0#qcYQ`-9^7dBzSvber5vDI41*wt87`?|H@Z9L05x>WyaPd)Ss*6JcHy(aHc#G8cstaNA2Mm|4fC|#8!yn8sNk#_
zu{HEuv|)m6Pp*c)lfcn9&Z>TZZG?GRbMd_`{creCzbEsDoEY+>cB6vq->#j!bKtsk$46Gx5682tx3Rf
zm{rK4)@O(;OnIFtzn7J#$1^s5PwK_n#0bszvP1E?0u~fq&LUuRPrr0rgISNl>ntAP
zii@Yx*f^hO3Qbg?2RRDZ&FxZbE_lw0E=ztbid^Pi=~eC2w-cU#1iJWbkFTbQM1<~{
zTNoN{&Fxej8S2;*@+tjWjq~o#i&5%euA8p6bF!XN1B-Rv
ze7P&Tsw_FZ#XYH-fh?4sH6(>Bc?*z4aLO|WHX(+KOgS8l7p}QRJ%&yS1yyAP*sX?%
zJG?EkEz+VjQDj1s*tm%%qxB)m-Ebx{AHld^E8I4cb|SI-7EAfB)7YJJ198z?%XHpWI$V4iBV&F9$d!gXPG&=mqZ
z?hl!*H!3mTPL^n3!UgrfbbssnGr(d0Y-*1ydUoEGgEe2itx2`Ru5unm856_8Hqg|R
zb0j_`Z)$=-pD7GDxuclJWDm)kmDEU9?2IUW!hv|JE9|nMi;~xmlpelxSFa4pXjxmUo{dHZ1Nkn|MDz
z%BpV+H0xaEVyL)W(RF_BLy@d-)SzYJ#V5P7yJY$h<*hULn~`2+-jUjI
z_t=Y>ApQYgzF@*g2(%>xE&$oU9kjv8i_pW&2Ak-5@siAv%atwj#q}HUcjtT=t2Ux*
z6=FXZAY&<~rup2ZaUGlxZodB4Fj`7X5;Nm3sL4Yd?~P9-#lB9?Q$t=1A$42j*ND7;
zT2%a-{(BzazLr$qK%-VkNs$n#Q)OnnKU>R;-DdgtiJyj-L%6=Cih_m1$_L#DzX8R$
zm-E8{?LOBYz10)24LDSf2;nQT>@EU-neA>JMBI(bZF@;P)Hqg$^q&FTK#Xt*^z#O;
zW4j`l?TGQ17ydQS0u8D?1CXu+_X*U4x@^>gyOga#(Xy4^@Y=&lrM*Qz)R3TWSZW>L
z*vK=S+Kb)0wGwqYf@v5}^hXyp&B%duiOKd!G3WUK=_=C9esc-Pf)D6mXu+0kF^MK6
z?>}lb_dzvpL2mVg3O8U6IBM-Ag90xJN+I`tIHmW8Ag9{*@sp>i2k4npOlbaMyV9PK
z^=5aA{Rg)Sbk67B8>W3nwe>zJ_kAjq&1(ww^x}l;I4MC_J-ShS9h@DhMybQu+S$)=
ziJw$xh_7FN!vIb!)_(Deb+1Cb{2>GOH!7`LrcfJ68RUUi|
zupIHut5*+crryIC^Ih1v42y(g(
znvRwP&tF5=Vz>fRUpL1ky^r@-+Y4GPp=^G2c?#T5S1kcoi$;Ve-CUGc8KwjEWc`|`
z@I#)r2~v9A?Z$I+E`DWLH8ll(r=6paF=np?F*;pioXhPg(bl%v_#I`X1Z}8e_>3)@
zjWV1i2f9b~!RroySGE+mq)0*7`Qa0Y&0y4oe}adRXt1l!h2*wr7Ll4DrATf4>=lQ$
z(%Y+KzR*F?Rcvr<
z;DA~8tlzcOYQK%gB7qX8h(K%>sWe88wad}Yz|&ydWVNy+>X(bcX$jK}(W)$Tp&JI>
zyBjHQ9cKx9RItg-pReF4{dwL--_1utvR3Y#HtjpTisn8lbKa-ZYe!p#l=%>Tn)R&h
zCX$l}6BS?IfKANg>&f5_sG*IWLC4)qp4SePV(HlyE$)yE))Gv2XUG)3AuqeFOJb`P
zU|d7joB`q+5`4dQ2oNI5wH*C+ncZj8(=O$o7Jr_rMOmUGG*r?zEG;7Ko4;)URYTP%
z<6lclNhXnovcY5akz~*??!Pv32xPZ5`Z(u-C6rt3(d{yhh6_Km?h^^S>~yi#LO3cD
z0V6x)Nj-BcX6FK#H->r}M>srJyt%$N@LfH3jfld(#2tl`1xaGqoz!X%^A0tNCt3e~
zxzU7$;30k8znR4~SA9>Hz9Hq$vyZB%^dyO0HunlmvKxG%2w3CRJ93E-hVIEK?E+mS
zcz2)lReR^J%aha+Rd*TaIe*kgPR(y{iCDZJ@Rax_^7h9Bz4EKy7CQ(M3p4pbMisnM
zhI|?Jv<0V>|8W3!rQZl|sJeY=2fV#iasAc%bM-YsQVBj%6$>|LbT9v*u`t5+YZ54-
z6SNwXna>k;5myH-)U}C&GtEM?{unfmD-A7~uv%N$^;2c76zwe`xT6tGvu{)1hmtR_
zFD>F2BHZdz$4|EX4%GE^KWJ}MR(6>GB)c6*d-V;Pjgf%dJ6Rh;E@`8SkKSnZ-Q6($
zP4t;Y)IycF
zUqD{9CaGe#(-PYAVnxS`$UlA-afh@RNf>|Z(=u>X4NSL<@Xi)&D>azj_K(x^s$90Z
zo*8(9kFrKi)Z|ARoEE-;JjE$&KhX_zDc(xaKl)9u7c8`Xms%QZV^LMvO4d2*VdjOP
z*$=H6m^mP`)3J*5`Fp}Glhw}cnV3$Vz;8VZ&bZvey`&yyM&&moqaercC?{AxuqP@F
zn9P1KWkGm3ok|`LiC=qkFOKX@Rka6gq~ka6saziOsLeTesmx<
ztJQ2qJr&PvU8``+j2$=wz_PsYuyC@~-|S?Fb@fyHTglbyrnY>AU?E5tj!oOlWW~yFZibbqET1vo+ix1t_
zG2(wzsh;!7{dVbjm5=8I)5T$Zy{?bF4(?^LjpahSV
zv02k#nIHj|k{X~{ds8EJIM*8W%I4sV)1Ru>67?CZixOEZUc6(yRTC&PbPU1f&fkVn
z6`uj>Yn93Oy|GpKiNqWE-t#uUuP0ifc3P6dn1A|!%G~C8E6~jBfme&NVgrmC{N@nT
z`8Ypltfkt6Vz%rTb)FEH;$*x9iQNtVrGc=BmejEj|a>>ZJzOAdH+*oiGP6-nJQw2%Fy2Zd3Z;n<8bv#Km
zo%o7~wOG~S?RT>;rCA{J4OBJ-zA?AXH#U7|`(y_NM)_48xVZ``q+kDDoEkTAzpCmW
zG{6Cq$GpKW5;o-Af~c8rKDQL)`tH
z_btRx3`ygC701r^&84KoEX94HF~1o`hu2+i?+`hj`SH~pY9t67qz5}Kh*LejB$pUY
zneAsn*v)bgl3*~$eATR~O#jdy_TmeD8Hz3S>9It+BMnMyb2wD0KEwv!gTp|xwZ{FE
z=zkFeSB;*dtr|#hSLMss5H?S*8VQfr-{!H4PDp#4@$JMK7@vnV5SZONv@pe1C1KGI
z+a9r*F^TSX;WyxI)<5E&+$P_6&RiLkw55p)#)Aoz*mW8rp|WIidY*5>8HebOu4l5E
zFhh`MClzlmCJg&&2EXITp^)pV_86R6aMH=Q0^7Y0;4q8
zldX*m?YPzZKI6Zay{$ogEuPmE@<_QCznsG;FjU9L2QwC}5;T5%>YBKB12JfsAs6}rZE%3?qf-Z%MLibI^{p0jq#$^xYtVhfzyb99{GVHMF
z$#-d(YA=!gWbK1yKzMs>5{YM%s6R^rQhbcjn`@Rys@{P
z|DlpUU}Be=Q|@=h^*5g@z04SA1+b3=2%=|z7$Df>4J81Z1SG1Eo)Ihx3GjuET=J!Q
z@)VAZEHK%iZadq3N2KCQ86qVxOt0AQNlf>0o!qe_fe!CMF*q;M%Tvk{b)njxiQtV3
z?|#|WzLZ2uC^T*&Bv+e!9;`S{r)O05klAgUab#7GPQ03IkV8YOOs9B!=#g4xYFvau
zhs;g{=lST!MJRl%Co!X$QNT_C)(&x)$LTxI-70Cn5N2&$`=6LLm%!qg!Jrb9Vq{v7
zVrjNiKFvc_?+4$`3%mc~!&QZLIS-OhR=#PNQj;@)-E)dH%XZHhE+M;GtC`mWFWWTc
zhm@XHJlIP9ZCSj`YJb-t%tyL*h+i&z_2~ld)HEgHntp@-4#B6&{lp|%k#Z1{RUF?q
z)iMws0({o-C%{OlYaDADmZ)#{&@qnsN22XKCiN+^eYahkQa1EPC5Hq**B1dU-h9Y*
zC7$$=`L5*a(*lj_1ma>z!eS=n^gtCPVC%sz@@4!G;#=NXA`@3^&||xC?HfFJ`4#X*
zc(B*it295~=@RYYicZrtgcWn9l#bBY_zg)n>6P!+oxH2Fnk-=3&wa{i$1ztolR@9%
zZ{QvvZvA{p*mp)ZkVQCauChu7W|Kd&$(_u26Qy|LAzBpprfB0z*hhZI2_?iW{1w~<
znFwmM*s>DnMu(k*MwH7Gf7T9MQk9(3mMZ-zU0I`W`TjVwRQQWzRWCoG?+;inTI^3(
z!#gQ{6PS6XQ1@q5hX{-ktyF~Szhx-0i+_L!czDg;a^zf_0n(hBdc1@98fWQ2xylHK
z3~Gm_PgmPh27{lF$E8qDfp!F0Z+TZHeRV@$s3CIbDx)^XX-vQ8N_K7=;^k7Pl9fy`
zcIP;I*QUj|>2R)|oM6Y75##Akd;0tP3}!`rqcjm?lSH!-i&lWUB-d<4h$6wm<&P*c
z^~awXlAEDf0$0-eiluCA)AHm=Bk#S=Gu_R5Suq#SU6J<^nN^eA5G+tBP=Ul6Q{tI1
z7u#5ij@pHiY&KsXl3rK8kW6YpwMT(Qrzy+DPUY)1NxzQ1mI;q_^Mrg+sAUz359z>&
zMAN*E&t=P@PJ{yUv)r~ivFQ{`an4E)$8{Ul;GVSCSHrwPTj_|hnn9c5R`Dk4ov^QZ
z`b@+Et0(aLos(S-*f0K0q0Uv?jd1~?>bZ_`ChX#-X_aEfxdO#78k}qOr+zn?#97at
zSm78&FlL-Ism^d(jJd?@S@eglN&*-oa1I8>zBV_x0`;~W+g?s~G|XJ^@w|0ek6t32
z=R1K>qf?(L{?&$I3G@UlI#NU2~OS0*1_PZJC)563EZfb*LhOx
zR!Vi@k@J={YVy504f^+ToCXC_LnGOI*vt05`(`M#cx9BIGE-J2{VSA~Gzt~;0%iK~
z*s`ltpJ?RDs~(WFL#`9mLWebkPm9%Dyo(5-Gs|G%%R!y?+Ubr}>x>?4140!qF1JYt
zs?{ny)K(aS?PE|j!LkI2z+SxyFYdiQbqV&y4?oL|F2{B|y$zzNVy;$uX>suPu15p`
zvVaap)=lO%`+oulwDgV-IIVyN*xT_r4+}h4zLk1$9bRyy?X$Omc&gjxT|YvH=-%iVU{Rwbau~#7`~5B29=d_nOwvPG
zejrbLx~G6zTTF0Pn%ctI4GH80d1d!!6&;Ih`%rlKLU>J-veEZZZ0{?BK&WzE6M4I@
zX{YF0Piaeu={erp;(MCsI3zps=JLSJqcZ>{V4B3n+zD)qY{y75Yt>IzkdznUj7pio
zRfcq#>OXyM{^?fxsm~VC3Bp1Sw1<}i#n<)sh;%9RWkg6$@
z(yyKxAzVXrRx0-*x!UY7Mw;f3>I<`45C$n)ePknFwIo@>rA#~9O?TtW25
z;ZTfJZ>2KVGWYfGmg||*vZW)8yqRM4QCs>JDdLX5K40r^N;*JM*&_+|WrX`;fTH6p
zl~)cE+ahIOP(zSg-BR|6n
zL7TWeor(RlT=!Obt1!tCZtp
zny{jpWGH|3JC}N~g;ycgb&jlhEoTAMJ*&djfD>pc?se6jMa
zP%lqcT-vivStN(<8xocmo>u7mNI529R##h1F~5A0dPM(?s#-#DYFuCR;t9;_wIN;W>YbI)uIg`=0Z!(_-JsCSAoF({%5
zz!wX?n#||x!Smmo_Srs_c*K%mV85aA6A+F;D&%Yj10K<8OSK^4ENK;rUd&XXF?^Q*
zGcmL5J;`YwKdn!QZ368*9zPl(Hlu
zziBDF<7B}wT_Kc|^a0{R??YW*pcPZq8m<;Yy-F3M;&*P<=UDOT3H9o&7>=KHN_NX$
zG;vMJIyZQci?>0U%8G3pSA#^Aqd!e(7=_8^Ksh6yU!T55>3#rt_ad06MkLpT#7}SME|UZ70sMv~a%&Yip+BS?in%6FU+&N2XIX`~nxox?r!0a`1+z8p5|!%bnIFDB+!iz)^32~?YDah+4J)TB
zr0s>4pE(hYu*{-Vuobu8VGyQp3^v1S-GRqmQ;=^#zF$Pc@Q#^!mKSi0=l+4#?CPo25Cpt?j`&1|?7sVv=V{pjg3bExMrK&=
z+U%W?!@Bn+UsVsqS@G;H!!fJ(mh>A
zys&wO;Ej=fQxEMsI{GyYC1t#aTmGhf_S^<3D5-Rd>e@|etO>c$iHvs5{ab~foXXvI
zjDD0S`)GS)B(Z~M7ezB(wdG%Kf?sGDZ8G!b3wQz1E4lHQ))~stv-OveC~!DsIfn}?
z)KY*o@P4#EQAPk#f_7_iL1CNnNAh}0vM)qk;M!fCa?<*
z5HfTtAk#!2T@Vh_a&e9x<9+2T`rw(>qyMP?lOjH+CBH^Mu|R^_uFmff!(D{(&A;r3yJ#xlfuO=}n8J6iz;X^|PHcMpd0k$_1)P^sYnD+sCMq<+@^;
zfucxBHNu<1Pf?_rlZ{E>HfuGIs4Db*~X~&DG!Yy)W0sWL*Co
zzj=Eh>RjR~gnn^`5)>Ffzl5jgZdgY&&u1&!kA#M~3r5NuMvPi_?LV$TJ{YY0d!lJr
z7o9ItlX!78RL}6D0l2WX9-iH6)O`W$PL8&&9E8@M&Hb1JbLR%5@rNNkl78!asPkK1~
zGSz^X2z26SZ(`92vlI)Gq#H)byKUXq`-(A7BP}=8MD7ch{uiXmAP!4>0wzljb{gXs
z>6aN62bs%qlJlux3~{`mG|)?@*_2{xeB-CE=*nt1+``4rRw9Q%Nm;NPLcYV;HK28r
zL@GzkH`~mYM-r9Iha8*6%O?zxR%KM}@6-L^HixOl+(J$XDoIHFXBYqGvEQ;#Q?)a*
zm^2->wsLQ@(3`Sct5elouxaV5rvMQ5xn4l<@iCN(R{7SB^XOy4gyL>EX|3VI;16xl
z;Tekit6%5r3U#I9KYBV5Q4v^T04hom%N`i*mlz%l1iHri_5^;lop!5q
zqeco>Y7SekFN^;+c_#-_zw$<6AUyYtMpnyr4x=lATm&F9f#dx&Lx$}7CSV!-e?
zjYWq0%cE?r2A{^{szz+t;J6Il@TiuSg8wI2`7wh_{Si`2R;1hED2OHP*Ij@n1HKUfIkUlw@w8F(MI8g=d~56r@H~1d
zz4Zk}1wh`6+cTOZivZ7oVAm-Pp~5w~>9FneU|?lf<=xyIy`674zh?>h@8g~I?I)Mh
z`_p^9dJ(Z0loL7N2kgY!t;0hzpDmGm(c`o~i$#q~A{ixTq?Fte4Xa-m{azGZ#5Hwn
z0UZ-mu~YImr(v4TsCaP`l0o?4YxbH3qBQ{VOCeM=aS^q33lO6z1IOxD<%}O|-UG{B
ze&;Yvqa1|as{CD({4V+_pobjs$ZsxKEwH2DBx+%9i*gRGNsg~@+Y4;huA)!STT#oX
z_Ia^P;k2>zLFlLFsdit?RUdQ+f7pwpU;4EzxaB?{#JTJYB@|6VrUjZCeZXa5(f`q>
z0i7o}U*C}>QA7KF6HZFT#b$hUXyt1A8p{ZNgGdfC%j5bHi_}-j8iUoYE}s-|_f6uQuG$?t=bGKI)ZHa9u
z6Tp!zY{344gn~&Q+yM3Lc$%g_f+}l>il-m*Bbw7a#r#{9D?QRH4)5jDWiBV^v7gAh
zld!+wLQUk<(v4X$a&+E?AY0RZ5R@@u>rkOu&O_;V#jMV7Q#fgI`$+jz!GlBhjGDP%
z6!`TntIV(aybC!W!b)w(5bbcn?47&iHwI#(@AAyICH+^*B=>X;-#_vZ=>}lct~r*x
zOGNnW$1MG3wY)#61u)|;K*nC9semEJ7SDL3Z5IwS+E$};R-Xz_Zg5`v+jHgkji=e|
zJInE_56twe-u>!?S0Y*&=}PYKi)0*OmvMttx_KhDG`Iezf2x@ia%4c}ntegPul$Ee
z2QO=?0}ZSEkZ5BF!%A#^4iDNq3Q2_gZm9ssJI#C9(`*wMF92^2yWwi~yhsx2KS>IG
zXi}zWHEdCh$UOykN$2QwUU;UXc5()3j{;kX&F`J%B)X*K@a1y6Y*kn
zCc8qaFZl&Q=0YIk*Irm;hq;m4X+*u87v}1{ty&VRMkl4a%U1H!D_&k`{VUEY>=fMY
zDcCJXa2BgcQ7&IurE*Lh6%uzlu)tz4Q^gkWQHRkMwzUUpoYDN1HzYr5H?~Fsbh4@zig15
z7+!R+KKI*hAm`ncq;C5QZ)ATR5wOys%(q*<^!`05w-Msk8LKdigc=mM8(l&iThjE)U6AJ+L)p6Zx7@1-gBsi}KOHs>OD->sYP_s^Ef
zm0qH&0Q)TaAE}?-wQZjd;VR`dyN~m09(y)FMApSXX4URnUv)VV`{Fs9=Dgy5$1
zZaC#1=-Z6BhOUTI!<&eT)a|vwkdH9FHnyDD47eLD0@zstTJ6SR0?Ea;?rO__;s^
zisXK8y+568Ty1>yRyW-Pih2a!?p$g8)n&TKu>NNPHb0n{BT97nG8GzNj!FBGZ&N_~
zF~iGo3ltd3l2SN?hOdfALi*l1XAET}N+Azi55}Qs&Vh9jNhwY<<>krP3deF1=Qbxn
zhU3d_;eHK*83#SGl)81xaqQ#6j(d7HBnHl&MD~9=`yj^hcGvJZuV}=4!6N;h7f#E6
zHx1w=7{W@{ysnWGD4o{%=~Jnr#}mn{*80Eq>Q$%I&v7qYxN-IY$Wc%o0JRMvfG0ty
zAAR}#KTr?F!ERdF@Lmq|sbAh*Gm(a{p#<+weQz=zkE!ZrJ`WbH88KE0;iO(;J9HvH?8q^~?*G9GtL2XmsnBvV*_YJV
z`44o&+w>1Kv}+qpN4JHsgFgieG*iHVU3=p@8(m|Lb#*7s?_H9eyx+}%U+Jq?|2e1_
zulOrQzwDPwy_MCb$(Yzm=O3j@U|PyDI#2muazj+GB@5M>m1$
z%S?bHB0#^b6s6#aY}ALiI&E#Q1lGk32VUNI6SJIJzE!^6fHh(%2G18jYFDGc9(JxB
zIc%fg1x_!P_2BZ{!oM|YS7Z=ZWbO1Xr!;)&CN-A6tkzmy6?Wu@vuQGrIKveIngv{6
zM#^$ISGq3szmyBg(KSPMyLxn===hKI
zyXpTx@+^e&*|;bwldz(|T)=@EAJn0<9Wu$=Oc+$j<_tT*NP&C%3c)lBN!9sBkbu2YvrNiWXzhMWSw
zqINl2)mX1SZ+xluXyPu5H?nkj#`8^BW2}
z75GE}j-pnrmRpEcMY^zuy*N35CDO*4WD!|WbEjymbarVncW>G1CH^)n$zDNY=S5pYEEI`Ws2bwsXpvOjFMf$~CR}%aufM`#7as@TYnMX7B5alW_TdIrPRw51X
z_Fa_F7(K^f+fcP9r|Imlagoph2qnX-=%e<`w4eV#P)ol-&?I0lf@NAWr}GV$mus|&
z=JEMX+bZ-T-w|;w%VW1RZh!9@`Uv^rw;haYuNCxYsY{sEnD_i`d3v5(v<@4KWyKo}
zZ*3pcXV{p;J$2zWw;X)pdOm<}brQN>?V;jk!)8_PrmI(oZZscR3Z-+hM3+z+42F`&
z(1kg!fKQMfILe-F=pX1cbQeU;lKT^s)`q1oI+K*5{0`NyvWpaii!T5X=r@3-oI}*Sm?Xb6bW`!4~?Mq?GloC_&@7x5#q)Mgt9n7Znz7lj7Z8bh#YEpe7;leHG~Q2YxqC%T`dBpoW+k
z_VkyDa<79}O@2J>pBIdPi{3wu*A$ty#^XfV@BZD+i@PwL^>AAD@80ZWMHb<%c%l*eFXKFOk<+C23n#MEJhp7G?WwIM{lzj|M3
zwMQ-#UwP~s-yHbc+j{mg4Mm_2Kr5~(0Nwr0rIL@b-v_0p6WbG}W2h^I_C+#5D(fN5
ztoE-@*IjPp@$QQa_gNeZ7!*VSs&h=j!7gT?+UpA*FWveSqiPr#G4JTB8jMO2=-TNcIO;XjZxFa1;@
z^2L|LLnLBO=bKvw?+K5~h$YRV!l(JGx}Yl%Fu1@DEP&ptRSWEH6w;=t)I?%WNX{pF
zgt^>NfJVKnb06LqW;b_#mFf@6?m6?Y+y2c(Z~+EPgfVXI3sU0pR-`_Nl21x#@D{s4A<3NW@@0#hSf?jYu;fJE!F
zJHT#gMMJ8mBk4MTJsepPfVG!+Xb(uMTbub*(Lc9Fn;sIFtx8wEJUC9veB)Ne6gF}@
z(se4>iQzZnxpzT>H$vIR6l5;76O34%VMt;TOCJW6(|Rfi&&M(~l52dwvRXhrnLa?W
z7X$k`q!d(_)f?^dlidTVEYymJ+Vr=YFqLE|@bo4EQA{~hnidX_y=h`yvy6Ze$FBqu
zm^P=AChc-M9^w~nXj5;M`l>b>vx9kX>D4`(a6O?JFo6#hE)HILO$L7V2O}_WMI}|h
zJET_&{(to$acB3GzjTnU@4{%Q#bwx9Y~pETmJN%(SxS&+YS}(mJrpQ9E@T99
z5){8Gn+F$lmW1%W<57i71+A02utc}x@KDC09-z}r0?IS?
z>Agv)S}27P@!862u~_{LV=$$pt3{R+(6xSOww!~EqKDKDT$aL{@==%?5`g2(ITiq6n(0A%LIB`tHb;_t)VIH
zVjAZ)9IwvL_M5^QPXkd&Gx(frl?
zmBcTSvP-O&WqC8=;b(!b6UBRNEtVnv;=uG|>j|%;Pk|1u&zoPEL#s8K`jFS2BA3Gu
z3|dctRaYb{+YI?hoBTG8N)NV=T@Gv6V~j8iVNs0fT-B34!Zp7)o7N%Rlk><1{L9rB
zW>N;OOcf>E&XkYPZNQjAzAGJ4CV^{vP5TNYZ?tT5e2DGHQd1=1vzOegpKi4w(<@>p
zU!`7d>~EKP&vQvN1{o4hd8ZGtlR^u-U4r4`vTHfK)x_+Cve%iZ&Ee}<=PEfPo_op-
zJ}EJ-m)WlpMH5jHmQGB!*L5s6YRt5s7mjTKM|QJ7sQd5dMtXFYEczu$;;b%kM<)P}
zMmb>HC2e-VrRkjj7Qwmgx&S%zcZ263Q?oK3P3ssjX0y8lYFOZUd_!jEMR@++^Z{;D
zcRQZwGC1#rS$m_l|{*385flvB3|ch;GMD
z6q%jzABelmNQQnXD}U3TdrUEwgZw@yZ%y=iG30>|a^mU!ms0z;;b$v%Uz!D6uM5AR
zSCQMoPVUA1($p9^guQ5QfW#`)g?3jcWD)z$Z?Sfe^cqtl5*{RUia;_|LYH*X(2I
zCo`$s5$x3|^Qj@7Dm=$b)n8e6@<{8`@I;Dk#xq%CY;XB|m=x2t%9ZGT46Y(ny=E5c
z;qh*qq9{+%_-i#SSUT$S)0NSwX-B~YvomJLnqcA_mDTVeDZLG5)0rs~)%37fInwju
z*g>5qfdWUlJv!GS{<0mP!JX&wD75wx)-CDM9%QQeh-DZ6wE$K@!%FVkSs*zZxT|iZ
zol{mN$LbpC;MOlrb}O)Wk@UG&=i%xhqC@k{5W=~SA4)iWPgN#JhP~Jtmtl)9VKku
zOy7OHPEa$G0X4tg-P_hh&NwzjjY66VJ{4h{KM4lCmJM#
z#b@iiC^on7v9K5_-1hUE_yLyO2b_9Z9#hV=xd?X5Wh*QEex(F|
z9#x%|C66d@-$eTaAvJM=TL-7G3I>+_owCGB8?5an;AC7GU82`q_obCt?
z7KB%D)6(?
zqxK^cQb8By+Zr&S!8F~H1Yj0@Ae}8*_FSNBa^)0_#?1l4F
zACCC#7tTp{mLgtf+_WseyIA{NRtO-PN%F8*_}sXve-`@&JfEehN(6ssx$1^xemfU6
z%S*yUDf}%*YhC@kEfOEDk-Ho*{HQKXJmW
zn&yxsas$U6(okX0G@~vmM9JI?P)vD
z3r^7yD?+&p6Ab4A*HnHqER1RJ78|)PU|Dcpm)~g)SJw2OfWFF#C3t^8wP7^43pXvi
zL?)s#$1>jSE$Sr+$DO7t+>jvnvXRbFMM#Q*hjtVf*~bDG9mm4CbEA%Zy*kMPEJQx4@WBk`jf+^
zpf4I(6s08Ht*q9Ui$?=Lv}Hzi$nf-t9QatT`AeCA@7>scu!+&2cDUXLEu!56KeRU(
z&9*e;;g~zi;_J}yP95fzFMsywJ-sUb?gk&+tiHm{*WP_tF;+_;_njkhIdoZYi%NMn
zI1)oZ)Hc2JbV83Sq>f41TwFi$!za2tOzc=?-*L6%DpfZzNlq&_Z@@m@uF}20$S#3=
z%B&-6zTBK$(`bhWn_%aGB!+0>6@#jg!C@Jx(xVz?1?1%R;H&W(>DBSdu!GMwt;?M&
zwjAnN{cbIxJbc|chPGc>PF7<9CpG89YZ?Yx)zG1l|3x7yZ=
z8u_IlXXCvA!5{5Wb{a-0W=Qh}SmO+)Hd8Qn{Aj2zWld=bAK>3$xL--CNTB+ag&L9Q
zXo43jM7J24bF-dex7~{`tIIT&X7hf0MoVb`=LSM{fG#qKM6A))mG6OnBX`_7yoBRx
z6-@fWK)aBM!Rrz2OVdL&j=e}bRzpKbK_X5YUyBHO|*n?R=|StRw%s+sM8{L$B_ba=NVqFvfqP2TnkT%wX^@oAJZwkHWs+tx
zF<=o6=-V>wurW>Q^MluTOUl%rMLWfsRfqdC_CGoAx;Ls82is@&Deys4?gRNzANe^z
zhy*gT`%SkSYGBY}kIXP!jLa(sbgr`Jv25PeTqMV*iyGlY_e+RH=2)P9UZ5?H4p92y
zmGo`@fr2t`>r)5bI-eW~@miOzMRlp?-}H}j-c}1Zp6Mu@F4ys2mAvSoQ5F`=c;BK{{zS#
zu&skH3z(K_I}GsyWl$r*>Ghu0;>|tKiSEoVU=+#x#Fv&4iW_+dv5cbLQihzq87Vow
zFfOgtp4p_9hVt`v4D!SyEwkKD1v-uWRL{M6$WARGOt9lb2nK#)=T&+yDUONG79Y6&
zaVA5&v{Kd8F~A-K#wd_9!3=@mPSjPZ71TS(`;AlhZ`|_+v!4m}zSqO*KgFT$h2fd5
z`F!NmY^U%@ueM_+>H1AZ!kJ-N_J)42qb|v1o78w+#+``Istja|lj|F?{&Kj?##H{#
zff6@3+k{NnqGjhYJx%26d!(Ee=$^jHGti*HAPJM8xEnnIrIm#aTX#_wYd(cG1`evI
z>&^;&W@3FHmPy^S7jbZ#tujg38hth1)65oTqSlh98q%O`ziYFNAEoXB71dXnw=~Bi
z`H`KPM#vUTX%RPG0b>-r%`2_-6C|$jIqwrAw@MFf@NXTw8nH@qBC~Sq>Eq0Z;xMSAE7wUuMq9b}R~B=X`76nPd1#`AEKF+8
zS1?lk6Gg=dSSNt+@DPo4{!Uwb#XPyZ<4w8pI5%C`*^6@
zx7}s-j*dXgC&REuZzjM~B;kLcQ$u%1^Bh_R#|2jmoSma+stOGqybUa~*1o)7eZA$8
z+B^U6mxIp_o{s`d$B6ov!L0?L3hVj5DlE~YfQWWr^y5InZ8BD#dwjJ`tFRyo7NBkb
zK{gM3O;ehB6MzHSAy?aGx&JH6OkB9*Q
zpvVGo5Qy>63cB@#z45lt)!?$89!Z!}gN^AMhedT?!{QTVATLuS7rBz;k8q@Fw^QVX
zHGlcHSSDSR=|QrGluqWTl39w54KO$?}0PT;QMPifWv>-N$I
zc#g92*THN}+JrI|)0X%$sxp5<>Nou&tz{JYsfe`5^wLj}2$gf!M;O7;*qTIYe&R34
zk+eQggFO|<6JMEy6&<5jykGq{oE3&zf|ns$4YBiI>DOuLU}qK<8?sW@ra6i6{m!i>
zAa4{-6L)Hid^U5%NB>ga3B;||G}?44N&b-<(ut(PdPg{G`hCDjIazxM;WanOh=ZKk+hR
zEDMLaUW4yGoZPwj1qWSFwVN{k#UQ;RJaYTdKai}|l*``!W#!F##WqvAm!8)vO23`C
z?-d5y(=<1A_tAJ_65~B$m+6mgnCm|QWL%kZQD9fEC=Q_V)L^Kv3mo}HSIHp^?=0Fv
zYVR*TWtv%QSW=zZYgj_Qss7H^VU`jF*9KMtxoOWk-ogfWPPM5?A4i6&2aZ=;tp}vf
zc_tgrczfDkR~nPM-9n6O_y5%x{W^IIa!FGOD#-X7?d5tE^~0@2v
z=9H*{6kS{Vd-!4p{Jb;FfhcoSHqpdLxG&f_%QBi~^g=6Z@crEjCJ&zHrOi4IG6{RG
z>8;n@>$waipu?i6n~rU8#TFtwA7d^b1dEf)F~j9uJv_*OJ<%xeST~TiDk?GT-Y0#r
zj`tl(ml_|;JJkGI+mK0U8|Kb;p-A1iCOx|S3|ye3^?A0r+BWgMri?rMj^08>UUiE@
zzYm{qBrQz?&Um$OSJSR2h!YA67$N3qJJPSM4Q~JoPFa;snZ{mhMzIs_(f&e{FwFIZPuo=
zN!g^E9&4KFaKPq*tVmpJZ4n=*kLC9e`ud7%wr^Yd+ZqB8
zi{aApVIEXQl|{ZVz6A%jE|b{Qon)he2BWp1Qw~P4c0Q2uy5RVlT=Xv`eY@vn#WaXbQv9-s>i@3TZf*bLzyfqjslZlNmk%kg;Bl>9Q2wQ(
z*kepJtYQ2v#cTZ{U={F8Lw|Iie{SN
zjSkn~c|a1$al4u6a3TF8dt_
z;!}Pw06AXgF?xg}$ZfpHRtvb5JF@GebgM^bK)|_Mh}URnO$XXdbtG<3<^f}Dmiff3
zeW*7LMPgVym*%hRU58ivR$phQWs?1CweQ1#tSWu;j1^FAna)kEn$rL$DYwD!QqGu^y-Q0?PmF-Gqm`-*w=&c;lEFu(BzN>pUlWOMI}vBS?h|yBgN!fkE=i3oTu+d
z?{-~N#-jx2T=W4f(X?4emt5dQGQlm-iwp1t<&DA@mgp$UmlAt_hGbwTrARCf2MXeW`-5)
zROVD`DCzAvPQq9H_$72xr`^-^Cg1hw&!B&B}@9s}d^fys*;l|@sv=!N@dp^`QkmM6)=)k3;Xc`CHS
z31qXJRiq+yB4wm=-dDY+UM)sn7;V%j*3wW?eP}(DXTuz@^Sx&7ziMZIydqtheB?|n
z5RC;4HkCds(5xrv0}?$)l3!luJF?AZmuJ`(x7w?@V9(GQsA`Z{#I+{I1+a7`nAKy-
zKK1tZz96|lRzqB=P3>}vxD9%xag_-svUJ?B=b`)0b@+aYxQmXWhT@wLjPMv#$)-%_+y)I=PJ3RyYz%MKLLfre{>~%juoPDTLtyZDELGP
zD`&X_o~4TO0m*Gi>wt=dM88LfEsV=F71@OJ>~n${vzuh1m4?Aj5CrkWIPAe~subWY
z!mRZVlw7V5Mi*x(bFc&B}jr1TSbrFuQY
z93Blcyjyz_{8Bp{ZlUtTTJCGhb_%qIR`8GZLx50*QIZ-sdiM%OfR_yM7J6fE$gll{
zE_#Gj$7DWPY0xY&7+*GL@w&UZ<_+93WQ+2df1ul_HWZZu@(;8J3+lODAVJ%97uJS0yI>1&=-
zG%iRyHjY9aFc7`yXYCMs+VXUPbrKu>9UN$D{W7ee>s6$DFW}>6KYE^66@3VFe_Cx@
zgs%Ss-2|WC26T@9_lf(YqU{pE(Js_`h#D4Fw03VJlRx@r_{CePuvz(4pI#^F#^c@Y
zmn!!6Lyi4-ORN>#hck-}B;@R#EgLW^jK^D{OsW5KzCnjtlJ(05iUZA0C)!TqJ1$Ha
zmWhV+aW6$xRmSJs8H-8NR@d(`6=quCz}86mQl7f{CR3EJEcVWq{XM-0T#H_lJtzI4CeI)(
zWB@QwE@2_016N`k+j6FbxP64mZHImjf;-|n<+^i)tu8PbwEwuWBp`oS!BTu1Hht=dGtNToF(vUX$a(1hM&WOH&{DVu{fWf{tFy7+(8S#oj@XJI{
zAR|uTEbYI1a=cP*kz0dII}}RxgUPoao$dfu-h%98pYxgHvxJqgP@MkK`>(b-k1g0<
z{uEU{-W7o3P-k}#t}-9#DrgKjd(rsPBw5RFm|Di5H$s&s7{UL6UXZ-vZqkRE9!$k)
z!$u4Z%>*24eocyHU2OZtxSCzFeI+Y>Hw^ldIM@Y)w*M@J2TYYsyuY$k_5DcoT-X^L
z8XgYs7bNQJ0%7>NpYioTuPy;$((-YXLSoG6U^^aW{II1OGqNMSt+;#9?YZrV3BGqZ
z6Tu#qpCrno{*dc3WB|fUEZVXI2>aNd_K7409EvR;C?yj$ymO&EgAp}rBhQgab(Qt?
z=t$#xo%w@aQt7NyaXq319xrXaWaqw}8VOqv8WCxRR}DZIt||)nQiH&l>zg8Q4!$kv?PLLA1@->B8e(OPI8_XWDjdJMPm}X
zN~D{YJJK^BhxgN>mHuiDNzB3w@%s9&zYON;%0+5GpI%QP%;b+{j@Ug_%Lol}=JD~4
zEAtDf=vdw@uc5gb)uCZM=WjC9
z_-!8hk|`6wR2~~m=|F@9DY9+uB3WmUAQ}tABSz|dV)JrBdKtMz+R?De&ahogdY!^w
zV{TpoQ?IVJ>t~{s`>t%gdnIwgX+~09Y4%&Sw>5f$f3)NK8}zH9Ft77-ifNG`{7yl6
zn*ZqjVp3h}NL=%z!ffV@KiCR8p9ZPHwEk~&+&zF6kq#tS4UkB>s9ri#=@TpIyFyCq
z3^qM#i0^LwuPm2fKX`Oc-al`ITKsQBjT3m1rDF)_yvMzNMYfWmU&JS#h^4Z5bmr
z*@F=Z(rgbZ8_^?FxwLU5Bu*7QQUk5?v@B?YuV)$W&+E9KiPADDKeSPxdkx!iP
zu6R+Ne|2q^p#F!L0-bwbO$+#iMA3!?;{%zq0QwQ$AQKDrf{88SVoF~hcK$IBQDIw0?}BcwfYal8Tw?j;t=`?(?ZeC_qkV_TDEBQI7l51
z%YDx5&_ecUD5jMQOE
zc|}igW(-9836Jc$=2h<`7^GN81u1yD7kQR6*bRU9?MnB(-vB`_#o0V0LTh=~REkyMZe{u_dmSOy-w4b^tDV@qYbOf}Zh*CfV6dedoU2047XGw4(3ZeJ$jdPg{?OnB_TU|^bN0PI(NM5}HMc#@$r^C0;6
zD53y}wOu_|Fsy$cdAbZ$B#kel#oa?gay
zlPyGZX|cuUcz&0Jc#iMSNqpXf@fk%XNWJ?#eBSlfgGQ!mxB<>j_%hxqeIhfOzU^n)
zO|0$+bJi|)n`(*ANBZx$^0lGW>^l_}M~qCiyQ7M=o-t6b-Jf<%2zfstDU^xeO$~ECQ<8!PZUp_!`{XYTT1tI#|8<9xrz90V7
zKNCI?-dNmtSK=p*JTq~o>5^!ca_Ktt)sx!TNj$eNX&H(|DFaV5(zI)ZGD{;6S=gUB
zqJTY9;IG8Li_>b>ejoU6;tz<;s7E!%v2CV!YWnxiSz>Ej`R>vv8zGUjn=6-)45`y#
zm54Uz%VWa-02zKXd=>Z?HJ*p!kBS}*_-pYH-q=e8j-`L6=w2u(8bx~pDl)-!wmG6n
zQ0~IYiogZ{_FwQzzl^`|&!4rMc*;F;$HRJthu~iuOQql4Opv5{gLqR{j>#0c3erh*
z@W&c;c^wb}SOfLOh5J|hKmDe^XCDgM>AF9{9|ZV=!nfWxi{YPwyjiJOUFcpMxSB5o
zxO=bd0Jh#;!mo&>f$vm6*Ew919{?Yhz54qfYV|MLOT_;G6*Qk1TzoP3rQ&ZEYFGaN
z3Gc4FG@350uSu!fcyeoLO}zHj#E*}c*B=f3B7At)zAJd?RWBv*-o2|`
zc!R_XYXRCMYk3XDz=qxoU1?Y2#NH!Rwr8-lic4tP(o1>GqLhWq>u_Q+OXjyb{{RG}*R;0WjP&TO{8Ozai=*mS7hVv;ScylwMMzKj$>_abAFayQDj#!T14{%0gP}fG1`Kxc#q(J
z?J=hR0Alx
z$KDZ-_IlO69Lb>m%r;&m{{VywTZ%u1>G4$?!B!
zbeNbR63H9*J^qmm=fj_h9}D!WPuc$f;IEE6ZEfM}`v`m|@j4Ah!`k+pX+EegY-iQy
z)%6H1?k1Ld8I8R6kjBfVM%x3j89+FHj$g80?M?ey_=8Q>q5YVCENMCyhjjGt){CR~
zbHF<6nqG@*X)LPNu(ZoO#I3=&X$;cIA(}}`9OMoc;iv4O`%-)bOOJ{^4)|yB`@z5P
zhJR^!{w~qHJ*(;8*k5Jy?X?Zpu|~gV@_f6PXUne5lOy8{2SMOFzxY-D5dEpN9~OAy
z!+s#wuf7-QIz5%$uD>3m4yQa`C-AJo&eG#?Tb8%Bx0P`TbO~o6jI>ejtq+Ai2Cub$
z_$6P&>A&G5_+e{xt$5eNekifhZ$2StHk!rFhLxxIrr!0&pDp6u`HLmxs7Op+bmDYq
zQdK#i51oD~{9Ex?$1fROc$3DSDDfAJJVAIAPpRvAjM|0d;YJiZ(=$6@bjdgs$<&VA
zdi&<1paP00paP00paP00paP00pasv%NlsPBrwFjr0UZ?}OrDg!UnAbC!PJV1n`iqX
zo44AIUVukMP38REKT15mm+t)3tXC-w6*rVe@Y7l*Q_xVgCd719$sXq9QRU~i*V>L&
oI}p)Q2!3yB40~FiD2V8#W!pn8+K>{8D4+t0D4+t0D4-Aj*?3kHGynhq
literal 64469
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