Eu testei diferentes formas, e a única coisa que achei mais simples foi criar uma variável pra usar no sscanf na parte do nome do item.
Eu levantei uma hipótese, mas não sei se faz sentido pois nunca vi nada parecido.
Como você está acessando o conteúdo do params[1], eu acho que qnd você tá acessando a matriz 1 o 2⁰ caractere está sendo deletado, pois a posição 1 é o caractere 2...
Não faz muito sentido isso, mas só fiz criar a variável 'item' e funcionou.
A única coisa que fiz foi substituir o "params[1]" por "item".
Eu levantei uma hipótese, mas não sei se faz sentido pois nunca vi nada parecido.
Como você está acessando o conteúdo do params[1], eu acho que qnd você tá acessando a matriz 1 o 2⁰ caractere está sendo deletado, pois a posição 1 é o caractere 2...
Não faz muito sentido isso, mas só fiz criar a variável 'item' e funcionou.
Código PHP:
CMD:daritem(playerid, params[]){
new item[30];
if(sscanf(params, "us[30]d", params[0], item, 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], item, params[2]);
new itemName[30];
for(new i = 0; i < sizeof(ItensArray); i++){
if(strcmp(item, 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], itemName, params[2]);
return 1;
}
A única coisa que fiz foi substituir o "params[1]" por "item".