-
Notifications
You must be signed in to change notification settings - Fork 3
/
distancias3.sqf
140 lines (129 loc) · 5.47 KB
/
distancias3.sqf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
if (!isServer) exitWith{};
debugperf = false;
private ["_tiempo","_marcadores","_mrkNATO","_mrkSDK","_marcador","_posicionMRK"];
_tiempo = time;
while {true} do {
//sleep 0.01;
if (time - _tiempo >= 0.5) then {sleep 0.1} else {sleep 0.5 - (time - _tiempo)};
if (debugperf) then {hint format ["Tiempo transcurrido: %1 para %2 marcadores", time - _tiempo, count marcadores]};
_tiempo = time;
waitUntil {!isNil "stavros"};
_greenfor = [];
_blufor = [];
_opfor = [];
{
if (_x getVariable ["GREENFORSpawn",false]) then
{
_greenfor pushBack _x;
/*
if (isPlayer _x) then
{
if (!isNull (getConnectedUAV _x)) then
{
_greenfor pushBack (getConnectedUAV _x);
};
};
*/
}
else
{
if (_x getVariable ["BLUFORSpawn",false]) then
{
_blufor pushBack _x;
}
else
{
if (_x getVariable ["OPFORSpawn",false]) then
{
_opfor pushBack _x;
};
};
}
} forEach allUnits;
{
_marcador = _x;
_posicionMRK = getMarkerPos (_marcador);
if (_marcador in mrkNATO) then
{
if !(spawner getVariable _marcador) then
{
if (({if (_x distance _posicionMRK < distanciaSPWN) exitWith {1}} count _greenfor > 0) or ({if ((_x distance _posicionMRK < distanciaSPWN) and (isPlayer _x)) exitWith {1}} count _opfor > 0) or ({if ((isPlayer _x) and (_x distance _posicionMRK < distanciaSPWN)) exitWith {1}} count _blufor > 0) or (_marcador in forcedSpawn)) then
{
spawner setVariable [_marcador,true,true];
if (_marcador in ciudades) then
{
[_marcador] remoteExec ["createAIciudades",HCGarrisons];
if (not(_marcador in destroyedCities)) then
{
if (({if ((isPlayer _x) and (_x distance _posicionMRK < distanciaSPWN)) exitWith {1};false} count allUnits > 0) or (_marcador in forcedSpawn)) then {[_marcador] remoteExec ["createCIV",HCciviles]};
};
}
else
{
if (_marcador in controles) then {[_marcador] remoteExec ["createAIcontroles",HCGarrisons]} else {
if (_marcador in aeropuertos) then {[_marcador] remoteExec ["createAIaerop",HCGarrisons]} else {
if (((_marcador in recursos) or (_marcador in fabricas))) then {[_marcador] remoteExec ["createAIrecursos",HCGarrisons]} else {
if ((_marcador in puestos) or (_marcador in puertos)) then {[_marcador] remoteExec ["createAIpuestos",HCGarrisons]};};};};
};
};
}
else
{
if (({if (_x distance _posicionMRK < distanciaSPWN) exitWith {1}} count _greenfor == 0) and ({if ((_x distance _posicionMRK < distanciaSPWN) and (isPlayer _x)) exitWith {1}} count _opfor == 0) and ({if ((isPlayer _x) and (_x distance _posicionMRK < distanciaSPWN)) exitWith {1}} count _blufor == 0) and (not(_marcador in forcedSpawn))) then
{
spawner setVariable [_marcador,false,true];
};
};
}
else
{
if (_marcador in mrkSDK) then
{
if !(spawner getVariable _marcador) then
{
if (({if (_x distance _posicionMRK < distanciaSPWN) exitWith {1}} count _blufor > 0) or ({if (_x distance _posicionMRK < distanciaSPWN) exitWith {1}} count _opfor > 0) or ({if (((_x getVariable ["owner",objNull]) == _x) and (_x distance _posicionMRK < distanciaSPWN)) exitWith {1}} count _greenfor > 0) or (_marcador in forcedSpawn)) then
{
spawner setVariable [_marcador,true,true];
if (_marcador in ciudades) then
{
//[_marcador] remoteExec ["createAIciudades",HCGarrisons];
if (not(_marcador in destroyedCities)) then
{
if (({if ((isPlayer _x) and (_x distance _posicionMRK < distanciaSPWN)) exitWith {1};false} count allUnits > 0) or (_marcador in forcedSpawn)) then {[_marcador] remoteExec ["createCIV",HCciviles]};
};
};
if (_marcador in puestosFIA) then {[_marcador] remoteExec ["createFIApuestos2",HCGarrisons]} else {if (not(_marcador in controles)) then {[_marcador] remoteExec ["createSDKGarrisons",HCGarrisons]}};
};
}
else
{
if (({if (_x distance _posicionMRK < distanciaSPWN) exitWith {1}} count _blufor == 0) and ({if (_x distance _posicionMRK < distanciaSPWN) exitWith {1}} count _opfor == 0) and ({if (((_x getVariable ["owner",objNull]) == _x) and (_x distance _posicionMRK < distanciaSPWN)) exitWith {1}} count _greenfor == 0) and (not(_marcador in forcedSpawn))) then
{
spawner setVariable [_marcador,false,true];
};
};
}
else
{
if !(spawner getVariable _marcador) then
{
if (({if (_x distance _posicionMRK < distanciaSPWN) exitWith {1}} count _greenfor > 0) or ({if ((isPlayer _x) and (_x distance _posicionMRK < distanciaSPWN)) exitWith {1}} count _opfor > 0) or ({if ((_x distance _posicionMRK < distanciaSPWN) and (isPlayer _x)) exitWith {1}} count _blufor > 0) or (_marcador in forcedSpawn)) then
{
spawner setVariable [_marcador,true,true];
if (_marcador in controles) then {[_marcador] remoteExec ["createAIcontroles",HCGarrisons]} else {
if (_marcador in aeropuertos) then {[_marcador] remoteExec ["createAIaerop",HCGarrisons]} else {
if (((_marcador in recursos) or (_marcador in fabricas))) then {[_marcador] remoteExec ["createAIrecursos",HCGarrisons]} else {
if ((_marcador in puestos) or (_marcador in puertos)) then {[_marcador] remoteExec ["createAIpuestos",HCGarrisons]};};};};
};
}
else
{
if (({if (_x distance _posicionMRK < distanciaSPWN) exitWith {1}} count _greenfor == 0) and ({if ((isPlayer _x) and (_x distance _posicionMRK < distanciaSPWN)) exitWith {1}} count _opfor == 0) and ({if ((_x distance _posicionMRK < distanciaSPWN) and (isPlayer _x)) exitWith {1}} count _blufor == 0) and (not(_marcador in forcedSpawn))) then
{
spawner setVariable [_marcador,false,true];
};
};
};
};
} forEach marcadores;
};