Ox Lib
Uma biblioteca standalone para fornecer código reutilizável de forma fácil como módulos importáveis e exports.
Instalação
Recomendamos fortemente consultar os Guias para configurar o Git, Node.js e bun.
Baixe uma release ou compile o código-fonte.
- Baixe a release mais recente.
git clone https://github.com/overextended/ox_lib.git
cd ox_lib/web
bun i
bun run buildConfiguração
A configuração do recurso é feita utilizando convars.
# https://v6.mantine.dev/theming/colors/#default-colors
setr ox:primaryColor blue
setr ox:primaryShade 8
setr ox:userLocales 1 # Permite que os usuários escolham seus idiomas usando /ox_lib
setr ox:progressPropLimit 2 # Define o número máximo de props spawnados para a barra de progressoVocê também precisará conceder permissões ACE ao recurso.
add_ace resource.ox_lib command.add_ace allow
add_ace resource.ox_lib command.remove_ace allow
add_ace resource.ox_lib command.add_principal allow
add_ace resource.ox_lib command.remove_principal allowUso
Para habilitar a biblioteca no seu recurso, basta adicionar @ox_lib/init.lua como um shared_script no seu arquivo fxmanifest.lua.
shared_scripts {
'@ox_lib/init.lua',
}Ou, se este for o único shared script que você usa, pode fazer:
shared_script '@ox_lib/init.lua'Você pode especificar os módulos para importar no fxmanifest.lua, ou carregá-los dinamicamente.
ox_libs {
'locale',
'math',
'table',
}Quando o ox_lib for importado no seu script, ele disponibilizará várias variáveis globais:
libPara importar módulos dinamicamente do ox_lib.requirePara importar módulos do seu próprio script.cacheVeja aqui.
O pacote npm para a biblioteca não oferece suporte a todas as funções disponíveis para Lua.
Todas as funções suportadas estão localizadas dentro da pasta resource na lib.
Você pode obter o pacote npm aqui.
Uso: Você pode importar o objeto completo da biblioteca, que contém todas as funções para aquele escopo (client/server/shared), ou desestruturá-lo e importar apenas as funções necessárias no momento.
import lib from "@overextended/ox_lib/server";import { versionCheck } from "@overextended/ox_lib/server";Agora você pode usar as funções da biblioteca dentro do seu recurso; verifique o restante da documentação para ver como utilizá-las.
Usando ícones nas interfaces
A biblioteca de ícones utilizada é a Font Awesome 6.0. Se você definir apenas uma string para o ícone, o tipo padrão será solid.
Se quiser usar um tipo de ícone diferente (por exemplo, apple como brand), é necessário definir o ícone como uma tabela (array) com o primeiro valor sendo o tipo (fas, far, fab) como string, e o segundo sendo o nome do ícone.
icon = {'fab', 'apple'}icon: ["fab", "apple"];Compilando a UI
Se desejar editar qualquer elemento da UI, será necessário baixar o código source, editar o que for preciso e compilá-lo.
NÃO faça de-bundle ou desminifique os arquivos CSS/JS de release para editá-los.
Recomendamos fortemente consultar os Guias para configurar o Git, Node.js e bun.
Compilando a UI:
- Entre no diretório
web. - Rode
bun ipara instalar as dependências. - Rode
bun run buildpara compilar os arquivos fonte.
Ao trabalhar no navegador, você pode executar bun start, que oferece hot reload: assim você verá suas alterações após salvar o arquivo.
Se quiser trabalhar dentro do jogo, execute bun start:game, que escreve as alterações no disco; nesse caso, basta reiniciar o recurso para que tenham efeito.