Cómo empezar
Crear una aplicación
En esta sección describiremos cómo construir la aplicación Infernus localmente.
Recomendamos encarecidamente usar la plantilla infernus-starter para crear un proyecto TypeScript simple.
Necesita tener conocimientos básicos de desarrollo nativo en Pawn y Node.js.
CLI
El proyecto utiliza pnpm para gestionar las dependencias, así que primero debe instalar pnpm.
Puede crear un proyecto fácilmente siguiendo las instrucciones de la línea de comandos.
pnpm dlx @infernus/create-app@latest createTIP
Dado que el CLI llama internamente a la API HTTP de GitHub, si su conexión de red es deficiente, es posible que no pueda crear la aplicación correctamente. En ese caso, consulte la sección Manual.
@infernus/create-app es una herramienta similar a sampctl que gestiona las dependencias de paquetes analizando las reglas de pawn.json. Puede usarla para administrar cómodamente dependencias de plugins o de open.mp.
Caché
WARNING
La caché generada por pnpm dlx puede ser demasiado persistente. Se recomienda eliminar manualmente la caché de dlx periódicamente; de lo contrario, incluso especificando @latest podría ejecutar una versión desactualizada.
- Windows:
C:\Users\%USERNAME%\AppData\Local\pnpm-cache\dlx - Linux:
~/.cache/pnpm/dlx
Ejemplo
# Instalar la CLI globalmente
pnpm add @infernus/create-app -g
# Actualizar si ya está instalada globalmente
pnpm update @infernus/create-app -g
# Crear un proyecto
infernus create <nombreApp>
# Instalar una o más dependencias.
# Todas las operaciones pueden especificar un número de versión, similar a la sintaxis de npm.
infernus add openmultiplayer/open.mp samp-incognito/samp-streamer-plugin@^2.9.6
# Instalar una dependencia de componente
infernus add katursis/Pawn.RakNet@^1.6.0-omp --component
# Modo producción (no copia archivos inc)
infernus add samp-incognito/samp-streamer-plugin@^2.9.6 -p
# Instalar todas las dependencias existentes (similar a sampctl ensure)
infernus install
# Modo producción (sin copiar archivos inc)
infernus install -p
# Desinstalar una o más dependencias
infernus remove openmultiplayer/open.mp samp-incognito/samp-streamer-plugin
infernus remove katursis/Pawn.RakNet
# Actualizar una dependencia (actualiza la caché global y el directorio actual)
infernus update openmultiplayer/open.mp
# Actualizar a una versión específica
infernus update openmultiplayer/open.mp@^1.2.0.2670
# Limpiar la versión de menor coincidencia de una dependencia global
infernus cache clean samp-incognito/samp-streamer-plugin@^2.9.6
# Limpiar todas las versiones de una dependencia global
infernus cache clean samp-incognito/samp-streamer-plugin
# Limpiar toda la caché global
infernus cache clean -a
# Configurar un token de GitHub para evitar límites de tasa (bajo demanda)
# Nota: la variable de entorno gh_token tiene prioridad sobre la configuración global
infernus config gh_token <tu_token_github>
# Mostrar la configuración global
infernus config -l
# Eliminar una configuración global
infernus config gh_tokenCaracterísticas
- Solo gestiona dependencias básicas de plugins; no administra librerías
includepuras. - Los paquetes instalados se almacenan en caché en
~/infernus/dependencies; las instalaciones posteriores de la misma versión copian desde la caché en lugar de descargar de nuevo. - La configuración se encuentra en
~/infernus/config.jsony actualmente solo contiene un campogh_tokenpara evitar los límites de tasa de la API de GitHub.
Manual
# Clonar mediante HTTPS
git clone https://github.com/dockfries/infernus-starter.git
# o mediante SSH
git clone git@github.com:dockfries/infernus-starter.git
# Si necesita raknet, clone la rama raknet
# git clone https://github.com/dockfries/infernus-starter.git -b raknet
# o mediante SSH
# git clone git@github.com:dockfries/infernus-starter.git -b raknet
# También puede descargar el repositorio directamente desde GitHub.
# Entre al directorio raíz del proyecto
cd infernus-starter
# Modifique la contraseña de rcon en config.json
vim config.json # no es necesario usar vim; cualquier editor vale
# "rcon": {
# "password": "changeme" # cambie changeme por su propia contraseña
# }WARNING
El repositorio ha eliminado los archivos necesarios para garantizar que siempre use las versiones más recientes de las dependencias y reducir el tamaño del repositorio. Esto significa que deberá completar los archivos manualmente.
Los archivos so/dll dependen del entorno donde ejecutará el servidor; elija la versión adecuada según su caso. En Linux solo necesita so; en Windows solo dll.
Descargue el servidor de juego OMP y extraiga
omp-server[.exe]y la carpetacomponentsen la raíz del proyecto.Descargue el plugin samp-node, extraiga
libnode.so/dllen la raíz del proyecto ysamp-node.so/dllen la carpetaplugins(créela si no existe).Descargue el plugin streamer y coloque
streamer.so/dllen la carpetaplugins.(Si necesita usar raknet) descargue el plugin raknet y coloque todos los archivos excepto los
.incen la carpetacomponents.- Reemplace
gamemodes/polyfill_raknet.amxporgamemodes/polyfill.amx, o modifique la secciónpawn.main_scriptsenconfig.json.
- Reemplace
"pawn": {
"main_scripts": ["polyfill_raknet 1"],
},Instalar dependencias y desarrollo
# Instalar dependencias
pnpm install
# Modo desarrollo (compilar, observar cambios y reiniciar automáticamente)
pnpm devCompilación y ejecución
# Compilar para producción
pnpm build
# Ejecutar el servidor
pnpm serve