Para criar um OTServ, primeiramente, peço a você que tenha um pouco de paciência e dedicação. Se concentre bastante ao ler o tutorial abaixo, não é nada complicado, mas procure extrair todas as informações que o mesmo oferece.
Primeiros passos
Obviamente, antes de tudo, você precisa de todos os arquivos necessários para rodar o servidor no seu computador e um registro no fórum. Para se registrar gratuitamente ######, xtibia, ou o que voce prefirir (informe um e-mail real no campo, pois você precisará confirmar o registro). Depois que você criar o registro, vá até a seção "Download de OTServs", baixe o servidor da versão que mais lhe chamar a atenção (para ter certeza se ele é bom, examine as respostas dos outros membros e o próprio tópico) e descompacte ele (todos os servidores da seção vêm compactados em arquivos RAR/ZIP, clique aqui e baixe o programa para descompactá-los) no diretório Meus Documentos ou qualquer outro de fácil acesso.
Você verá vários arquivos e pastas, mas por enquanto não mexa nem exclua nada. Dê um duplo clique no arquivo config.lua que está localizado no diretório matriz, e faça-o ser executado com o notepad (bloco de notas).
Segundo passo
Configurando o config.lua
Este é o arquivo principal do servidor, pois é lá que você irá configurar a maioria dos itens para iniciá-lo corretamente. Normalmente, a variável da configuração é auto-explicativa, mas é tudo em inglês. Se você tem um bom conhecimento da língua, você entendará o que cada item configura, se não tem, não se preocupe, estarei mostrando abaixo um exemplo de config.lua comum, e explicando o que cada item faz:
[spoiler_name=Servidor 8.0 ou menos]
Citação:
-------- config.lua --------
-- Arquivo de configuração para o OTServ --
----------------------------
-- Local do mapa (só mude se você possuir um mapa novo)
map = "data/world/test.otbm"
-- Nome do servidor
servername = "Yurots BETA 1.0"
-- Localização
location = "Brasil"
-- IP do servidor (Seu IP, clique aqui e saiba qual é seu IP)
ip = "localhost"
-- Porta do servidor (normalmente não precisa mexer, só se sua internet/firewall bloquear tal porta)
port = "7171"
-- URL do site do servidor
url = ""
-- Nome do dono do servidor
ownername = "Magus"
-- E-mail do dono do servidor
owneremail = "magus@######"
-- Tipo do mundo (escolha como será o método de batalhas do seu servidor)
-- Opções: pvp, no-pvp, pvp-enforced
worldtype = "pvp"
-- Tempo de espera para utilizar uma magia/runa e outra em milissegundos
exhausted = 1000
-- Tempo de espera para utilizar uma magia/runa não-agressiva e outra em milissegundos
exhaustedheal = 1000
-- Adicionar quantos milissegundos se o jogador já estiver cansado (exhausted) e tentar usar uma magia/runa? (1000 = 1 segundo)
exhaustedadd = 200
-- Quanto tempo o jogador tem que ficar longe de batalhas poder entrar em locais sagrados e sair do jogo (1000 = 1 segundo)
pzlocked = 5*1000
-- Período de alugel da casa (daily = diário, weekly = semanal, monthly = mensal)
-- Opções: daily, weekly, monthly
houserentperiod = "weekly"
-- motd (caixa de mensagem que pode aparecer antes de abrir a lista de personagens)
motd = "Bem vindo ao Yurots BETA 1.0, entre e divirta-se!"
motdnum = "1"
-- Mensagem do ínicio, que irá aparecer quando você entrar no jogo
loginmsg = "Ajude noso server reportando os bug * !report *"
-- Quantas tentativas de login inválidas até o servidor bloquear o IP da pessoa
-- coloque 0 para desabilitar
logintries = 5
-- Permitir clones? (Múltiplos logins do mesmo personagem)
-- Opções: 0 (não), 1 (sim)
allowclones = 0
-- Número máximo de jogadores permitidos no servidor (lembre-se que, quanto maior este número, maior será a quantidade de lag do servidor, dependendo da sua máquina)
maxplayers = "150"
-- Tipo de SQL (mexa aqui somente se seu servidor utilizar este tipo de banco de dados)
-- Opções: mysql, sqlite
sql_type = "mysql"
--- Configurações para MySQL (ignore se estiver usando SQLite/XML)
sql_host = "localhost"
sql_user = "root"
sql_pass = ""
sql_db = "otserv"
--- Configurações para SQLite (ignore se estiver usando MySQL/XML)
sqlite_db = "db.s3db"
-------------------------------------------------------------------------------------------------
---------------------------- Configurações básicas ----------------------------
-------------------------------------------------------------------------------------------------
-- Sim = yes, Não = no
-- Nome do mundo (mostrado ao lado dos personagens da lista, Ex.: Magus (Secura))
worldname = "Magnet"
-- Tempo de "server save" (ele não fecha o servidor como no tibia, é só um controle para previnir lags desnecessários)
autosave = 3
-- Sistema de cap ativado? (yes/no)
capsystem = "no"
-- anti-afk - Tempo máximo para um jogador ficar ocioso antes de ser derrubado pelo servidor (1 = 1min)
kicktime = 20
-- Quantos summons (utevo res) os jogadores podem ter
maxsummons = 3
-- Itens máximos permitidos para colocar no depot (dp)
maxdepotitems = 1000
-- Aprender magias automaticamente (no) ou comprá-las (yes)?
learnspells = "no"
-- Você quer que todos os jogadores possuam 'premmium account'? (yes/no)
freepremium = "no"
-- Remover munição (bolts/arrows) conforme usada (yes) ou deixá-las infinitas (no)?
removeammunation = "yes"
-- Remover cargas de runas (sd/hmm/gfb) conforme usada (yes) ou deixá-las infinitas (no)?
removerunecharges = "yes"
-- Habilitar hotkeys? (yes/no)
itemhotkeys = "yes"
-- Jogadores podem atirar runas em jogadores pela janela de batalha? (yes/no)
battlewindowplayers = "yes"
-- Usar "Account Manager"? (yes/no) (clique aqui e saiba o que é "Account Manager")
accountmanager = "yes"
-- Summons (utevo res) seguem seus mestres à qualquer lugar? (yes/no)
summonsfollow = "yes"
-- Permitir troca de outfits? (yes/no)
outfitchange = "yes"
-------------------------------------------------------------------------------------
----------------------------------- Multiplicadores -----------------------------------
-------------------------------------------------------------------------------------
-- Multiplicador de experiência (Ex.: Se deixar 30, os monstros darão 30 vezes mais experiência que o Tibia global; Rats darão 150exp e Demons darão 180000exp)
expmul = 30
-- Multiplicador de experiência para pvp-enforced
expmulpvp = 3
-- Multiplicador de loot dos monstros (Ex.: Se deixar 2, os monstros darão 2 vezes mais rápido o loot do que no Tibia global)
lootmul = 2
-- Multiplicador de skills (Ex.: Se deixar 80, os jogadores irão ter seus skills aumentados 80 vezes mais rápido que no Tibia global, diferenciando pelas suas vocações)
skillmul = 80
-- Mesma coisa de cima, mas relacionado à mana/magic level
manamul = 80
-- Preço de cada SQM de uma casa
houseprice = 500
-- Nível necessário para comprar uma casa
houselevel = 25
-- Proteção para aqueles que estão abaixo deste nível (no caso, nenhum jogador do nível 1 à 15 poderão atacar jogadores, tanto quanto ser atacados pelos mesmos).
protectionlimit = 15
-- Dano crítico e chance {chance, porcentagem a mais de dano}
-- Às vezes, seu jogador poderá dar um dano crítico, e a porcentagem será a soma de dano maior que ele dará.
criticaldamage = {"5", "50"}
---------------------------------------------------------------------------------------
-------------------------- Configuração: Skull System -------------------------
---------------------------------------------------------------------------------------
-- Tempo para perder uma caveira branca (white skull / 1 = 1 minuto)
whitetime = 1
-- Tempo para perder uma 'morte injustificada' (1 = 1 minuto)
fragtime = 1*50
-- Quantas 'mortes injustificadas' o jogador terá que ter feito para ser banido temporariamente? (1 = 1 morte)
banunjust = 7
-- Quantas 'mortes injustificadas' o jogador terá que ter feito para adquirir uma caveira vermelha? (red skull / 1 = 1 morte)
redunjust = 5
-- Quanto tempo o jogador ficará banido? (1 = 1 hora)
bantime = 24*1
--------------------------------------------------------------------------------------
------------------------------- Configuração: Acessos de GM --------------------------------
--------------------------------------------------------------------------------------
-- Acesso necessário para andar nas casas e poder abrir as portas das mesmas.
accesshouse = 3
-- Acesso necessário para entrar no servidor sem esperar na lista de espera e quando o servidor estiver fechado para jogadores.
accessenter = 1
-- Acesso necessário para ignorar danos, cansaço (exhaustion), limite de capacidade e ser ignorado pelos monstros.
accessprotect = 3
-- Acesso necessário para enviar mensagens globais e falar com cores diferentes em canais públicos do servidor.
accesstalk = 1
-- Acesso necessário para mover itens à distância sem precisar estar próximo a ele.
accessremote = 3
-- Acesso necessário para ver ID/Posição do item que você está olhando (dando look).
accesslook = 2
[/spoiler_name]
[spoiler_name=Servidor 8.4]
Citação:
--(EM CONSTRUÇÃO) The Forgotten Server Config
-- Account Manager
accountManager = "yes" --Ativar Account Manager? (yes/no)
newPlayerChooseVoc = "no" --Escolha de votação ativada? Se no, jogadores começaram como no-vocation
newPlayerSpawnPosX = 95 --Coordenada inicial X do novo jogador
newPlayerSpawnPosY = 117 --Coordenada inicial Y do novo jogador
newPlayerSpawnPosZ = 7 --Coordenada inicial Z do novo jogador
newPlayerTownId = 1 --"Townid" do novo jogador
newPlayerLevel = 1 --Nível inicial do novo jogador
newPlayerMagicLevel = 0 --ML inicial do novo jogador
generateAccountNumber = "yes" --Se yes, o account manager gerará uma conta aleatória, se no, o jogador escolherá sua conta
-- Banimentos
broadcastBanishments = "yes" --Anunciar banimentos para todos os jogadores? (yes/no)
banDays = 7 --Dias de ban
finalBanDays = 30 --
killsToBan = 5 --Mortes injustas para o banimento automático
-- Batalhas
worldType = "pvp" --Tipo de mundo (pvp, no-pvp, pvp-enforced)
hotkeyAimbotEnabled = "yes" --Sistema de hotkeys ativado? (yes/no)
protectionLevel = 1 --Nível máximo protegido de PK
killsToRedSkull = 3 --Número de mortes para virar red skull
pzLocked = 60000 --Tempo (milissegundos) para o battle sair
deathLosePercent = 10 --Percentual de experiência perdido ao morrer
criticalHitChance = 7 --Chance de desferir um golpe crítico em monstros ou outros jogadores
removeAmmoWhenUsingDistanceWeapon = "yes" --Munições finitas? (yes/no)
removeChargesFromRunes = "yes" --Runas finitas? (yes/no)
timeToDecreaseFrags = 24 * 60 * 60 * 1000 --Tempo para diminuir frags (em milissegundos)
whiteSkullTime = 15 * 60 * 1000 --Tempo para sumir uma White Skull (em milissegundos)
oldConditionAccuracy = "no" --
alternativeExhaust = 1000 --
-- Comandos
displayGamemastersWithOnlineCommand = "no" --Mostrar GMs online com o comando !online (yes/no)
-- Configurações de conexão
ip = "127.0.0.1" --IP real do servidor
port = 7171 --Porta do servidor
loginTries = 10 --Tentativas de login erradas para bloquear o usuário
retryTimeout = 5 * 1000 --
loginTimeout = 60 * 1000 --Quanto tempo um jogador pode ficar na lista de escolha de personagens até ela se fechar (em milissegundos)
maxPlayers = "1000" --Número máximo de jogadores online simultaneamente permitido
motd = "Welcome to the Forgotten Server!" --Motd do servidor
onePlayerOnlinePerAccount = "yes" --Vetar que jogadores possam usar a mesma conta com personagens diferentes simultaneamente? (yes/no)
allowClones = 0 --Quantidade de clones do mesmo personagem permitidos (0 para desativar)
serverName = "Forgotten" --Nome do servidor
loginMessage = "Welcome to the Forgotten Server!" --Mensagem de login
adminLogsEnabled = "no" --Gravar logs administrativos? (yes/no)
statusTimeout = 5 * 60 * 1000 --
replaceKickOnLogin = "yes" --Ao logar num personagem que já está online no servidor, kická-lo para o outro entrar? (yes/no)
-- Lista de mortes
deathListEnabled = "yes" --Salvar mortes dos personagens, para serem mostradas em um site por exemplo (yes/no)
maxDeathRecords = 5 --Número máximo de mortes salvas (ao alcançar 6 por exemplo, a primeira morte é removida dando espaço a última)
-- Guildas
ingameGuildSystem = "yes" --Sistema de guildas no jogo ativado? (yes/no)
-- Casas
housePriceEachSQM = 1000 --Preço de cada sqm de uma casa, em gold
houseRentPeriod = "never" --Alugel
-- Ócio
kickIdlePlayerAfterMinutes = 15 --Kickar jogador inativo depois de quantos minutos?
-- Uso de itens
timeBetweenActions = 200 --Tempo de "exhaust" entre o uso da opção "Us it" (por exemplo, "Use it" para acender tochas) (em milissegundos)
timeBetweenExActions = 1000 --
-- Mapa
mapName = "forgotten" --Nome do mapa, pasta world
mapAuthor = "Komic" --Autor do mapa
randomizeTiles = "yes" --Aleatorizar pisos? (yes/no)
-- Troca de mensagens
enableRuleViolationReports = "yes" --Ativar control+z (yes/no)
maxMessageBuffer = 4 --
-- MySQL
mysqlHost = "localhost" --Host que está localizado o banco de dados do servidor
mysqlUser = "root" --Usuário (login) que acessará o banco de dados
mysqlPass = "" --Senha do usuário
mysqlDatabase = "theforgottenserver" --Nome do banco de dados
mysqlPort = 3306 --Porta do servidor MySQL (padrão 3306)
-- Premium Account
freePremium = "no" --Premium account grátis? (yes/no)
-- PVP Server (configurações para servidores pvp-enforced, mas influenciam em servidores comuns)
displayOnOrOffAtCharlist = "no" --Mostra se o jogador está online ou offline na lista de personagens
allowChangeOutfit = "yes" --Troca de outifit permitida? (yes/no)
noDamageToSameLookfeet = "no" --Proibir atacar jogadores com a mesma aparência? (yes/no)
experienceByKillingPlayers = "no" --Ganhar experiência ao matar outros jogadores? (yes/no)
-- Rates
rateExp = 5 --Multiplicador de experiência (Ex.: Se deixar 30, os monstros darão 30 vezes mais experiência que o Tibia global; Rats darão 150exp e Demons darão 180000exp)
rateSkill = 3 --Multiplicador de skills (Ex.: Se deixar 80, os jogadores irão ter seus skills aumentados 80 vezes mais rápido que no Tibia global, diferenciando pelas suas vocações)
rateLoot = 2 --Multiplicador de loot dos monstros (Ex.: Se deixar 2, as chances do monstros dropar itens serão 2x maiores do que no Tibia global)
rateMagic = 3 -- Mesma coisa de cima, mas relacionado à mana/magic level
rateSpawn = 1 --Aumentando essa opção, irá aumentar a velocidade de "spawn" (nascimento) dos monstros
-- Real Server Save
-- nota: serverSaveHour significa o horário 03:00, não que irá ser salvo a cada 3 horas,
-- se você quer o sistema antigo utilize o autoSaveEachMinutes (abaixo). Este método de serversave pode ser instável,
--nós recomendamos o uso do otadmin se você quer serversaves reais.
serverSaveEnabled = "no" --Habilitar o sistema "real server save", explicado acima (yes/no)
serverSaveHour = 3 --Hora que o servidor irá executar o real server save
shutdownAtServerSave = "yes" --Fechar o servidor após o real server save
cleanMapAtServerSave = "yes" --Limpar o mapa após o real server save
-- Server saving
autoSaveEachMinutes = 15 --Server save normal, em minutos
saveGlobalStorage = "no" --Salvar GlobalStorage ao fechar o servidor? (procure se informar sobre os scripts que você utiliza, para mexer nesta opção) (yes/no)
-- Spawns
deSpawnRange = 2 --
deSpawnRadius = 50 --Distância (em SQM) do respawn atual de um monstro em que tal monstro não poderá ultrapassar (assim voltando ao lugar de origem)
-- SqLite
sqliteDatabase = "forgottenserver.s3db" --Arquivo banco de dados, somente se estiver utilizando sqlite
-- SQL
sqlType = "sqlite" --Tipo de SQL usado (MySQL, SQLite)
-- Inicialização
defaultPriority = "high" --Prioridade definida automaticamente após inicio do servidor
-- Status
ownerName = "" --Seu nome (dono do otserv)
ownerEmail = "@otland.net" --Seu e-mail
url = "http://otland.net/" --Site do otserv
location = "Europe" --Localização do otserv
[/spoiler_name]
Lembrando que 1000 ms (milissegundos) é 1 segundo.
Nota: Se algum item existente no config.lua não estiver exposto aqui, não se preocupe, simplesmente não mexa nele, a menos que você entenda o que ele faz e queira mudar. Aqui foram expostos os principais, os que podem ser alterados se você desejar.
Vale ressaltar também que, todas as alterações no config.lua devem ser feitas dentro das aspas (""). Se você quiser usar aspas nas alterações, utilize-a em conjunto com uma barra invertida para a esquerda: \"
Citação:
location = "Brasil, \"País do futebol\""
Terceiro passo
Criando conta de GM
Agora vamos criar a conta do administrador do servidor, do senhor Gamemaster. Esta parte pode parecer mais complexa que o segundo passo, mas depois que você pega o jeito e entende o padrão da linguagem, fica bem fácil.
Antes de tudo, existem dois tipos de otservs, os Servidores SQL (que guardam todas as informações em um banco de dados SQL) e os Servidores XML (que guardam as informações em diversos arquivos XML), e dependendo de qual é seu servidor, a criação da conta de gamemaster será diferente.
Atualmente, os Servidores XML estão sendo abolidos e muito em breve existirá apenas Servidores SQL, essa discussão você pode encontrar nas áreas relacionadas no fórum.
Servidor XML
A maioria dos servidores xml vêm com uma conta de gamemaster pronta, mas ainda sim você terá que configurar o nome, uma nova conta e senha.
• Abra a pasta do seu servidor, vá até data > players. Ache qualquer arquivo que tenha nome de GM (God, GM...), renomeie-o para o nome que você quiser (ex: God Magus) e abra-o com o bloco de notas (clique com o botão direito no arquivo e selecione "Editar").
• Em name você insere o nome do arquivo (ex: name="God Magus") e em account você insere a conta que você deseja ser a conta do gamemaster (ex: account="214675"). IMPORTANTE!! Antes de mudar a account, anote a antiga pois você precisará mais adiante. Tenha certeza também que a variável access está com o valor 5 ou maior (ex: access="5"). As outras variáveis não são necessárias alterar.
Dica: se a visualização do arquivo estiver ruim no bloco de notas, tente deixá-la melhor ativando a "quebra automática de linha" em "Formatar".
• Agora volte para a pasta matriz, e entre em data > accounts. Procure um arquivo XML que o nome seja a account antiga que estava última arquivo que você acessou (por isso que foi pedido anotar a antiga account), renomeie-o para os números da sua nova account (ex: 214675) e abra-o com o bloco de notas (clique com o botão direito no arquivo e selecione "Editar").
•Em pass você insere a senha que desejar para sua account (ex: pass="magusehlindao", e em character name você coloca o nome do seu gamemaster (ex: character name="God Magus").
Salve todos os arquivos e está tudo pronto, sua conta de gamemaster está feita.
Servidor SQL
Temos vários tutoriais na seção de tutoriais ensinando a criar gamemaster em servidor sql, aqui vão alguns:
Criar GM SQL
Criar Acc Manualmente
Cria all SQL
Dúvidas? pergunte Aqui msm.
Quarto e último passo
Após essas configurações, você já pode abrir seu servidor para testá-lo (Visualize o F.A.Q abaixo caso não saiba entrar no servidor). Porém, você ainda pode fazer várias alterações nele, como criar novos monstros, magias, runas, e até NPCs!
Nota: Em caso de falta de DLL na execução do servidor, visite o site DLL-Files (www.dll-files.com) e utilize a caixa de busca para encontrá-las e baixá-las. Depois, descompacte elas no diretório aonde está localizado o executável (otserv.exe).