// Patrol 1 = Balota strip
ref array<vector> patrol_1 = {"5237.821777 9.568775 2157.804199", "4887.835449 9.560701 2578.265625", "4917.622559 9.539299 2599.980469"};
// Patrol 2 = SW Rail Line
ref array<vector> patrol_2 = {"41.383652 6.637133 1568.725464", "167.029785 6.660925 1589.156372", "399.000854 6.637136 1605.268677", "450.407135 6.660660 1618.758667", "482.006226 6.711864 1632.124023", "799.668762 6.740325 1846.262695", "847.898071 5.795653 1886.695801", "923.040100 5.795653 1959.974121", "976.875427 5.795653 2031.899414", "1050.173218 6.664209 2158.251709", "1157.952637 5.795209 2307.297119", "1187.608032 6.407721 2340.853271", "1259.927368 6.011772 2363.105225", "1333.362915 6.637136 2342.896973", "1469.527222 6.721370 2247.018555", "1514.207764 5.795653 2222.483398", "1572.351074 6.581270 2193.880371", "1639.594482 6.438149 2169.135010", "1696.991211 5.795653 2156.455811", "1763.947998 6.373237 2143.247314", "1889.594116 6.014451 2166.340820", "2079.179688 6.529642 2219.987549", "2176.673584 6.011375 2196.734375", "2244.440430 5.995491 2087.459229", "2348.422119 5.795653 2048.190186", "2641.000000 6.692032 1985.662354", "2772.157471 6.697611 1985.912354", "3044.920166 5.795653 2044.465820", "2772.157471 6.697611 1985.912354", "2641.000000 6.692032 1985.662354", "2348.422119 5.795653 2048.190186", "2244.440430 5.995491 2087.459229", "2176.673584 6.011375 2196.734375", "2079.179688 6.529642 2219.987549", "1889.594116 6.014451 2166.340820", "1763.947998 6.373237 2143.247314", "1696.991211 5.795653 2156.455811", "1639.594482 6.438149 2169.135010", "1572.351074 6.581270 2193.880371", "1514.207764 5.795653 2222.483398", "1469.527222 6.721370 2247.018555", "1333.362915 6.637136 2342.896973", "1259.927368 6.011772 2363.105225", "1187.608032 6.407721 2340.853271", "1157.952637 5.795209 2307.297119", "1050.173218 6.664209 2158.251709", "976.875427 5.795653 2031.899414", "923.040100 5.795653 1959.974121", "847.898071 5.795653 1886.695801", "799.668762 6.740325 1846.262695", "482.006226 6.711864 1632.124023", "450.407135 6.660660 1618.758667"};
// Patrol 3 = Cherno Port
ref array<vector> patrol_3 = {"7332.387695 5.712450 2651.121338", "7632.803223 5.507639 3075.661865", "7621.013184 5.892049 3083.053223", "7321.484375 5.448769 2658.244141"};
// Patrol 4 = Elektro Yard
ref array<vector> patrol_4 = {"10825.153320 5.894602 2555.271240", "10853.957031 6.433348 2635.236816", "10889.441406 5.977321 2749.464111", "10852.090820 6.012342 2760.362793", "10828.861328 6.012496 2730.357910", "10794.523438 6.012444 2636.897705", "10779.160156 6.012487 2593.712158", "10781.082031 6.004701 2574.147949"};
// Patrol 5 = Solnechny south
ref array<vector> patrol_5 = {"13392.708984 5.809348 5952.577637", "13369.891602 6.012489 5624.214844", "13373.618164 5.943049 5486.794434", "13369.891602 6.012489 5624.214844"};
// Patrol 6 = Rify Trail
ref array<vector> patrol_6 = {"13342.375977 27.020344 11228.225586", "13469.069336 11.282786 11163.261719", "13567.762695 6.128973 11127.067383", "13620.910156 8.011324 11244.537109", "13567.762695 6.128973 11127.067383", "13469.069336 11.282786 11163.261719"};
// Patrol 7 = Nizhneye
ref array<vector> patrol_7 = {"12879.688477 5.743166 8590.398438", "12983.769531 6.060859 8323.492188", "13000.213867 6.062475 8330.422852", "12967.809570 5.781274 8447.635742"};
// Patrol 8 = NWAF North
ref array<vector> patrol_8 = {"4266.929688 339.008057 10938.349609", "4277.165039 339.012360 10922.452148", "4271.527832 339.008148 10938.139648", "4064.494385 339.012421 10818.675781"};
// Patrol 9 = NWAF south
ref array<vector> patrol_9 = {"4772.428711 338.964355 9583.963867", "4639.255859 339.012390 9815.970703", "4978.569336 339.012451 10004.463867", "4639.255859 339.012390 9815.970703"};
// Patrol 10 = Tisy
ref array<vector> patrol_10 = {"1724.632080 451.730408 14298.412109", "1681.035522 451.784302 14278.791016", "1668.385742 451.730408 14268.739258", "1653.012695 451.784302 14245.443359", "1662.009521 451.784302 14220.044922", "1668.885010 451.730408 14177.100586", "1678.905029 451.784302 14134.460938", "1687.656250 451.784302 14097.293945", "1691.055054 451.728760 14072.710938", "1697.563721 450.094635 14019.088867", "1701.266235 448.636108 13981.079102", "1709.151733 448.368225 13969.950195", "1726.191772 447.882568 13954.740234", "1734.303101 447.342072 13945.562500", "1736.849487 447.158569 13939.061523", "1803.257568 436.318970 13812.399414", "1802.478149 435.682281 13794.238281", "1764.742676 434.271759 13667.715820", "1753.983521 434.111572 13660.847656", "1697.765381 433.031982 13621.431641", "1625.751953 437.192169 13583.775391", "1615.443726 437.193420 13582.367188", "1586.155762 439.010864 13609.286133", "1566.816040 441.081787 13643.261719", "1554.550049 441.587372 13645.919922", "1533.254028 440.683624 13646.856445", "1470.583130 444.685120 13679.353516", "1448.422729 446.229736 13681.502930", "1397.534424 448.255707 13663.409180", "1377.747681 448.799530 13661.333984", "1356.402222 451.658264 13669.961914", "1339.632813 454.855988 13690.362305", "1311.232178 457.548615 13730.733398", "1368.332275 455.560181 13762.721680", "1389.098022 453.795563 13785.572266", "1394.411499 451.237183 13801.572266", "1398.934204 451.644989 13828.162109", "1419.962524 456.061951 13891.482422", "1409.579224 458.430359 13947.408203", "1421.006104 459.254517 13993.981445", "1422.121094 459.807831 14022.114258", "1388.509277 462.222443 14044.217773", "1388.548340 462.354797 14044.183594", "1333.772217 463.948151 14062.096680", "1350.346069 465.658081 14107.701172", "1461.509521 459.874268 14133.793945", "1503.123291 455.995056 14137.425781", "1554.196045 452.867004 14107.243164", "1574.911743 452.540283 14100.198242", "1629.664673 451.792175 14197.793945", "1636.238647 451.792175 14221.260742", "1671.278564 451.792175 14275.020508", "1645.910522 451.807617 14315.247070", "1669.397339 451.792175 14331.668945", "1685.370361 451.792175 14341.243164"};
// If you add another patrol array, add it to this list
ref array<array<vector>> patrol_list = {patrol_1, patrol_2, patrol_3, patrol_4, patrol_5, patrol_6, patrol_7, patrol_8, patrol_9, patrol_10};
// IMPORTANT: If you add an entry to the above list, pick the loadout for it by adding the loadout filename to this list
ref array<string> patrol_loadouts = {"HumanLoadout.json", "HumanLoadout.json", "HumanLoadout.json", "HumanLoadout.json", "HumanLoadout.json", "HumanLoadout.json", "HumanLoadout.json", "HumanLoadout.json", "HumanLoadout.json", "HumanLoadout.json"};
// you may change this quantity as well
const int NUMBER_PER_PATROL = 3;
// channel your inner M.C. Hammer - can't touch this
autoptr array<autoptr eAIDynamicPatrol> patrols = {};
void InitDynamicPatrols()
{
for (int i = 0; i < patrol_list.Count(); i++) {
string loadout = "SoldierLoadout.json";// default
if (i < patrol_loadouts.Count()) loadout = patrol_loadouts[i];
autoptr eAIDynamicPatrol pat = new eAIDynamicPatrol(patrol_list[i][0], patrol_list[i], loadout, NUMBER_PER_PATROL);
patrols.Insert(pat);
pat.UpdateTriggers();
}
}
void SpawnSentry(vector pos, string loadout = "SoldierLoadout.json") {
eAIGame game = MissionServer.Cast(GetGame().GetMission()).GetEAIGame();
eAIBase ai = game.SpawnAI_Sentry(pos, loadout);
}