Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''Normal''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • A Cidade OTBR
    • OTServ Brasil
    • Atendimento
    • Calabouço
  • OTServ - Áreas Comuns
    • Notícias e Discussões
    • Suporte - Dúvidas, Bugs, Erros
    • Downloads
    • Tutoriais
    • Show-Off
    • Divulgação de Servidores
    • Projetos e Formações de Equipes
  • Outros
    • Design

Encontrado 95 registros

  1. meu ipchanger otland nao estou conseguindo fazer funcionar no 11.49 alguem pode me ajudar
  2. Normal [MySQL]TFS + XAMPP + CastroAAC

    [MySQL]TFS + XAMPP + CastroAAC Tutorial para colocar Servidor TFS online com XAMPP e Site. 1 - Download TFS Escolha a versão do TFS e faça o download. The Forgotten Server 1.0: The Forgotten Server 1.1: The Forgotten Server 1.2: The Forgotten Server 1.3: 1.1 - Download XAMPP XAMPP: https://www.apachefriends.org/xampp-files/7.1.10/xampp-win32-7.1.10-0-VC14-installer.exe 1.2 - Download CastroAAC CastroAAC: 2 - Instalação do XAMPP e Senha root PHPMyAdmin -Instale o serviço Apache. - Instale o serviço MySQL. - Instale o serviço PHPMyAdmin. Senha root PHPMyAdmin: - Acesse http://localhost/phpmyadmin - Privilégios > Editar Privilégios > Alterar senha > Clica no botão Executar Entre em C:\xampp\phpmyadmin\config.inc.php: - Abra o config.inc.php: Procure por: $cfg['Servers'][$i]['password'] = 'suasenha'; E coloque a senha que você configurou entre as aspas simples Para que a mudança entre em vigor, o Apache deve ser reiniciado. Observação: o XAMPP (Apache + MySQL) será utilizado somente para o PHPMyAdmin (Database MySQL), por padrão ele utiliza a porta 80 o que significa que na instalação do CastroAAC você deverá colocar uma porta diferente. 3 - Database - Acesse http://localhost/phpmyadmin com o usuário root e senha que configurou. - Crie uma database (ex: forgotten) - Importe o schema.sql que está na pasta do TFS. 4 - Config.lua - Entre na pasta do The Forgotten Server - Adicione ao config.lua em MySQL essa linha: passwordType = "sha1" - Coloque a senha do PHPMyAdmin (se configurada) - Coloque o nome da database criada Exemplo: - MySQL mysqlHost = "localhost" mysqlUser = "root" mysqlPass = "" mysqlDatabase = "forgotten" mysqlPort = 3306 mysqlSock = "" passwordType = "sha1" 5 - Site - Descompacte os arquivos do CastroAAC em qualquer pasta. Exemplo: C:\CastroAAC - Execute o arquivo castro_win_amd64.exe. A instalação é simples, na tela que abrir, irá mostrar algumas informações sobre a instalação. Basta você acessar em seu navegador por localhost e a porta indicada (:8080). Exemplo: http://localhost:8080 Etapas de instalação: 1: - Diretório do Servidor - coloque o caminho da pasta do TFS; - Porta: 8080 (utilizada como exemplo para não entrar em conflito com a porta 80 utilizada pelo XAMPP); - Website URL: localhost:8080 (a porta 8080 deverá ser colocada para funcionar corretamente os links). - localhost e porta 8080 utilizados como exemplos. 2: - Configure sua credencial Google reCAPTCHA. 3: - Configure um servidor SMTP para envio de emails. 4: 5: - Feitas todas as etapas de instalação, basta apenas fechar o castro_win_amd64.exe e abrir novamente. - Acesse em seu navegador com as configurações colocadas na primeira etapa de instalação. Exemplo: localhost:8080 Imagem: 6 - Créditos Downloads: Desenvolvedores TFS: https://github.com/otland/forgottenserver/ Desenvolvedores CastroAAC: https://github.com/Raggaer/castro Tutorial: Majesty
  3. [MySQL]OTXServer Global Full + XAMPP + MyAAC Tutorial para colocar Servidor OTXServer Global Full online com XAMPP e Site. 1 - Download OTXServer Global Full 1.1 - Download XAMPP XAMPP: https://www.apachefriends.org/xampp-files/7.1.10/xampp-win32-7.1.10-0-VC14-installer.exe 1.2 - Download MyAAC MyAAC: 2 - Instalação do XAMPP & Senha root PHPMyAdmin -Instale o serviço Apache. - Instale o serviço MySQL. - Instale o serviço PHPMyAdmin. Senha root PHPMyAdmin: - Acesse http://localhost/phpmyadmin - Privilégios > Editar Privilégios > Alterar senha > Clica no botão Executar Entre em C:\xampp\phpmyadmin\config.inc.php: - Abra o config.inc.php: Procure por: $cfg['Servers'][$i]['password'] = 'suasenha'; E coloque a senha que você configurou entre as aspas simples. Para que a mudança entre em vigor, o Apache deve ser reiniciado. 3 - Database - Acesse http://localhost/phpmyadmin com o usuário root e a senha que configurou. - Crie uma database (ex: otxserverglobal) - Importe o arquivo DATABASE.sql que está na pasta do OTXServer Global Full. 4 - Config.lua - Entre na pasta do OTXServer Global Full - Coloque a senha do PHPMyAdmin (se configurada) - Coloque o nome da database criada Exemplo: - MySQL mysqlHost = "localhost" mysqlUser = "root" mysqlPass = "" mysqlDatabase = "otxserverglobal" mysqlPort = 3306 mysqlSock = "" passwordType = "sha1" 5 - Site - Descompacte o MyAAC na pasta htdocs do XAMPP. - Acesse http://localhost, encontre o MyAAC para carregar o site. - Siga as etapas de instalação para instalar o MyAAC. 6 - Conectando ao Servidor - Para conectar ao servidor de acordo com a versão indicada, você precisa do cliente Tibia 11: - Você também precisa do recurso de login.php do cliente Tibia 11 para o MyAAC. Ele é encontrado para download aqui: 7 - Créditos Downloads: Desenvolvedores TFS e outros: https://github.com/malucooo/otxserver-new/ slawkens: https://forums.otserv.com.br/index.php?/forums/topic/167474-myaac-v066/ Tutorial: Majesty
  4. [Windows][VC2015] Compilando Sources OTXServer Global Full Tutorial explicando como compilar as sources do OTXServer Global Full com o Visual Studio 2015. 1 - Downloads Necessários - Visual Studio Enterprise 2015: https://go.microsoft.com/fwlink/?LinkId=691979&clcid=0x409/ - Microsoft Visual C++ 2015 Redistributable: https://www.microsoft.com/pt-br/download/details.aspx?id=48145 - TFS SDK 3.2 (Bibliotecas): https://static.otland.net/dl/tfs-sdk-3.2.zip -- sha1sum: 3fb1b140e40e8e8bc90f82f92bd022a50569b185 -- sha256sum: 2ffb549f336ad11550da9b9c40716880e13b1cc0ee86e7599022dcacc972a3bf - Bibliotecas Boost C++ 1.62.0: (32-bit download, 64-bit download) 2 - Instale os softwares necessários - Instale o Visual Studio 2015. - Instale as bibliotecas Boost C++ 1.62.0. 3 - TFS SDK 3.2 - Extraia os arquivos do TFS SDK 3.2. - Antes de rodar o arquivo "register_tfssdk_env.bat", clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx TFSSDKDir %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). - Ficando assim: setx TFSSDKDir "%CD%" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 4 - Boost C++ - Mova o arquivo "register_boost_env.bat" que está na pasta do TFS SDK 3.2 para o diretório onde foi instalado o Boost C++ 1.62.0 (Exemplo:C:\local\boost_1_62_0) - Antes de rodar o arquivo "register_boost_env.bat", clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx BOOST_ROOT %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). - Ficando assim: setx BOOST_ROOT "%CD" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 5 - Sources OTXServer Global Full - Se você tem o cliente Git instalado, pode utilizar esse comando para fazer download das sources: git clone --recursive https://github.com/malucooo/Otxserver-New.git - Se você não tem o cliente Git instalado, pode fazer o download das sources em: https://github.com/malucooo/Otxserver-New/archive/master.zip 6 - Compilando as Sources do OTXServer Global Full - Encontre o diretório vc14 do OTXServer Global Full e abra o arquivo theforgottenserver.sln. Isso irá abrir o Visual Studio e você estará apto a compilar as sources. - No Visual Studio, escolha a opção Release e a solução "Win32" ou "x64". - Para compilar as sources, clica em Build no menu e depois em Build Solution. - As sources serão compiladas com sucesso. 7 - DLL's Necessárias - Para rodar o servidor você precisa baixar as DLL's, elas são encontradas para download neste tópico: 8 - Créditos Desenvolvedores TFS: https://github.com/otland/forgottenserver/wiki/Compiling-on-Windows Ninja: https://otland.net/threads/windows-how-to-set-path-environment-variables-for-tfs-1-0.207359/ Majesty
  5. Olá Amigos, Gostaria de saber se já aconteceu o mesmo problema com vocês, seguinte; Adicionei novos efeitos no OBB, depois editei o tools.cpp e const.h, mandei compilar, substitui o exe e por último editei o constants.lua. Os efeitos apareceram ok, porem, eles não desaparecem, não sei se tem q fazer mais alguma configuração ou fiz alguma coisa errado? Outra coisa que percebi que os efeitos funcionam somente com a acc do GOD, testei em um char comum e deu debug na hora. Desde já agradeço;
  6. Estou testando um servidor 11.47 e vi no GitHub (https://github.com/malucooo/otxserver-new/) que existe um Map Editor Compatível com a versão, que seria o RME, porém não consigo compilar ele de maneira nenhuma, estou usando WINDOWS 10 e MVS2017, percebi que as bibliotecas para conseguir compilar são do boost v120x32, porém simplesmente não funciona no MVS2017, que usa o v140, e acredito que o MVS2013 não seja compatível com o windows 10. Existe alguma maneira de conseguir compilar o RME (https://github.com/hjnilsson/rme) usando windows 10? obs: estava tentando seguir este tutorial https://otland.net/threads/compiling-remeres-map-editor-from-the-latest-source-with-msvc-2013.216826/
  7. Estou tentando abrir o servidor em LAN utilizando o HAMACHI, porém estamos encontrando um problema. Atualmente para logar em meu servidor preciso colocar o ip: 127.0.0.1/login.php Seguindo a lógica o IP que meu amigo está tentando conectar é o seguinte: 25.3.107.23/login.php ---- IP LOCAL DO HAMACHI/LOGIN.PHP. O site e a criação de char funciona normalmente quando acessado deste ip:25.3.107.23, porém na hora de logar no servidor meu amigo consegue chegar na lista de char, mas após escolher um char meu amigo fica preso em uma tela tentando estabelecer conexão, com uma barra vermelha enchendo e tentando novamente. Se alguem puder ajudar eu agradeço!
  8. Estou com um problema pra logar no servidor, já tentei de tudo e simplesmente não consigo logar. No momento criei até um cliente próprio na versão 11.47 e 11.32, o login ocorre até na hora da lista de char, após isso o cliente simplesmente fecha ou dá debug. No console do TFS aparece a mensagem que o character conectou e disconectou, porém não consigo logar. Se puder me ajudar, agradeço desde já
  9. Estou com um problema em um script não entendo muito sobre. Error: http://prntscr.com/gdmvbe Peguei esse script: Script: data/globalevents/scripts/war/onstartup.lua function onStartup() resetaStorageWarEvent() return true end data/lib/102-war.lua WAR_GLOBAL_STORAGE_STATUS = 88800 WAR_GLOBAL_STORAGE_LIMITE_PARTICIPANTES = 88801 WAR_STORAGE_STATUS_PLAYER = 88800 WAR_STORAGE_TIME_VERMELHO = 88801 WAR_STORAGE_TIME_AZUL = 88802 WAR_TOTAL_PARTICIPANTES = 2 WAR_TEMPO_FORCAR_EVENTO = 1*60*1000 WAR_LEVEL_MINIMO_PARTICIPANTES = 100 WAR_ID_TELEPORTE = 1387 WAR_LOCAL_TELEPORTE = {x=167, y=53, z=8} WAR_LOCAL_SALA_ESPERA = {x=835, y=1328, z=7} WAR_LOCAL_SAIDA = {x=160, y=51, z=7} WAR_LOCAL_TIME_VERMELHO = { {x=806, y=1298, z=7}, {x=803, y=1297, z=7} } WAR_LOCAL_TIME_AZUL = { {x=863, y=1266, z=7}, {x=855, y=1264, z=7} } WAR_LOCAL_ARENA_BATALHA = { {x = 461, y = 426, z = 7}, {x = 544, y = 488, z = 7} } local WAR_PREMIOS = { trofeu = 10127, itens = {2520,2487,2498,2488}, dinheiro = {2160, 10, true} } local outfitJogadorTimeAzul = createConditionObject(CONDITION_OUTFIT) setConditionParam(outfitJogadorTimeAzul, CONDITION_PARAM_TICKS, -1) addOutfitCondition(outfitJogadorTimeAzul, {lookType = 131, lookHead = 114, lookBody = 88, lookLegs = 114, lookFeet = 114, lookTypeEx = 0, lookAddons = 3}) local outfitJogadoraTimeAzul = createConditionObject(CONDITION_OUTFIT) setConditionParam(outfitJogadoraTimeAzul, CONDITION_PARAM_TICKS, -1) addOutfitCondition(outfitJogadoraTimeAzul, {lookType = 139, lookHead = 114, lookBody = 88, lookLegs = 114, lookFeet = 114, lookTypeEx = 0, lookAddons = 3}) local outfitJogadorTimeVermelho = createConditionObject(CONDITION_OUTFIT) setConditionParam(outfitJogadorTimeVermelho, CONDITION_PARAM_TICKS, -1) addOutfitCondition(outfitJogadorTimeVermelho, {lookType = 134, lookHead = 0, lookBody = 94, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}) local outfitJogadoraTimeVermelho = createConditionObject(CONDITION_OUTFIT) setConditionParam(outfitJogadoraTimeVermelho, CONDITION_PARAM_TICKS, -1) addOutfitCondition(outfitJogadoraTimeVermelho, {lookType = 142,lookHead = 0, lookBody = 94, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}) WAR_IGNORAR_ACESSO = 3 function resetaStorageJogadorWarEvent(cid) setStatusJogadorWarEvent(cid, 0) setTimeVermelho(cid, 0) setTimeAzul(cid, 0) end function resetaStorageWarEvent() db.executeQuery("UPDATE `player_storage` SET `value` = 0 WHERE `key` = " .. WAR_STORAGE_STATUS_PLAYER .. ";") db.executeQuery("UPDATE `player_storage` SET `value` = 0 WHERE `key` = " .. WAR_STORAGE_TIME_VERMELHO .. ";") db.executeQuery("UPDATE `player_storage` SET `value` = 0 WHERE `key` = " .. WAR_STORAGE_TIME_AZUL .. ";") setStatusWarEvent(0) setLimiteParticipantesWarEvent(WAR_TOTAL_PARTICIPANTES) end function setStatusWarEvent(estagio) setGlobalStorageValue(WAR_GLOBAL_STORAGE_STATUS, estagio) end function getStatusWarEvent() return getGlobalStorageValue(WAR_GLOBAL_STORAGE_STATUS) end function setLimiteParticipantesWarEvent(total) setGlobalStorageValue(WAR_GLOBAL_STORAGE_LIMITE_PARTICIPANTES, total) end function getLimiteParticipantesWarEvent() return getGlobalStorageValue(WAR_GLOBAL_STORAGE_LIMITE_PARTICIPANTES) end function getStatusJogadorWarEvent(cid) return getCreatureStorage(cid, WAR_STORAGE_STATUS_PLAYER) end function setStatusJogadorWarEvent(cid, status) doCreatureSetStorage(cid, WAR_STORAGE_STATUS_PLAYER, status) end function getTimeJogador(cid) if isTimeAzul(cid)then return "Time Azul" elseif isTimeVermelho(cid)then return "Time Vermelho" else return "Nao Definido" end end function getJogadoresSalaEsperaWarEvent() local jogadoresSalaEspera = {} for i, cid in pairs(getPlayersOnline()) do if(getStatusJogadorWarEvent(cid) == 1) then table.insert(jogadoresSalaEspera, cid) end end return jogadoresSalaEspera end function abreTeleporteWarEvent() if(getTileItemById(WAR_LOCAL_TELEPORTE, WAR_ID_TELEPORTE).uid == 0) then local teleporte = doCreateTeleport(WAR_ID_TELEPORTE, WAR_LOCAL_SALA_ESPERA, WAR_LOCAL_TELEPORTE) doItemSetAttribute(teleporte, "name", "teleporte evento war") doItemSetAttribute(teleporte, "aid", "8880") end end function fechaTeleporteWarEvent() local item = getTileItemById(WAR_LOCAL_TELEPORTE, WAR_ID_TELEPORTE) if(item.uid ~= 0) then doRemoveItem(item.uid) end end function teleportaJogadorCidadePadrao(jogador) local idCidadeNatal = getPlayerTown(jogador) local posicaoTemploCidadeNatal = getTownTemplePosition(idCidadeNatal) doTeleportThing(jogador, posicaoTemploCidadeNatal, true) doSendMagicEffect(posicaoTemploCidadeNatal, CONST_ME_TELEPORT) end function teleportaJogadorSalaEspera(cid) local acessoJogador = getPlayerAccess(cid) if(acessoJogador < WAR_IGNORAR_ACESSO) then setStatusJogadorWarEvent(cid, 1) local totalJogadoresSalaEspera = #getJogadoresSalaEsperaWarEvent() local limiteJogadoresWarEvent = getLimiteParticipantesWarEvent() local vagasDisponivel = limiteJogadoresWarEvent - totalJogadoresSalaEspera if(vagasDisponivel > 0) then doBroadcastMessage(getCreatureName(cid) .. " esta participando do Evento War. Ainda resta " .. vagasDisponivel .. " vaga(s) para o evento.") end end doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doTeleportThing(cid, WAR_LOCAL_SALA_ESPERA, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) end function setTimeVermelho(cid, status) doCreatureSetStorage(cid, WAR_STORAGE_TIME_VERMELHO, status) end function isTimeVermelho(cid) if(getCreatureStorage(cid, WAR_STORAGE_TIME_VERMELHO) == 1)then return true else return false end end function setTimeAzul(cid, status) doCreatureSetStorage(cid, WAR_STORAGE_TIME_AZUL, status) end function isTimeAzul(cid) if(getCreatureStorage(cid, WAR_STORAGE_TIME_AZUL) == 1)then return true else return false end end function getJogadoresTimeVermelho() local jogadoresTimeVermelho = {} for i, cid in pairs(getPlayersOnline()) do if(getStatusJogadorWarEvent(cid) == 2 and isTimeVermelho(cid)) then table.insert(jogadoresTimeVermelho, cid) end end return jogadoresTimeVermelho end function getJogadoresTimeAzul() local jogadoresTimeAzul = {} for i, cid in pairs(getPlayersOnline()) do if(getStatusJogadorWarEvent(cid) == 2 and isTimeAzul(cid)) then table.insert(jogadoresTimeAzul, cid) end end return jogadoresTimeAzul end function isWalkable(pos) if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false elseif getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 4620 then return false elseif getTopCreature(pos).uid > 0 then return false elseif isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end return true end function getLocalArenaWar(cid) local pos local ehPosicaoValida = false while(ehPosicaoValida == false)do local posx = {} local posy = {} local posz = {} local pir = {} for i=1, 5 do local posx_tmp, posy_tmp, posz_tmp if(isTimeAzul(cid))then posx_tmp = math.random(WAR_LOCAL_TIME_AZUL[1].x, WAR_LOCAL_TIME_AZUL[2].x) posy_tmp = math.random(WAR_LOCAL_TIME_AZUL[1].y, WAR_LOCAL_TIME_AZUL[2].y) posz_tmp = math.random(WAR_LOCAL_TIME_AZUL[1].z, WAR_LOCAL_TIME_AZUL[2].z) elseif(isTimeVermelho(cid))then posx_tmp = math.random(WAR_LOCAL_TIME_VERMELHO[1].x, WAR_LOCAL_TIME_VERMELHO[2].x) posy_tmp = math.random(WAR_LOCAL_TIME_VERMELHO[1].y, WAR_LOCAL_TIME_VERMELHO[2].y) posz_tmp = math.random(WAR_LOCAL_TIME_VERMELHO[1].z, WAR_LOCAL_TIME_VERMELHO[2].z) end local pir_tmp = 0 local spec = getSpectators({x=posx_tmp, y=posy_tmp, z=posz_tmp}, 3, 3, false) if(spec and #spec > 0) then for z, pid in pairs(spec) do if(isPlayer(pid)) then pir_tmp = pir_tmp + 1 end end end posx = posx_tmp posy = posy_tmp posz = posz_tmp pir = pir_tmp end local lowest_i = 1 for i=2, 5 do if(pir < pir[lowest_i]) then lowest_i = i end end pos = {x=posx[lowest_i], y=posy[lowest_i], z=posz[lowest_i]} if(isWalkable(pos))then ehPosicaoValida = true end end return pos end function teleportaJogadoresArenaWar() local tempoIniciarEvento = 10 for i, cid in pairs(getJogadoresSalaEsperaWarEvent()) do setStatusJogadorWarEvent(cid, 2) local jogadoresTimeVermelho = getJogadoresTimeVermelho() local jogadoresTimeAzul = getJogadoresTimeAzul() if(#jogadoresTimeVermelho == #jogadoresTimeAzul or #jogadoresTimeVermelho < #jogadoresTimeAzul)then setTimeVermelho(cid, 1) doAddCondition(cid, (getPlayerSex(cid) == 1) and outfitJogadorTimeVermelho or outfitJogadoraTimeVermelho) else setTimeAzul(cid, 1) doAddCondition(cid, (getPlayerSex(cid) == 1) and outfitJogadorTimeAzul or outfitJogadoraTimeAzul) end local localArenaWar = getLocalArenaWar(cid) doTeleportThing(cid, localArenaWar, true) doSendMagicEffect(getThingPosition(cid), CONST_ME_TELEPORT) doCreatureSetNoMove(cid,true) addEvent(doCreatureSetNoMove,(tempoIniciarEvento+1)*1000, cid,false) addEvent(doPlayerSendTextMessage,(tempoIniciarEvento+1)*1000,cid,MESSAGE_TYPES["warning"],"Evento War Comecou!") for i = 0,tempoIniciarEvento do addEvent(doPlayerSendTextMessage,i*1000, cid, MESSAGE_TYPES["info"], "Evento War vai iniciar em "..tempoIniciarEvento-i.." segundos!") end end end function estaArenaWar(cid) return isInRange(getThingPos(cid),WAR_LOCAL_ARENA_BATALHA[1], WAR_LOCAL_ARENA_BATALHA[2]) end function forcarInicioWarEvent() local statusWarEvent = getStatusWarEvent() if(statusWarEvent == 1) then local estagio = statusWarEvent+1 local jogadoresSalaEspera = getJogadoresSalaEsperaWarEvent() if(#jogadoresSalaEspera > 1) then iniciarWarEvent(estagio, #jogadoresSalaEspera) else for i, jogador in pairs(jogadoresSalaEspera) do teleportaJogadorCidadePadrao(jogador) end resetaStorageWarEvent() doBroadcastMessage("Evento War foi cancelado.") end fechaTeleporteWarEvent() end end function iniciarWarEvent(estagio, totalParticipantes) setStatusWarEvent(estagio) setLimiteParticipantesWarEvent(totalParticipantes) if(estagio == 1)then abreTeleporteWarEvent() addEvent(forcarInicioWarEvent,WAR_TEMPO_FORCAR_EVENTO) doBroadcastMessage("Evento War foi iniciado. O evento esta limitado a " .. getLimiteParticipantesWarEvent() .. " jogadores, o teleporte vai fechar em ".. (WAR_TEMPO_FORCAR_EVENTO/60/1000) .." minutos ou quando atingir o limite de jogadores.") elseif(estagio == 2)then fechaTeleporteWarEvent() teleportaJogadoresArenaWar() end end function presentarJogadorWarEvent(ganhador) local nomeJogador = "["..getTimeJogador(ganhador).. "] "..getCreatureName(ganhador) local trofeu = doPlayerAddItem(ganhador, WAR_PREMIOS.trofeu, 1) doItemSetAttribute(trofeu, "name", "trofeu evento war "..os.date("%d/%m/%Y", os.time())) doItemSetAttribute(trofeu, "description", "Awarded to " .. nomeJogador .. " for winning the war event.") --for _,item in ipairs(WAR_PREMIOS.itens) do --doPlayerAddItem(ganhador, item, 1) --end local itemSortiado = math.random(#WAR_PREMIOS.itens) doPlayerAddItem(ganhador, WAR_PREMIOS.itens[itemSortiado], 1) if WAR_PREMIOS.dinheiro[3] then doPlayerAddItem(ganhador, WAR_PREMIOS.dinheiro[1], WAR_PREMIOS.dinheiro[2]) end doPlayerSave(ganhador, true) end function verificarTimeVencedor() local jogadoresTimeVermelho = getJogadoresTimeVermelho() local jogadoresTimeAzul = getJogadoresTimeAzul() local teveVencedor = false local timeVencedor = {} if(#jogadoresTimeAzul > 0 and #jogadoresTimeVermelho == 0)then teveVencedor = true timeVencedor = jogadoresTimeAzul doBroadcastMessage("Time Azul Ganhou.") elseif(#jogadoresTimeVermelho > 0 and #jogadoresTimeAzul == 0)then teveVencedor = true timeVencedor = jogadoresTimeVermelho doBroadcastMessage("Time Vermelho Ganhou.") end if(teveVencedor)then for i, ganhador in pairs(timeVencedor) do presentarJogadorWarEvent(ganhador) resetaStorageJogadorWarEvent(ganhador) doRemoveConditions(ganhador, false) doTeleportThing(ganhador, WAR_LOCAL_SAIDA, true) end resetaStorageWarEvent() end end
  10. Normal [Windows][VC2017] Compilando Sources TFS

    [Windows][VC2017] Compilando Sources TFS Tutorial explicando como compilar as sources do The Forgotten Server com o Visual Studio 2017. 1 - Downloads Necessários - Visual Studio 2017: https://www.visualstudio.com/pt-br/thank-you-downloading-visual-studio/?sku=Community&rel=15 - Microsoft Visual C++ 2015 Redistributable: https://www.microsoft.com/pt-br/download/details.aspx?id=48145 - TFS SDK 3.2 (Bibliotecas): https://static.otland.net/dl/tfs-sdk-3.2.zip -- sha1sum: 3fb1b140e40e8e8bc90f82f92bd022a50569b185 -- sha256sum: 2ffb549f336ad11550da9b9c40716880e13b1cc0ee86e7599022dcacc972a3bf - Bibliotecas Boost C++ 1.62.0: (32-bit download, 64-bit download) 2 - Instale os softwares necessários - Instale as bibliotecas Boost C++ 1.62.0. - Microsoft Visual C++ 2015 Redistributable. 3 - Visual Studio 2017 - Instale o Visual Studio 2017. - Para compilar com o VC2017 você precisa baixar o Conjunto de Ferramentas do VC++ 2015.3 v140 (x86, x64). - Na tela inicial do Visual Studio Community 2017, clique no botão Modificar: - Na próxima tela, selecione Desenvolvimento para Desktop com C++: - Na mesma tela em Resumo, desça até encontrar a opção Conjunto de Ferramentas do VC++ 2015.3 v140 (x86, x64): - Baixando e instalando o Conjunto de Ferramentas do VC++ 2015.3 v140 (x86, x64) você estará apto a compilar as sources do TFS. 4 - TFS SDK 3.2 - Extraia os arquivos do TFS SDK 3.2. - Antes de rodar o arquivo "register_tfssdk_env.bat", clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx TFSSDKDir %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). - Ficando assim: setx TFSSDKDir "%CD%" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 5 - Boost C++ - Mova o arquivo "register_boost_env.bat" que está na pasta do TFS SDK 3.2 para o diretório onde foi instalado o Boost C++ 1.62.0 (Exemplo: C:\local\boost_1_62_0) - Antes de rodar o arquivo "register_boost_env.bat", clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx BOOST_ROOT %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). - Ficando assim: setx BOOST_ROOT "%CD" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 6 - Sources TFS - Se você tem o cliente Git instalado, pode utilizar esse comando para fazer download das sources: git clone --recursive https://github.com/otland/forgottenserver.git - Se você não tem o cliente Git instalado, pode fazer o download das sources em: https://github.com/otland/forgottenserver/archive/master.zip 7 - Compilando as Sources do The Forgotten Server - Encontre o diretório vc14 do TFS e abra o arquivo theforgottenserver.sln. Isso irá abrir o Visual Studio e você estará apto a compilar as sources. - No Visual Studio, escolha a opção Release e a solução "Win32" ou "x64". - Para compilar as sources, clica em Build no menu e depois em Build Solution. - As sources serão compiladas com sucesso. 8 - DLL's Necessárias - Para rodar o servidor você precisa baixar as DLL's, elas são encontradas para download neste tópico: 9 - Créditos Desenvolvedores TFS: https://github.com/otland/forgottenserver/wiki/Compiling-on-Windows Ninja: https://otland.net/threads/windows-how-to-set-path-environment-variables-for-tfs-1-0.207359/ Majesty Microsoft
  11. Alguem me ajuda? Toda vez que tento logar da isso... n sei oq fazer mais
  12. Boa tarde pessoal Sou novo no fórum, pesquisei na net a respeito de um bom forum de ot server de tibia e encontrei esse, o que tudo indica e um dos melhores... Pessoal ser a que alguém entre vocês tem o conhecimento de como criar mapas para ot server 8.60 executáveis, aquele que você clica e ele executa os parâmetros para funcionar no pc... Essa é a minha dúvida, pesquisei bastante mais não achei nada a respeito, especificamente... muito se fala de flash mais pra começar do zero acho que não é bem por aí... Agradeço a atenção de todos.
  13. Normal [Windows][VC2015] Compilando Sources TFS

    [Windows][VC2015] Compilando Sources TFS Tutorial explicando como compilar as sources do The Forgotten Server com o Visual Studio 2015. 1 - Downloads Necessários - Visual Studio Enterprise 2015: https://go.microsoft.com/fwlink/?LinkId=691979&clcid=0x409/ - Microsoft Visual C++ 2015 Redistributable: https://www.microsoft.com/pt-br/download/details.aspx?id=48145 - TFS SDK 3.2 (Bibliotecas): https://static.otland.net/dl/tfs-sdk-3.2.zip -- sha1sum: 3fb1b140e40e8e8bc90f82f92bd022a50569b185 -- sha256sum: 2ffb549f336ad11550da9b9c40716880e13b1cc0ee86e7599022dcacc972a3bf - Bibliotecas Boost C++ 1.62.0: (32-bit download, 64-bit download) 2 - Instale os softwares necessários - Instale o Visual Studio 2015. - Instale as bibliotecas Boost C++ 1.62.0. 3 - TFS SDK 3.2 - Extraia os arquivos do TFS SDK 3.2. - Antes de rodar o arquivo "register_tfssdk_env.bat", clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx TFSSDKDir %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). - Ficando assim: setx TFSSDKDir "%CD%" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 4 - Boost C++ - Mova o arquivo "register_boost_env.bat" que está na pasta do TFS SDK 3.2 para o diretório onde foi instalado o Boost C++ 1.62.0 (Exemplo: C:\local\boost_1_62_0) - Antes de rodar o arquivo "register_boost_env.bat", clique com botão direito nele e em Editar. - Você encontrará escrito assim: setx BOOST_ROOT %CD% - Você deverá colocar as "" (aspas duplas) em %CD% e adicionar "pause" no final (lembre-se de salvar o arquivo). - Ficando assim: setx BOOST_ROOT "%CD" pause - Rode o arquivo e ele irá abrir uma janela cmd informando com sucesso o valor salvo. Obs: fazendo isso, você não precisará adicionar as bibliotecas manualmente. 5 - Sources TFS - Se você tem o cliente Git instalado, pode utilizar esse comando para fazer download das sources: git clone --recursive https://github.com/otland/forgottenserver.git - Se você não tem o cliente Git instalado, pode fazer o download das sources em: https://github.com/otland/forgottenserver/archive/master.zip 6 - Compilando as Sources do The Forgotten Server - Encontre o diretório vc14 do TFS e abra o arquivo theforgottenserver.sln. Isso irá abrir o Visual Studio e você estará apto a compilar as sources. - No Visual Studio, escolha a opção Release e a solução "Win32" ou "x64". - Para compilar as sources, clica em Build no menu e depois em Build Solution. - As sources serão compiladas com sucesso. 7 - DLL's Necessárias - Para rodar o servidor você precisa baixar as DLL's, elas são encontradas para download neste tópico: 8 - Créditos Desenvolvedores TFS: https://github.com/otland/forgottenserver/wiki/Compiling-on-Windows Ninja: https://otland.net/threads/windows-how-to-set-path-environment-variables-for-tfs-1-0.207359/ Majesty
  14. Normal [MySQL]TFS + XAMPP + MyAAC

    [MySQL]TFS + XAMPP + MyAAC Tutorial para colocar Servidor TFS online com XAMPP e Site. 1 - Download TFS Escolha a versão do TFS e faça o download. The Forgotten Server 1.0: The Forgotten Server 1.1: The Forgotten Server 1.2: The Forgotten Server 1.3: 1.1 - Download XAMPP XAMPP: https://www.apachefriends.org/xampp-files/7.1.10/xampp-win32-7.1.10-0-VC14-installer.exe 1.2 - Download MyAAC MyAAC: 2 - Instalação do XAMPP e Senha root PHPMyAdmin -Instale o serviço Apache. - Instale o serviço MySQL. - Instale o serviço PHPMyAdmin. Senha root PHPMyAdmin: - Acesse http://localhost/phpmyadmin - Privilégios > Editar Privilégios > Alterar senha > Clica no botão Executar Entre em C:\xampp\phpmyadmin\config.inc.php: - Abra o config.inc.php: Procure por: $cfg['Servers'][$i]['password'] = 'suasenha'; E coloque a senha que você configurou entre as aspas simples Para que a mudança entre em vigor, o Apache deve ser reiniciado 3 - Database - Acesse http://localhost/phpmyadmin com o usuário root e senha que configurou. - Crie uma database (ex: forgotten) - Importe o schema.sql que está na pasta do TFS 4 - Config.lua - Entre na pasta do The Forgotten Server - Adicione ao config.lua em MySQL essa linha: passwordType = "sha1" - Coloque a senha do PHPMyAdmin (se configurada) - Coloque o nome da database criada Exemplo: - MySQL mysqlHost = "localhost" mysqlUser = "root" mysqlPass = "" mysqlDatabase = "forgotten" mysqlPort = 3306 mysqlSock = "" passwordType = "sha1" 5 - Site - Descompacte o MyAAC na pasta htdocs do XAMPP - Acesse http://localhost, encontre o MyAAC para carregar o site - Siga as etapas de instalação para instalar o MyAAC. - Imagens das etapas de instalação: Imagens retiradas do tópico: 6 - Créditos Downloads: Desenvolvedores TFS: https://github.com/otland/forgottenserver/ slawkens: https://forums.otserv.com.br/index.php?/topic/167474-myaac-v024/ Tutorial: Majesty
  15. Existe alguma maneira de controlar os re-spawns através do numero de jogadores online? Na verdade o que eu quero é que NUNCA haja respawn. Somente quando não tiver ninguem online no server. E sem reiniciar o server tbm. O server continua rodando normal, só q os bixo só dão respawn quando não tiver ninguem online. Ou seja, se vc quiser caçar novamente uma área, vc tem q deslogar e logar dnv... Isso é possível? Alguém sabe como fazer? --Edit1 Pode ser tbm ao pisar num determinado SQM reseta todos os respanws
  16. function onUse(cid, item, frompos, item2, topos) gatepos1 = {x=488, y=475, z=4, stackpos=0} gatepos2 = {x=488, y=476, z=4, stackpos=0} gatepos3 = {x=489, y=475, z=4, stackpos=0} gatepos4 = {x=489, y=476, z=4, stackpos=0} brigde1 = getThingfromPos(gatepos1) brigde2 = getThingfromPos(gatepos2) brigde3 = getThingfromPos(gatepos3) brigde4 = getThingfromPos(gatepos4) if item.uid == 11001 and item2.itemid == 1945 then doCreateItem(5769,1,gatepos1) doCreateItem(5770,1,gatepos2) doCreateItem(5769,1,gatepos3) doCreateItem(5770,1,gatepos4) doTransformItem(item.uid,item2.itemid+1) doSendMagicEffect(topos, CONST_ME_SOUND_WHITE) doCreatureSay(cid, 'Click!', TALKTYPE_MONSTER, false, topos) addEvent(doswitchReturn,10000,topos,item2.itemid) elseif item.uid == 11001 and item2.itemid == 1946 then doCreatureSay(cid, 'Click!', TALKTYPE_MONSTER, false, topos) doRemoveItem(brigde1.uid,1) doRemoveItem(brigde2.uid,1) doRemoveItem(brigde3.uid,1) doRemoveItem(brigde4.uid,1) doSendMagicEffect(topos, CONST_ME_SOUND_WHITE) doTransformItem(item.uid,item2.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end return 1 end function doswitchReturn(itemposition,oldid) local pos2 = getThingfromPos(itemposition) doTransformItem(pos2.uid,oldid) end O script tem com função criar uma ponte com o uso da alavanca e quando clica de volta, a ponte é removida. A função tempo altera a alavanca pro estado anterior, mas não remove os tiles da ponte. Alguma ideia ?
  17. Estou fazendo um projeto de OT "progressivo", com checkpoints, e gostaria que a posição de onde o player está ao deslogar não fosse salva. Assim, independente de onde ele deslogar, ele vai relogar no templo de sua cidade natal. Alguém faz ideia de como fazer isso? Grato desde já!
  18. Estou tentando fazer o item 9624 (closed trapdoor) transformar para o item 9625 (open trapdoor) quando o personagem passar por cima. Tentei editar pelo items.xml para que funcionasse de maneira igual aos itens 293 (grass) e 294 (pitfall) porém não consigo fazer com que o item 9624 transforme no item 9625! Alguma ideia?
  19. Quero fazer um servidor 100% em português. E é facil traduzir os nomes dos itens, magias, falas etc. Mas como eu traduzo quando damos look em algo? >> "You see a ..." >> "Você vê um..." E como traduzimos as palavras no Cliente do tibia? Tão quanto os botões, por exemplo o "Help", "Logout", "Stop", "Skull".... Grato desde já!
  20. Tenho o TFS 1.2 e eu consigo logar nele com o tibia 10.98, se eu tentasse logar ocm o tibia 8.40 daria certo tbm? O que determina a versão do cliente do tibia? TFS 1.2 pode ser usado com quais versões do tibia? Preciso saber dessas coisas para saber qual versão de editor de mapa vou usar... Grato desde já!
  21. Fala pessoal, beleza? Estou querendo entrar no universo dos OTs e não sei praticamente nada ainda. Mas 'fiz meu dever de casa', Lí alguns tutoriais e to me virando aqui. Segue o raciocínio pra explicar o meu problema: Eu baxei o TFS 1.2, compilei, tudo certo. Instalei o XAMPP, ativei apache e mysql, entrei no localhost, criei um DB, importei o schema.sql que veio no TFS. Abri o servidor e carregou tudo direitinho (sim, eu configurei o user/password/databate no config.lua) Aí eu simplesmente NÃO FAÇO IDEIA de como criar uma conta pelo phpMyAdmin, mas analisando as tabelas eu consegui entender como funciona. Abri a tabela Accounts, e fui em inserir. Ai apareceu os campos pra eu preencher com o nome da conta, senha, tipo, grupo etc etc. E essa foi a conta que eu criei: Conta 1, senha 1. Ai eu abro o tibia, mudo o ip para 127.0.0.1, vou logar a conta e ele diz que essa conta é invalida. Ja tentei mudar o nome e a senha da conta para outros valores e não funcionou. Alguém sabe me dizer o que é que eu estou fazendo errado? =S
  22. Olá amigos. Por algum motivo que eu não estou entendendo, uma função baseada numa classe está me trazendo o argumento dela como nulo (nil), por mais que eu force o valor desta variável estaticamente. function Player:helloWorld(string) print("A frase é: " .. string) end Desta forma, SEMPRE o argumento "string" será nulo, por mais simples e intuitivo que isso seja. Porém, se eu fizer a função um pouco diferente, funciona normalmente: Player.helloWorld = function(string) Print("A sua frase é: " .. string) end Desta forma, funciona sem problemas. Porquê uma funciona o argumento, e a outra não? Alguém poderia me explicar e me dar um exemplo funcional? Obrigado! @EDIT Estou chamando ambas as funções desta forma: Player.helloWorld("blablabla"). E ela não funciona quando chamada tanto no mesmo arquivo, quanto em outro arquivo.
  23. Boa tarde galera, sou novo aqui no ot, baixei o otserv yourots 0.6.1 rev 04 para cliente 8.5 e tenho algumas dúvidas. 1º aonde acho a pasta ou arquivo com os players existentes? 2º tem como criar um NPC novo?? Como faço ele pra comprar e vender equipamentos ? 3º como faço pra todos os players novo já saírem com Premium ?? 4º tem como criar uma promotion2 que aumentem os benefícios , tipo recuperar mais rápido o hp e mana ? Agradeço desde já .
  24. quando vou rodar da um erro na database, como mostra na imagem. segue meu database no conf.lua ---- DATABASE ---- -- SQL type -- options: mysql, sqlite, odbc or pgsql SQL_Type = "mysql" --- SQL connection part SQL_DB = "teste" -- these settings are not used by SQLite SQL_Host = "localhost" SQL_Port = 3306 SQL_User = "root" SQL_Pass = "vertrigo" alguem me ajuda ai, vlw!!!
  25. Normal Lua.dll

    quando vou abrir meu server, da um error dizendo que meu computador nao tem o arquivo lua.dll, como eu adquiro o mesmo? obrigado pela atenção!
×