16/05/2024 12:25
(15/05/2024 21:52)BitSain Escreveu:(15/05/2024 12:16)RamossFx Escreveu:Faz o Debug também após a formatação do itemName e manda o resultado aqui.Código:CMD:daritem(playerid, params[]){
if(sscanf(params, "us[30]d", params[0], params[1], params[2])) return SendClientMessage(playerid, -1, "Uso: /daritem [playerid] [item] [quantidade]");
printf("Debug [1]");
if(!IsPlayerConnected(params[0])) return 1;
printf("Debug [2]");
printf("playerid: %d | item: %s | quantidade: %d", params[0], params[1], params[2]);
new itemName[30];
for(new i = 0; i < sizeof(ItensArray); i++){
if(strcmp(params[1], ItensArray[i][item_name]) == 0){
format(itemName, sizeof(itemName), "%s", ItensArray[i][item_name]);
break;
}
}
if(isnull(itemName)){
SendClientMessage(playerid, -1, "{FFFFFF}* Item nao encontrado.");
return 1;
}
SendClientMessagef(playerid, -1, "{FFFFFF}* Voce deu {E84F33}%d{FFFFFF} unidades do item {E84F33}%s{FFFFFF} para o(a) {E84F33}%s(%d)", params[2], itemName, PegarNome(params[0]), params[0]);
givePlayerItem(params[0], params[1], params[2]);
return 1;
}
A intenção desse comando é dar um item a um player, mas não está achando o nome correto na lista (Array), fui printar os parâmetros passados, quando passei como parametro item o nome "Mochila". Mas me retornou isso: "M☺chila".
No segundo caractere, está retornando esse caractere aleatório. E no jogo, o caractere não aparece, fica vazio.
Mas então, não está nem chegando nessa parte. Pois como o caractere está trocado, aquela condição nunca vai ser válida.