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
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 :)
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 ^^
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 !
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...