bon je n'ai pas envie de reprendre l’édition mais bon vu que c'est Dobeul donc je te file un truc susceptible de fonctionner mais je n'ai fais aucun test :
soit dans l'init tu fout ça :
Code : Tout sélectionner
if (time > 600) then
{
["player","allsides"] execVM "player_markers.sqf";
};
soit dans un déclencheur avec comme condition :
et dans le champ surAct.
et le script player_markers.sqf
Code : Tout sélectionner
*/
if (isDedicated) exitWith {}; // is server
if (!isNil{aero_player_markers_pos}) exitWith {}; // already running
private ["_marker","_markerText","_temp","_unit","_vehicle","_markerNumber","_show","_injured","_text","_num","_getNextMarker","_getMarkerColor","_showAllSides","_showPlayers","_showAIs","_l"];
_showAllSides=false;
_showPlayers=false;
_showAIs=false;
if(count _this==0) then {
_showAllSides=false;
_showPlayers=true;
_showAIs=!isMultiplayer;
};
{
_l=toLower _x;
if(_l in ["player","players"]) then {
_showPlayers=true;
};
if(_l in ["ai","ais"]) then {
_showAIs=true;
};
if(_l in ["allside","allsides"]) then {
_showAllSides=true;
};
} forEach _this;
aero_player_markers_pos = [0,0];
onMapSingleClick "aero_player_markers_pos=_pos;";
_getNextMarker = {
private ["_marker"];
_markerNumber = _markerNumber + 1;
_marker = format["um%1",_markerNumber];
if(getMarkerType _marker == "") then {
createMarkerLocal [_marker, _this];
} else {
_marker setMarkerPosLocal _this;
};
_marker;
};
_getMarkerColor = {
[(((side _this) call bis_fnc_sideID) call bis_fnc_sideType),true] call bis_fnc_sidecolor;
};
while {true} do {
waitUntil {
sleep 0.025;
true;
};
_markerNumber = 0;
// show players or player's vehicles
{
_show = false;
_injured = false;
_unit = _x;
if(
(
(_showAIs && {!isPlayer _unit} && {0=={ {_x==_unit} count crew _x>0} count allUnitsUav}) ||
(_showPlayers && {isPlayer _unit})
) && {
_showAllSides || side _unit==side player
}
) then {
if((crew vehicle _unit) select 0 == _unit) then {
_show = true;
};
if(!alive _unit || damage _unit > 0.9) then {
_injured = true;
};
if(!isNil {_unit getVariable "hide"}) then {
_show = false;
};
if(_unit getVariable ["BTC_need_revive",-1] == 1) then {
_injured = true;
_show = false;
};
if(_unit getVariable ["NORRN_unconscious",false]) then {
_injured = true;
};
};
if(_show) then {
_vehicle = vehicle _unit;
_pos = getPosATL _vehicle;
_color = _unit call _getMarkerColor;
_markerText = _pos call _getNextMarker;
_markerText setMarkerColorLocal _color;
_markerText setMarkerTypeLocal "c_unknown";
_markerText setMarkerSizeLocal [0.8,0];
_marker = _pos call _getNextMarker;
_marker setMarkerColorLocal _color;
_marker setMarkerDirLocal getDir _vehicle;
_marker setMarkerTypeLocal "mil_triangle";
_marker setMarkerTextLocal "";
if(_vehicle == vehicle player) then {
_marker setMarkerSizeLocal [0.8,1];
} else {
_marker setMarkerSizeLocal [0.5,0.7];
};
if(_vehicle != _unit && !(_vehicle isKindOf "ParachuteBase")) then {
_text = format["[%1]", getText(configFile>>"CfgVehicles">>typeOf _vehicle>>"DisplayName")];
if(!isNull driver _vehicle) then {
_text = format["%1 %2", name driver _vehicle, _text];
};
if((aero_player_markers_pos distance getPosATL _vehicle) < 50) then {
aero_player_markers_pos = getPosATL _vehicle;
_num = 0;
{
if(alive _x && isPlayer _x && _x != driver _vehicle) then {
_text = format["%1%2 %3", _text, if(_num>0)then{","}else{""}, name _x];
_num = _num + 1;
};
} forEach crew _vehicle;
} else {
_num = {alive _x && isPlayer _x && _x != driver _vehicle} count crew _vehicle;
if (_num>0) then {
if (isNull driver _vehicle) then {
_text = format["%1 %2", _text, name (crew _vehicle select 0)];
_num = _num - 1;
};
if (_num>0) then {
_text = format["%1 +%2", _text, _num];
};
};
};
} else {
_text = name _x;
};
_markerText setMarkerTextLocal _text;
};
} forEach allUnits;
// show player controlled uavs
{
if(isUavConnected _x) then {
_unit=(uavControl _x) select 0;
if(
(
(_showAIs && {!isPlayer _unit}) ||
(_showPlayers && {isPlayer _unit})
) && {
_showAllSides || side _unit==side player
}
) then {
_color = _x call _getMarkerColor;
_pos = getPosATL _x;
_marker = _pos call _getNextMarker;
_marker setMarkerColorLocal _color;
_marker setMarkerDirLocal getDir _x;
_marker setMarkerTypeLocal "mil_triangle";
_marker setMarkerTextLocal "";
if(_unit == player) then {
_marker setMarkerSizeLocal [0.8,1];
} else {
_marker setMarkerSizeLocal [0.5,0.7];
};
_markerText = _pos call _getNextMarker;
_markerText setMarkerColorLocal _color;
_markerText setMarkerTypeLocal "c_unknown";
_markerText setMarkerSizeLocal [0.8,0];
_markerText setMarkerTextLocal format["%1 [%2]", name _unit, getText(configFile>>"CfgVehicles">>typeOf _x>>"DisplayName")];
};
};
} forEach allUnitsUav;
_markerNumber = _markerNumber + 1;
_marker = format["um%1",_markerNumber];
while {(getMarkerType _marker) != ""} do {
deleteMarkerLocal _marker;
_markerNumber = _markerNumber + 1;
_marker = format["um%1",_markerNumber];
};
};
a toi de voir si ça marche ou ça te convient
a+