12/09/2023 13:41
(Esta mensagem foi modificada pela última vez a: 12/09/2023 13:42 por White_Blue.)
(12/09/2023 00:37)Mist Escreveu: tenta fazer assim meu mano
stock load_Inventory(playerid){
new string[200];
new Query[100 + 15];
format(Query, sizeof(Query), "SELECT * FROM Inventarios WHERE nome = '%s' LIMIT 1", PegarNome(playerid));
new Cache:result = mysql_query(id_conexao, Query, true);
new maxSlots = GetPlayerMaxSlots(playerid);
for(new i = 0; i != maxSlots; i++){
format(string, 45, "slot%d", i);
cache_get_value_name_int(0, string, p_Inv[playerid][i][i_slot]);
format(string, 45, "qtd%d", i);
cache_get_value_name_int(0, string, p_Inv[playerid][i][i_qtd]);
printf("%i. Item: %d | Quantidade: %d", i + 1, p_Inv[playerid][i][i_slot], p_Inv[playerid][i][i_qtd]);
}
cache_delete(result);
return 1;
}
Não faz sentido esse loop...
Citar:Código PHP:for(new i = 0; i != maxSlots; i++)
Se a ideia é criar um loop mais otimizado que não rode o MAX_PLAYERS, então é melhor usar o foreach que roda o loop apenas nos jogadores conectados.
Tente o código:
Código PHP:
stock load_Inventory(playerid) {
new Query[256];
new string[MAX_PLAYER_NAME], string2[MAX_PLAYER_NAME];
format(Query, sizeof(Query), "SELECT * FROM Inventarios WHERE nome = '%s' LIMIT 1", PegarNome(playerid));
new Cache:result = mysql_query(id_conexao, Query);
foreach(Player, i) {
format(string, sizeof(string), "slot%d", i);
format(string2, sizeof(string2), "qtd%d", i);
cache_get_value_name_int(result, string, p_Inv[playerid][i][i_slot]);
cache_get_value_name_int(result, string2, p_Inv[playerid][i][i_qtd]);
printf("%i. Item: %d | Quantidade: %d", i + 1, p_Inv[playerid][i][i_slot], p_Inv[playerid][i][i_qtd]);
}
cache_delete(result);
return 0;
}
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.