16.06.2017, 03:31
Quote:
Estou com erro neste cуdigo. A tabela de itens que crio parece estar certa.
Code:
new TabelaItens[][2][64] = { {355, "AK-47"} }; public OnGameModeInit() { new Texto[32]; format(Texto,sizeof(Texto),"%i\n%s", TabelaItens[0][0], TabelaItens[0][1]); Create3DTextLabel(Texto, -1, 0.0, 0.0, 0.0, 25.0, 0 ,0); CreatePickup(TabelaItens[0][0], 1, 0.0, 0.0, 0.0, 0); return 1; } Resultando nesse erro. Code:
error 035: argument type mismatch (argument 1) |
PHP Code:
new TabelaItens[][2][64] =
{
{355, "AK-47"}
};
Ao criar o seu cуdigo ao acessar o нndice 0 da segunda dimensгo vocк vai encontrar a terceira com 64 cйlulas e nгo somente sу uma como vocк pensou ao fazer este cуdigo.
dforum.png
Resumindo dentro da segunda dimensгo no нndice 0 (TabelaItens[0][0]) existe uma segunda array com 64 cйlulas e isso vai existir em todos o нndices existentes na segunda dimensгo.
Para contornar isso existe os enumeradores que permitem "criar" uma array dentro de um нndice.
PHP Code:
enum e{
numero,
string[64]
}
new TabelaItens[][e] =
{
{355, "AK-47"}
};
//Exemplo
printf("%d : %s", TabelaItens[0][numero], TabelaItens[0][string]);
//Saнda: 355 : AK-47
Espero que tenha entendido, mas caso nгo entenda pois minha explicaзгo esta meio confusa brinque com arrays e enumeradores:
PHP Code:
enum e{
numero,
string[64]
}
new TabelaItens[][e] =
{
{355, "AK-47"}
};
new TabelaItens2[][2][64] =
{
{355, "AK-47"}
};
main(){
printf("%d %c%c", TabelaItens[0][e:0], TabelaItens[0][e:1], TabelaItens[0][e:2]);
}