Page 1 sur 1

script marqueurs joueurs

Posté : mar. 11 mars 2014, 23:13
par =[TTK]= Dobeul Ouépone
Salut,

est ce que quelqu'un de doué en script peut m'en faire un qui fait apparaitre des marqueurs sur tous les joueurs (alliés/ennemis en pvp) après un temps qu'on définit dans les paramètres dudit script svp ?

un truc du genre

this exec ["marqueurs.sqf",600]

sleep select0;
#loop
"m_1" setMarkerPos position soldat_1;
~0.1
goto "loop"

en version qui marche, parce que la syntaxe et moi, ça fait 2.

Merci !

Je ferai un bisou sur la fesse de mon bon samaritain à la couscous. :)

Re: script marqueurs joueurs

Posté : mer. 12 mars 2014, 09:45
par =[TTK]= Yourry
Je n'ai pas compris les "600". Tu souhaites qu'au bout de 600 secondes, le script affiche aussi la positon des ennemis ?

Re: script marqueurs joueurs

Posté : mer. 12 mars 2014, 18:21
par =[TTK]= Dobeul Ouépone
Je voudrais que personne ne voit les marqueurs pendant les 600 premières secondes (mais ça peut être 1800, au choix).
Passé ce temps, les marqueurs s'affichent sur tout le monde, pour tout le monde.
En fait, le nec plus ultra serait de pouvoir choisir ce temps dans les paramètres de mission en début de partie.

C'est pour accélérer la fin de partie, je peux te présenter mon nouveau concept de PvP ce soir si t'es là.
J'ai franchi un pas dans le machiavélisme...

Re: script marqueurs joueurs

Posté : mer. 12 mars 2014, 18:28
par =[TTK]= Yoda
Certes, machiavelico, mais tu devras quand même embrasser le cul d'un TTK ...
tsssstss, faut pas jouer avec ces choses là.

Re: script marqueurs joueurs

Posté : jeu. 13 mars 2014, 12:38
par =[TTK]= Dobeul Ouépone
quand ça veut pas ça veut pas, même le script le plus simple ne se lance pas,

this exec "marqueur.sqs" dans le trigger

#loop
"mon_marqueur" setMarkerPos position mon_soldat
~0.1
goto "loop"

enfin quoi mince, je sais bien que je suis une tanche en script mais faut pas déconner là...
Arma 3 ne gererait plus les .sqs ? ben si puisque ça marche avec les intros scene.sqs

à l'aide svp, ça fait maintenant 3 heures que je passe sur un script minable... :cry: :cry: :cry:

(@yoda ok mais sans photo hein, ça restera interne à la ttk)

Re: script marqueurs joueurs

Posté : jeu. 13 mars 2014, 16:13
par =[TTK]= Clem
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 :

Code : Tout sélectionner

time > 600 
et dans le champ surAct.

Code : Tout sélectionner

0 = ["player","allsides"] execVM "player_markers.sqf";    
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+

Re: script marqueurs joueurs

Posté : jeu. 13 mars 2014, 16:31
par =[TTK]= Dobeul Ouépone
Merci !

Re: script marqueurs joueurs

Posté : jeu. 13 mars 2014, 19:37
par =[TTK]= Yourry
La seconde méthode fonctionnera mais pas dans l'init.
Pense à truc clem, si tu colles isServer dans la condition du déclencheur seul le serveur active le déclencheur.
Or un script GPS est client uniquement.

Re: script marqueurs joueurs

Posté : jeu. 13 mars 2014, 20:14
par =[TTK]= Dobeul Ouépone
Clem a passé beaucoup de temps avec moi pour résoudre mon problème (qui n'est pas venu seul) et le test grandeur nature sur le serveur a fonctionné.
Mais comme on est pas à l'abri d'un problème caché,
je mets
time > 600
dans le déclencheur
et le isserveur, il est tout simplement supprimé ?

Re: script marqueurs joueurs

Posté : jeu. 13 mars 2014, 21:49
par =[TTK]= Yourry
Oui vire le isServer. Tu pourrais même mettre !(isServer) vu que c'est un script client.

Re: script marqueurs joueurs

Posté : ven. 14 mars 2014, 13:49
par =[TTK]= Terebantine
comme dit yoda,si tu veut de l aide il faudra embrasser mon cul après peut etre je chercherai une solution adéquate(peut etre) :D

Re: script marqueurs joueurs

Posté : ven. 14 mars 2014, 19:29
par =[TTK]= Balrog
Ouai ils ont raison bisouille moi le cul aussi............ mais juste pour le plaisirs parce que j'y bite rien à vos trucs