Bonjour tout le monde je suis nouveau ici.
Je m'appelle Max et je programme en lua depuis 5 ans et c++ depuis 2 ans.



Ayant suivit votre tuto (assez complexe mais compréhensible) sur le lua et le c++ (partie 1)

je souhaitais pouvoir récupérer une table au lieu de la "table[2]" de votre exemple, une table par exemple :

matable = {}
for a = 1, 16 do
matable[a] = {x = 0, y = 0, id = 0}
end

voila merci se serrait gentil !

ps : le code suivant que jutilise ne me permet que de faire ceci :

maptable = {}
for a = 1, 16 do
matable[a] = {}
end

et le fameux code c++ que j'aimerais que vous m'aidiez à modifier ^^

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
	for(int i = 0; i < 16; i ++)
	{
		//récupération du contenu d'un tableau Lua depuis le code C
		lua_settop(state,0);
		lua_getglobal(state,"matable");
		if (!lua_istable(state,1))
		{
			fprintf(stderr,"la variable tableau n'est pas un tableau\n");
			lua_pop(state,1);
		}
		else
		{
			// on veut adresser la variable d'indice 2
			lua_pushnumber(state,i);
			// maintnenant on a dans la pile l'indice à la place 1 et le tableau
			// à la place 2 (car on a empilé l'indice par dessus)
			// on demande à Lua de remplacer le haut de la pile (donc notre indice)
			// par le contenu de la case du tableau en lui donnant l'adresse du tableau
			lua_gettable(state,-2); //ne pas changer le 2
			// on vérifie la donnée recuperée
			if (lua_isstring(state,-1))
			{
				perso[i].value = lua_tostring(state,-1);
//Ici jaimerai recup genre
//Perso[i].x = matable[i].x
//Perso[i].y = matable[i].y
//etc...
			}	
			// on dépile les deux éléments (la valeur de la case et le nom
			// du tableau)
			lua_pop(state,i);
		}	
	}
Je vous remercie !