16 Juin 2024 à 08:06:30

Nouvelles:

Teamspeak 3 OFCRA
IP : ts.ofcra.org
Mot de passe : mineisbiggerthanyours
Discord: https://discord.gg/bWtGS7N


/!\ L'OFCRA RECRUTE /!\


Générateur de marker

Démarré par Empaleur, 07 Juillet 2012 à 22:32:28

« précédent - suivant »

0 Membres et 1 Invité sur ce sujet

Empaleur

Bonsoir,

J'aurai besoin d'un bout de script permettant la génération d'une grille.
Des markers rectangulaire de 1 km² calqué sur la grille de la carte.
Si quelqu'un pouvaient me dépanner.

Bisous


Zombi

Sur toute la carte ?

Je connais pas la taille en km de la carte et je ne connais pas de fonction le permettant...

Citer
max_X = 10000; // donnée invalide actuellement : taille de la carte en m pour l'axe EST-OUEST
max_Y = 10000; // donnée invalide actuellement : taille de la carte en m pour l'axe NORD-SUD

x = 0; // variable de boucle
y = 0; // variable de boucle

while {y<=max_Y} do
{
     while{x<= max_X} do
     {
          _markername = format["m%1_%2",x,y];
          _marker = createMarker[_markername, [x,y,0]];
          _marker setMarkerShape "RECTANGLE";
          _marker setMarkerSize [1000,1000];
         
           x = x+1000;
     };
     
     x = 0;
     y = y + 1000;
};


Ensuite, je ne sais pas de quelle couleur tu veux les mettre, ni le type de remplissage (couleur pleine, diagonales, etc...) mais ya les fonctions setmarker.... pour ça.
Je sais pas si ça marche, mais ça te donne déjà une bonne idée du bordel.

Si t'as besoin de plus, dis le moi :)

Empaleur

#2
Alors, après convertion de mon script pour ARMA, cela donnerai :
Citer/////////////////////////// CODE /////////////////////////////////
//Sélection du rectangle de jeu x=14 y=10
   _BR_max = [14,10];

//Définition du focus de départ, la zone max
   _BR_tz_focus = [0,((_BR_max select 0) - 1),0,((_BR_max select 1) - 1)];


//Définition de la plage de zone
   _BR_zone0 = getmarkerpos "Zone0";
   _x0 = (_BR_zone0 select 0);//zone0
   _y0 = (_BR_zone0 select 1);//Zone0
   _x1 = 0;
   _y1 = 0;
   _z = 0; //nom de zone
   _BR_zone_name = 0;
   //(_BR_max select 1)
   while {_y0 <= 14} do
   {//(_BR_max select 0)
      while{_x0 <= 10} do
      {
         _markername = format["m%1",_z];
         marker = createMarker[_markername, [_x0,_y0,0]];
         marker setMarkerShape "RECTANGLE";
         marker setMarkerSize [500,500];
         marker setMarkerBrush "DiagGrid";
         marker setmarkercolor "ColorWhite";
         (_BR_zone_name select _x1) set [_y1, _z];
         _x0 = _x0 + 1000;
         _x1 = _x1 + 1;
         _z = _z + 1;
      };
      
      _x0 = (_BR_zone0 select 0); //zone0
      _x1 = 0;
      _y0 = _y0 + 1000;
      _y1 = _y1 + 1;
   };
Mais ca ne marche pas et il ne se passe rien.
Pourquoi ARMA est si merdique ?

Pour expliquer, "Zone0" est un marqueur sur carte qui détermine la zone de départ du quadrillage.
Le focus sert à rien pour le moment.
(_BR_max select1) qui est commenté aurait du aller à la place de 14, et pareil pour 10.

Je lance le script avec un addaction mais rien ne se passe.
Merci ^^


Warlock

Autre méthode plus lourde à mettre en place création d'un script qui envoi les coordonnées de la zone à utiliser via un hint ou une note pour chaque joueurs exemple :
"Maintenant tu bouge en 053-056 (marge de 3 cases en x) / 058-061 (marge de 3 cases en y)  au joueurs de se faire une représentation mentale de la zone qui représente alors un carré de 3 cases sur 3 !

Zombi

Pour le debug : tu lances ton jeu avec -showscripterrors en paramètre supplémentaire et tu auras un truc indicatif.

Sinon tu mets des hint "lala"; partout pour voir tes valeurs et voir où tu passes et où tu passes pas.

Typiquement un
Citerhint format ["_x0 = %1",_x0];
te montrera la valeur de ta variable (tu peux en mettre plein avec %1, %2, %3 etc...