22/12/2022 02:09
(Esta mensagem foi modificada pela última vez a: 22/12/2022 02:10 por Carlos Victor.)
Não é recomendável que utilize variáveis grandes de forma desnecessária, visto que o nome do jogador só cabe 24 caracteres, não tem por que criar uma
com 100 células. Também não é recomendável que utilize uma new numa função que será chamada constantemente muitas vezes por segundo, minutos, horas... Isto é, será criado a variável Nome toda vez a que a função pName for chamada.
E também não é legal retornar string por função, é recomendável que você crie um macro para isso e armazene o nome do jogador numa variável.
Código totalmente corrigido e melhorado:
Qualquer dúvida, responda o tópico com os erros e print do código.
Esquecid de falar da função IsAkt bom, basicamente o erro era por que você setava comparando a string de forma errada.
Não se compara a string usando == (ao menos no pawn), você precisa usar a função strcmp para isso, a função retorna 0 se for true.
com 100 células. Também não é recomendável que utilize uma new numa função que será chamada constantemente muitas vezes por segundo, minutos, horas... Isto é, será criado a variável Nome toda vez a que a função pName for chamada.
E também não é legal retornar string por função, é recomendável que você crie um macro para isso e armazene o nome do jogador numa variável.
Código totalmente corrigido e melhorado:
Código:
new playerName[MAX_PLAYERS][MAX_PLAYER_NAME];
#define GetName(%0) playerName[%0]
public OnPlayerConnect(playerid)
{
GetPlayerName(playerid, playerName[playerid], sizeof(playerName));
return 1;
}
stock IsAkt(playerid)
{
if(!strcmp(GetName(playerid), "ilakt", true)) {
return true;
}
return false;
}
Qualquer dúvida, responda o tópico com os erros e print do código.
Esquecid de falar da função IsAkt bom, basicamente o erro era por que você setava comparando a string de forma errada.
Não se compara a string usando == (ao menos no pawn), você precisa usar a função strcmp para isso, a função retorna 0 se for true.