Plugin de anuncios rotativos para CS2 usando CounterStrikeSharp.
Cada IntervalSeconds segundos (30 por defecto) el plugin muestra un anuncio de la lista
por chat y/o pantalla central, avanzando al siguiente en cada tick (o en orden aleatorio si se
activa RandomOrder).
- Servidor CS2 con Metamod:Source y CounterStrikeSharp instalados.
- .NET 10 SDK para compilar (la versión actual del paquete
CounterStrikeSharp.APIen NuGet exigenet10.0; si tu build de CounterStrikeSharp es más antigua y usanet8.0, fija<TargetFramework>net8.0</TargetFramework>enCS2Ads.csprojy<PackageReference Include="CounterStrikeSharp.API" Version="1.0.3xx" />con una versión acorde).
dotnet build -c ReleaseEl .dll resultante queda en bin/Release/net10.0/CS2Ads.dll.
-
Copia
CS2Ads.dll(y las demás dependencias generadas en esa carpeta) a:game/csgo/addons/counterstrikesharp/plugins/CS2Ads/ -
Copia
configs/CS2Ads.json(incluido en este repo) a:game/csgo/addons/counterstrikesharp/configs/plugins/CS2Ads/CS2Ads.jsonSi no lo copias, no pasa nada: CounterStrikeSharp genera ese mismo archivo automáticamente la primera vez que carga el plugin, usando los valores por defecto definidos en
CS2AdsConfig.cs. -
Inicia o reinicia el mapa.
Los anuncios no están en el código — viven en el JSON de configuración del servidor
(CS2Ads.json), así que puedes cambiarlos en cualquier momento sin recompilar el plugin:
- Abre
game/csgo/addons/counterstrikesharp/configs/plugins/CS2Ads/CS2Ads.jsonen el servidor. - Añade, edita o borra strings dentro del array
"Messages". - Guarda y, desde la consola del servidor (o RCON), ejecuta
css_plugins reload CS2Ads(o cambia de mapa) para que recargue la config sin reiniciar el servidor entero.
Si además quieres llevar control de versiones de tus anuncios, edita también
configs/CS2Ads.json en este repo y haz commit — es una copia idéntica a la que
usa el servidor, pensada para servir como plantilla/backup versionado.
{
"Enabled": true,
"IntervalSeconds": 30.0,
"RandomOrder": false,
"Mode": "chat",
"Prefix": "{default}[SERVER]{default}",
"Messages": [
"{prefix} Bienvenido al servidor, escribe !discord para unirte a la comunidad.",
"{prefix} Mapa actual: {map} - Jugadores: {players}/{maxplayers}",
"{prefix} Sigue las reglas del servidor para evitar sanciones.",
"{prefix} Visita nuestra web: www.example.com"
],
"ConfigVersion": 1
}Mode:chat,centeroboth.- Placeholders disponibles en cada mensaje:
{prefix},{map},{players},{maxplayers}. - Tags de color: cualquier nombre de
ChatColors(p. ej.{default},{red},{green},{gold},{lightblue},{purple},{yellow},{orange},{lime},{grey}...). Solo aplican al modo chat; encenterse eliminan automáticamente.