22/12/2022 13:21
(22/12/2022 02:09)Carlos Victor Escreveu: 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:
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.
Código PHP:
stock GetPlayerNameEx(playerid) {
static Name[MAX_PLAYER_NAME]; // 24 Células do MAX_PLAYER_NAME.
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
return Name;
}
Não estou disponível para realizar serviços relacionados ao SA-MP e não costumo responder a mensagens privadas, a menos que estejam relacionadas à moderação do fórum.