O problema parece ser que quando você equipa a munição imediatamente após equipar a arma, o jogo não reconhece que a arma foi equipada e, portanto, equipa a munição para a arma atual em mãos, independentemente do tipo de munição necessária.
Para corrigir isso, você precisará fazer com que o jogo reconheça que a arma foi equipada antes de tentar equipar a munição. Isso pode ser feito adicionando uma pequena pausa entre o equipamento da arma e o equipamento da munição. Por exemplo, você pode adicionar um setTimer de 500 milissegundos para esperar antes de equipar a munição, permitindo que a arma seja reconhecida e selecionada corretamente.
Aqui está um exemplo de como você pode adicionar um setTimer para a função giveWeapon que equipa a munição para a arma correta:
if itemClass == "Armas" then
if quantidade == 1 then
useWeapon(player, itemID, Config["Itens"][itemID]["Weapon"])
else
exports._infobox:addNotification(player, "Você pode equipar apenas um "..itemName.." por vez.", "error")
end
elseif itemClass == "Municao" then
local weapon = getPedWeapon(player)
if weapon and weaponsConfig[tonumber(weapon)] then
local weaponID = weaponsConfig[tonumber(weapon)].Item
if weaponID then
takeItem(player, itemID, quantidade)
exports._infobox:addNotification(player, "Arma recarregada", "success")
setTimer(giveWeapon, 500, 1, player, weapon, quantidade, true) -- adiciona um setTimer para esperar 500ms antes de equipar a munição
toggleControl(player, 'fire',true)
reloadPedWeapon(player)
else
exports._infobox:addNotification(player, "Essa arma usa outro tipo de munição!", "error")
end
else
exports._infobox:addNotification(player, "Fique com a arma na mão!", "error")
end
end
Espero que isso ajude a corrigir o problema do equipamento de munição para a arma errada.