Ir para conteúdo

Diego Augusto

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Diego Augusto deu reputação a LucasFerraz em Skills Rates (Corrigido, otimizado e estavel)   
    Pessoal, vi alguns scripts aqui e na OTLand de Skills Stages e detectei uma falha grave que derruba o servidor. É difícil de um jogador nukar sem saber do bug mas pode ocorrer. Por este motivo criei esse post e estou postando os scripts otimizados para prevenir uso excessivo de CPU e RAM.
     
    creaturescripts.xml
    <!-- Skill Rates --> <event type="login" name="RatesMagicLogin" event="script" value="Custom/SkillStages/RatesMagicLogin.lua"/> <event type="advance" name="RatesMagicAdvance" event="script" value="Custom/SkillStages/RatesMagicAdvance.lua"/> RatesMagic.lua
    function onLogin(cid) -- Magic Level Rates if (isInArray({1, 2, 5, 6}, getPlayerVocation(cid)) == TRUE) then if (getPlayerMagLevel(cid, true) >= 100) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 4.0) elseif (getPlayerMagLevel(cid, true) >= 90) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 5.0) elseif (getPlayerMagLevel(cid, true) >= 80) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 6.0) elseif (getPlayerMagLevel(cid, true) >= 50) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 7.0) elseif (getPlayerMagLevel(cid, true) >= 30) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 8.0) elseif (getPlayerMagLevel(cid, true) < 30) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 12.0) end return true elseif (isInArray({7, 8}, getPlayerVocation(cid)) == TRUE) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 7.0) end return true end RatesMagicAdvance.lua
    function onAdvance(cid, skill, oldLevel, newLevel) if skill == SKILL__MAGLEVEL then if (isInArray({1, 2, 5, 6}, getPlayerVocation(cid)) == TRUE) then if (newLevel >= 100) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 4.0) elseif (newLevel >= 90) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 5.0) elseif (newLevel >= 80) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 6.0) elseif (newLevel >= 50) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 7.0) elseif (newLevel >= 30) then return doPlayerSetRate(cid, SKILL__MAGLEVEL, 8.0) end return true end return true end return true end Logo mais eu edito aqui e insiro os de Skills.
  2. Gostei
    Diego Augusto deu reputação a Nightz em Instalando, usando e entendendo o Screen   
    Olá cidadãos do TibiaKing!
     
    Neste tutorial de hoje vou ensinar a instalar e utilizar o Screen. Mas antes disso, vou explicar o que é e para que serve.
     
    O Screen (ou GNU Screen) é é um software livre multiplexador de terminal de linha de comando desenvolvido pelo Projeto GNU. Permite que o usuário acesse múltiplas sessões separadas de terminal a partir de uma mesma janela ou mesmo remotamente. É muito útil para manipular vários programas em uma mesma janela ou mesmo para manter processos em execução de fundo. [Wikipedia]
     
    Ou seja, reusmidamente, o Screen é um software que permite você rodar várias áreas de trabalhos com vários processos executando.
     
    E porque preciso de utilizar isso no meu servidor de OTServer?
    Simples! Quando for abrir o servidor utilizando o comando ./theforgottenserver &, ao fechar o SSH, o servidor continua rorando, certo? Mas você não pode mais ver os logs que o executável gera em tempo real no linux. Porém.. se você abrir o servidor dentro de uma área de trabalho do Screen, isso é possível! Sem contar com várias outras vantagens como maior estabilidade e possibilidade de continuar trabalhando no SSH sem interromper o servidor ou ter que abrir outra janela!
     
    Bom.. agora que já expliquei sobre o Screen.. Vamos ao tutorial!
     
    1. Instalando o Screen:
     
    1.1. Abra o terminal SSH do seu servidor.
     
    1.2. Ao logar no servidor, rode o seguinte comando para instalar o Screen:
     
    -> Servidores Ubuntu/Debian:
    apt-get install screen -> Servidores CentOS:
    yum install screen 1.3. Pronto, Screen instalado! Simples, não?
     
     
    Agora vamos a utilização!
     
     
    2. Utilizando o Screen:
     
    2.1. Abra o terminal SSH do seu servidor.
     
    2.2. Para criar uma nova área de trabalho do Screen, utilize o comando:
    screen -S NomeDaScreen -> Por exemplo:
    screen -S rodarServidor 2.3. Assim que o comando acima for executado, voce já estará em uma nova área de trabalho. Caso queira deixar algo rodando nela em segundo plano, basta rodar o que for rodar normalmente e sair da Screen sem fechar a área de trabalho.
     
    -> Por exemplo:
    screen -S TFS nightz@servidor:~$ cd /home/otserv nightz@servidor:/home/otserv$ ./theforgottenserver & 2.4. Depois que o comando já estiver rodando, basta pressionar as teclas CONTROL, A e D (Ctrl  A + D). Ao "minimizar" a área de trabalho, o Screen vai exibir uma frase informando que "deu tudo certo".
     
    -> Por exemplo:
    screen -S tst nightz@servidor:~$ [detached from 13077.tst] 2.5. Para entrar novamente na Screen, basta utilizar o comando abaixo:
    screen -r -x NomeDaScreen -> Por exemplo:
    screen -r -x tst 2.6. Mas e se eu esquecer o nome da Screen? Calma.. Para listar todas as Screens em execução, utilize o seguinte comando:
    screen -ls -> Por exemplo:
    nightz@server:$ screen -ls There is a screen on:     13077.tst    (10-06-2014 08:55:37)    (Detached) 1 Socket in /var/run/screen/S-476175. nightz@server:$ * De azul, temos o nome das Screens (neste caso, da Screen) em execução.
     
    2.7. E para fechar uma Screen, ao em vez de minimizá-la, como faço? Simples! Utilize o comando abaixo após acessar a Screen que deseja fechar:
    exit Pronto!
     
    3. Correção de problemas:
     
    Aqui em baixo, vou postando soluções de possíveis problemas do Screen, a medida que forem sendo reportados. Até hoje, o único problema por qual já passei foi a pasta do Screen perder permissão, fazendo com que eu não consiga ver as Screens em aberto, mas esse problema só não permite que a mesma seja resumida, as Screens todas continuaram funcionando normalmente.
    + Problema: Directory '/var/run/screen' must have mode 777. + Solução: chmod 777 /var/run/screen. Façam bom proveito!
     
    (Esse tutorial foi completamente escrito por mim. Qualquer cópia deve ser previamente autorizada e conter os devidos créditos.)
  3. Gostei
    Diego Augusto deu reputação a Natanael Beckman em Montando OTserver em Debian perfeito.   
    Downloads necessarios:
    PuTTY
    WINSCP
    SOURCE OTX ATUALIZADA
     
    Essa REV eu recomendo você baixar no seu computador, extrair e enviar por ftp para a pasta home.
    Acessando PuTTY veja os passos a seguir:







    (Comandos para copiar e colar no shell [Copia: ctrl+insert] [Colar: shift+insert]).
     
    Para visualizar ou enviar sua source por ftp vamos usar o WinSCP acesse ele:






     
    Certo!
    Enviou a pasta do OTserver para a pasta home? renomeie ela com o f2 para o nome otserver. Feito? Vamos inciar:
    Sempre espere terminar por completo o processamento de instalação após executa o comando:
    apt-get update Se aparecer algo bla bla (Y or N?) digita Y e da enter.
    cd /home/otserver Instalando as libs e boots:
    apt-get install libboost-all-dev libgmp3-dev liblua5.1-0 liblua5.1-0-dev liblua50 liblua50-dev liblualib50 liblualib50-dev lua50 lua5.1 libsqlite0-dev libsqlite3-dev sqlite3 libmysql++-dev libmysqlclient-dev mysql-common libxml2-dev libxml++2.6-dev cpp gcc g++ make automake autoconf pkg-config subversion liblua5.1-sql-mysql-dev liblua5.1-sql-sqlite3-dev zlib1g-dev zlib1g libcrypto++-dev libcrypto++9 Após instalação finalizada vamos para o próximo passo...
    Compilando o server:
    sh ./autogen.sh && ./configure --enable-server-diag --enable-mysql --enable-root-permission && make -j 2 Bom dando tudo correto via ftp use ctrl+r(atualizar) verifique dentro da pasta do seu OTServer terá um arquivo chamado theforgottenserver se tiver ele la OK meus parabéns você compilou em Linux, vamos para os próximos passos.
     

     
    Jajá vamos abri o server mais antes temos que configurar o config.lua, database, o server. Com a mesma source eu sempre compilo no windows faço tudo em meu computador, faço todos os teste e após está tudo OK eu envio por ftp para minha maquina e faço as atualizações.
    Normalmente quando você for abrir o server no linux pode da error de sensitive, é quando Arquivo tem nomes com as letras em tamanhos diferenciado tipo A a, exemplo:
     
    O servidor no linux procura por um arquivo chamado Record se na pasta script tiver o arquivo com o nome dessa forma record o R minusculo o Linux não vai encontrar os nomes tem que ser iguais o que tiver em maiúsculo fica em maiúsculo e minusculo fica em minusculo.

    A database eu faço da mesma forma do server primeiro configuro no computador exporto e depois envio o arquivo .sql via ftp para maquina la boto o arquivo na pasta home e eu upo via comandos no shell para a database do Linux.
     
    Vamos instalar a parte de WEB:
    Lembre-se nas instalações sempre da Y quando pergunta Y or N e se aparecer algo como selecionar opções sempre selecione a primeira... Estou ensinando de uma forma que não seria a correta mais da certo!
     
    Via Shell SSH:
    apt-get install apache2 apt-get install php5 libapache2-mod-php5 apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl apt-get install php5-xcache apt-get install sendmail Olha o mysql tem um momento que pede pra você inserir uma senha, aconselho bota uma senha que você conheça.
    apt-get install mysql-server mysql-client No phpmyadmin ele pede a senha também, bote a mesma do mysql pra não da error:
    apt-get install phpmyadmin cp -r /usr/share/phpmyadmin/ /var/www/phpmyadmin/ service apache2 restart apt-get install libapache2-modsecurity service apache2 restart Pronto verifique se está tudo correto, http://ip.da.maquina/phpmyadmin acesse seu phpmyadmin usando user: root e a senha é a que você botou na instalação do mysql, crie o seu banco de dados e vamos já upa a database....
     
    Via ftp na pasta var/www/ renomeie usando o f2 o nome da pasta phpmyadmin para outro nome, qualquer um, eu particularmente sempre boto outros nomes, não deixo phpmyadmin, exemplo, 65fs98a97ds56aq.
     
    Upando a database, usando o shell vamos para a pasta onde se encontra o seu banco de dados, que enviamos via ftp, no caso, a pasta home:
    cd /home psenha Ae você bota a senha do seu mysql se você não sabe entre em contato com quem você alugou seu dedicado.
    mysql -u root -psenha No comando abaixo você bota o nome da sua database que criamos agora pouco na web.
    USE seubancodedados Aqui você bota o nome do arquivo.sql que enviamos por ftp:
    source arquivo.sql Só esperar finalizar após concluir ok, database upada pode conferir pelo seu navegador de internet como todas as tabelas estarão la do jeito que você configurou no windows.
     
    Galera ai o resto vocês já sabem sobre o config.lua,dados da database, senha, ip, rates, feito isso vamos pro site.
     
    Via ftp acesse sua pasta htdocs selecione todos os arquivos dentro dela e mande para a pasta var/www, quando concluir apenas altere o a seguinte arquivo, config.ini, em server path, altere, no caso ali o nome da pasta do meu OT é otserver:
    install = "no" server_path = "/home/otserver/" signatures = "0" Se tiver feito até agora tudo certo, o seu site vai estar funcionando perfeitamente.
     
    Go go go!
    Você já testou o server em sua casa, configurou a pasta data utilizando a mesma REV, pronto enviar a pasta via ftp substituindo a pasta que existe la. Feito isso vamos para o shell acesse a pasta do ot:
    cd /home/otserver ./theforgottenserver Se aparecer algo bla bla (Y or N?) digita Y e da enter.
     
    Ai vai abri normalmente aparece carregando o server se der algum erro vai dizer pra quem sabe ler vai ser moleza!
    Abriu o server entrou com seu god testou tudo ok, feche o server, ctrl+c, agora vamos abrir o server oficial pra não cair e poder fechar o shell sem cair o ot.
    Vamos nós, no shell volte para o root usando:

    Até voltar ao root:
    cd / Vamos adicionar um usuario:
    adduser tfs No caso ai o nome do usuário que estou adicionando é tfs, pode ser otserver, seu nome, você escolhe, quando você executa o comando vai pedi uma senha bote mesma da sua maquina da enter vai pedi seu nome pais e talz bota nada não só da enter ate finalizar o processo feito isso, OK.
     
    Agora baixe esse arquivo em seu computador extraia ele e envia por ftp para a pasta home/otserver:
     
    TFS.SH
    cd /home/otserver chmod 777 -R tfs.sh Feito né? Ok agora vamos abrir o OT pra ele não fechar e quando ele cair por algum erro ele volta sozinho. Em root utilizando o shell execute os comandos:

    Isso indica que você esta utilizando o usuario tfs:
    su tfs cd /home/otserver ./theforgottenserver.sh& Ai ele começa a carrega normal e pronto THE END.
     
    Caso queria fechar o server:
    su tfs cd /home/otserver ps x Vai aparece uma lista de coisas abertas e cada uma com o numero do processo:



    Pra fechar o server vai ter que mata dois processo, o bash e o tfs, ambos com interrogação do lado veja que tem dois bash killa somente o com a interrogação(?).
    Sempre primeiro o bash:
    kill -9 21748 Depois o server:
    kill -9 21750 Pronto.
     
    Recomendo para a proteção do seu site:
    Prevent DOS attacks on apache webserver for DEBIAN linux with mod_evasive

Informação Importante

Confirmação de Termo