Français Solved Comment indiquer une zone de combat à chaque joueur qui y entre?

  • Auteur de la discussion Auteur de la discussion fox joe
  • Date de début Date de début

fox joe

User
20/2/20
8
1
0
0
bonjour, je viens vers vous pour une petite aide sur un script ou je bloque un peu,
le script se déclenche lorsque un joueur clique sur un ordinateur pour déclenche une zone de fight, le marqueur apparaît sans problème, un message indique a tout les joueurs du serveur que l'attaque a commencer mais j'aimerais que le message se remette pour tout joueur qui rentrer dans la zone afin de lui rappeler la zone de fight.
merci d'avance pour votre aide
 

Fichiers joints

Solution
Tu peux essayer comme ceci :
Code:
while {((getMarkerPos "frontiere") != [0,0,0])} do {
    _isInZone = true;
    if ((player distance [15712.53,17461.113,0]) > 50) then {
        _isInZone = false;
    } else {
        if !(_isInZone) then {
            hint localize "STR_ISTR_att_front";
            _isInZone = true;
        };
    };
    uiSleep 5;
};
Salut !
L'idée que j'ai serait de faire une boucle qui check régulièrement si le joueur est dans la zone. Je suis pas certain que ça soit optimisé mais ça devrait fonctionner.
Ajoute à la fin de ton fn_attfrontiere.sqf :
Code:
while {true} do {
    _isInZone = true;
    if ((player distance [15712.53,17461.113,0]) > 50) then {
        _isInZone = false;
    } else {
        if !(_isInZone) then {
            hint localize "STR_ISTR_att_front";
            _isInZone = true;
        };
    };
    uiSleep 5;
};
Le 50 correspond au rayon de la zone autour de la position [15712.53,17461.113,0].
Idéalement il faudrait modifier le while {true} par une condition qui aura une fin pour ne pas que la boucle continue jusqu'à ce que le joueur se déconnecte mais comme je sais pas à quel moment tu supprimes le marqueur, je ne peux pas faire mieux pour le moment :p
 
c'est un autre script qui delete le marqueur dans se script et qui envoie un message de fin d'action
en tout cas merci de ta réponse, je vais tester de suite
apres la condition c'est que le marqueur soit présent.
bon je revient vers vous car malheureusement sa ne fonctionne pas, pour vous repondre, le marker est supprimer lorsque un joueur clique sur un objet qui appelle un script qui supprime le marqueur tout simplement
 

Fichiers joints

Dernière édition:
Tu peux essayer comme ceci :
Code:
while {((getMarkerPos "frontiere") != [0,0,0])} do {
    _isInZone = true;
    if ((player distance [15712.53,17461.113,0]) > 50) then {
        _isInZone = false;
    } else {
        if !(_isInZone) then {
            hint localize "STR_ISTR_att_front";
            _isInZone = true;
        };
    };
    uiSleep 5;
};
 
Solution
si je comprend bien cette ligne
if ((player distance [15712.53,17461.113,0]) > 50) then {
je dois l'ecrire comme sa pour que sa prenne toute la zone
if ((player distance [15712.53,17461.113,0]) >800) then {
puisque mon elipse fait 800
non?
 
script régler je vous remercie, en faite il as fallut que je créer une nouvelle fonction pour que le message s'affiche a tout les monde.