Version 1.5 (06/04/2004)
Este manual es algo que queria hacer hace mucho tiempo atras pero por razones obvias de tiempo, no pude hacerlo. Es estrictamente para Linux, aunque, muchos conceptos igual se aplican para Windows, especialmente muchos parametros de configuracion. Cubre desde la instalacion del HLDS/CS 1.6, configuracion de Adminmod, Cheating-Death (opcional), Statsme (opcional) y Psychostats.
Esta guia asume que ya tienen un conocimiento basico de Linux. No pretendo enseñarles Linux aqui, asi que TIENEN que tener un conocimiento minimo del sistema operativo asi como de las herramientas basicas de Linux (tar, vi, cp, etc.). En todo momento los pasos son para el usuario root para no tener problemas de permisos, pero pueden realizar la instalacion sin problemas con cualquier usuario, pero obviamente necesitan un conocimiento medio/avanzado para modificar despues los scritps, ya que todo esta diseñado para que sea ejecutado por root.
La instalacion de un servidor de CS 1.6 no difiere mucho con uno de 1.5, asi que buena parte de las instruccion que aparecen mas abajo, tambien aplican para la 1.5, pero que quede claro que este manual esta enfocado solamente a la version 1.6/Steam.
Es bueno tener claro que Steam se actualiza todas las semanas, por lo que en muchos casos tendran que actualizar las versiones de los mods instalados, o simplemente no trabajaran correctamente, como es el caso de Cheating-Death o hasta Metamod. Para el caso de servidores, el Steam sirve unica y exclusivamente para mantener actualizado el HLDS y CS, nada mas. No requiere de CDKEY.
1. Conseguir todos los programas y mods.
Esto ya es a eleccion de cada uno, ya que dependera de que cosas quieran tener en su servidor. Igualmente pueden bajar dichos programas de cualquier sitio de su preferencia.
HLDS 1120
ftp://ftp.cablenet.com.pe/games1/ste..._1120_full.tgz
Adminmod 2.50.59
http://sourceforge.net/project/showf...ease_id=207257
Cheating-Death
http://www.unitedadmins.com/cdeath-dl.php
Statsme
http://sourceforge.net/project/showf...group_id=59321
Psychostats
http://www.psychostats.com/downloads.php
Mis scripts
ftp://ftp.cablenet.com.pe/games1/tools/scripts.tgz
2. Instalacion del HLDS + Steam
Por costumbre yo siempre uso la ruta (ustedes pueden elegir la que deseen):
Código:
/usr/local/games /steam
Asi que es ahi donde instalaremos todo en este manual:
Código:
cd /usr/local/games
tar xvfz hlds_l_1120_full.tgz
mv hlds_l steam
cd steam
Ahora necesitamos crear una cuenta para poder usar el instalador de Steam. Para eso debemos correr el steam con la siguiente sintaxis:
Código:
./steam –create <usuario> <password> <pregunta> <respuesta>
Algo asi como esto:
Por ser la primera vez que usamos Steam, este actualizara el Steam (HLDS Update Tool), asi que una vez que lo actualice, debemos ingresar el comando nuevamente. Al finalizar la operacion debe darnos un mensaje como este:
Código:
Creating Account
Account Created successfully
Nota: es probable que la cuenta que elijamos ya exista por lo que tendremos que cambiar el usuario.
Ahora que ya tenemos una cuenta creada, debemos actualizar toda la plataforma de Steam y CS con el comando:
Esta parte puede tomar BASTANTE tiempo, asi que es mejor que vayan a comer algo mientras termina, ya que bajara todos los updates de Steam a la fecha para su servidor (HLDS, HL y CS).
Una vez finalizado, ya tenemos el HLDS listo para funcionar. El siguiente paso sera hacer una prueba SIN mods ni plugins para asegurarnos que todo esta OK.
Nota: Todos los miercoles se actualiza Steam, por lo que sera necesario ejecutar el mismo comando :
o sino agregar el comando ‘-autoupdate’ al script de inicio del servidor. En lo personal prefiero actualizar manualmente el servidor para asi tener claro que hay de denuevo, aunque sea tedioso.
3. Configuracion base del servidor de CS 1.6
Antes de pasar a instalar siquiera Adminmod, es mejor idea hacer funcionar el HLDS sin nada mas adicional, para asi descartar cualquier problema posterior. Para esto, lo primero que debemos hacer es asegurarnos que nuestro archivo /etc/hosts concuerde con el ip y nombre de la maquina. El contenido de dicho file debe tener algo como esto :
Código:
127.0.0.1 localhost.localdomain localhost
192.168.159.128 server.midominio.com server
Donde la segunda linea indica el ip del server. Este paso no es indispensable pero suele resolver una buena cantidad de problemas que se dan.
Luego debemos habilitar la opcion de logs del server para asi poder ver por consola y en los logs, cualquier problema que se presente. El comando “log on” habilita los logs. Es recomendable crear un archivo autoexec.cfg dentro del directorio cstrike que contenga este comando :
Código:
echo “log on” > cstrike/autoexec.cfg
Finalmente, debemos ejecutar el HLDS con una linea de comandos como esta :
Código:
./hlds_run -game cstrike -nomaster +maxplayers 20 +map de_dust2 -norestart –insecure +sv_lan 1
Con esto, el servidor levantara y estara listo para que clientes/jugadores se conecten a manera de prueba. El comando 'stat' mostrara informacion basica del servidor como el nombre, version, jugadores, ips, ping, etc. El comandos 'stats' (plural) mostrara informacion del consumo de recursos como CPU y lo mas importante, los FPS del server.
Por ahora, lo mas importante es que los clientes puedan conectarse y jugar sin problemas. Mas adelante tocaremos las recomendaciones para tener mejor performance en el servidor. Si todo esta OK, pasemos a la instalacion de mods y plugins.
4. Instalacion de Adminmod
La instalacion de Adminmod es bastante simple :
Código:
cd /usr/local/games/steam
tar xvfz halflife-admin-2.50.59.tar.gz
Esto nos creara un directorio Adminmod en el directorio steam. Antes de proceder con la instalacion de Adminmod, es bueno modificar algunos plugins que vienen por defecto para asi evitar tener problemas con usuarios molestos que se divierten invocando comandos como votaciones o escribiendo demasiado texto (flood).
Restriccion de admin_vote_kick y admin_vote_map a solo Admins :
Código:
#
#-----[ ABRIR ]------------------------------------------
#
/usr/local/games/steam/Adminmod/scripting/include/admin.inc
#
#-----[ BUSCAR ]-----------------------------------
#
#define ACCESS_VOTE_KICK 1
#define ACCESS_VOTE_MAP 1
#
#-----[ REEMPLAZAR CON ]---------------------------
#
#define ACCESS_VOTE_KICK 131071
#define ACCESS_VOTE_MAP 131071
Restriccion de admin_vote_restart a solo Admins :
Código:
#
#-----[ ABRIR ]------------------------------------------
#
/usr/local/games/steam/Adminmod/scripting/examples/plugin_CS.sma
#
#-----[ BUSCAR ]-----------------------------------
#
#define ACCESS_VOTE_RESTART 1
#
#-----[ REEMPLAZAR CON ]---------------------------
#
#define ACCESS_VOTE_RESTART 131071
Antiflood mas preciso
Código:
#
#-----[ ABRIR ]------------------------------------------
#
/usr/local/games/steam/Adminmod/scripting/examples/plugin_antiflood.sma
#
#-----[ BUSCAR ]-----------------------------------
#
#define MAX_LIMIT 5
#define WARN_LIMIT 4
#define MAX_SECS 2
#
#-----[ REEMPLAZAR CON ]---------------------------
#
#define MAX_LIMIT 3
#define WARN_LIMIT 2
#define MAX_SECS 3
Modificar estos plugins es opcional, pero muy recomendado ya que les hara la vida facil. Existen muchos usuarios que encuentran divertido abusar de estos comandos y si no se restringen, realmente la administracion es bastante complicada. El ultimo paso es compilar los plugins :
Código:
cd /usr/local/games/steam/Adminmod/scripting/examples
./compile_all
Listo. Ahora si podemos proceder a instalar el Adminmod :
Código:
/usr/local/games/steam/Adminmod
./install_admin
Solo debemos seguir las indicaciones en pantalla (en ingles). Las respuestas a cada una de las preguntas en orden serian :
Código:
y
/usr/local/games/steam
1
y
y
Ahora nos queda proceder con la configuracion de Adminmod. Antes que nada, debemos tener nuestro server.cfg y el script de inicio ya configurados. He hecho un grupo de scripts para facilitar esta tarea. Trabajo generalmente con RedHat, pero son facilmente adaptables a cualquier distribucion Desempaqueten el file en un directorio cualquiera, fuera de la instalacion de steam que hemos hecho:
Código:
tar xvfz scripts.tgz
El primer file a utilizar es el server.cfg.
Código:
cp server.cfg /usr/local/games/steam/cstrike/
editenlo segun sus necesidades. Es una configuracion base, asi que en realidad solo deberian cambiar el nombre del servidor y el rcon_password.
El siguiente archivo seria el hlds1, que es el script para iniciar el server :
Código:
cp hlds1 /etc/init.d/
igualmente editarlo segun sus necesidades. Antes de continuar, debemos probar si el servidor levanta bien y los usuarios se pueden conectar :
Código:
/etc/init.d/hlds1 start
El script de inicio usa un programa llamado screen, que permite que la aplicacion siga corriendo asi yo me desconecte de la sesion y que se pueda acceder a la consola en cualquier momento. Para poder ver la consola, debo digitar el comando :
Comandos utiles aqui seran stat y stats, pero sobre todo meta version y meta list para asegurarnos que metamod y adminmod estan corriendo como debe ser. La prueba final es que un usuario pueda conectarse sin problemas.
Para salir del screen, debemos presionar Ctrl+A+D, pero en este caso como vamos a realizar mayores modificaciones al Adminmod, es bueno que paremos el servidor con el comando quit.
Nota: muchas veces las sesiones de screen no son cerradas adecuadamente con Ctrl+A+D o porque el HLDS murio. En esos casos debemos usar el comando screen –wipe para borrar aquellas sesiones de screen que aparecen muertas y que ya no estan operativas.
Para que la instalacion de Adminmod este concluida, solo nos queda editar 3 archivos, el adminmod.cfg, plugins.ini y el users.ini ubicados en :
Código:
/usr/local/games/steam/cstrike/addons/adminmod/config/
adminmod.cfg : el archivo que viene con la instalacion de Adminmod se explica por si solo, pero si quieren evitarse el tener que leerlo todo y tener uno ya hecho, pueden usar el que esta dentro de mis scripts. Cuestion de modificarlo segun sus necesidades y listo.
plugins.ini : yo suelo retirar dejar solo los plugins necesarios para que el servidor trabaje. Cada a criterio de ustedes si dejan todos los que la instalacion por defecto usa o un menor numero. Los que suelo dejar son solo estos :
Código:
addons/adminmod/scripts/plugin_antiflood.amx
addons/adminmod/scripts/plugin_base.amx
addons/adminmod/scripts/plugin_CS.amx
addons/adminmod/scripts/plugin_hldsld_mapvote.amx
addons/adminmod/scripts/plugin_message.amx
addons/adminmod/scripts/plugin_retribution.amx
users.ini : aqui es donde se agregan los admins. La sintaxis es bastante simple pero a veces puede ser confuso. Para agregar un admin solo tenemos que agregar una linea que contenga el nombre/nick del admin, su password y su nivel de acceso, todo separado por dos puntos ( : ), como por ejemplo :
Devil:skyline:131071
esto creara el admin ‘Devil’, con password ‘skyline’ y nivel de acceso 131071, que es el mas alto y tiene acceso a TODOS los comandos. Como definir que nivel de acceso darle a un admin ? Si por ejemplo queremos darle acceso al comando admin_xxx que es nivel 2, y al comando admin_yyy que es nivel 16, simplemente sumamos los niveles y le damos nivel 18. Como saber todos los comandos y sus respectivos niveles ? Aqui :
http://www.adminmod.org/help/online/...n_Commands.htm
Incluso hay una calculadora que nos simplifica la vida. Basta con marcar que comandos queremos tener para nuestro admin, y luego presionamos “Calculate Levels” y realizara la suma. Ese numero es el que debemos usar como nivel para nuestro admin.
Muchas veces existen usuario que quieren tener su nick registrado para que nadie mas lo use, pero no queremos darles ningun comando de admin. Para esas personas debemos darles el nivel 16384. Con el se reservan nicks y el usuario solo tiene acceso a los comandos de nivel 1, como un usuario comun y corriente.
Para reservar clantags, tambien se usa el nivel 16384, pero la sintaxis de como se registra el tag es diferente. Por ejemplo si quiero registrar a los siguientes jugadores y reservar el clantag para que nadie mas lo use :
Blood > Devil
Blood > taSk
deberia tener un users.ini asi :
Blood \>:otro_password:16384
Blood \> Devil:skyline:16384
Blood \> taSk:pr0n:16384
notaran que hay un backslash (/) dentro del tag. Eso se da porque adminmod requiere una configuracion especial en el caso de existir usuarios o tags con caracteres extendidos. Solo los caracteres de A-Z a-z 0-9 -_/. son considerados como caracteres estandar. Todos los demas como parentesis (), corchetes [], llaves {}, etc. son considerados extendidos y requieren de un backslash. Por ejemplo de querer registrar el clantag ^{-xxx-}^, deberia tener una linea asi :
\^\{-xxx-\}\^:password:16384
un backslash antes de cada caracter extendido.
Una vez configurados estos 3 archivos, ya podemos levantar el servidor (/etc/init.d/hlds1 start) y probar todas las funciones de adminmod que queramos. Si han usado mi adminmod.cfg, para poder identificarse como admin tienen que digitar el comando ‘setinfo _pass su_password’ en la consola del cliente antes de conectarse. Para el caso del ejemplo de mi usuario (Devil:skyline:131071) seria :
Código:
setinfo _pass skyline
de no poner mi password, toda persona que intente entrar con el usuario Devil sera pateada del servidor.
Tambien puede registrar admins usando sus STEAM_IDs en vez de sus nicks con lo cual ya no requeririan poner passwords :
STEAM_0:0:101489::131071
Eso me da acceso a tener admin en el servidor de Cablenet con cualquier nick, mientras me conecte desde mi maquina ;)
Si requieren mas info acerca de Adminmod, pueden consultar la excelente ayudan online que tienen :
http://www.adminmod.org/help/online/
Nota: Los cambios que se hagan en el adminmod.cfg y users.ini solo entraran en efecto despues de un cambio de mapa o si se reinicia el servidor. Los cambios en el plugins.ini necesariamente requieren de una reiniciada del servidor.
5. Instalacion de Cheating-Death (Opcional)
Esta parte del manual es netamente para servidores online ya que no se deberia usar C-D en LAN (en teoria). Desempaqueten el C-D Server dentro del directorio:
Código:
/usr/local/games/steam/cstrike
editen el archivo:
Código:
/usr/local/games/steam/cstrike/addons/metamod/plugins.ini
añadan:
Código:
linux addons/cdeath/cdmod_i686.so
y listo. Reinicien el servidor y C-D estara operativo. Pueden verificar tambien con el comando meta list en la consola.
6. Instalacion de Statsme (Opcional)
Pronto.
7. Instalacion de Psychostats (Opcional)
Pronto.
8. FAQ
FAQ o frequently asked questions (preguntas frecuentes) era algo que me parecia indispensable agregar al manual. Dentro de mis scripts estan los files que aqui menciono en la solucion de estas preguntas.
a. Como hacer para que el servidor levante solo apenas prendo la maquina o si es que se cae solo el HLDS ?
Deben copiar el cron_hlds al :
/usr/local/games/steam/
Esta configurado para solo verificar 1 servidor, pero tiene comentado el que verifique a un segundo servidor. Ahora añadan en su /etc/crontab que se ejecute el cron_hlds cada minuto :
0-59/1 * * * * root /usr/local/games/steam/cron_hlds > /dev/null
nada mas. Al minuto de prender la maquina, el servidor levantara. Si por alguna razon cae, al minuto levantara.
b. Como puedo tener 2 servidores en la misma maquina (uno para MR) ?
Solo se requiere de tener una segunda instancia de HLDS en otro port. En los scripts hay un hlds2 que ya esta configurado para esta situacion. Copienlo al /etc/init.d/ y editenlo segun sus necesidades. Yo suelo tener el primer servidor en el port por defecto que es 27015 y el segundo en el 27016. Igualmente prefiero tener mapcycle.txt, server.cfg y logs independientes, ya que de lo contrario ambas instancias usarian la misma configuracion. Por esa razon incluyo un server.cfg de la CPL con la configuracion basica para un MR.
Asegurense de crear un mapcycle2.txt como pide el script, o sino modifiquen el hlds2 para que use el mapcycle.txt.
Para poder acceder a la consola de cada servidor, usen el comando screen –r. En este caso al existir mas de una ventana de screen, nos presentara un listado de servidores. Solo debemos decirle el nombre de la ventana para asi poder entrar a cada consola, como por ejemplo screen –r hlds1 para entrar al primer servidor o sino screen –r hltv1 para entrar a al consola del HLTV de la siguiente pregunta.
c. Como configuro el HLTV ?
Copien el hltv1 el /etc/init.d/ y editen el port del servidor al que se quieren conectar, y el port con el que funcionara el HLTV. Por defecto esta configurado para apuntar al 27015 y trabajar en el 27021. En los scripts hay una configuracion base (hltv.cfg), copiala al :
Código:
/usr/local/games/steam/
d. Como mantengo logs de los ultimos X dias nada mas ?
Copien el rmlogs en el /etc/cron.daily/ y editenlo segun sus necesidades. Esta configurado para solo conservar los logs de los ultimos 30 dias.
e. Como incremento los FPS de mi servidor ? Como reduzco el ping ?
Con 2 opciones, la opcion -pingboost en la linea de inicio del servidor y con el comando sys_ticrate en el server.cfg. La opcion –pingboost tiene 3 opciones (1, 2 y 3), cada una de ellas usa un metodo diferente para reducir la latencia. Las opciones 1 y 2 son las menos exigentes y la 3 es la mas agresiva y con mayor consumo de CPU. Generalmente la opcion 3 es la de mejores resultados pero el consumo de CPU puede ser tan alto que cuando el servidor se llene, terminemos con mas ping que con las otras opciones.
No queda mas que probar individualmente con cada una de estas opciones ya que los resultados varian de servidor a servidor. Deben editar su /etc/init.d/hlds1 (o hlds2 segun sea el caso) y modificar la linea que levanta el servidor por algo como esto:
Código:
screen -A -m -d -S $SCREEN ./hlds_run -game cstrike -port $PORT -nomaster +maxplayers 32 +map de_dust2 -zone 8192 +mapcyclefile mapcycle.txt +mapchangecfgfile server.cfg +servercfgfile server.cfg +logsdir logs -norestart –insecure –pingboost 2
y luego añadir esto a su server.cfg (o server2.cfg segun sea el caso) :
Código:
sys_ticrate 10000
y reiniciar su servidor. Notaran que el ping ha bajado y que el comando stats muestra que sus FPS son mayores. En mi experiencia, Linux con CPUs AMD da los mejores resultados, mientras que Linux con CPUs Intel no pasa de 100FPS. A mas FPS en el servidor, mejor para experiencia de juego para los jugadores. Prueben con otras opciones de –pingboost hasta encontrar la que mejores resultados les de.
Nota: A mayor numero de plugins y mods, menor el numero de FPS y mayor el consumo de CPU. Para campeonatos es mejor tener instalado el HLDS tal cual, sin siquiera adminmod o metamod.
f. Quiero hacer un servidor para Internet, no para LAN, que cambio ?
Edita el script de inicio (hlds1 o hlds2), y quita la opcion –nomaster. Edita tambien tu server.cfg y borra la linea que dice setmaster disabled y reinicia tu servidor. Quizas tambien debas reducir los valores de sv_maxrate y sv_maxupdaterate en tu server.cfg pero ya dependera de tu linea.
g. Tengo una linea de Speedy de XXX velocidad. Puedo poner un servidor para Internet con eso ?
Si pero para muy pocos jugadores. Asi sea de 2Mbps, esa es solo al velocidad de bajada y los servidores para Internet requieren mas velocidad de subida. Esa linea solo tiene 512Kbps teoricos (reales son menos), por lo que no aguantara ni 8 jugadores. Para servidores Internet se requieren lineas dedicadas de mas o menos 1.5Mbps.
En pocas palabras, NO es buena idea poner un servidor de Internet con una linea de Speedy.
h. Como restrinjo el escudo ?
Con comandos de adminmod. Simplemente agrega estas 2 lineas al final de tu adminmod.cfg :
Código:
admin_cs_restrict 1
admin_command admin_restrict shield
i. Trato de actualizar mi server con el comando que usaba antes pero sale un error
A partir de la V8, el steam tiene una nueva sintaxis de comandos. Para actualizar un server es :
Código:
./steam -command update -game cstrike -dir /usr/local/games/steam -username [email protected] -password 123456
Usando el comando ./steam sin ninguna opcion, da el listado completo de opciones.
k. Actualice a la ultima version y ahora no funciona ningun de mis mods ni plugins
La ultima version de STEAM (V9) chanca files como el liblist.gam y .cfgs de mapas. Asegurate de que tu liblist.gam tenga esta linea :
Código:
gamedll_linux "addons/metamod/dlls/metamod_i386.so"
o que levantes tu server con esta nueva opcion :
Código:
-dll addons/metamod/dlls/metamod_i386.so
Esta nueva "caracteristica" de chancar archivos importantes puede ser un bug que se corrija mas adelante o no. En todo caso, mas seguro es levantar el server con -dll para evitar problemas.
l. Intento actualizar pero me sale "AuthenticationServerRSACPublickey failed signature verifcation"
Al parecer la antigua herramienta para hacer update en Linux (steam) no trabaja bien con la ultima version de los servers de contenido. Baja la ultima version de esta herramienta de aqui :
ftp://ftp.cablenet.com.pe/games1/steam/steam.tgz
Al ser esta herramienta la ultima version, requieres usar la sintaxis que aparece en la pregunta anterior.
9. Links
www.bloodzone.net
www.counter-strike.com.pe
www.steampowered.com
www.metamod.org
www.adminmod.org
www.unitedadmins.com
10. Creditos
Este manual ha sido enteramente elaborado por Sandro “Devil” Jurado. Copienlo, regalenlo, posteenlo en cuanta pagina deseen. Prohibida su VENTA o modificacion.
11. Changelog
* Version 1.0 (02/01/2004)
- Version inicial.
* Version 1.1 (16/01/2004)
- Actualizacion a Adminmod 2.50.59
- Cambio de +servercfgfile por +mapchangecfgfile
- Cambio de admin_restrict shield 8 8 por admin_restrict shield
- Actualizacion de los scripts.tgz
* Version 1.2 (23/01/2004)
- Bugfixes en los scripts.
- +servercfgfile es necesario cuando se pone mas de 1 server (hlds2).
- C-D 4.11.0 ya es compatible con la ultima version de STEAM.
* Version 1.3 (06/02/2004)
- Cambios en la introduccion.
* Version 1.4 (14/03/2004)
- 2 preguntas mas en el FAQ que responden a cambios en STEAM.
* Version 1.5 (06/04/2004)
- 1 pregunta mas en el FAQ que responde a cambios en STEAM.