Portal SAMP
[Ajuda] como setar valor em uma string dentro de uma enum? - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] como setar valor em uma string dentro de uma enum? (/showthread.php?tid=4573)



como setar valor em uma string dentro de uma enum? - nissin - 25/02/2024

preciso de ajuda com meu código, eu fiz uma enum com uma string dentro e quero setar um valor nessa string, mas tá dando erro no tamanho da array, podem me ajudar?

Código:
enum bInfos{
    Float:posbx,
    Float:posby,
    Float:posbz,
    dono[500],
    slot1[250],
    slot2[250],
    qtd1,
    qtd2
};
new BauInfo[1500][bInfos];

for(new l = 0; l < 100; l++){
        format(strf, sizeof(strf), "baus/%d.ini", l);
        if(!DOF2_FileExists(strf)){
         BauInfo[l][dono] = "vazio";
    }
}



RE: como setar valor em uma string dentro de uma enum? - White_Blue - 26/02/2024

(25/02/2024 23:45)nissin Escreveu: preciso de ajuda com meu código, eu fiz uma enum com uma string dentro e quero setar um valor nessa string, mas tá dando erro no tamanho da array, podem me ajudar?

Código:
enum bInfos{
    Float:posbx,
    Float:posby,
    Float:posbz,
    dono[500],
    slot1[250],
    slot2[250],
    qtd1,
    qtd2
};
new BauInfo[1500][bInfos];

for(new l = 0; l < 100; l++){
        format(strf, sizeof(strf), "baus/%d.ini", l);
        if(!DOF2_FileExists(strf)){
         BauInfo[l][dono] = "vazio";
    }
}

O problema é que você está definindo o tamanho da array "BauInfo" como 1500 mas está criando um loop do tamanho de 100, o que não faz sentido. Recomendo criar uma constante com o tamanho desejado.

Exemplo:
Código PHP:
const MAX_BAUS 100;

enum bInfos{
    
Float:posbx,
    
Float:posby,
    
Float:posbz,
    
dono[MAX_PLAYER_NAME+1/* Não faz sentido o tamanho dessa string ter 500 células sendo que o nome máximo de um jogador são 24 células. Sempre use o que você precisa no tamanho de strings, não há necessidade de exagerar */,
    
slot1[250],
    
slot2[250],
    
qtd1,
    
qtd2
};
new 
BauInfo[MAX_BAUS][bInfos];

for(new 
0MAX_BAUSi++){
// Seu código aqui


Assim você evita usar números mágicos e preserva a legibilidade do código além de facilitar na hora de escrever o código.


RE: como setar valor em uma string dentro de uma enum? - nissin - 05/03/2024

(26/02/2024 00:32)White_Blue Escreveu:
(25/02/2024 23:45)nissin Escreveu: preciso de ajuda com meu código, eu fiz uma enum com uma string dentro e quero setar um valor nessa string, mas tá dando erro no tamanho da array, podem me ajudar?

Código:
enum bInfos{
    Float:posbx,
    Float:posby,
    Float:posbz,
    dono[500],
    slot1[250],
    slot2[250],
    qtd1,
    qtd2
};
new BauInfo[1500][bInfos];

for(new l = 0; l < 100; l++){
        format(strf, sizeof(strf), "baus/%d.ini", l);
        if(!DOF2_FileExists(strf)){
         BauInfo[l][dono] = "vazio";
    }
}

O problema é que você está definindo o tamanho da array "BauInfo" como 1500 mas está criando um loop do tamanho de 100, o que não faz sentido. Recomendo criar uma constante com o tamanho desejado.

Exemplo:
Código PHP:
const MAX_BAUS 100;

enum bInfos{
    
Float:posbx,
    
Float:posby,
    
Float:posbz,
    
dono[MAX_PLAYER_NAME+1/* Não faz sentido o tamanho dessa string ter 500 células sendo que o nome máximo de um jogador são 24 células. Sempre use o que você precisa no tamanho de strings, não há necessidade de exagerar */,
    
slot1[250],
    
slot2[250],
    
qtd1,
    
qtd2
};
new 
BauInfo[MAX_BAUS][bInfos];

for(new 
0MAX_BAUSi++){
BauInfo[i][dono] = playername;// quero colocar o nome do usuario na variavel


Assim você evita usar números mágicos e preserva a legibilidade do código além de facilitar na hora de escrever o código.
oi amigo, mas no caso eu só quero saber como coloco o nome de um jogador na variável "BauInfo[i][dono]", pode ajudar?


RE: como setar valor em uma string dentro de uma enum? - pushline - 06/03/2024

Teria que pegar esse nome de algum lugar, tal como seu banco de dados(sql), dof2, ou pela forma que você salva.