Ir para conteúdo

luanluciano93

Héroi
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Olá pessoal, resolvi criar um sistema de recompensa parecido com o sistema do tibia global para a versão 8.60, mas tie que fazer varias "gambiarras" para ele funcionar nesta versão.

    Para quem não conhece: http://www.tibiawiki.com.br/wiki/Loot#Sistema_de_Recompensas

    Basicamente meu sistema funciona da seguinte forma:
    • você determina as criaturas que irão funcionar com esse sistema (normalmente bosses).
    • durante a batalha com a criatura o sistema conta pontos aos jogadores por ataque, bloqueio e suporte ("healar" quem esta na batalha).
    • quando a criatura é morta o sistema cria um "loot" de acordo com os pontos e envia-o ao depot do jogador em uma bag determinada nas configurações.

    Primeiramente vamos criar o arquivo das configurações gerais, crie uma pasta dentro do "data" com o nome de sistemas e dentro cria um arquivo rewardchest.lua: 

    Depois em creaturescript crie dois arquivos:
    rewardchest_boss.lua:

    e rewardchest_pontos.lua: 

    Lembrando que em todas as criaturas que forem adicionadas ao sistema além de coloca-las no rewarchest.lua você deve add isso no xml do monstro: 
    <script> <event name="RewardChestDeath"/> <event name="RewardChestMonster"/> </script> E isso no creaturescript.xml: 
    <!-- Sistema de recompensa criado por luanluciano93 --> <event type="login" name="RewardChestLogin" event="script" value="rewardchest_pontos.lua"/> <event type="statschange" name="RewardChestStats" event="script" value="rewardchest_pontos.lua"/> <event type="death" name="RewardChestDeath" event="script" value="rewardchest_boss.lua"/> <event type="statschange" name="RewardChestMonster" event="script" value="rewardchest_boss.lua"/>
    Basicamente é isso, qualquer dúvida postem aqui ... abraços!

    LINK DO SCRIPT NO GITHUB: https://github.com/luanluciano93/ESTUDOS/tree/master/LUA/REWARD_SYSTEM_860
  2. Gostei
    luanluciano93 recebeu reputação de Kiriharae em [Projeto] New Styller   
    Olá pessoal, hoje venho apresentar meu projeto particular. Sou muito fã do mapa styller, sempre em horas vagas procurava joga-lo, para quem não conhece: é um servidor estilo baiakm só que mais difícil e com mais RPG, e como tenho me interessado por versões mais atuais, resolvi criar um styller (new styller) seguindo as ultimas atualizações do TFS, seria algo parecido com o projeto do Kaique e do Jamison, aqui no fórum, o KNJ.
    Irei postando de pouco em pouco as atualizações, definindo o que foi feito e o que ainda pretendo fazer ...
     

     
    # Informações do Servidor
    → Versão: 10.77 (seguindo as atualizações do TFS 1.2).
    → Exp: 500x (Inicial - veja aqui).
     
    → Skills 50
    → Magic 30
    → Loot: 4

    # Sistemas do Servidor
    → Cast System (100%)
    → Vip System (100% - liberado)
    → Reward Level System (100% - liberado)
    → Addons System (100%)
    → Mounts System (100%)
    → War System (100%)
    → Market System (100%)
    → Training OFF (100%)
    → Clean Database (100%)
    → Client Próprio - Opcional (100%)
    → Arena PVP. (100%)
    → Marriage System (pendente)
    → Quest Log (pendente)
    → Forja System (pendente)
    → Refinamento System (pendente)
    → Achievements System (pendente)
    → Cassino System (pendente)
    → Task System (pendente)
     
    # Eventos do Servidor
    → Zombi Evento. (100%)
    → War Anti-Entrosa (100%)
    → CastleWar. (100%)
    → BattleField Evento. (100%)
    → Capture The Flag. (100%)
    → Gran Tower. (100%)
    → Hour Kill. (100%)
    → War of Emperium. (100%)
    → Dota. (100%)
    → Coliseum. (100%)
    → Survival Evento. (100%)
     
    # Quests
    → Em breve.
     
    # Website
    → Em construção. (http://www.styller.org/)
     
    # Equipe
    → [member=luanluciano93] (administrador/scripter/webmaster)

    # Imagens



     
    # Pesquisa / Enquetes
    → Comose prevenir de disputas no Pagseguro?
     
    # Comentários de membros




      Curta nossa página no facebook.
     
    É isso pessoal, espero que gostem, abraços! 
  3. Obrigado
    luanluciano93 recebeu reputação de Soleister em [Canary] Mapa Global Completo 14x Atualizado   
    Olá galera, em 02/12/23 o projeto Canary atualizou seu release para a versão 3.1.2 e como estou desenvolvendo um servidor usando esta base decidi divulga-la, pois a cada dia ela melhor muito, é um projeto promissor.

    Para quem não conhece, Canary é um projeto desenvolvido no github de um servidor completo na versão 13.21 (atualmente) com todas as features do tibia global. Ele tem duas opções de datapack que seriam o global e um custom.

    Aqui está o link do projeto para quem quiser conhecer melhor: https://github.com/opentibiabr/canary
    Aqui está o link do lançamento do release para a versão 3.1.2 e suas mudanças e melhorias: https://github.com/opentibiabr/canary/compare/v3.1.1...v3.1.2
    Aqui está o link do discord do projeto para dúvidas e etc: https://discord.com/invite/gvTj5sh9Mp
    Aqui está o link de tutoriais e a documentação do projeto: https://docs.opentibiabr.com/home/welcome

    Algumas das features existentes no projeto:

    BOOSTED CREATURE:

     
    EVENT SCHEDULE:

     
    CYCLOPEDIA:

     
    CHARMS:

     
    DAILY REWARD: 

     
    PREY:

     
    IMBUEMENTS:

     
    MARKET:

     
    STORE:

     
    CUSTOM CHARACTERS:


     
    DENTRE MUITOS OUTROS!
  4. Obrigado
    Olá pessoal, resolvi criar um sistema de recompensa parecido com o sistema do tibia global para a versão 8.60, mas tie que fazer varias "gambiarras" para ele funcionar nesta versão.

    Para quem não conhece: http://www.tibiawiki.com.br/wiki/Loot#Sistema_de_Recompensas

    Basicamente meu sistema funciona da seguinte forma:
    • você determina as criaturas que irão funcionar com esse sistema (normalmente bosses).
    • durante a batalha com a criatura o sistema conta pontos aos jogadores por ataque, bloqueio e suporte ("healar" quem esta na batalha).
    • quando a criatura é morta o sistema cria um "loot" de acordo com os pontos e envia-o ao depot do jogador em uma bag determinada nas configurações.

    Primeiramente vamos criar o arquivo das configurações gerais, crie uma pasta dentro do "data" com o nome de sistemas e dentro cria um arquivo rewardchest.lua: 

    Depois em creaturescript crie dois arquivos:
    rewardchest_boss.lua:

    e rewardchest_pontos.lua: 

    Lembrando que em todas as criaturas que forem adicionadas ao sistema além de coloca-las no rewarchest.lua você deve add isso no xml do monstro: 
    <script> <event name="RewardChestDeath"/> <event name="RewardChestMonster"/> </script> E isso no creaturescript.xml: 
    <!-- Sistema de recompensa criado por luanluciano93 --> <event type="login" name="RewardChestLogin" event="script" value="rewardchest_pontos.lua"/> <event type="statschange" name="RewardChestStats" event="script" value="rewardchest_pontos.lua"/> <event type="death" name="RewardChestDeath" event="script" value="rewardchest_boss.lua"/> <event type="statschange" name="RewardChestMonster" event="script" value="rewardchest_boss.lua"/>
    Basicamente é isso, qualquer dúvida postem aqui ... abraços!

    LINK DO SCRIPT NO GITHUB: https://github.com/luanluciano93/ESTUDOS/tree/master/LUA/REWARD_SYSTEM_860
  5. Gostei
    luanluciano93 deu reputação a OT Archive em OTClient para navegadores   
    OTClient Redemption (mehah) para navegadores
    Em nome da OTServList Brasil e do OT Archive, adaptei o OTClient Redemption para rodar em navegadores web.
     
     
    Source: https://github.com/mehah/otclient/pull/894 Guia de compilação e uso: https://github.com/OTArchive/otclient/wiki/Guia-‐-OTClient-Redemption-Web Demo sem assets: https://demo.otarchive.com Versão modular: https://webclient.otarchive.com Vídeo demonstrando o client se conectando a um servidor:  


     
     
    Em caso de dúvidas sobre o client web ou sobre servidores com suporte a websockets, por favor poste aqui.
     
    Disponibilizou um client web para seu servidor? Me avise para que eu inclua seu OT na categoria Web na OTServList Brasil, com um botão "Jogar Agora".
  6. Gostei
    luanluciano93 recebeu reputação de L3K0T em Instalando o NGINX no Ubuntu 22.04   
    Olá, esse tutorial é uma parte do tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 

    Ele faz parte da 1º instalação da pilha LEMP no Ubuntu 22.04: o NGINX.
     
    PASSO 1 - COMO INSTALAR O SERVIDOR WEB NGINX
     
    Para mostrar páginas Web aos visitantes do seu site, vamos usar o Nginx, um servidor Web de alto desempenho. Usaremos o seguinte comando para instalar o Nginx:
    sudo apt install nginx Quando solicitado, digite Y para confirmar se deseja instalar o Nginx. Assim que a instalação terminar, o servidor web Nginx estará ativo e em execução em sua máquina.
     
    Agora confira o status do Nginx para ver se ele está corretamente ativo: 
    sudo systemctl status nginx Deve aparecer algo assim:
     
     
    Como vocês podem ver em verde: active (running), ou seja, está ativo e funcionando.
     
    Você pode também conferir a versão do nginx instalado com o comando: 
    nginx -v Eu obtive como resposta em 04JUL22: nginx version: nginx/1.18.0 (Ubuntu)
     
    PASSO 2 - LIBERANDO AS PORTAS NO FIREWALL
     
    Aqui a resposta seria bem ampla, pois você deve saber qual o tipo de firewall está usando. 
     
    Se você tiver o firewall UFW habilitado, você precisará permitir conexões com o Nginx. O Nginx registra alguns perfis diferentes de aplicações no UFW após a instalação. Para verificar quais perfis do UFW estão disponíveis, execute:
    sudo ufw app list Irá aparecer as opções:

     
    É recomendável que você habilite o perfil mais restritivo que, ainda assim, permitirá o tráfego que você precisa. Caso você ainda não tenha configurado o SSL (HTTPS) para seu servidor, você precisará apenas permitir o tráfego HTTP regular na porta 80 usando o comando:
    sudo ufw allow 'Nginx HTTP'  
    Verifique a mudança executando:
    sudo ufw status  
    No google cloud o firewall UFW é desativado por padrão, então ative-o antes com o comando e posterior digite Y para confirmar: 
    sudo ufw enable O google cloud é necessário também liberar as portas de acesso no firewall que é administrado pela plataforma do site deles, como explicado neste tutorial: GOOGLE COUD PLATAFORM.
     
     
    PASSO 3 - TESTANDO SE O NGINX ESTÁ FUNCIONANDO
     
    Entre pelo IP ou pelo DOMINIO da sua máquina pelo navegador, se aparecer a seguinte página está tudo correto.

     
    Caso não carregue esta página, você provavelmente está com bloqueio no firewall (firewall diferente dos que eu citei acima)
     
    A princípio é isso!
     
    Siga as atualizações no tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 
     
     
    Fontes: 
    - https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-20-04-pt
    - https://conectandonet.com.br/blog/como-instalar-a-pilha-lemp-no-ubuntu-20-04-server-desktop/
     
     
     
  7. Gostei
    luanluciano93 recebeu reputação de L3K0T em Instalando o NGINX no Ubuntu 22.04   
    segue o tutorial completo
  8. Obrigado
    Esse tutorial será composto por vários passo-a-passo (tópicos) de como montar toda a infraestrutura para deixar um servidor TFS 1.x online no Linux Ubuntu 22.04.
     
    INICIANDO A MÁQUINA LINUX
     
    É importante que toda vez que você entrar em sua máquina UBUNTU você atualize os pacotes já instalados para as versões mais recentes com o comando: 
    sudo apt update E depois procure por novos pacotes de atualização para a versão do UBUNTU instalado. (em alguns casos irá perguntar se você realmente deseja instalar determinado pacote, digite Y (yes - sim) e depois ENTER.
    sudo apt upgrade
    PILHA LEMP
    - Inicialmente você deve entender que as versões mais atuais do TFS suportam apenas o MySQL como armazenamento de banco de dados e não usam mais "account manager" no jogo para criação de contas, portanto você deverá ter um site para isto.
    - Para usar um site você deverá instalar o pacote de pilha conhecido como LEMP, que basicamente é um grupo de programas com a abreviação de LINUX - ENGINE X (nginx) - MySQL ou MariaDB (no caso usaremos a MariaDB) - PHP.
    - Para quem é mais leigo, é interessante saber que o Nginx é um servidor web (irá mostrar as páginas web), o MariaDB é programa de armazenamento e gerenciamento de dados do banco de dados e o PHP serve para processar código e gerar conteúdo dinâmico para o servidor Web.

    1 - TUTORIAL DE COMO INSTALAR O NGINX NO UBUNTU 22.04
    2 - TUTORIAL DE COMO INSTALAR O MARIADB NO UBUNTU 22.04
    3 - TUTORIAL DE COMO INSTALAR O PHP NO UBUNTU 22.04
     
    PHPMYADMIN
    - Apesar de já termos instalado o programa MariaDB que armazena e gerencia os dados de seu projeto, sabemos que não é muito fácil manipular os dados apenas por comandos no prompt (ainda mais por leigos) .. diante disso, iremos usar o PHPMYADMIN, que através de um interface web, realiza as ações no banco de dados de forma fácil e prática ...

    - TUTORIAL DE COMO INSTALAR O PHPMYADMIN NO UBUNTU 22.04 
     
    AJUSTANDO O TIMEZONE
     
    - Muitas máquina vem com o horário diferente do horário de sua região, para ver a hora da máquina basta usar o comando: 
    date  
    Se estiver diferente, você poderá usar o seguinte comando: 
    sudo timedatectl set-timezone America/Sao_Paulo Com o comando acima, você estará mudando a timezone para "America/Sao_Paulo", ou seja, ficará com o horário local do estado de São Paulo.
     
    Caso queira encontrar outra timezone, digite: 
    timedatectl list-timezones Para sair da lista use CTRL+C.
     
    Aposta feita a alteração, é necessário reiniciar a máquina: 
    sudo shutdown -r now E depois testar novamente.
     
    COMPILAR E CONFIGURAR TFS

    - TUTORIAL DE COMO COMPILAR E CONFIGURAR O TFS NO UBUNTU 22.04
     
    INSTALAR E CONFIGURAR SITE
    Existem, hoje em dia, várias opções de sites para otservs, e com o tempo quero fazer um tutorial para cada um ...

    - TUTORIAL DE COMO INSTALAR E CONFIGURAR O ZNOTE ACC NO UBUNTU 22.04
     
    Esse tópico estará em constante atualização .. e cada mudança irei informar nos comentários. Bom uso!
  9. Gostei
    tenta add só as alterações que add o quiver no jogo.
  10. Gostei
    luanluciano93 recebeu reputação de dumazin em Recompensa por Level (Item, Bank, Addon, Mount)   
    Olá pessoal, para quem não sabe esse script dá determinado item, quantidade / bank / addon / mount em determinado level.

    Crie um arquivo com o nome recompensa.lua em creaturescripts/scripts e coloque isso dentro:
    local table = { -- [level] = type = "item", id = {ITEM_ID, QUANTIDADE}, msg = "MENSAGEM"}, -- [level] = type = "bank", id = {QUANTIDADE, 0}, msg = "MENSAGEM"}, -- [level] = type = "addon", id = {ID_ADDON_FEMALE, ID_ADDON_MALE}, msg = "MENSAGEM"}, -- [level] = type = "mount", id = {ID_MOUNT, 0}, msg = "MENSAGEM"}, [20] = {type = "item", id = {2160, 2}, msg = "Voce ganhou 2 crystal coins por alcancar o level 20!"}, [30] = {type = "bank", id = {20000, 0}, msg = "Foi depositado em seu bank 20000 gold coints!"}, [40] = {type = "addon", id = {136, 128}, msg = "Voce ganhou o addon citizen full por alcancar o level 40!"}, [60] = {type = "mount", id = {2, 0}, msg = "Voce ganhou a montaria x!"}, } local storage = 15000 function onAdvance(player, skill, oldLevel, newLevel) if skill ~= SKILL_LEVEL or newLevel <= oldLevel then return true end for level, _ in pairs(table) do if newLevel >= level and player:getStorageValue(storage) < level then if table[level].type == "item" then player:addItem(table[level].id[1], table[level].id[2]) elseif table[level].type == "bank" then player:setBankBalance(player:getBankBalance() + table[level].id[1]) elseif table[level].type == "addon" then player:addOutfitAddon(table[level].id[1], 3) player:addOutfitAddon(table[level].id[2], 3) elseif table[level].type == "mount" then player:addMount(table[level].id[1]) else return false end player:sendTextMessage(MESSAGE_EVENT_ADVANCE, table[level].msg) player:setStorageValue(storage, level) end end player:save() return true end  
    E em creaturescripts.xml adcione a tag: 
    <event type="advance" name="Recompensa" script="recompensa.lua"/> Caso queira colocar outro basta colocar usar os exemplos que coloquei como comentário (--) e adicionar a linha inteira novamente ...

    Dúvidas postem aqui! Abraços
  11. Gostei
    luanluciano93 deu reputação a L3K0T em Tibia Harry Potter Origin - BOT Liberado (INAUGURADO)   
    O melhor do Tibia com a magia de Harry Potter!
    Descubra todas as novidades e melhorias que preparamos para você.
     
     
    Otclient V8 com bot incluído:
    Experimente uma jogabilidade mais prática e funcional com nosso Otclient V8, que vem com um bot integrado para facilitar suas tarefas diárias no jogo.
     
    Hunts privadas:
     Desfrute de locais exclusivos para caçar com seus amigos, proporcionando uma experiência única e personalizada sem interrupções.
     
    Sprites reformuladas:
    Aproveite visuais totalmente renovados que trazem uma nova vida ao jogo, tornando cada aventura mais envolvente e emocionante.
    Mapa brilhante e otimizado:
    Nosso mapa foi cuidadosamente revisado e otimizado, garantindo uma navegação fluida e a descoberta de novos locais emocionantes. Melhorias em áreas específicas tornam o ambiente mais desafiador e gratificante.
     
    Scripts totalmente refeitos:
    Implementamos uma série de novos scripts para melhorar a jogabilidade. Exemplos incluem um sistema de pets que permite que você tenha companheiros leais em suas aventuras, vassouras mágicas para uma locomoção rápida e NPCs customizados para interações mais ricas e variadas.
     
    Limpeza de scripts desnecessários:
    Removemos scripts que não adicionavam valor ao jogo, tornando-o mais leve e rápido. Agora, com comandos úteis e balanceados, você terá uma experiência mais fluida e eficiente.
    Balanciamento de spells:
    Ajustamos o dano das spells de ataque para que sejam proporcionais ao nível de magia (ML) do jogador, ao invés de um dano fixo. Isso traz um novo nível de estratégia ao combate, tornando cada batalha mais desafiadora e justa.
     
    Site exclusivo e OTClient desenvolvido pela nossa equipe:
    Nosso site exclusivo e o OTClient foram desenvolvidos por nossa equipe dedicada, oferecendo uma interface intuitiva e funcional, com todas as informações e ferramentas que você precisa para uma experiência de jogo completa.
     
    Sistema de craft:
    Introduzimos um sistema de craft robusto, permitindo que você crie seus próprios itens a partir de materiais coletados durante suas aventuras. Descubra novas receitas e possibilidades que vão aprimorar ainda mais sua jornada.
    Venha fazer parte dessa jornada mágica em Tibia Harry Potter Origin!

    Transforme-se em um verdadeiro bruxo e explore um mundo cheio de aventuras e mistérios. Junte-se a nós e viva a magia!** Não perca a oportunidade de embarcar nesta experiência única e desafiadora, onde cada detalhe foi pensado para proporcionar o máximo de diversão e imersão.
     

     

     

     
    Site: https://thpo.com.br seguro
    Discord: https://discord.gg/HCUP82gTFH +de 100 membros ja
  12. Gostei
    luanluciano93 recebeu reputação de L3K0T em Instalando o PHP no Ubuntu 22.04   
    Olá, esse tutorial é uma parte do tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 

    Ele faz parte da 3º instalação da pilha LEMP no Ubuntu 22.04: o PHP.
     
    PASSO 1 - COMO INSTALAR O PHP
     
    Você já tem instalado o Nginx para exibir seu conteúdo web e o MySQL para armazenar e gerenciar seus dados. Agora, você pode instalar o PHP para processar os códigos e gerar conteúdo dinâmico para o servidor Web.

    - Enquanto o Apache incorpora o interpretador PHP em cada solicitação, o Nginx necessita de um programa externo para lidar com o processamento PHP e atuar como uma ponte entre o próprio interpretador PHP e o servidor web. Isso permite um desempenho global melhor na maioria dos sites baseados em PHP, mas exige configuração adicional. Será necessário instalar o php-fpm, que significa “Gerenciador de processos PHP fastCGI”, e dizer ao Nginx para enviar as solicitações PHP para esse software para processamento.

    - Adicionalmente, você precisará do php-mysql php-mysqlnd, um módulo PHP que permite ao PHP se comunicar com os bancos de dados baseados em MySQL. Os pacotes básicos do PHP serão instalados automaticamente como dependências.

    Para instalar os pacotes php-fpm e php-mysql, execute e depois aperte Y para aceitar a instalação:
    sudo apt install php-fpm php-mysqlnd Agora confira o status do PHP-FPM para ver se ele está corretamente ativo: 
    sudo systemctl status php8.1-fpm Deve aparecer algo assim:

     
    Como vocês podem ver em verde: active (running), ou seja, está ativo e funcionando.
     
    PASSO 2 - CONFIGURAÇÕES DO PHP JUNTO AO NGINX
     
    Crie duas pastas com os comandos: 
    sudo mkdir /home/otserv sudo mkdir /home/www A pasta criada "otserv" é onde iremos deixar os arquivos do servidor e a pasta "www" que irá conter os arquivos do site.
     
    Usando o WinSCP, vá até a pasta /etc/nginx/sites-available/ e substitua o conteúdo do arquivo default por esse: https://raw.githubusercontent.com/luanluciano93/ESTUDOS/master/infraestrutura/default_nginx
     
    Quando estiver pronto, recarregue o nginx para aplicar as alterações:
    sudo systemctl reload nginx Agora, com o WinSCP vá até /home/www/ e crie um arquivo com o nome index.php e coloque isso dentro: <?php phpinfo(); ?>
     
    Após feito isso, entre com seu IP ou DOMÍNIO pelo navegador, e deverá aparecer as informações do PHP.

     
    PASSO 3 - CONFIGURAÇÕES DO PHP
     
    Com o WinScp, vá até o arquivo /etc/php/8.1/fpm/php.ini e altere: 
    ignore_repeated_errors = Off Para: 
    ignore_repeated_errors = On Altere: 
    ;date.timezone = Para: 
    date.timezone = America/Sao_Paulo Altere: 
    post_max_size = 8M Para: 
    post_max_size = 64M Altere: 
    upload_max_filesize = 2M Para: 
    upload_max_filesize = 64M  
    Após feito as alterações use o comando para dar reload no php-fpm: 
    sudo systemctl reload php8.1-fpm  
    A princípio é isso!
     
    Siga as atualizações no tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 
     
     
    Fontes: 
    - https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-20-04-pt
    - https://conectandonet.com.br/blog/como-instalar-a-pilha-lemp-no-ubuntu-20-04-server-desktop/
     
     
     
     
  13. Gostei
    Esse tutorial será composto por vários passo-a-passo (tópicos) de como montar toda a infraestrutura para deixar um servidor TFS 1.x online no Linux Ubuntu 22.04.
     
    INICIANDO A MÁQUINA LINUX
     
    É importante que toda vez que você entrar em sua máquina UBUNTU você atualize os pacotes já instalados para as versões mais recentes com o comando: 
    sudo apt update E depois procure por novos pacotes de atualização para a versão do UBUNTU instalado. (em alguns casos irá perguntar se você realmente deseja instalar determinado pacote, digite Y (yes - sim) e depois ENTER.
    sudo apt upgrade
    PILHA LEMP
    - Inicialmente você deve entender que as versões mais atuais do TFS suportam apenas o MySQL como armazenamento de banco de dados e não usam mais "account manager" no jogo para criação de contas, portanto você deverá ter um site para isto.
    - Para usar um site você deverá instalar o pacote de pilha conhecido como LEMP, que basicamente é um grupo de programas com a abreviação de LINUX - ENGINE X (nginx) - MySQL ou MariaDB (no caso usaremos a MariaDB) - PHP.
    - Para quem é mais leigo, é interessante saber que o Nginx é um servidor web (irá mostrar as páginas web), o MariaDB é programa de armazenamento e gerenciamento de dados do banco de dados e o PHP serve para processar código e gerar conteúdo dinâmico para o servidor Web.

    1 - TUTORIAL DE COMO INSTALAR O NGINX NO UBUNTU 22.04
    2 - TUTORIAL DE COMO INSTALAR O MARIADB NO UBUNTU 22.04
    3 - TUTORIAL DE COMO INSTALAR O PHP NO UBUNTU 22.04
     
    PHPMYADMIN
    - Apesar de já termos instalado o programa MariaDB que armazena e gerencia os dados de seu projeto, sabemos que não é muito fácil manipular os dados apenas por comandos no prompt (ainda mais por leigos) .. diante disso, iremos usar o PHPMYADMIN, que através de um interface web, realiza as ações no banco de dados de forma fácil e prática ...

    - TUTORIAL DE COMO INSTALAR O PHPMYADMIN NO UBUNTU 22.04 
     
    AJUSTANDO O TIMEZONE
     
    - Muitas máquina vem com o horário diferente do horário de sua região, para ver a hora da máquina basta usar o comando: 
    date  
    Se estiver diferente, você poderá usar o seguinte comando: 
    sudo timedatectl set-timezone America/Sao_Paulo Com o comando acima, você estará mudando a timezone para "America/Sao_Paulo", ou seja, ficará com o horário local do estado de São Paulo.
     
    Caso queira encontrar outra timezone, digite: 
    timedatectl list-timezones Para sair da lista use CTRL+C.
     
    Aposta feita a alteração, é necessário reiniciar a máquina: 
    sudo shutdown -r now E depois testar novamente.
     
    COMPILAR E CONFIGURAR TFS

    - TUTORIAL DE COMO COMPILAR E CONFIGURAR O TFS NO UBUNTU 22.04
     
    INSTALAR E CONFIGURAR SITE
    Existem, hoje em dia, várias opções de sites para otservs, e com o tempo quero fazer um tutorial para cada um ...

    - TUTORIAL DE COMO INSTALAR E CONFIGURAR O ZNOTE ACC NO UBUNTU 22.04
     
    Esse tópico estará em constante atualização .. e cada mudança irei informar nos comentários. Bom uso!
  14. Gostei
    luanluciano93 deu reputação a Pedro. em [Canary] Mapa Global Completo 14x Atualizado   
    Parabéns pelo empenho e progresso Luan, você é fera demais!
     
  15. Gostei
    luanluciano93 recebeu reputação de patrykdmf em [Canary] Mapa Global Completo 14x Atualizado   
    Olá galera, em 02/12/23 o projeto Canary atualizou seu release para a versão 3.1.2 e como estou desenvolvendo um servidor usando esta base decidi divulga-la, pois a cada dia ela melhor muito, é um projeto promissor.

    Para quem não conhece, Canary é um projeto desenvolvido no github de um servidor completo na versão 13.21 (atualmente) com todas as features do tibia global. Ele tem duas opções de datapack que seriam o global e um custom.

    Aqui está o link do projeto para quem quiser conhecer melhor: https://github.com/opentibiabr/canary
    Aqui está o link do lançamento do release para a versão 3.1.2 e suas mudanças e melhorias: https://github.com/opentibiabr/canary/compare/v3.1.1...v3.1.2
    Aqui está o link do discord do projeto para dúvidas e etc: https://discord.com/invite/gvTj5sh9Mp
    Aqui está o link de tutoriais e a documentação do projeto: https://docs.opentibiabr.com/home/welcome

    Algumas das features existentes no projeto:

    BOOSTED CREATURE:

     
    EVENT SCHEDULE:

     
    CYCLOPEDIA:

     
    CHARMS:

     
    DAILY REWARD: 

     
    PREY:

     
    IMBUEMENTS:

     
    MARKET:

     
    STORE:

     
    CUSTOM CHARACTERS:


     
    DENTRE MUITOS OUTROS!
  16. Gostei
    luanluciano93 deu reputação a Mateus Robeerto em [TFS 1.4.2] Reward Chest System!!   
    Com esse sistema desenvolvido pelo TFS 0.4 8.60 do @Luan Luciano, peguei e adaptei para TFS 1x.
     
    Basicamente, o sistema funciona da seguinte forma :
     
    Você determina as criaturas que funcionarão com este sistema (geralmente chefes).
    Durante a batalha com a criatura, o sistema concede pontos aos jogadores por atacar, bloquear e apoiar (curar) aqueles em batalha.
    Quando a criatura é morta, o sistema cria o saque com base nos pontos e o envia para o depósito do jogador em uma sacola especificada nas configurações
    Aqui está o GIF, mostrando quando o chefe é morto e o saque é enviado pelo correio.
    https://imgur.com/AJiM1mh
     
     
     
    registre o evento em determinado arquivo de monstro.
    XML.
    <script> <event name="RewardChestDeath"/> <event name="RewardChestMonster"/> </script> defina o cadáver do chefe como 0.
    <look type="201" corpse="0" /> Isto é RevScripts. Coloque o script em qualquer lugar da pasta data/scripts, seja uma subpasta ou seu local preferido .
    Reward_Chest_System.lua
    local function addRewardLoot(uid, bossName, rewardTable) local money = math.random(10, 40) local msg = "The following items are available in your reward chest:" local player = Player(uid) local chest = Game.createItem(REWARDCHEST.rewardBagId) if not player or not chest then return end chest:setAttribute("description", "Reward System has kill the boss " .. bossName .. ".") for _, reward in ipairs(rewardTable) do if math.random(100) <= reward[3] then local count = math.random(1, reward[2]) chest:addItem(reward[1], count) msg = msg .. " " .. (count > 1 and count or "") .. " " .. ItemType(reward[1]):getName() .. "," end end chest:addItem(2152, money) chest:moveTo(player:getInbox()) player:sendTextMessage(MESSAGE_INFO_DESCR, msg .. " and " .. money .. " platinum coins.") local boss = REWARDCHEST.bosses[bossName] player:setStorageValue(boss.storage, 0) player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE) end local function addLoot(lootTable, rewardTable, allLoot) if allLoot then for _, loot in ipairs(lootTable) do table.insert(rewardTable, loot) end else table.insert(rewardTable, lootTable[math.random(#lootTable)]) end end local function rewardChestSystem(bossName) local players = {} local boss = REWARDCHEST.bosses[bossName] for _, player in ipairs(Game.getPlayers()) do local points = player:getStorageValue(boss.storage) if points > 0 then table.insert(players, {player = player, points = points}) end end table.sort(players, function(a, b) return a.points > b.points end) local topPoints = players[1] and players[1].points or 0 for i, playerData in ipairs(players) do local player = playerData.player local points = playerData.points local rewardTable = {} if i == 1 then addLoot(boss.common, rewardTable, false) addLoot(boss.semiRare, rewardTable, false) addLoot(boss.rare, rewardTable, false) addLoot(boss.always, rewardTable, true) elseif points >= math.ceil(topPoints * 0.8) then addLoot(boss.common, rewardTable, false) addLoot(boss.semiRare, rewardTable, false) addLoot(boss.rare, rewardTable, false) addLoot(boss.veryRare, rewardTable, false) elseif points >= math.ceil(topPoints * 0.6) then addLoot(boss.common, rewardTable, false) addLoot(boss.semiRare, rewardTable, false) addLoot(boss.rare, rewardTable, false) elseif points >= math.ceil(topPoints * 0.4) then addLoot(boss.common, rewardTable, false) addLoot(boss.semiRare, rewardTable, false) elseif points >= math.ceil(topPoints * 0.1) then addLoot(boss.common, rewardTable, false) end addRewardLoot(player:getId(), bossName, rewardTable) end end local RewardChestDeath = CreatureEvent("RewardChestDeath") function RewardChestDeath.onDeath(creature, corpse, killer) local boss = REWARDCHEST.bosses[creature:getName():lower()] if boss then addEvent(rewardChestSystem, 1000, creature:getName():lower()) end return true end RewardChestDeath:register() local RewardChestMonster = CreatureEvent("RewardChestMonster") function RewardChestMonster.onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) if creature:isMonster() and primaryType == COMBAT_PHYSICALDAMAGE and attacker:isPlayer() then local boss = REWARDCHEST.bosses[creature:getName():lower()] if boss then local currentPoints = attacker:getStorageValue(boss.storage) local newPoints = currentPoints + math.ceil(primaryDamage / REWARDCHEST.formula.hit) attacker:setStorageValue(boss.storage, newPoints) end end return primaryDamage, primaryType end RewardChestMonster:register() local LoginPlayer = CreatureEvent("LoginPlayer") function LoginPlayer.onLogin(player) for _, value in pairs(REWARDCHEST.bosses) do if player:getStorageValue(value.storage) > 0 then player:setStorageValue(value.storage, 0) end end player:registerEvent("RewardChestStats") return true end LoginPlayer:register() local RewardChestStats = CreatureEvent("RewardChestStats") function RewardChestStats.onHealthChange(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType, origin) if attacker and attacker:isMonster() and (primaryType == COMBAT_PHYSICALDAMAGE or secondaryType == COMBAT_PHYSICALDAMAGE) then local boss = REWARDCHEST.bosses[attacker:getName():lower()] if boss then local currentPoints = creature:getStorageValue(boss.storage) local newPoints = currentPoints + math.ceil(math.abs(primaryDamage) / REWARDCHEST.formula.block) creature:setStorageValue(boss.storage, newPoints) creature:setStorageValue(REWARDCHEST.storageExaust, os.time() + 5) end elseif attacker and attacker:isPlayer() and (primaryType == COMBAT_HEALING or secondaryType == COMBAT_HEALING) and (creature:getHealth() < creature:getMaxHealth()) and (creature:getStorageValue(REWARDCHEST.storageExaust) >= os.time()) then for _, valor in pairs(REWARDCHEST.bosses) do if creature:getStorageValue(valor.storage) > 0 then local add = math.min(primaryDamage, creature:getMaxHealth() - creature:getHealth()) local currentPoints = attacker:getStorageValue(valor.storage) local newPoints = currentPoints + math.ceil(add / REWARDCHEST.formula.suport) attacker:setStorageValue(valor.storage, newPoints) end end end return primaryDamage, primaryType end RewardChestStats:register() Agora, esta parte sobre raridades de loot de monstros... deve ser adicionada ao data/lib e criar um arquivo.lua chamado RewardChestSystem.lua e adicionar tudo isso.
    -- Reward system created by luanluciano93 for TFS 0.4, function adapted by Mateus Roberto for TFS 1.3+ using RevScripts. REWARDCHEST = { rewardBagId = 2595, formula = {hit = 3, block = 1, support = 9}, storageExhaust = 60000, town_id = 1, bosses = { ["ghazbaran"] = -- the boss's entire name in lower case. { common = { {2143, 10, 100}, -- white pearl {2146, 10, 100}, -- small sapphire {2145, 10, 100}, -- small diamond {2144, 10, 100}, -- black pearl {2149, 10, 100}, -- small emeralds {5954, 3, 100}, -- demon horn {7896, 1, 100}, -- glacier kilt {7590, 1, 100}, -- great mana potion {2179, 1, 100}, -- gold ring {2151, 1, 100}, -- talon }, semiRare = { {2152, 90, 100}, -- platinum coin {7368, 50, 100}, -- assassin star {2130, 1, 100}, -- golden amulet {2436, 1, 100}, -- skull staff {2447, 1, 100}, -- twin axe {2171, 1, 100}, -- platinum amulet {2158, 1, 100}, -- blue gem {2393, 1, 100}, -- giant sword {2164, 1, 100}, -- might ring {7454, 1, 100}, -- glorious axe {6553, 1, 100}, -- ruthless axe {9971, 1, 100}, -- gold ingot }, rare = { {2160, 3, 100}, -- crystal coin {8887, 1, 100}, -- frozen plate {2470, 1, 100}, -- golden legs {2472, 1, 100}, -- magic plate armor {7431, 1, 100}, -- demonbone {2520, 1, 100}, -- demon shield {5943, 1, 100}, -- morgaroth heart {2466, 1, 100}, -- golden armor {2514, 1, 100}, -- mastermind shield {2142, 1, 100}, -- ancient amulet {2123, 1, 100}, -- ring of the sky {1984, 1, 100}, -- blue tome }, veryRare = { {8866, 1, 100}, -- robe of the ice queen {6553, 1, 100}, -- ruthless axe {8884, 1, 100}, -- oceanborn leviathan armor {2421, 1, 100}, -- thunder hammer {2646, 1, 100}, -- golden boots {7455, 1, 100}, -- mythril axe }, always = { {2148, 90, 100}, -- gold coin {6500, 9, 100}, -- demonic essence {2177, 1, 100}, -- life crystal {2214, 1, 100}, -- ring of healing }, storage = 65479, }, ["orshabaal"] = -- the boss's entire name in lower case. { common = { {2143, 10, 100}, -- white pearl {2146, 10, 100}, -- small sapphire {2145, 10, 100}, -- small diamond {2144, 10, 100}, -- black pearl {2149, 10, 100}, -- small emeralds {5954, 3, 100}, -- demon horn {7896, 1, 100}, -- glacier kilt {2432, 1, 100}, -- fire axe {2462, 1, 100}, -- devil helmet {7590, 1, 100}, -- great mana potion {2179, 1, 100}, -- gold ring {2151, 1, 100}, -- talon }, semiRare = { {2195, 1, 100}, -- boots of haste {2436, 1, 100}, -- skull staff {2393, 1, 100}, -- giant sword {5954, 5, 100}, -- demon horn }, rare = { {2470, 1, 100}, -- golden legs {2472, 1, 100}, -- magic plate armor {2514, 1, 100}, -- mastermind shield {2520, 1, 100}, -- demon shield {1982, 1, 100}, -- purple tome {2123, 1, 100}, -- ring of the sky }, veryRare = { {8890, 1, 100}, -- robe of the underworld {2421, 1, 100}, -- thunder hammer }, always = { {5808, 1, 100}, -- orshabaal's brain {2171, 1, 100}, -- platinum amulet {2148, 90, 100}, -- gold coin {2146, 10, 100}, -- small sapphire }, storage = 65480, }, ["ferumbras"] = -- the boss's entire name in lower case. { common = { {2143, 10, 100}, -- white pearl {2146, 10, 100}, -- small sapphire {2145, 10, 100}, -- small diamond {2144, 10, 100}, -- black pearl {2149, 10, 100}, -- small emeralds {7416, 1, 100}, -- bloody edge {7896, 1, 100}, -- glacier kilt {2432, 1, 100}, -- fire axe {2462, 1, 100}, -- devil helmet {7590, 1, 100}, -- great mana potion {2179, 1, 100}, -- gold ring {2151, 1, 100}, -- talon }, semiRare = { {2195, 1, 100}, -- boots of haste {2472, 1, 100}, -- magic plate armor {2393, 1, 100}, -- giant sword {2470, 1, 100}, -- golden legs {2514, 1, 100}, -- mastermind shield }, rare = { {8885, 1, 100}, -- divine plate {2520, 1, 100}, -- demon shield {8930, 1, 100}, -- emerald sword {2522, 1, 100}, -- great shield {2421, 1, 100}, -- thunder hammer }, veryRare = { {5903, 1, 100}, -- ferumbras' hat }, always = { {2171, 1, 100}, -- platinum amulet {2148, 90, 100}, -- gold coin {2146, 10, 100}, -- small sapphire }, storage = 65481, }, ["zulazza the corruptor"] = --- the boss's entire name in lower case. { common = { {2158, 1, 100}, -- blue gem {2156, 1, 100}, -- red gem {2155, 1, 100}, -- green gem {2154, 1, 100}, -- yellow gem {2153, 1, 100}, -- violet gem }, semiRare = { {5944, 5, 100}, -- soul orb }, rare = { {2514, 1, 100}, -- mastermind shield }, veryRare = { {11114, 1, 100}, -- dragon scale boots {8882, 1, 100}, -- earthborn titan armor }, always = { {2152, 90, 100}, -- platinum coin {9971, 5, 100}, -- gold ingot }, storage = 65482, }, ["morgaroth"] = -- the boss's entire name in lower case. { common = { {2143, 10, 100}, -- white pearl {2146, 10, 100}, -- small sapphire {2145, 10, 100}, -- small diamond {2144, 10, 100}, -- black pearl {2149, 10, 100}, -- small emeralds {5954, 3, 100}, -- demon horn {7896, 1, 100}, -- glacier kilt {2432, 1, 100}, -- fire axe {2462, 1, 100}, -- devil helmet {7590, 1, 100}, -- great mana potion {2179, 1, 100}, -- gold ring {2151, 1, 100}, -- talon }, semiRare = { {2195, 1, 100}, -- boots of haste {2393, 1, 100}, -- giant sword {5954, 5, 100}, -- demon horn {2123, 1, 100}, -- ring of the sky }, rare = { {8886, 1, 100}, -- molten plate {2472, 1, 100}, -- magic plate armor {8867, 1, 100}, -- dragon robe {2514, 1, 100}, -- mastermind shield {2520, 1, 100}, -- demon shield {1982, 1, 100}, -- purple tome {8851, 1, 100}, -- royal crossbow }, veryRare = { {2421, 1, 100}, -- thunder hammer {2522, 1, 100}, -- great shield {8850, 1, 100}, -- chain bolter }, always = { {5943, 1, 100}, -- morgaroth's brain {2171, 1, 100}, -- platinum amulet {2148, 90, 100}, -- gold coin {2146, 10, 100}, -- small sapphire }, storage = 65483, }, } } Por último, adicione isto a data/lib/lib.lua e inclua-o.
    ----Reward Chest System dofile('data/lib/RewardChestSystem.lua') Incrível, você pode configurar os itens de saque de cada chefe individualmente. Está dentro da lib/RewardChestSystem, então aproveite.
     
    Para quem usa Nekiro ou qualquer base TFS 1.x Downgrades,
    basta alterar esta linha.
    chest:moveTo(player:getInbox()) para. local depotChest = player:getDepotChest(REWARDCHEST.town_id, true) chest:moveTo(depotChest)  
  17. Gostei
    Olá, esse tutorial é uma parte do tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 
     
    Aqui ensinaremos como compilar o código fonte do TFS na máquina LINUX e posterior configurar o servidor.
     
    PASSO 1 - COMPILANDO TFS NO UBUNTU
     
    Primeiramente, devemos instalar os softwares necessários. O comando a seguir instalará o CMake, um compilador e as bibliotecas usadas pelo TFS. Após usar o comando digite Y para aceitar a instalação.
    sudo apt install cmake build-essential libluajit-5.1-dev libmysqlclient-dev libboost-system-dev libboost-iostreams-dev libboost-filesystem-dev libpugixml-dev libcrypto++-dev libfmt-dev libboost-date-time-dev  
    Caso ainda não tenha criado a pasta do servidor (como foi dito no tutorial de instalação do PHP), use o comando a seguir para criar a pasta:
    sudo mkdir /home/otserv  
    E depois vá até a pasta usando o comando: 
    cd /home/otserv  
    Agora, usando o WinSCP vá até a pasta /home/otserv/ e jogue a pasta de seu servidor ai dentro ... 
     
    Antes deve estar assim: (se você seguiu o tutorial de instalação do PHP)
       
     
    Depois, os arquivos transferidos devem ser esses!

     
    Caso você não tenha os arquivos necessários, use:
    - TFS atual: https://github.com/otland/forgottenserver
    - TFS Nekiro's 8.60 Downgrade: https://github.com/nekiro/TFS-1.5-Downgrades/tree/8.60
     
    Após transferido os arquivos, use o comando abaixo para criar a pasta BUILD e entrar nela: 
    mkdir build && cd build E depois, use o comando do compilador: 
    cmake ..  
    Agora use o comando para compilar o código fonte do TFS:
    make  
    E pronto, o código fonte foi compilado e gerou um arquivo "tfs", agora use o comando a seguir para mover o TFS para a pasta do servidor e voltar para a pasta anterior.
    mv tfs .. && cd .. Ficando assim na pasta "otserv": 

     
    PASSO 2 - IMPORTANDO DATABASE E AJUSTANDO CONEXÃO PELO CONFIG.LUA
     
    Entre em seu phpmyadmin pelo navegador (IP/phpmyadmin, ou o outro destino que você escolheu conforme o tópico de instalação do phpmyadmin) 

    Depois clique em "novo" para criar um novo banco de dados:
     
     
    E depois de digitar o nome do novo banco de dados, clique em "criar": 

     
    Agora clique em "IMPORTAR" e depois em "escolher arquivo":

    E então selecione o arquivo padrão de database. Se você não tiver um arquivo padrão, use a do TFS: https://raw.githubusercontent.com/otland/forgottenserver/master/schema.sql
     
    E por fim, clique em EXECUTAR.

     
     
    No arquivo config.lua.dist você deve ajustar o dados para a conexão com o banco de dados: 
     
    -- MySQL mysqlHost = "127.0.0.1" mysqlUser = "forgottenserver" mysqlPass = "" mysqlDatabase = "forgottenserver" mysqlPort = 3306 mysqlSock = ""  
    (você pode incluir o caminho do mysqlSock para mysqlSock = "/var/run/mysqld/mysqld.sock"
     
    PASSO 3 - LIGANDO SEU SERVIDOR TFS NO UBUNTU E CRIANDO ARQUIVO AUTO RESTART
     
    Para prosseguirmos será necessária a instalação do SCREEN em sua máquina, veja o tutorial que explica o que ele é, para que server e ensina instala-lo: AQUI.
     
    Após a instalação, vamos criar um SCREEN para rodar o servidor chamada TFS ... 
    screen -S TFS  
    E após, usando o WinSCP, vá até a pasta do seu servidor em /home/otserv/ e crie um arquivo chamado "restart.sh" e coloque isso dentro dele:
    #!/bin/bash # to get 'ts' command: sudo apt install moreutils # to get 'crc32' command: sudo apt install libarchive-zip-perl BINARY_NAME=tfs MYSQL_USER=xxxx MYSQL_PASS=yyyy MYSQL_DATABASE=zzzz mkdir console mkdir crashlog mkdir mysql_backup # Permitir despejos de nucleo ulimit -c unlimited # Laco principal while true; do     # Backup do banco de dados, e o melhor momento para fazer a copia do banco de dados, o OTS esta offline com certeza, entao nao pode haver nenhum clone de item.     mysqldump -u $MYSQL_USER -p$MYSQL_PASS $MYSQL_DATABASE > mysql_backup/`date '+%Y-%m-%d_%H-%M'`.sql     # Compactar em gzip com mais de 3 dias.     find console/ -name "*.log" -mtime +3 -print -exec gzip -f {} \;     find crashlog/ -name "*.bin" -mtime +3  -print -exec gzip -f {} \;     find crashlog/ -name "*.core" -mtime +3  -print -exec gzip -f {} \;     find mysql_backup/ -name "*.sql" -mtime +3  -print -exec gzip -f {} \;     BINARY_WITH_HASH=`date '+%Y-%m-%d_%H-%M'`_`crc32 $BINARY_NAME`     # copie o arquivo binário atual, você precisa do binário desde o momento da falha para executá-lo no gdb.     cp $BINARY_NAME crashlog/$BINARY_WITH_HASH.bin     # iniciar servidor     # se o seu servidor já imprime a data com cada linha no console, você pode remover "| ts '%Y-%m-%d_%H-%M-%.S'"     stdbuf -o 0 ./$BINARY_NAME 2>&1 | ts '%Y-%m-%d_%H-%M-%.S' | tee 'console.log'     cat 'console.log' >> 'console/console_'`date '+%Y-%m-%d'`'.log';     mv core crashlog/$BINARY_WITH_HASH.core     echo INICIAR A ESPERA POR 3 SEGUNDOS, PRESSIONE CTRL+C PARA DESLIGAR O RESTARTER     sleep 3     echo FIM DA ESPERA done  
    Em seguida, dar permissão ao arquivo "restart,sh" com o comando: 
    sudo chmod 777 -R restart.sh  
    Logo, instale os programas necessários para o restart funcionar corretamente:
    sudo apt install moreutils sudo apt install libarchive-zip-perl Posterior, configure o restart.sh com os dados corretos para a conexão SQL: troque onde esta xxxx, zzzz, yyyy

    Para o restarter criar o arquivo core é necessário desativar o serviço apport no sistema com o comando:
    sudo systemctl stop apport.service sudo systemctl disable apport.service Depois de desativar, use o comando a seguir para ver se está ativo o core, você terá que ter como resposta: core
    cat /proc/sys/kernel/core_pattern  
    E por fim, iniciar o uso do arquivo "restart.sh" com o comando:
    ./restart.sh  
    A princípio é isso!
     
    Siga as atualizações no tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 
     
     
    Fontes: 
    - https://github.com/otland/forgottenserver/wiki/Compiling-on-Ubuntu
     
     
     
     
     
  18. Gostei
    luanluciano93 recebeu reputação de thepops em Instalando a MariaDB no Ubuntu 22.04   
    Olá, esse tutorial é uma parte do tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 

    Ele faz parte da 2º instalação da pilha LEMP no Ubuntu 22.04: a MariaDB.
     
    PASSO 1 - COMO INSTALAR O SERVIDOR DE BANCO DE DADOS MariaDB
     
    O MariaDB é um sistema de gerenciamento de banco de dados de código aberto, usado com frequência como uma alternativa ao MySQL. Ele é desenvolvido por ex-membros da equipe do MySQL que estão preocupados que o Oracle possa transformar o MySQL em um produto de código fechado.

    Digite o seguinte comando para instalar o MariaDB no Ubuntu 22.04, após iniciar, é necessário digitar Y para prosseguir ... 
    sudo apt install mariadb-server Depois de instalado, o servidor MariaDB deve ser automaticamente visualizado.
     
    Use o comando a seguir para verificar seu status: 
    sudo systemctl status mariadb Irá aparecer o seguinte resultado:

     
    Como vocês podem ver em verde: active (running), ou seja, está ativo e funcionando.
     
    Você pode também conferir a versão do MariaDB instalado com o comando: 
    mariadb --version Eu obtive como resposta em 05JUL22: mariadb Ver 15.1 Distrib 10.6.7-MariaDB
     
    PASSO 2 - CONFIGURANDO O MARIADB
     
    O próximo passo será executar o script de segurança incluído. Esse script modifica algumas das opções padrões menos seguras referentes, por exemplo, a logins root remotos e usuários de exemplo.
     
    Execute o script de segurança:
    sudo mysql_secure_installation Isso levará você a uma série de prompts onde é possível fazer algumas alterações nas opções de segurança de sua instalação do MariaDB.

    O primeiro prompt pedirá que digite a senha atual do root do banco de dados. Como ainda não configuramos uma senha, pressione ENTER para indicar “nenhuma”,

     
    Em seguida, o sistema irá perguntar se você quer usar o unix_socket, pois ele garante que ninguém possa fazer o login no usuário root do MARIADB sem a devida autorização. Digite que sim (Y)

    Ativar a autenticação unix_socket? [S/n]
     
    Em seguida, digite Y para definir a senha raiz do servidor MariaDB.


    ATENÇÃO: A SENHA QUE VOCÊ DEFINIR SERÁ A SENHA DO SERVIDOR SQL, ELA SERÁ USADA PARA CONEXÃO DO  SITE E DO SERVIDOR AO BANCO DE DADOS! GUARDE-A BEM!

    Em seguida, você pode pressionar ENTER (com ENTER é escolhido a resposta padrão, que sempre é mostrada em maiúsculo. Nesse caso será o Y) para responder a todas as perguntas restantes:


    - Remover usuários anônimos? [Sim/n]
    - Não permitir login root remotamente? [Sim/n]
    - Remover banco de dados de teste e acesso a ele? [Sim/n]
    - Recarregar as tabelas de privilégios garantirá que todas as alterações feitas até agora entrará em vigor imediatamente. Recarregar tabelas de privilégios agora?  [Sim/n]

    Esta etapa é um requisito básico para a segurança do banco de dados MariaDB.
     
    A princípio é isso!
     
    Siga as atualizações no tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 
     
     
    Fontes:
    - https://conectandonet.com.br/blog/como-instalar-a-pilha-lemp-no-ubuntu-20-04-server-desktop/
    - https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-20-04-pt
     
     
     
     
     
     
  19. Gostei
    luanluciano93 recebeu reputação de thepops em Instalando o NGINX no Ubuntu 22.04   
    Olá, esse tutorial é uma parte do tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 

    Ele faz parte da 1º instalação da pilha LEMP no Ubuntu 22.04: o NGINX.
     
    PASSO 1 - COMO INSTALAR O SERVIDOR WEB NGINX
     
    Para mostrar páginas Web aos visitantes do seu site, vamos usar o Nginx, um servidor Web de alto desempenho. Usaremos o seguinte comando para instalar o Nginx:
    sudo apt install nginx Quando solicitado, digite Y para confirmar se deseja instalar o Nginx. Assim que a instalação terminar, o servidor web Nginx estará ativo e em execução em sua máquina.
     
    Agora confira o status do Nginx para ver se ele está corretamente ativo: 
    sudo systemctl status nginx Deve aparecer algo assim:
     
     
    Como vocês podem ver em verde: active (running), ou seja, está ativo e funcionando.
     
    Você pode também conferir a versão do nginx instalado com o comando: 
    nginx -v Eu obtive como resposta em 04JUL22: nginx version: nginx/1.18.0 (Ubuntu)
     
    PASSO 2 - LIBERANDO AS PORTAS NO FIREWALL
     
    Aqui a resposta seria bem ampla, pois você deve saber qual o tipo de firewall está usando. 
     
    Se você tiver o firewall UFW habilitado, você precisará permitir conexões com o Nginx. O Nginx registra alguns perfis diferentes de aplicações no UFW após a instalação. Para verificar quais perfis do UFW estão disponíveis, execute:
    sudo ufw app list Irá aparecer as opções:

     
    É recomendável que você habilite o perfil mais restritivo que, ainda assim, permitirá o tráfego que você precisa. Caso você ainda não tenha configurado o SSL (HTTPS) para seu servidor, você precisará apenas permitir o tráfego HTTP regular na porta 80 usando o comando:
    sudo ufw allow 'Nginx HTTP'  
    Verifique a mudança executando:
    sudo ufw status  
    No google cloud o firewall UFW é desativado por padrão, então ative-o antes com o comando e posterior digite Y para confirmar: 
    sudo ufw enable O google cloud é necessário também liberar as portas de acesso no firewall que é administrado pela plataforma do site deles, como explicado neste tutorial: GOOGLE COUD PLATAFORM.
     
     
    PASSO 3 - TESTANDO SE O NGINX ESTÁ FUNCIONANDO
     
    Entre pelo IP ou pelo DOMINIO da sua máquina pelo navegador, se aparecer a seguinte página está tudo correto.

     
    Caso não carregue esta página, você provavelmente está com bloqueio no firewall (firewall diferente dos que eu citei acima)
     
    A princípio é isso!
     
    Siga as atualizações no tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 
     
     
    Fontes: 
    - https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-20-04-pt
    - https://conectandonet.com.br/blog/como-instalar-a-pilha-lemp-no-ubuntu-20-04-server-desktop/
     
     
     
  20. Gostei
    luanluciano93 recebeu reputação de Matheus Sesso em [Canary] Mapa Global Completo 14x Atualizado   
    Olá galera, em 02/12/23 o projeto Canary atualizou seu release para a versão 3.1.2 e como estou desenvolvendo um servidor usando esta base decidi divulga-la, pois a cada dia ela melhor muito, é um projeto promissor.

    Para quem não conhece, Canary é um projeto desenvolvido no github de um servidor completo na versão 13.21 (atualmente) com todas as features do tibia global. Ele tem duas opções de datapack que seriam o global e um custom.

    Aqui está o link do projeto para quem quiser conhecer melhor: https://github.com/opentibiabr/canary
    Aqui está o link do lançamento do release para a versão 3.1.2 e suas mudanças e melhorias: https://github.com/opentibiabr/canary/compare/v3.1.1...v3.1.2
    Aqui está o link do discord do projeto para dúvidas e etc: https://discord.com/invite/gvTj5sh9Mp
    Aqui está o link de tutoriais e a documentação do projeto: https://docs.opentibiabr.com/home/welcome

    Algumas das features existentes no projeto:

    BOOSTED CREATURE:

     
    EVENT SCHEDULE:

     
    CYCLOPEDIA:

     
    CHARMS:

     
    DAILY REWARD: 

     
    PREY:

     
    IMBUEMENTS:

     
    MARKET:

     
    STORE:

     
    CUSTOM CHARACTERS:


     
    DENTRE MUITOS OUTROS!
  21. Gostei
    luanluciano93 recebeu reputação de Bruno111111111111111 em Instalando o PHP no Ubuntu 22.04   
    Olá, esse tutorial é uma parte do tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 

    Ele faz parte da 3º instalação da pilha LEMP no Ubuntu 22.04: o PHP.
     
    PASSO 1 - COMO INSTALAR O PHP
     
    Você já tem instalado o Nginx para exibir seu conteúdo web e o MySQL para armazenar e gerenciar seus dados. Agora, você pode instalar o PHP para processar os códigos e gerar conteúdo dinâmico para o servidor Web.

    - Enquanto o Apache incorpora o interpretador PHP em cada solicitação, o Nginx necessita de um programa externo para lidar com o processamento PHP e atuar como uma ponte entre o próprio interpretador PHP e o servidor web. Isso permite um desempenho global melhor na maioria dos sites baseados em PHP, mas exige configuração adicional. Será necessário instalar o php-fpm, que significa “Gerenciador de processos PHP fastCGI”, e dizer ao Nginx para enviar as solicitações PHP para esse software para processamento.

    - Adicionalmente, você precisará do php-mysql php-mysqlnd, um módulo PHP que permite ao PHP se comunicar com os bancos de dados baseados em MySQL. Os pacotes básicos do PHP serão instalados automaticamente como dependências.

    Para instalar os pacotes php-fpm e php-mysql, execute e depois aperte Y para aceitar a instalação:
    sudo apt install php-fpm php-mysqlnd Agora confira o status do PHP-FPM para ver se ele está corretamente ativo: 
    sudo systemctl status php8.1-fpm Deve aparecer algo assim:

     
    Como vocês podem ver em verde: active (running), ou seja, está ativo e funcionando.
     
    PASSO 2 - CONFIGURAÇÕES DO PHP JUNTO AO NGINX
     
    Crie duas pastas com os comandos: 
    sudo mkdir /home/otserv sudo mkdir /home/www A pasta criada "otserv" é onde iremos deixar os arquivos do servidor e a pasta "www" que irá conter os arquivos do site.
     
    Usando o WinSCP, vá até a pasta /etc/nginx/sites-available/ e substitua o conteúdo do arquivo default por esse: https://raw.githubusercontent.com/luanluciano93/ESTUDOS/master/infraestrutura/default_nginx
     
    Quando estiver pronto, recarregue o nginx para aplicar as alterações:
    sudo systemctl reload nginx Agora, com o WinSCP vá até /home/www/ e crie um arquivo com o nome index.php e coloque isso dentro: <?php phpinfo(); ?>
     
    Após feito isso, entre com seu IP ou DOMÍNIO pelo navegador, e deverá aparecer as informações do PHP.

     
    PASSO 3 - CONFIGURAÇÕES DO PHP
     
    Com o WinScp, vá até o arquivo /etc/php/8.1/fpm/php.ini e altere: 
    ignore_repeated_errors = Off Para: 
    ignore_repeated_errors = On Altere: 
    ;date.timezone = Para: 
    date.timezone = America/Sao_Paulo Altere: 
    post_max_size = 8M Para: 
    post_max_size = 64M Altere: 
    upload_max_filesize = 2M Para: 
    upload_max_filesize = 64M  
    Após feito as alterações use o comando para dar reload no php-fpm: 
    sudo systemctl reload php8.1-fpm  
    A princípio é isso!
     
    Siga as atualizações no tópico principal: "Tutorial completo de infraestrutura para montar um servidor TFS 1.x no Ubuntu 22.04" ... 
     
     
    Fontes: 
    - https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-20-04-pt
    - https://conectandonet.com.br/blog/como-instalar-a-pilha-lemp-no-ubuntu-20-04-server-desktop/
     
     
     
     
  22. Gostei
    luanluciano93 recebeu reputação de Bruno111111111111111 em Instalando o PHP no Ubuntu 22.04   
    Atualizado do Ubuntu 20.04 para  Ubuntu 22.04.
  23. Gostei
    Fala Luan, como sempre tu arrebenta em kkkkkk, parabéns pelo trampo irmão , deu certo desta vez. Obrigado 
    Fala Luan, como sempre tu arrebenta em kkkkkk, parabéns pelo trampo irmão , deu certo desta vez. Obrigado 
  24. Obrigado
    luanluciano93 recebeu reputação de gabitutox em Erro no OTclientv8 (ONLY PROTOCOL VERSION 13.32 IS ALLOWED)   
    procure a opção de OldProtocol no config.lua e deixe true, depois só logar pelo otc na versão 11
  25. Gostei
    luanluciano93 recebeu reputação de Gabrielx17 em Ajuda com Hearty System   
    function onKill(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerIp(cid) ~= getPlayerIp(target) then if getPlayerLevel(target) >= 80 then local heart = doPlayerAddItem(cid, 5943, 1) if heart then doItemSetAttribute(heart, "name", "" .. getPlayerName(target) .. " Heart's") doItemSetAttribute(heart, "description", "Killed at Level ".. getPlayerLevel(target) .." by ".. getPlayerName(cid) ..". " .. (getCreatureSkullType(cid) <= SKULL_GREEN and "(Unjustified)" or "(Justified)")) end end elseif getPlayerIp(cid) == getPlayerIp(target) then doPlayerAddExp(cid, -10000) end end return true end  

Informação Importante

Confirmação de Termo