Français Marqueurs Dynamiques

Yuri Zoko

Leader
Membre du personnel
31/3/20
462
77
62
1 300
Suite à plusieurs demandes, je fais un petit tuto simple mais efficace qui vous permettra de DEPLACER un marqueur sur une position random depuis un array.

Pour commencer, il faudra créer un fichier dans le dossier life_server\Functions\Systems qui s'appellera "fn_dynMarkers.sqf", ajoutez dedans :
[CODE title="fn_dynmarkers.sqf"]/*
Author: Yuri Zoko
Web site: www.the-programmer.com
Discord: discord.the-programmer.com

Terms of use:
- This file is forbidden unless you have permission from the author. If you have this file without permission to use it please do not use it and do not share it.
- If you have permission to use this file, you can use it on your server however it is strictly forbidden to share it.
- Out of respect for the author please do not delete this information.

EXEMPLE :

_var = [[pos 1 XYZ],[pos 2 XYZ],[pos 3 XYZ]];
"name_marker" setMarkerPos (selectRandom _var);
*/

_weed = [[11561.5,7040.28,0],[11586.8,9060.27,0],[7454.65,12307,0]];
"weed_1" setMarkerPos (selectRandom _weed);[/CODE]

On va mieux comprendre le code :

On défini les différentes positions du marqueur voulues (par exemple : Kavala, Athira, Pyrgos), au démarrage du serveur, le script va sélectionner une position random et déplacer le marqueur présent sur la map (dans l'exemple "weed_1", sur la position random. Vous pouvez ajoutez autant de position random que vous le souhaitez il suffit de rajouter des données dans l'array :
Code:
_var = [[XYZ], [XYZ], [XYZ], [XYZ], [etc.....]];

Pour connaitre la position souhaitez pour le marqueur, téléportez vous à l'endroit souhaitez et tapez dans la console de debug :
[CODE title="debug"]getPos player[/CODE]

Une fois vos marqueurs et leurs positions réglées, allez dans l'init du life_server et ajoutez tout à la fin :
Code:
[] execVM "\life_server\Functions\Systems\fn_dynMarkers.sqf";

Voila ! Vous avez réussi à créer des marqueurs dynamiques (qui peuvent servir à créer des routes de farm aléatoire, etc)

Si ce tutoriel vous a plus, n’hésitez pas à mettre un petit like pour me motiver à en faire d'autres ! :)
 
Dernière édition par un modérateur:
  • Like
  • Love
Les réactions: Joe Dalton, lucas et Mathis
Plop !
Super bonne initiative, merci à toi Yuri pour ce tutoriel !

Je précise que pour avoir l'accès à la console de débug, il faut faire dans le chat (touche ! de base) :
Code:
#login adminpassword

Puis vous aurez "Connecté en tant qu'Administrateur".
Et vous pourrez faire Echap et y avoir accès. Avec infiStar, il me semble que F3 donne, aussi accès à la console de débug !
 
  • Like
Les réactions: Joe Dalton
Bonjour, peux t'on faire de meme avec un PNG? (vendeur de drogue) merci
 
Salut, pour un PNJ la méthode est un peu differente il faut le call compile puis le setPos. Voici un exemple de modification du script :
Code:
/*
    Author: Yuri Zoko
    Web site: www.the-programmer.com
    Discord: discord.the-programmer.com

    Terms of use:
      - This file is forbidden unless you have permission from the author. If you have this file without permission to use it please do not use it and do not share it.
      - If you have permission to use this file, you can use it on your server however it is strictly forbidden to share it.
      - Out of respect for the author please do not delete this information.

    EXEMPLE :

    _var = [[pos 1 XYZ],[pos 2 XYZ],[pos 3 XYZ]];
    "name_marker" setMarkerPos (selectRandom _var);
*/

_dealer1 = [[3112.06,14048.1,0.679745],[11368.5,1478.1,0]];
_dealer2 = [[11561.5,7040.28,0],[14839.5,2062.5,3.13195],[6836.97,5421.42,0.557526]];
_dealer3 = [[10686.5,12613.1,0.170524],[14280.7,12525.3,3.35208]];

// Markers
"Dealer_1_Marker" setMarkerPos (selectRandom _dealer1);
"Dealer_2_Marker" setMarkerPos (selectRandom _dealer2);
"Dealer_3_Marker" setMarkerPos (selectRandom _dealer3);

// objects
_DealerPNJ_1 = call compile "DealerPNJ_1";
_DealerPNJ_1 setPos (getMarkerPos "Dealer_1_Marker");

_DealerPNJ_2 = call compile "DealerPNJ_2";
_DealerPNJ_2 setPos (getMarkerPos "Dealer_2_Marker");

_DealerPNJ_3 = call compile "DealerPNJ_3";
_DealerPNJ_3 setPos (getMarkerPos "Dealer_3_Marker");
 
  • Like
  • Love
Les réactions: Joe Dalton et lucas
es ce que je doit mettre des pnj dans l'éditeur aux emplacement que j'ai choisi?
 
Non, tu met tes PNJ dans l'editeur n'importe où, il faut que le nom de la variable du PNJ correspondent à celui du call compile.
 
Verifies le nom de la variable du Dealer (PNJ) et de celui du fichier.
 
Chez moi tout fonctionne nickel, envoi ton fichier en paste-me et un screen de ton pnj