SHOW:
|
|
- or go back to the newest paste.
1 | //Inmission GUI with players names and airstrike target icon | |
2 | - | private ["_unitID","_name","_text","_ctrl","_pos","_veh","_dst"]; |
2 | + | |
3 | private["_i","_name","_xname","_unit","_lifestate","_text","_control","_pos","_veh","_dst"]; | |
4 | ||
5 | //if (!(local player)) exitWith{}; | |
6 | - | while {true} do { |
6 | + | |
7 | - | _unitID = 0; |
7 | + | sleep 1; |
8 | - | sleep 0.03; |
8 | + | |
9 | - | { |
9 | + | |
10 | - | if (effectiveCommander vehicle _x == _x) then {_unitID = _unitID + 1}; |
10 | + | //_currentCutDisplay = _this select 0; |
11 | - | _ctrl = __GcVP(HDPU) displayCtrl (5200 + _unitID); |
11 | + | |
12 | - | _veh = vehicle _x; |
12 | + | |
13 | - | _dst = round (_veh distance (vehicle player)); |
13 | + | ctrlq = []; |
14 | - | ctrlShow [_ctrl,false]; |
14 | + | veh = []; |
15 | - | _ctrl ctrlSetStructuredText parseText ""; |
15 | + | pos = []; |
16 | - | if (alive _x) then { |
16 | + | dst = []; |
17 | - | _pos = getPosATL _veh; |
17 | + | textq = []; |
18 | - | _mask = "<t size='%4' shadow='1' align='center' color='%5'>%1<t color='%6'>%2<br/><t color='%7'>%3m</t>"; |
18 | + | mask = []; |
19 | - | if (_veh != _x) then { |
19 | + | nameq = []; |
20 | - | _text = "<br/>["+gettext(configFile >> "CfgVehicles" >> (typeof _veh) >> "displayName")+"]"; |
20 | + | xname = []; |
21 | - | _name = parseText format [_mask,name _x,_text,_dst,1.0,"#AAFFAA","#FFFFFF","#AAAAFF"]; |
21 | + | lifestate = []; |
22 | - | _pos set [2,(_pos select 2)+5] |
22 | + | onEachFrame { |
23 | - | } else { |
23 | + | if (alive player) then |
24 | - | |
24 | + | { |
25 | - | _text = (if (damage _x > 0.1) then {"<br/>[Ранен]"} else {""}); |
25 | + | // sleep 0.01; |
26 | - | _name = parseText format [_mask,name _x,_text,_dst,1.0,"#AAFFAA","#FF0000","#AAAAFF"]; |
26 | + | unitID = 0; |
27 | - | _pos set [2,(_pos select 2)+4]; |
27 | + | //_i=1; |
28 | { | |
29 | - | _pos = worldToScreen _pos; |
29 | + | // if ((isPlayer _x) && {_x!=player} && {!(isNull _x)}) then |
30 | - | if ((count _pos)!= 0) then { |
30 | + | if (_x!=player && {!(isNull _x)}) then |
31 | - | ctrlShow [_ctrl,true]; |
31 | + | { |
32 | - | _ctrl ctrlSetStructuredText _name; |
32 | + | // _control=_currentCutDisplay displayCtrl (500+_i); |
33 | - | _ctrl ctrlSetPosition [(_pos select 0)-0.125,_pos select 1]; |
33 | + | if (effectiveCommander vehicle _x == _x) then {unitID = unitID + 1}; |
34 | - | _ctrl ctrlCommit 0; |
34 | + | ctrlq = __GcVP(HDPU) displayCtrl (5200 + unitID); |
35 | - | waitUntil {ctrlCommitted _ctrl} |
35 | + | veh=vehicle _x; |
36 | - | } |
36 | + | pos=visiblePosition veh; |
37 | - | } |
37 | + | pos=worldToScreen pos; |
38 | - | } foreach allUnits |
38 | + | if ((count pos)!=0) then |
39 | - | } |
39 | + | { |
40 | nameq=parseText ""; | |
41 | if (!(visibleMap) && {(alive player)}) then | |
42 | { | |
43 | pos=visiblePosition veh; | |
44 | dst=round (veh distance (vehicle player)); | |
45 | if ( ((vehicle _x)!=(vehicle player)) && {dst<=FFA_MARKERS_DISTANCE} ) then //&& ((_x in (units player)) || (FFA_MARKERS_TYPE!=FFA_MARKERS_GROUP)) | |
46 | { | |
47 | xname = name vehicle _x; //!!! | |
48 | nameq=parseText ""; | |
49 | if (veh!=_x) then | |
50 | { | |
51 | if (((_x==(effectiveCommander veh)) && {FFA_MARKERS_TYPE!=FFA_MARKERS_INFANTRY})) then //((_x in (units player)) && (FFA_MARKERS_TYPE==FFA_MARKERS_GROUP)) | |
52 | { | |
53 | if (dst<=((FFA_MARKERS_DISTANCE)/4)) then | |
54 | { | |
55 | textq = gettext(configFile >> "CfgVehicles" >> (typeof veh) >> "displayName"); | |
56 | mask="<t size='%4' shadow='true' align='center' color='%5'>%1</t><br/><t size='%4' shadow='true' align='center' color='%6'>[%2]</t><br/><t size='%4' shadow='true' align='center' color='%7'>%3m</t>"; | |
57 | nameq=parseText format[mask,xname,textq,dst,0.7,"#AAFFAA","#FFFFFF","#AAAAFF"]; | |
58 | pos=[pos select 0,pos select 1,(pos select 2)+4]; | |
59 | } else { | |
60 | mask="<t size='%1' shadow='true' align='center' color='%2'>.</t>"; | |
61 | nameq=parseText format[mask,2.0,"#AAFFAA"]; | |
62 | pos=[pos select 0,pos select 1,(pos select 2)+4]; | |
63 | }; | |
64 | } else { | |
65 | nameq=parseText ""; | |
66 | }; | |
67 | } else { | |
68 | if ((FFA_MARKERS_TYPE!=FFA_MARKERS_VEHICLES)) then | |
69 | { | |
70 | /* mask="<t size='%1' shadow='true' align='center' color='%2'>.</t>"; | |
71 | nameq=parseText format[mask,2.0,"#AAFFAA"]; | |
72 | pos=[pos select 0,pos select 1,(pos select 2)+4]; */ | |
73 | pos=[pos select 0,pos select 1,(pos select 2)+2.5]; | |
74 | if (dst<=((FFA_MARKERS_DISTANCE)/10)) then | |
75 | { | |
76 | lifestate=_x getVariable "FFA_LIFESTATE"; | |
77 | if !(isnil ("lifestate")) then | |
78 | { | |
79 | switch (_x getVariable "FFA_LIFESTATE") do | |
80 | { | |
81 | case FFA_LIFESTATE_HEALTHY: | |
82 | { | |
83 | mask="<t size='%3' shadow='true' align='center' color='%4'>%1</t><br/><t size='%3' shadow='true' align='center' color='%5'>%2m</t><br/>"; | |
84 | nameq=parseText format[mask,xname,dst,0.7,"#AAFFAA","#AAAAFF"]; | |
85 | }; | |
86 | case FFA_LIFESTATE_INJURED: | |
87 | { | |
88 | mask="<t size='%4' shadow='true' align='center' color='%5'>%1</t><br/><t size='%4' shadow='true' align='center' color='%6'>[%2]</t><br/><t size='%4' shadow='true' align='center' color='%7'>%3m</t>"; | |
89 | nameq=parseText format[mask,xname,localize "STR_MAP_Injured",dst,0.7,"#AAFFAA","#FFD700","#AAAAFF"]; | |
90 | }; | |
91 | case FFA_LIFESTATE_WOUNDED: | |
92 | { | |
93 | mask="<t size='%4' shadow='true' align='center' color='%5'>%1</t><br/><t size='%4' shadow='true' align='center' color='%6'>[%2]</t><br/><t size='%4' shadow='true' align='center' color='%7'>%3m</t>"; | |
94 | nameq=parseText format[mask,xname,localize "STR_MAP_WOUNDED",dst,0.7,"#AAFFAA","#FFA500","#AAAAFF"]; | |
95 | }; | |
96 | case FFA_LIFESTATE_DYING: | |
97 | { | |
98 | mask="<t size='%4' shadow='true' align='center' color='%5'>%1</t><br/><t size='%4' shadow='true' align='center' color='%6'>[%2]</t><br/><t size='%4' shadow='true' align='center' color='%7'>%3m</t>"; | |
99 | nameq=parseText format[mask,xname,localize "STR_MAP_Dying",dst,0.7,"#AAFFAA","#FF0000","#AAAAFF"]; | |
100 | }; | |
101 | case FFA_LIFESTATE_DEAD: | |
102 | { | |
103 | mask="<t size='%4' shadow='true' align='center' color='%5'>%1</t><br/><t size='%4' shadow='true' align='center' color='%6'>[%2]</t><br/><t size='%4' shadow='true' align='center' color='%7'>%3m</t>"; | |
104 | nameq=parseText format[mask,xname,localize "STR_MAP_Dead",dst,0.7,"#AAFFAA","#363636","#AAAAFF"]; | |
105 | }; | |
106 | ||
107 | default | |
108 | { | |
109 | mask="<t size='%3' shadow='true' align='center' color='%4'>%1</t><br/><t size='%3' shadow='true' align='center' color='%5'>%2m</t><br/>"; | |
110 | nameq=parseText format[mask,xname,dst,0.7,"#AAFFAA","#AAAAFF"]; | |
111 | }; | |
112 | }; | |
113 | } else { | |
114 | mask="<t size='%3' shadow='true' align='center' color='%4'>%1</t><br/><t size='%3' shadow='true' align='center' color='%5'>%2m</t><br/>"; | |
115 | nameq=parseText format[mask,xname,dst,0.7,"#AAFFAA","#AAAAFF"]; | |
116 | }; | |
117 | } else { | |
118 | mask="<t size='%1' shadow='true' align='center' color='%2'>.</t>"; | |
119 | nameq=parseText format[mask,2.0,"#AAFFAA"]; | |
120 | }; | |
121 | } else { | |
122 | nameq=parseText ""; | |
123 | }; | |
124 | }; | |
125 | ||
126 | } else { | |
127 | ctrlShow[ctrlq,false]; | |
128 | ctrlq ctrlSetStructuredText parseText ""; | |
129 | ctrlq ctrlCommit 0; | |
130 | waitUntil {ctrlCommitted ctrlq}; | |
131 | }; | |
132 | }; | |
133 | pos=worldToScreen pos; | |
134 | if ((count pos)!=0) then | |
135 | { | |
136 | ctrlShow[ctrlq,true]; | |
137 | ctrlq ctrlSetStructuredText nameq; | |
138 | ctrlq ctrlSetPosition [(pos select 0)-0.125,pos select 1]; | |
139 | ctrlq ctrlCommit 0; | |
140 | waitUntil {ctrlCommitted ctrlq}; | |
141 | }else { | |
142 | ctrlShow[ctrlq,false]; | |
143 | ctrlq ctrlSetStructuredText parseText ""; | |
144 | ctrlq ctrlCommit 0; | |
145 | waitUntil {ctrlCommitted ctrlq}; | |
146 | ||
147 | }; | |
148 | } else { | |
149 | ctrlShow[ctrlq,false]; | |
150 | ctrlq ctrlSetStructuredText parseText ""; | |
151 | ctrlq ctrlCommit 0; | |
152 | waitUntil {ctrlCommitted ctrlq}; | |
153 | }; | |
154 | }; | |
155 | // _i=_i + 1; | |
156 | // }ForEach playableUnits; | |
157 | }ForEach allUnits; | |
158 | }; | |
159 | }; |