20 de set. de 2010

Criando um Servidor para Urban Terror

Urban Terror
    Urban Terror é um jogo FPS (First Person Shooter) desenvolvido pela FrozenSand. Com uma jogabilidade bastante realista e gráficos de tirar o fôlego, Urban Terror não deixa nada a desejar em comparação a qualquer jogo em primeira pessoa.



    Configurando arquivo

    Depois do jogo devidamente instalado vamos modificar o arquivo de configuração do Urban Terror.
    Abra um terminal e:
    Entre no diretório onde está nosso arquivo server.cfg (Levando em conta que você tenha instalado em /usr/local/games/).
    $ cd /usr/local/games/urbanterror/q3ut4/
    Edite o arquivo server.cfg.
    $ vim server.cfg
    ou
    $ nano server.cfg
    Caso você seja daquelas pessoas cuidadosas, crie um arquivo de backup antes de editar. ;)
    Esse é o arquivo que descreve como o jogo irá se comportar. Há bastante coisa a se configurar. Vou mostrar neste turorial somente o básico.

    Esse arquivo possui variáveis que são carragadas junto com a aplicação. Vamos ver que valores elas podem assumir e qual o seu comportamento:

    · g_gametype - define o tipo de jogo. Pode assumir os valores:
       0=FreeForAll
    3=TeamDeathMatch
    4=Team Survivor
    5=Follow the Leader
    6=Capture and Hold
    7=Capture The Flag
    8=Bombmode
    · timelimit - tempo em minutos para o fim do mapa. [0 é o mesmo que nunca.]
    · fraglimit - número máximo de pontos para o fim do mapa. [0 é o mesmo que nunca.]
    · capturelimit - número máximo de bandeiras a serem capturadas. [0 é o mesmo que nunca.]
      serve somente para o modo CTF (Capture the Flag=7)
    · g_mapcycle - nome do arquivo onde estão configurados os mapas a serem utilizados no decorrer do jogo.
    · map - por qual mapa começar.
    Um material mais avançado sobre o arquivo pode ser encontrado em http://www.urbanterror.info


    Ciclo de Mapas

    Editando o arquivo mapcycle.txt é possível definir um ciclo de mapas para seu servidor.
    Apenas lembre-se que ao jogar com os bots, somente alguns mapas são compatíveis. Veja: [http://mad3linux.blogspot.com/2009/11/urban-terror.html]


    Criando um bash para rodar o servidor
      Agora basta criar um arquivo em shell script para rodar nosso servidor. Basta criar um arquivo de texto no local de instalação do seu Urban Terror. (Seguindo o tutorial em /usr/local/games/urbanterror)

      Copie as seguintes linhas:

      #!/bin/bash
      while true
        do
         /usr/local/games/urbanterror/ioUrTded.i386 +set fs_game q3ut4 +set dedicated 2 +set net_port 27960 +set com_hunkmegs 128 +exec server.cfg
         echo "server crashed on `date`" > last_crash.txt
      done
      Nomeio como start.sh
      Vamos a uma pequena explanação do que o arquivo fará.
      Como todo bom servidor, ele deverá rodar "sempre". Por isso temos um laço iterando nossa linha de comando.
      Logo abaixo do laço, temos o comando que faz nosso servidor se comportar da maneira que configuramos antes no arquivo server.cfg.
      Vamos quebrá-lo em partes.
      Primeiro vem a chamada para o executável dedicado do Urban Terror. O chamado ioUrTded.i386, o qual roda uma isntância do jogo em modo texto.
      Depois temos algumas variáveis. Note o "+set" que indica que setaremos algumas variáveis.
      · fs_game - indica o diretório onde procurar arquivos de configuração. Valor: q3ut4, que é o diretório onde
      ficam os arquivos de configuração.
      · net_port - configura a porta utilizada pelos clientes. Sempre escolha uma porta maior que 1024, pois entre 1 e 1024 são portas reservadas.
      Por último vem o "+exec" o qual executa todas as configurações feitas em server.cfg.
      Pronto. Agora basta rodar seu script recem criado. No terminal:
      $ chmod a+x start.sh
      $ sh start.sh

      Clientes do Jogo

      Para os clientes acessarem o servidor basta que eles abram o jogo e cliquem em play online. Logo em baixo aparece a opção Source, com os itens Internet, Favorites e Local. Escolha local e depois clique em Refresh List. Caso ainda não apareça verifique a opção Type abaixo de Source. All significa todos os tipos, depois segue a lista Free For All (Todo mundo contra), Team Deathmatch (Partida com times), Team Survivor (Último Sobrevivente do Time), Follow The Leader (Seguir O Líder), Capture And Hold (Capturar e Defender), Capture The Flag (Capturar A Bandeira), Bomb Mode (Modo Bomba). Depois disso basta clicar em Connect e pronto.

      Servidor em Modo Gráfico

      Também é possível criar um Servidor para Urban Terror em modo gráfico. Abra o jogo e clique em start server. Logo após é possível definir como será o jogo. Tem as opções de setup, tipo do jogo, opções do servidor e selecionar o mapa. Dessa forma parece mais fácil, contudo fica chato ter que configurar o server toda vez que for jogar.

      Screenshots

        Recarregar (R)


        Curar (Q)


        15 de set. de 2010

        Botões do Ubuntu 10.04 no lado Direito

        Pra quem usa Ubuntu ou qualquer outra distribuição GNU/Linux, já está acostumado a minimizar e fechar uma janela (não gosto desse nome) no seu lado direito, só quem a versão 10.04 Lucid Lynx resolveu inovar e colocar esses tão usados botões no lado esquerdo.

        Pra quem não gostou, ai vai a solução.

        Será usado o editor Gconf para alterar o layout do botão.

        Tecle Alt+F2, digite gconf-editor e vá em apps/metacity/general. Dê um clique duplo em button_layout para abrí-lo em seguida digite: menu:maximize,minimize,close

        Pronto resolvido.

        10 de set. de 2010

        Como mudar o home de um usuário?

        usermod -d /novo/home/do/seu/usuario nome_usuario

        Por que mudar home de um usuário?
        Bom, tive a necessidade quando fui instalar o PostgreSQL no slackware. Ao tentar a primeira vez pelo modo gráfico, ocorreu um erro, mas o usuário, o grupo e o diretório home do postgres já estavam criados. Por isso tive a necessidade de querer mudar o home do usuário. Para isso basta:

        Ex.:

        # usermod -d /var/lib/pgsql postgres


        Atente para o fato do usuário não estar logado quando a mudança ocorrer.

        Mais opções:

        -a, --append juntar o utilizador aos GRUPOS suplementares
        (usar apenas com -G)
        -c, --comment COMENTÁRIO novo valor do campo GECOS
        -d, --home HOME_DIR novo directório para a conta do utilizador
        -e, --expiredate DATA_EXPIRAR define a data em que a conta expira
        para DATA_EXPIRAR
        -f, --inactive INACTIVA define a password como inactiva após expirar em
        INACTIVA
        -g, --gid GRUPO forçar a utilização do GRUPO como novo grupo pri mário
        -G, --groups GRUPOS nova lista de grupos adicionais
        -h, --help mostrar esta mensagem de ajuda e sair
        -l, --login NEW_LOGIN novo valor para o nome de login
        -L, --lock bloquear a conta do utilizador
        -m, --move-home mover o conteúdo do directório home para o novo
        local (usar apenas com -d)
        -o, --non-unique permite utilizador UIDs duplicados (não únicos)
        -p, --password PASSWORD utilizar password encriptada para a nova nova
        password
        -s, --shell SHELL nova shell de login para a conta do utilizador
        -u, --uid UID novo UID para a conta do utilizador
        -U, --unlock desbloquear a conta do utilizador