Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 10/17/23 em todas áreas

  1. 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
  2. Pense que é forma de apoiar a usar sempre o mais atual, consequentemente o mais seguro, estável ... etc.
  3. 1 ponto
    crie em "data/scripts" goldenbag.lua function onEquipItem(cid, item, slot) if item.itemid == 7739 and slot == CONST_SLOT_BACKPACK then doPlayerAddSkill(cid, SKILL_DISTANCE, 300) -- Adiciona 300 pontos na skill Distance doPlayerAddSkill(cid, SKILL_AXE, 300) -- Adiciona 300 pontos na skill Axe doPlayerAddSkill(cid, SKILL_SWORD, 300) -- Adiciona 300 pontos na skill Sword doPlayerAddSkill(cid, SKILL_CLUB, 300) -- Adiciona 300 pontos na skill Club doPlayerAddSkill(cid, SKILL_SHIELD, 300) -- Adiciona 300 pontos na skill Shield doPlayerAddSkill(cid, SKILL_FIST, 300) -- Adiciona 300 pontos na skill Fist doPlayerAddSpeed(cid, 300) -- Adiciona 300 pontos na velocidade do jogador doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você ganhou habilidades ao equipar a Golden Bag.") end return true end function onDeEquipItem(cid, item, slot) if item.itemid == 7739 and slot == CONST_SLOT_BACKPACK then doPlayerAddSkill(cid, SKILL_DISTANCE, -300) -- Remove 300 pontos na skill Distance doPlayerAddSkill(cid, SKILL_AXE, -300) -- Remove 300 pontos na skill Axe doPlayerAddSkill(cid, SKILL_SWORD, -300) -- Remove 300 pontos na skill Sword doPlayerAddSkill(cid, SKILL_CLUB, -300) -- Remove 300 pontos na skill Club doPlayerAddSkill(cid, SKILL_SHIELD, -300) -- Remove 300 pontos na skill Shield doPlayerAddSkill(cid, SKILL_FIST, -300) -- Remove 300 pontos na skill Fist doPlayerAddSpeed(cid, -300) -- Remove 300 pontos na velocidade do jogador doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você perdeu habilidades ao remover a Golden Bag.") end return true end teste ai e veja se é isso mesmo
  4. local function applyMagicLevelBonus(cid) local playerStorage = getPlayerStorageValue(cid, 848484) or 0 local mlBonus = 0 if playerStorage >= 15 then mlBonus = 2 elseif playerStorage >= 5 then mlBonus = 1 end if mlBonus > 0 then local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, mlBonus) if getCreatureCondition(cid, CONDITION_ATTRIBUTES) then doRemoveCondition(cid, CONDITION_ATTRIBUTES) end doAddCondition(cid, condition) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você ganhou " .. mlBonus .. " pontos de Magic Level.") end end function onLogin(cid) applyMagicLevelBonus(cid) return true end 1. applyMagicLevelBonus(cid): Esta função verifica o valor da storage (848484) do jogador. Se for 15 ou mais, ganha 2 pontos de Magic Level. Se for 5 ou mais, ganha 1 ponto de Magic Level. A função doPlayerSendTextMessage é usada para informar ao jogador quanto de Magic Level foi adicionado. 2. onLogin(cid): Quando um jogador loga, esta função é chamada. Ela simplesmente chama applyMagicLevelBonus(cid) para aplicar o bônus de Magic Level quando o jogador loga.
  5. PokeGhost Project

    Kageyama reagiu a dsoares15 por uma resposta no tópico

    1 ponto
    O s3db ja é o arquivo para abrir com banco de dados local, caso tenha o arquivo configurado corretamente, mas se não me engano a database disponibilizada nesse server é mysql EDIT: -- Database -- NOTE: sqlFile is used only by sqlite database, and sqlKeepAlive by mysql database. -- To disable sqlKeepAlive such as mysqlReadTimeout use 0 value. sqlType = "mysql" --mysql (site) ou sqlite (local) sqlHost = "localhost" -- padrao sqlPort = 3306 -- padrao sqlUser = "root" -- usuario do banco de dados se na maioria das vezes root padrão alterar quando online pra geral sqlPass = "" -- senha do banco de dados se na maioria das vezes root padrão alterar quando online pra geral sqlDatabase = "database" sqlFile = "Imperium.s3db" sqlKeepAlive = 0 mysqlReadTimeout = 10 mysqlWriteTimeout = 10 encryptionType = "sha1"
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo