ESX
- Você vai precisar de uma versão compatível do ESX Legacy (1.6.0 ou superior).
- Você pode converter inventários de jogadores com
convertinventory esx. - Todos os itens no banco de dados serão migrados para os dados internos de item.
- Sempre reinicie o resource quando os itens forem migrados!
Compatibilidade
Ox Inventory é um substituto completo para os sistemas existentes de item, inventário e armas; é inerentemente incompatível com ESX e quaisquer resources que dependam do comportamento padrão.
- Loadouts não existem e armas são tratadas como itens.
- Lojas e stashes padrão (ex.: esx_shops, esx_weaponshop e esx_policejob).
- Resources que alteram o inventário padrão do esx ou fornecem uma ui (ex.: esx_trunkinventory, esx_inventoryhud).
Instalação
- Use uma versão compatível do ESX Legacy (1.6.0+).
- Modifique seu
server.cfg, iniciando ox_inventory imediatamente após es_extended.
start oxmysql
start ox_lib
start es_extended
start qtarget
start ox_inventoryConverter dados de inventário ESX
- Inicie o servidor e digite
convertinventory esxno console do servidor. - Opcionalmente, digite
convertinventory esxpropertyno console do servidor. - Reinicie o servidor quando a conversão estiver completa.
Otimização opcional
Todas as funções relacionadas a itens do xPlayer, como xPlayer.getInventoryItem, foram modificadas para fins de compatibilidade; porém são consideradas depreciadas.
O raciocínio é bem simples - agora há referências adicionais de função e overhead a considerar. Felizmente, as novas funções de Inventário podem ser usadas diretamente e oferecem muitas melhorias sobre as antigas.
Você deve ler a seção de funções para mais informações, mas o seguinte deve dar uma boa ideia.
if xPlayer.getInventoryItem('acetone').count > 2 and xPlayer.getInventoryItem('antifreeze').count > 4 and xPlayer.getInventoryItem('sudo').count > 9 then
xPlayer.removeInventoryItem("acetone", 3)
xPlayer.removeInventoryItem("antifreeze", 5)
xPlayer.removeInventoryItem("sudo", 10)
endAdicione o código a seguir em algum lugar do seu resource para armazenar em cache a metatable de exports.
local ox_inventory = exports.ox_inventoryVocê poderá referenciar quaisquer funções expostas através do export.
local items = ox_inventory:Search(source, 'count', {'acetone', 'antifreeze', 'sudo'})
if items and items.acetone > 2 and items.antifreeze > 4 and items.sudo > 9 then
ox_inventory:RemoveItem(source, 'acetone', 3)
ox_inventory:RemoveItem(source, 'antifreeze', 5)
ox_inventory:RemoveItem(source, 'sudo', 10)
end