Tips para jugadores: Montar un servidor de Bnet en Debian

WC3ScrnShot_091113_073746_02El hecho que nos gusten los ambientes GNU/Linux no nos exime a algunos de seguir con los vicios heredados de las andanzas por Windows. El otro día estábamos buscando la forma de poder jugar Defense of the Ancient (DOTA) con el mayor numero de personas sin tenerlas a todas bajo la misma LAN así que me di a la tarea de aprender a montar un BattleNet en mi servidor Debian de manera que se pudiera acceder desde cualquier parte de la provincia y así resolver el problema de la falta de jugadores. Todos conocen la aplicación PVPGN de cuando usábamos Windows pues bien este será un tutorial de como montar nuestro propio servidor PVPGN en ambiente GNU/Linux.

Breve introducción

PVPGN (del ingles Player Versus Player Gaming Network) es una aplicación que permite crear lo que se llama en algunos lugares un “servidor privado” que permite conectar jugadores de Diablo, Warcraft y Starcraft la primera vez que lo vi fue por allá por el 2005 mas o menos y cuando aquello lo usabamos para jugar Diablo pero hoy en dia es muy comun ver en foros y sitios cubanos las “noticias” de que montaron un Bnet en tal lugar.

Instalando en ambiente GNU/Linux

PVPGN está disponible en los repositorios de la mayoría de las distribuciones mas populares como es el caso de Debian por lo que para instalar el servidor como tal solo necesitamos abrir una consola y escribir

sudo aptitude install pvpgn

Una vez instalado vamos a necesitar un paquete adicional llamado pvpgn-support el cual nos lo tenemos que descargar de la pagina principal del proyecto (http://download.berlios.de) pero no se preocupen les ahorrare el trabajo y se lo pondre al final para los que no tienen internet. Cuando descarguen el archivo abrimos la terminal y ponemos sudo pvpgn-support -l /RUTA_DEL_PAQUETE (me refiero al pvpgn-support-1.0.tar.gz) por ejemplo

sudo pvpgn-support-installer -l /home/neji/Descargas/pvpgn-support-1.0.tar.gz

Configurando nuestro servidor

A estas alturas ya tenemos instalado el servidor pero todavía no debe ser visible puesto que no esta configurado del todo asi que ahora pasaremos a ese punto.

Como la mayoria de las aplicaciones los archivos de configuracion estan alojados en el directorio /etc asi que editamos el archivo:

sudo nano /etc/pvpgn/bnet.conf

En esa configuracion encontraremos muchas opciones pero yo personalmente no las uso todas asi que les voy a poner las que uso:

1 – la ruta donde se guardadarán los progresos de los jugadores

storage_path = file:mode=plain;dir=/var/lib/pvpgn/files/users;clan=/var/lib/pvpgn/files/clans;team=/var/lib/pvpgn/files/teams;default=/etc/pvpgn/bnetd_default_user.plain

2- Los ficheros que utiliza pvpgn para registrar las cosas:

filedir = /var/lib/pvpgn/files
reportdir = /var/lib/pvpgn/files/reports
chanlogdir = /var/lib/pvpgn/files/chanlogs
logfile = /var/lib/pvpgn/files/bnetd.log
maildir = /var/lib/pvpgn/files/bnmail
ladderdir = /var/lib/pvpgn/files/ladders
statusdir = /var/lib/pvpgn/files/status
pidfile = /var/lib/pvpgn/files/bnetd.pid

motdfile = /etc/pvpgn/bnmotd.txt
issuefile = /etc/pvpgn/bnissue.txt
channelfile = /etc/pvpgn/channel.conf
newsfile = /etc/pvpgn/news.txt
adfile = /etc/pvpgn/ad.conf
topicfile = /etc/pvpgn/topics.conf
ipbanfile = /etc/pvpgn/bnban.conf
helpfile = /etc/pvpgn/bnhelp.conf
mpqfile = /etc/pvpgn/autoupdate.conf
realmfile = /etc/pvpgn/realm.conf
mapsfile = /etc/pvpgn/bnmaps.conf
xplevelfile = /etc/pvpgn/bnxplevel.conf
xpcalcfile = /etc/pvpgn/bnxpcalc.conf

aliasfile = /etc/pvpgn/bnalias.conf
DBlayoutfile = /etc/pvpgn/sql_DB_layout.conf
supportfile = /etc/pvpgn/supportfile.conf
transfile = /etc/pvpgn/address_translation.conf
fortunecmd = /usr/games/fortune

tournament_file = /etc/pvpgn/tournament.conf
versioncheck_file = /etc/pvpgn/versioncheck.conf
anongame_infos_file = /etc/pvpgn/anongame_infos.conf
command_groups_file = /etc/pvpgn/command_groups.conf

Estos ficheros son ficheros de texto que nos permiten modificar cosas como la configuración del canal de chat del servidor, el mensaje del bienvenida etc.
3- Configuraciones internas del propio servidor

loglevels = fatal
d2cs_version = 0
allow_d2cs_setname = true
iconfile = «icons.bni»
war3_iconfile = «icons-WAR3.bni»
star_iconfile = «icons_STAR.bni»
tosfile = «tos.txt»
allowed_clients = all
skip_versioncheck = false
allow_bad_version = false
allow_unknown_version = true
version_exeinfo_match = none
version_exeinfo_maxdiff = 0
usersync = 300
userflush = 1200
userstep = 100
latency = 600
nullmsg = 120
shutdown_delay = 300
shutdown_decr = 60

new_accounts = false

kick_old_login = true
ask_new_channel = true
report_all_games = true
report_diablo_games = true
hide_pass_games = true
hide_started_games = false
hide_temp_channels = true

extra_commands = true
disc_is_loss = true
ladder_games = «topvbot, melee, ffa, oneonone»
ladder_prefix = «ldr_»
enable_conn_all = true
hide_addr = false
chanlog = false
quota = yes
quota_lines = 5 # must be between 1 and 100 lines
quota_time = 5 # must be between 1 and 60 seconds
quota_wrapline = 40 # must be between 1 to 256 chars
quota_maxline = 200 # must be between 1 to 256 chars
quota_dobae = 10 # must be between 1 and 100 lines
mail_support = true
mail_quota = 5
log_notice = «*** Please note this channel is logged! ***»
passfail_count = 0
passfail_bantime = 300
maxusers_per_channel = 0
savebyname = true
sync_on_logoff = true
hashtable_size = 61
account_allowed_symbols = «-_[]§@»
max_friends = 5
track = 60
trackaddrs = «localhost:9999»
servername = «Bnet Abreus»
max_connections = 1000
max_concurrent_logins = 0
use_keepalive = false
max_conns_per_IP = 0
servaddrs = «:» # default interface (all) and default port (6112)
w3routeaddr = «0.0.0.0:6200»
initkill_timer = 120
woltimezone = «-8»
wollongitude = «36.1083»
wollatitude = «-115.0582»
war3_ladder_update_secs = 300
XML_output_ladder = true
output_update_secs = 60
clan_newer_time = 0
clan_max_members = 50
clan_channel_default_private = 0

En estas configuraciones nosotros definimos aspectos del servidor referentes a cosas como el nombre que tendra el servidor, la cantidad de mensajes permitidos entre usuarios, la cantidad de amigos, los puertos que se usaran en el servidor, la cantidad de conexiones entrantes permitidas etc.
Como el Bnet permite moderación de usuarios etc nosotros podemos definir una cuenta que seria algo como el root o administrador del Bnet para eso podemos modificar el archivo /var/lib/pvpgn/files/users/»usuario» (usuario es el nombre de la cuenta) y dentro de este agregar esto:

«BNET\\acct\\userid»=»1»
«BNET\\auth\\admin»=»true»
«BNET\\auth\\command_groups»=»255»

NOTA: El “userid” generalmente viene siendo el 1ro por ser casi siempre la primera cuenta que uno crea pero de no ser así y querer que el usuario X sea el admin solo ponemos el ID que tenga esa cuenta.

Luego que terminemos de configurar nuestro servidor ya podemos reiniciar el servicio de bnet:
invoke.rc.d pvpgn restart
Y listo… ya tenemos nuestro Bnet para invitar a nuestros amigos y pasar un rato jugando DOTA o cualquier otra cosa. Aqui les dejo en enlace al archivo que hay que descargar de internet para los que no tienen ese preciado recurso.

pvpgn-support-1.0.tar

¿Te resultó interesante? Compártelo ...



Hyuuga_Neji

Publicado por Hyuuga_Neji

http://desdeabreus.cubava.cu » Facebook » Twitter » Instagram » Forma parte de GUTL desde el 6 diciembre, 2011. Administrador de Red por profesion y Editor de imagenes por hobby, Usuario empedernido de GNU/Linux amante de escritorios ligeros y franquicias de Blizzard (Vicio heredado de las andanzas por Windows).

Este artículo tiene 85 comentarios

  1. Gracias por el tutorial, me acuerdo cuando lo use por allá en el 2007 en la red de RIMED, mucho que nos divertimos.

  2. Tareas para Neji: Renombra el artículo, le pones que es la parte 1, para la parte 2 nos traes configuración de Bots y BD para estadísticas. 😀

    • creo que eso usa Sqlite…pero nunca me he puesto para eso de Bots y BD… ya vez… siempre aparecen cosas nuevas xD

        • la pregunta es…. ¿lo tuyo es suplimir la falta de jugadores en tu LAN o estas detras de organizar una especie de torneo? yo puse un Bnet en mi server Debian solo porque de esa forma hacia lo primero…

          • Na, ya estoy quitado de las ligas pro, sabes que en DotA siempre fui zurdo. Jugué hace unos pocos meses en una liguita con la gente de los JC de acá de HG. Ahora estoy para poner mi WiFi casera de nuevo y volver al WotLK. Pero quiero ver bien como poner pvpgn + myql + bots por si se embullan por mi barrio. Es demostrado que Bnet es más estable que LAN para los juegos.

        • tengo una duda sobre ese «ohsystem» ¿esa app es libre o no? de ser SWL podrias hacer un artículo sobre eso aquí en GUTL o pasarlo por correo a alguno de los redactores para socializar el conocimiento. No es que aun ande detras de eso pero supongo que tener un web con estadisticas de tu Bnet no estaria nada mal

          • Según el Readme »OHSystem is free software: You can redistribute it and/or modify
            it under the terms of the GNU General Public License as published by
            the Free Software Foundation, either version 3 of the License, or
            (at your option) any later version.»
            Tener algo así es muy bueno y si es en GNU/Linux mejor aún. Voy a comenzar el artículo y nos ponemos de acuerdo; antes tenía permisos para publicar pero me distancie por complicaciones que tuve, pero siempre estoy atento a las noticias que se publican en el portal.

  3. Se puede usar MySQL, Sqlite, y creo que PostgreSQL, de lo último no me acuerdo bien, yo tenia montado uno con sitio de estadisticas y todo[PHP+MySQL]. Ahora bien, las config las tengo en casa, pal proximo encuentro de linux, si hay alguien que las necesito las puedo llevar…

  4. en windows se hace con el ghost one, que tambien tiene un robot el cual crea partidas, neji te veo que te estas enviciando jaja ahorita montas un batle nacional jojojo…
    saludos a todos

  5. hola, vi algunas personas aki hablando de wow, y de mangos en especifico, si kieren probar un server en talla, usen Trinity Core, yo lo estoy hosteando en la PC de un socio en la beca de mi universidad, y ese ya no tiene ningun bug, es uno de WOLK, el support esta en GitHub, busken info si kieren, pero funciona casi al 100% para no ser absolutista, y tengo una pila de Addons para eso tambien, lol…

    • [Off Topic] @Karasu , chama yo lo que utilizo es trinity core, siempre lo e hecho desde que estaba en la UCI, mangos es muy bueno para las instancias pero para el pvp estan embarcados jeje, yo tambien tengo 1 montado en la casa sin errores y se puede matar hasta el lich king, es decir que se puede hacer icecrown citadel completa, bueno saludos

  6. Su hubiera imaginado que esto se convertiria en un hilo sobre WoW de seguro no lo escribia xD no obstante… voy con mi pedazo de offtopic:
    [offtopic]
    El mundo entero esta jugando el patch 5.4 (Mist of Pandarian o MoP) en cuba tenemos algunos casos de servidores Cataclismo (patch 4.x porque hay desde el 4.0.6a hasta 4.3.4) por lo que pienso que la solucion nunca debe ser volver atras con eso de «vamos a Jugar LK hasta que se arregle el Cataclismo» porque luego diran «vamos a jugar Cataclismo hata que se arregle el MoP»
    [/offtopic]

  7. Pienso que deberíamos dedicarle un espacio a los juegos… Para los que dicen que en GNU/Linux no se puede jugar….
    Solo hace falta quien escriba al respecto….

    • no seria un mal tema… ya con este articulo pudieramos tener un avance, algo como «poner las bases» pero si le damos alas al tema de los juegos se nos llenan los hilos con temas mensajes como «yo soy el Mejor en X Juego» y no creo que nuestro portal deba caer en eso. por eso es que no hablo de los juegos (Starcraft, Warcraft, Diablo) sino de como montar en GNU/Linux el soporte para conectar varios usuarios que gustamos de esos juegos.

      • A eso me refiero, pero también a darle promoción a los juegos desarrollados para Linux. No es mi idea hablar de como emular el FIFA o el Need for Speed. Mas bien hablar de los muchos juegos que tenemos en el repo y son desconocidos para muchos….Ademas de recordar a Steam que esta migrando a Linux….

        • En el próximo número de SWL-X hablo de Cube assault, un juego al puro estilo del counter Strike y que corre bien y con buen gráfico incluso en máquinas de malas prestaciones, he incentivado torneitos de este juego incluso en el barrio…
          Otra alternativa a tocar puede ser World of Goo, crea adicción

  8. Neji, al fin alguien se acuerda de nosotros. Uff, bueno el articulo.

    Ha, otara cosa, guíenme en como recuperar los datos de una particion defectuosa en linux. Que posibilidad hay de recuperar la particion sin perder los datos.

  9. ¿Hay algún juego en Linux que pueda jugar una chica, que no sea matando gente ni jugando fútbol ni manejando carros? Por eso no puedo jugar ni en Win2 ni en Linux… 😥

    • @linuxgirl Si, AngryBird para emuladores. 😉

      Muy buen articulo y de hecho puesto en funcionamiento el procedimiento en una red de 8 PC + Servidor en Linux y aunque no les gusto al principio si se aplaude el poco consumo de RAM por parte del servicio, al menos para una red pequeña. 😀

      @Hyuuga_Neji Tareco cuando quieras participa en los Escritorio me avisas para disfrutar de tus lokuras.

      Salu2

      • No… mis escritorios son funcionales (o al menos para mi) y ligeros asi que no hacen nada contra escritorios llenos de Widget, cosas de Railaendra, conky etc etc…. xD

        Sobre lo del artículo… ¿crees que no pruebo las soluciones que doy? claro que funciona (probado en Debian Squeeze)

        • @Hyuuga_Neji Yo nunca dije que tu no lo hayas probado sino que ya lo probé en una red y que se estaba usando actualmente. Lo que si nunca he visto una configuracion que cuente como puntos de batle los mapas no oficiales 🙁 , sabes algo al respecto ??? Dice COMMANDER (alias TAZZADAR) que te envia saludos.

          Salu2

      • @Ernesto Tur Laurencio y @BishopWolf: Gracias a ambos por contestar, pero ¿estos juegos están en los repos, al menos en los de Debian que es el que yo uso? 😉

        • Yo pedí un juego que no sea sangriento: ni cortar cabezas ni afeitar un calvo con lentes… 😆 Eso de «battle» me suena a «hurto y sacrificio de ganado mayor»… 😆

          • @BishopWolf: Sí, mi vida, soy de La Habana, pero no puedo moverme apenas por situaciones familiares, todo lo mío tiene que ser a golpe de Internet o por teléfono. 🙂
            Pero no te preocupes, ya encontraré la forma, tampoco es como para cortarse las venas. Yo quisiera un juego que me enganche, pero en verdad tengo bastante poco tiempo para jugar. 😥

    • Hay juegos que realmente son buenos como Fez, pero desgraciadamente se encuentra en Steam (no es por ser mezquino, pero no causa gracia que estos juegos no se puedan jugar libremente como cualquier otro sabiendo que las conexiones en red como las de Cuba no permiten dar ese lujo).

    • @linuxgirl
      He encontrado el mejor juego para ti, se llama Frozen Bubble y está en los repos. Lo mejor de él es que se puede jugar entre 2.

      • @BishopWolf: ¡¡¡ Ohh, gracias !!! Esta noche lo descargo… ¡¡¡ son 25 Mb !!!! Así que suave, mejor por la noche-madrugada. Lo pruebo y luego te comento si me gustó. 😉

        • por qué aun no tienes el repo encima? todo te resultaría mucho más sencillo. Si me das tu correo te envío una captura donde me verás jugandolo entre 2.

          • ¡Niek! Pero no te preocupes, pronto me cambiaré para Debian Testing, para irle haciendo honor a mi avatar. Hasta ahora actualizo y descargo todo desde los repos on line. 😉

  10. Pues, saca un tuto sobre eso porque yo no he podido nunca. 😥

    Muchos agradeceremos un buen tuto sobre cómo emular con Wine algunos de nuestros juegos preferidos. Esto es algo a lo que yo no le he dado particular atención, pero a veces se hace necesario despejar un poco, y ya que Steam se nos hace tan lejana, qué mejor que emular esos juegos con Wine. 🙂

  11. ¿Qué hay de la situación en que clientes externos (diferentes subredes) se quieran unir a partidas, por ejemplo de DoTa?
    A esos clientes externos les doy el acceso a través de pfSense (port forwards)

  12. miren aquí el support-:
    http://swl.hlg.jovenclub.cu/index.php?option=com_rokdownloads&view=file&task=download&id=126%3Apvpgn-support-1-0&Itemid=38

    Para usar el PvPGN com MySQL usamos esto en el archivo bnet.conf
    storage_path = sql:mode=mysql;host=localhost;name=pvpgndb;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn_

    La DB debería estar dentro del PvPGN y so no descargan el del sighuiente enlaze que lo tiene dentro:
    http://swl.hlg.jovenclub.cu/index.php?option=com_rokdownloads&view=file&task=download&id=125%3Apvpgn-1-8-5-0-win32-mysql-5-1-31-bin&Itemid=38

    • en el sorage_path deben mirar y configurar por ejemplo user=el usuario de la base de datos(root), name= nombre de la base de datos, host= localhost o tu url de server, pass= contraseña del usuario de la base de datos (root)

  13. !!!!!!!!!!!!!!!Configurando nuestro servidor

    A estas alturas ya tenemos instalado el servidor pero todavía no debe ser visible puesto que no esta configurado del todo asi que ahora pasaremos a ese punto.

    Como la mayoria de las aplicaciones los archivos de configuracion estan alojados en el directorio /etc asi que editamos el archivo:

    sudo nano /etc/pvpgn/bnet.conf
    !!!!!!!!!!!!!!!!!!!!!!!!
    *??????????????????????????
    hasta akí todo bien menos «bnet.conf»,,,, este fichero no lo veo dentro del directorio /pvpgn/ ,,,,,, lo mas cercano que veo es «bnetd.conf» ,,, nesecito ayuda ,, alguien me puede decir si es este fichero el que edito o tengo que crear uno que se llame «bnet.conf»,,, salu2 gracias de antemano

  14. Hola a todos necesito ayuda, ya tengo el pvpgn montado en linux y confugurado pero no logro que mi cliente vea el bnet si alguien tiene respuesta por favor de responderme al mi correo roger@gtm.desoft.cu se lo agradcere

Los comentarios están cerrados.