Una guía sobre cómo compilar plugins de SourceMod.
Los plugins de SourceMod son scripts o addons personalizados creados para ampliar y modificar la funcionalidad de los servidores de juego que funcionan con el motor Source.
El lenguaje de programación asociado al código fuente de los plugins de SourceMod es SourcePawn. La extensión de archivo de SourcePawn es sp.
Compilar plugins de SourceMod es bastante sencillo y se explicará a continuación.
Descargar SourceMod
Consulta la siguiente guía sobre cómo descargar y extraer SourceMod. No necesitas instalar SourceMod en tu servidor para compilar plugins.
https://moddingcommunity.com/blog/how-to-install-update-sourcemod-metamod/
Después de extraer los archivos de SourceMod, ve al directorio addons/sourcemod/scripting en Linux (o a la carpeta addons\sourcemod\scripting en Windows).
Compilar plugins de SourceMod
Compilar plugins de SourceMod suele ser bastante fácil, especialmente en Windows.
Windows
Explorador de archivos de Windows
Si quieres compilar plugins rápidamente, puedes arrastrar y soltar el archivo del código fuente del plugin sobre el ejecutable compile.exe ubicado en la carpeta scripting. Se abrirá una ventana del Símbolo del sistema y verás la salida de la compilación. Si la compilación fue exitosa, verás los plugins compilados dentro de la carpeta compiled. Los plugins de SourceMod compilados suelen tener la extensión de archivo smx.

Aunque este método es rápido y sencillo, el método por línea de comandos que se explica a continuación incluye más opciones que puedes configurar.
Línea de comandos
Si quieres compilar plugins mediante la línea de comandos usando el Símbolo del sistema o PowerShell, primero tendrás que abrir una terminal y cambiar a la carpeta scripting.
A continuación, deberás usar los ejecutables spcomp.exe o spcomp64.exe (para soporte de 64 bits) para compilar los plugins.
Aquí tienes un comando básico que compila un plugin.
.\spcomp.exe <Plugin File Name With Extension>
Por ejemplo, si queremos compilar el plugin basechat incluido, usaríamos el siguiente comando.
.\spcomp.exe basechat.sp
Linux
Para compilar plugins de SourceMod desde una terminal de Linux, puedes seguir un proceso similar al método de línea de comandos en Windows explicado más arriba. Deberás usar los ejecutables spcomp o spcomp64 (para soporte de 64 bits) para compilar los plugins.
Aquí tienes un comando básico que compila un plugin.
./spcomp <Plugin File Name With Extension>
Por ejemplo, si queremos compilar el plugin basechat incluido, usaríamos el siguiente comando.
./spcomp basechat.sp
Si la compilación fue exitosa, verás el nuevo archivo del plugin compilado en el mismo directorio que el código fuente (scripting/).
Opciones adicionales de la línea de comandos
Como se indicó anteriormente, compilar plugins desde la línea de comandos te permite establecer opciones adicionales. Aquí tienes la salida del menú de ayuda, que proporciona una lista de los flags y argumentos que puedes usar.
SourcePawn Compiler 1.11.0.6969
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2021 AlliedModders LLC
Usage: ./spcomp [options] <filename> [filename...]
optional arguments:
--show-stats Show compiler statistics on exit.
-D Active directory path
--active-dir=ACTIVE_DIR
-e Error file path
--error-file=ERROR_FILE
-E, --warnings-as-errors Treat warnings as errors
-h, --show-includes Show included file paths
-z
--compress-level=COMPRESS_LEVEL
Compression level, default 9 (0=none, 1=worst,
9=best)
-t, --tabsize=TABSIZE TAB indent size (in character positions,
default=8)
-v, --verbose=VERBOSE Verbosity level; 0=quiet, 1=normal, 2=verbose
-p, --prefix=PREFIX Set name of "prefix" file
-o, --output=OUTPUT Set base name of (P-code) output file
-O, --opt-level=OPT_LEVEL
Deprecated; has no effect
-i, --include=INCLUDE Path for include files
-w, --warning=WARNING Disable a specific warning by its number.
-;, --require-semicolons Require a semicolon to end each statement.
--syntax-only Perform a dry-run (No file output) on the input
--use-stderr Use stderr instead of stdout for error messages.
--no-verify Disable opcode verification (for debugging).
sym=val Define constant "sym" with value "val".
sym= Define constant "sym" with value 0.
Por ejemplo, en Linux, si queremos que el plugin basechat compilado correctamente vaya al directorio compiled/, usaríamos el/los siguiente(s) comando(s).
# Make sure compiled directory is made.
mkdir -p compiled
# Output: compiled/basechat.smx
./spcomp -o compiled/basechat basechat.sp
Archivos include
Hay muchos plugins de SourceMod publicados que contienen archivos include con la extensión de archivo inc. Estos archivos deben ir en el directorio/carpeta include/. De lo contrario, es probable que los plugins no se compilen.
Además, puedes usar el flag -i al compilar desde la línea de comandos para incluir directorios y carpetas fuera del directorio o carpeta include predeterminado.
Conclusión
¡Eso es todo! Ahora deberías conocer todos los métodos para compilar plugins de SourceMod.
Si tienes alguna pregunta o comentario sobre esta guía, ¡responde en su tema del foro aquí! Esta guía se seguirá trabajando y mejorando con el tiempo.
¡Únete a nuestro servidor de Discord!
