Jump to content

Recommended Posts

  • Replies 185
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

DEV C++,  aprenda a compila uma source TFS!   Downloads(Baixe de acordo as configurações do seu windows): DEV C++ CONFIGURADO PARA 32BITS DEV C++ CONFIGURADO PARA 64BITS REV 3

Obrigado Luan, galera não custa nada, clica em gostei ou comentar agradecendo, um ato pequeno pra você e é o nosso combustível pra continuar postando bons tutoriais.

Muito bom cara, vai ajudar muita gente, continue assim, reputado!

Posted Images

Quando eo estava compilando deo Esse Erro 

 

////////////////////////////////////////////////////////////////////////
// OpenTibia - an opensource roleplaying game
////////////////////////////////////////////////////////////////////////
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////
#include "otpch.h"
 
#include "itemattributes.h"
#include "fileloader.h"
 
ItemAttributes::ItemAttributes(const ItemAttributes& o)
{
if(o.attributes)
attributes = new AttributeMap(*o.attributes);
}
 
void ItemAttributes::createAttributes()
{
if(!attributes)
attributes = new AttributeMap;
}
 
void ItemAttributes::eraseAttribute(const char* key)
{
if(!attributes)
return;
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
attributes->erase(it);
}
 
void ItemAttributes::setAttribute(const char* key, boost::any value)
{
createAttributes();
(*attributes)[key].set(value);
}
 
void ItemAttributes::setAttribute(const char* key, const std::string& value)
{
createAttributes();
(*attributes)[key].set(value);
}
 
void ItemAttributes::setAttribute(const char* key, int32_t value)
{
createAttributes();
(*attributes)[key].set(value);
}
 
void ItemAttributes::setAttribute(const char* key, float value)
{
createAttributes();
(*attributes)[key].set(value);
}
 
void ItemAttributes::setAttribute(const char* key, bool value)
{
createAttributes();
(*attributes)[key].set(value);
}
 
boost::any ItemAttributes::getAttribute(const char* key) const
{
if(!attributes)
return boost::any();
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
return it->second.get();
 
return boost::any();
}
 
std::string ItemAttributes::getStringAttribute(const std::string& key, bool &ok) const
{
if(!attributes)
{
ok = false;
return std::string();
}
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
return it->second.getString(ok);
 
ok = false;
return std::string();
}
 
int32_t ItemAttributes::getIntegerAttribute(const std::string& key, bool &ok) const
{
if(!attributes)
{
ok = false;
return 0;
}
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
return it->second.getInteger(ok);
 
ok = false;
return 0;
}
 
float ItemAttributes::getFloatAttribute(const std::string& key, bool &ok) const
{
if(!attributes)
{
ok = false;
return 0.0;
}
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
return it->second.getFloat(ok);
 
ok = false;
return 0.0;
}
 
bool ItemAttributes::getBooleanAttribute(const std::string& key, bool &ok) const
{
if(!attributes)
{
ok = false;
return false;
}
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
return it->second.getBoolean(ok);
 
ok = false;
return false;
}
 
ItemAttribute& ItemAttribute::operator=(const ItemAttribute& o)
{
if(&o == this)
return *this;
 
m_data = o.m_data;
return *this;
}
 
std::string ItemAttribute::getString(bool &ok) const
{
if(m_data.type() != typeid(std::string))
{
ok = false;
return std::string();
}
 
ok = true;
return boost::any_cast<std::string>(m_data);
}
 
int32_t ItemAttribute::getInteger(bool &ok) const
{
if(m_data.type() != typeid(int32_t))
{
ok = false;
return 0;
}
 
ok = true;
return boost::any_cast<int32_t>(m_data);
}
 
float ItemAttribute::getFloat(bool &ok) const
{
if(m_data.type() != typeid(float))
{
ok = false;
return 0.0;
}
 
ok = true;
return boost::any_cast<float>(m_data);
}
 
bool ItemAttribute::getBoolean(bool &ok) const
{
if(m_data.type() != typeid(bool))
{
ok = false;
return false;
}
 
ok = true;
return boost::any_cast<bool>(m_data);
}
 
bool ItemAttributes::unserializeMap(PropStream& stream)
{
uint16_t n;
if(!stream.getShort(n))
return true;
 
createAttributes();
while(n--)
{
std::string key;
if(!stream.getString(key))
return false;
 
ItemAttribute attr;
if(!attr.unserialize(stream))
return false;
 
(*attributes)[key] = attr;
}
 
return true;
}
 
void ItemAttributes::serializeMap(PropWriteStream& stream) const
{
stream.addShort((uint16_t)std::min((size_t)0xFFFF, attributes->size()));
AttributeMap::const_iterator it = attributes->begin();
for(int32_t i = 0; it != attributes->end() && i <= 0xFFFF; ++it, ++i)
{
std::string key = it->first;
if(key.size() > 0xFFFF)
stream.addString(key.substr(0, 0xFFFF));
else
stream.addString(key);
 
it->second.serialize(stream);
}
}
 
bool ItemAttribute::unserialize(PropStream& stream)
{
uint8_t type = 0;
stream.getByte(type);
switch(type)
{
case STRING:
{
std::string v;
if(!stream.getLongString(v))
return false;
 
set(v);
break;
}
case INTEGER:
{
uint32_t v;
if(!stream.getLong(v))
return false;
 
set((int32_t)v);
break;
}
case FLOAT:
{
float v;
if(!stream.getFloat(v))
return false;
 
set(v);
break;
}
case BOOLEAN:
{
uint8_t v;
if(!stream.getByte(v))
return false;
 
set(v != 0);
}
}
 
return true;
}
 
void ItemAttribute::serialize(PropWriteStream& stream) const
{
bool ok;
if(m_data.type() == typeid(std::string))
{
stream.addByte((uint8_t)STRING);
stream.addLongString(getString(ok));
}
else if(m_data.type() == typeid(int32_t))
{
stream.addByte((uint8_t)INTEGER);
stream.addLong(getInteger(ok));
}
else if(m_data.type() == typeid(float))
{
stream.addByte((uint8_t)FLOAT);
stream.addLong(getFloat(ok));
}
else if(m_data.type() == typeid(bool))
{
stream.addByte((uint8_t)BOOLEAN);
stream.addByte(getBoolean(ok));
}
else
std::clog << "[itemAttribute::serialize]: Invalid data type." << std::endl;
}

 

 

Alguem me ajuda por favor . do rep ++

Link to post
Share on other sites

Quando eo estava compilando deo Esse Erro 

 

////////////////////////////////////////////////////////////////////////
// OpenTibia - an opensource roleplaying game
////////////////////////////////////////////////////////////////////////
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////
#include "otpch.h"
 
#include "itemattributes.h"
#include "fileloader.h"
 
ItemAttributes::ItemAttributes(const ItemAttributes& o)
{
if(o.attributes)
attributes = new AttributeMap(*o.attributes);
}
 
void ItemAttributes::createAttributes()
{
if(!attributes)
attributes = new AttributeMap;
}
 
void ItemAttributes::eraseAttribute(const char* key)
{
if(!attributes)
return;
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
attributes->erase(it);
}
 
void ItemAttributes::setAttribute(const char* key, boost::any value)
{
createAttributes();
(*attributes)[key].set(value);
}
 
void ItemAttributes::setAttribute(const char* key, const std::string& value)
{
createAttributes();
(*attributes)[key].set(value);
}
 
void ItemAttributes::setAttribute(const char* key, int32_t value)
{
createAttributes();
(*attributes)[key].set(value);
}
 
void ItemAttributes::setAttribute(const char* key, float value)
{
createAttributes();
(*attributes)[key].set(value);
}
 
void ItemAttributes::setAttribute(const char* key, bool value)
{
createAttributes();
(*attributes)[key].set(value);
}
 
boost::any ItemAttributes::getAttribute(const char* key) const
{
if(!attributes)
return boost::any();
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
return it->second.get();
 
return boost::any();
}
 
std::string ItemAttributes::getStringAttribute(const std::string& key, bool &ok) const
{
if(!attributes)
{
ok = false;
return std::string();
}
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
return it->second.getString(ok);
 
ok = false;
return std::string();
}
 
int32_t ItemAttributes::getIntegerAttribute(const std::string& key, bool &ok) const
{
if(!attributes)
{
ok = false;
return 0;
}
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
return it->second.getInteger(ok);
 
ok = false;
return 0;
}
 
float ItemAttributes::getFloatAttribute(const std::string& key, bool &ok) const
{
if(!attributes)
{
ok = false;
return 0.0;
}
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
return it->second.getFloat(ok);
 
ok = false;
return 0.0;
}
 
bool ItemAttributes::getBooleanAttribute(const std::string& key, bool &ok) const
{
if(!attributes)
{
ok = false;
return false;
}
 
AttributeMap::iterator it = attributes->find(key);
if(it != attributes->end())
return it->second.getBoolean(ok);
 
ok = false;
return false;
}
 
ItemAttribute& ItemAttribute::operator=(const ItemAttribute& o)
{
if(&o == this)
return *this;
 
m_data = o.m_data;
return *this;
}
 
std::string ItemAttribute::getString(bool &ok) const
{
if(m_data.type() != typeid(std::string))
{
ok = false;
return std::string();
}
 
ok = true;
return boost::any_cast<std::string>(m_data);
}
 
int32_t ItemAttribute::getInteger(bool &ok) const
{
if(m_data.type() != typeid(int32_t))
{
ok = false;
return 0;
}
 
ok = true;
return boost::any_cast<int32_t>(m_data);
}
 
float ItemAttribute::getFloat(bool &ok) const
{
if(m_data.type() != typeid(float))
{
ok = false;
return 0.0;
}
 
ok = true;
return boost::any_cast<float>(m_data);
}
 
bool ItemAttribute::getBoolean(bool &ok) const
{
if(m_data.type() != typeid(bool))
{
ok = false;
return false;
}
 
ok = true;
return boost::any_cast<bool>(m_data);
}
 
bool ItemAttributes::unserializeMap(PropStream& stream)
{
uint16_t n;
if(!stream.getShort(n))
return true;
 
createAttributes();
while(n--)
{
std::string key;
if(!stream.getString(key))
return false;
 
ItemAttribute attr;
if(!attr.unserialize(stream))
return false;
 
(*attributes)[key] = attr;
}
 
return true;
}
 
void ItemAttributes::serializeMap(PropWriteStream& stream) const
{
stream.addShort((uint16_t)std::min((size_t)0xFFFF, attributes->size()));
AttributeMap::const_iterator it = attributes->begin();
for(int32_t i = 0; it != attributes->end() && i <= 0xFFFF; ++it, ++i)
{
std::string key = it->first;
if(key.size() > 0xFFFF)
stream.addString(key.substr(0, 0xFFFF));
else
stream.addString(key);
 
it->second.serialize(stream);
}
}
 
bool ItemAttribute::unserialize(PropStream& stream)
{
uint8_t type = 0;
stream.getByte(type);
switch(type)
{
case STRING:
{
std::string v;
if(!stream.getLongString(v))
return false;
 
set(v);
break;
}
case INTEGER:
{
uint32_t v;
if(!stream.getLong(v))
return false;
 
set((int32_t)v);
break;
}
case FLOAT:
{
float v;
if(!stream.getFloat(v))
return false;
 
set(v);
break;
}
case BOOLEAN:
{
uint8_t v;
if(!stream.getByte(v))
return false;
 
set(v != 0);
}
}
 
return true;
}
 
void ItemAttribute::serialize(PropWriteStream& stream) const
{
bool ok;
if(m_data.type() == typeid(std::string))
{
stream.addByte((uint8_t)STRING);
stream.addLongString(getString(ok));
}
else if(m_data.type() == typeid(int32_t))
{
stream.addByte((uint8_t)INTEGER);
stream.addLong(getInteger(ok));
}
else if(m_data.type() == typeid(float))
{
stream.addByte((uint8_t)FLOAT);
stream.addLong(getFloat(ok));
}
else if(m_data.type() == typeid(bool))
{
stream.addByte((uint8_t)BOOLEAN);
stream.addByte(getBoolean(ok));
}
else
std::clog << "[itemAttribute::serialize]: Invalid data type." << std::endl;
}

 

 

Alguem me ajuda por favor . do rep ++

Cadê o erro?

Link to post
Share on other sites

Excelente Natanel, com certeza ajudará muitas pessoas que querem compilar novas sources.

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png absolute@lnetworks.com.br

Link to post
Share on other sites

Obrigado amigo mas não consigo instalar o msvt pede requerimentos do pc como internet explorer 10 e não tem pra versão do meu windows que é windows 7 64 bits . Ja tentei instalar o internet explorer pra windows 7 sp1 mas deu erro .

Link to post
Share on other sites

  • 3 weeks later...

Não consigo compilar :/

 

64 bits, trunk.r3884, virgem sem nada editado, alguém pode me ajudar?

 

 


../otserv.cpp:32:25: error: openssl/rsa.h: No such file or directory
../otserv.cpp:33:24: error: openssl/bn.h: No such file or directory
../otserv.cpp:34:25: error: openssl/err.h: No such file or directory
../otserv.cpp:88: error: expected constructor, destructor, or type conversion before '*' token
 
../otserv.cpp: In function 'void otserv(StringVec, ServiceManager*)':
../otserv.cpp:546: error: 'g_RSA' was not declared in this scope
../otserv.cpp:546: error: 'RSA_new' was not declared in this scope
 
../otserv.cpp:548: error: 'BN_dec2bn' was not declared in this scope
../otserv.cpp:556: error: 'RSA_check_key' was not declared in this scope
 
../otserv.cpp:561: error: 'ERR_load_crypto_strings' was not declared in this scope
../otserv.cpp:562: error: 'ERR_get_error' was not declared in this scope
../otserv.cpp:562: error: 'ERR_error_string' was not declared in this scope
 
mingw32-make: *** [obj//otserv.o] Error 1
 
Edited by caiohp (see edit history)

Idéias são à prova de balas.

xS0NYx here

"Ser ateu é viver em razão de fatos, não de crenças; É aproveitar essa vida, não desperdiça-la na esperança de viver outra; É fazer o bem de coração, não por devoção. Ser ate, simplesmente, um ser livre."

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By manigold
      É apenas converter um código meio antigo ,pro meu tfs 1.2.
      Eu gostaria de converter toda a parte dos bans pra ficar como era antigamente(incluindo também a parte de loginTries, retryTimeout, loginTimeout e também a talkaction do ban e a database).
      Nas minhas sources ja tem a parte do ban por pk banir só o char ao invés da conta toda ,e gostaria que ficasse assim o ban por pk ,apenas modificar pra adicionar um warning pra conta.
      E os bans de gms sejam banindo toda a conta, assim como era normalmente.
      E passar o killsToBan e killsBanLenght pro config.lua(atualmente eles ficam no arquivo playerdeath.lua na pasta creaturescripts).
      O tfs 1.2 é baseado no 0.2 ,então é só converter desses repositórios https://github.com/otland/tfs-old-svn/tree/0.2
       
      Valor 300R$, quem estiver interessado entre em contato.
       
    • By Cat
      Download do Otservbr 12.60!
      Download XAMPP:
      https://sourceforge.net/projects/xampp/files/XAMPP Windows/7.4.3/xampp-windows-x64-7.4.3-0-VC15-installer.exe/download
      Download MyAAC:
      MyAAC: 
       
      2 - Instalação do XAMPP:
       
       
       
      2.1 - Configuração do XAMPP:
       
      2.1.1 - Alteração da senha do MySQL:
      - Abra o painel de controle do XAMPP;
      - Confira se os serviços Apache e MySQL estão rodando, depois clique no botão Shell.
      - No shell que abriu - linha de comando - digite o seguinte comando:
      mysqladmin.exe -u root password sua-nova-senha
      - Senha alterada.
       
      2.1.2 - Alteração da senha do phpMyAdmin:
      - Abra a pasta onde foi instalado o XAMPP (C:\xampp);
      - Acesse a pasta phpMyAdmin;
      - Abra o arquivo config.inc.php em um editor de textos de sua preferência e altere os campos abaixo:
       
       
      - Pronto! Seu MySQL e PHPMyAdmin estão configurados para a nova senha. Agora é só utilizar sempre a mesma quando for instalar uma aplicação que se conecte a um Banco de Dados MySQL.
       
      2.1.3 - Alteração da porta 80 no XAMPP:
      - Por padrão, algum software, outro servidor local, firewall do Windows utilizam a porta 80. Abaixo os passos de como alterar a porta 80 no XAMPP:
      - Abra o painel do XAMPP e clique no botão Config do Apache;
      - Escolha o arquivo chamado httpd.conf. Ele possui todos os parâmetros de funcionamento do Apache;
      - Aperte as teclas Ctrl + F e pesquise pela palavra Listen 80;
      - Adicione mais um número 80 (ou o 90) ao final desse parâmetro ficando: Listen 8080; (ou Listen 8090;)
      - Pesquise outra palavra chave chamada ServerName e adicione o 80 (ou o 90) no localhost:8080; (ou localhost:8090;)
      - Salve e feche o arquivo;
      - Volte ao Dashboard e clique no ícone Config;
      - Depois vá em Service and Port Settings;
      - Adicione o 8080 (ou o 8090) no Main Port;
      - Após estes passos tente iniciar o seu Apache, verifique se ficou com o ícone verde, abra o seu navegador, digite http://localhost:8080 (ou  http://localhost:8090) ou http://127.0.0.1:8080 (ou http://127.0.0.1:8090)  e analise se é possível ter acesso ao Dashboard do seu XAMPP.
       
      2.1.4 - Configuração de domínio no vhosts:
      - Para que as pessoas possam acessar o seu site pelo seu dominio é preciso configurar o arquivo vhost no XAMPP:
      - Abra o arquivo httpd-vhosts.conf (C:\xampp\apache\conf\extra).
      - Edite as seguintes linhas:
       
       
      - Altere para o seu domínio.
      - Exemplos:
       
      2.2 - Configuração de domínio (ou ip) no arquivo hosts do Windows:
      - Abra o arquivo C:\Windows\System32\drivers\etc\hosts e adicione:
      192.168.0.1 seusite.com
            (IPv4)        (domínio)
       
      2.3 - Portas
      - Verifique se as portas 80 (ou 8080, 8090), 7171, 7172 estão abertas para a conexão funcionar corretamente.
      - Para liberar as portas, pesquise pelo modelo do seu modem/roteador. Abaixo um site com guias para vários roteadores para auxiliar na liberação das portas:
      https://portforward.com/router.htm
       
       
      3 - Database
      - Acesse o PHPMyAdmin pelo endereço do seu domínio.
      - Na lateral esquerda clique em +Novo e crie uma database (ex: otservbrglobal)
      - Importe o arquivo schema.sql que está na pasta do OTServBR-Global.
       
       
      4 - Config.lua
      - Entre na pasta do OTServBR-Global;
      - Renomeie o arquivo config.lua.dist para config.lua. Obs: se a extensão estiver oculta, vá em Exibir > Extensões de nomes de arquivos;
      - Configure o IP ou domínio de conexão;
      - Coloque a senha do PHPMyAdmin (sua-nova-senha);
      - Coloque o nome da database criada .
      Exemplo:
      -- Connection Config ip = "ip ou domínio" - MySQL mysqlHost = "127.0.0.1" mysqlUser = "root" mysqlPass = "sua-nova-senha" mysqlDatabase = "otservbrglobal" mysqlPort = 3306 mysqlSock = "" passwordType = "sha1"  
      5 - Site
      - Lembre-se de deixar a pasta htdocs vazia antes de salvar os arquivos e pastas do site.
      - Descompacte os arquivos e pastas do MyAAC diretamente na pasta htdocs do XAMPP. 
      - Deixe todos os arquivos e pastas do MyAAC conforme o exemplo abaixo:

       
      - Edite o arquivo .htaccess ou renomeie para .htaccess.dist.
      - Acesse http://seu-ip-ou-domínio para carregar o MyAAC.
      - Siga as etapas de instalação para instalar o MyAAC.
      - Na escolha da versão, selecione 11.0.
       
       
      6 - Conectando ao Servidor
      - Aviso: antes de abrir o servidor, vá até o diretório do servidor (data/world) e descompacte o world.rar, lembre-se de deixar o otservbr.otbm junto do otservbr-spawn.xml e otservbr-house.xml.
      - Para conectar ao servidor de acordo com a versão indicada, você precisa do cliente abaixo:
       
      - Obs: se você alterou a porta, precisa adicionar no ip do cliente 12.
       
       
      Exemplos:
      - http://127.0.0.1:8080/login.php
      - http://127.0.0.1:8090/login.php
      - Para conectar com o cliente Tibia 12, você precisa do recurso de login.php para o MyAAC:
       
       
       
      7 - Créditos
      Downloads:
      Desenvolvedores TFS, OTServBR: https://github.com/opentibiabr/OTServBR-Global
      slawkens: https://forums.otserv.com.br/index.php?/forums/topic/167474-myaac/
      Tutorial:
      Majesty
       
       
    • By Belmont
      Todos os Download está na ultima linha desse post!
      Bom vamos lá, primeiramente você deve instalar o xampp na sua VPS Windows, e depois está colocando uma senha no mesmo para proteger sua Database. Se você não sabe instalar, vou está instalando junto com você, segue as imagens abaixo:
       
      Instalando o Xampp
      Protegendo o Xampp
      Importando a Database
      Abrindo as Portas
       
      Fazendo todos os passos acima, vá no config.lua do seu do servidor e altere as seguintes linhas:
      ip = "127.0.0.1" Aqui você troca para o Ip da sua VPS Windows sqlType = "sqlite" Aqui você troca para mysql sqlHost = "127.0.0.1" sqlPort = 3306 sqlUser = "root" sqlPass = "" Aqui você coloca a senha do Root sqlDatabase = "" Aqui você coloca o nome da sua Database Não se esqueça de apagar a pasta Webdav da pasta do Xampp!
      Esse tutorial eu fiz do meu próprio computador, mas os passos são os mesmo para serem executados na VPS Windows, só é fazer tudo como está ai que vai da certo. Pronto, você acabou de configurar sua VPS Windows, agora é só ligar seu servidor e se divertir junto com seus Players!!
       
                                                                                                               Xampp
                                                                                                            Donwload
                                                                                                                 Site                                                                                                                                                                                                         Download - Scan
                                                                                                                 Db
                                                                                                       database.sql - Scan
       
      OBS: Link do site, e do scan, foram retirados do mesmo post que continham os mesmos!
       
      Créditos:
      @Belmont
      @KOLISAO
      @WooX
    • By Erimyth
      Links Usados no tutorial:
       
       
    • By thalesoldschool
      Fala pessoal do TK!
      Então rapazeada... Tem alguns (muitos) anos q coloquei meu ultimo otserver on, era um narutibia 7.81, e naquela época eu colocava otserver online em questão de 5 a 10 minutos, era realmente mamão com açúcar... Hoje em dia, voltando a pesquisar aqui no fórum, fiquei com vontade de criar um mapa novo, então baixei uma base que gostei, e antes de começar a editar ela, decidi deixar online só pela nostalgia mesmo... Mas não consegui.
      Eu troquei o ip do lua.config pelo meu ipv4, liberei as portas 7171 e 7272 do firewall, mas não resolveu... Decidi contratar minha própria internet, abri as configurações do modem, e como segue em anexo, encaminhei as portas 7171 e 7272 para o meu IP, e só por garantia, desliguei o firewall... Porém ainda assim não funcionou, criei um ip fixo, no no-ip, substitui o ip do config lua pelo fixo, e mesmo assim nada... Enfim, colocar o ipv4 ou ip fixo (do no-ip) no config lua, abrir 7171 e 7272 TCP e UDP no firewall e no modem, eu to esquecendo algo? Eu realmente não achei q teria problemas para abrir um ot depois de tantos anos de prática... Enfim, preciso de ajuda xD, grato a todos que responderem, tendo resolvido o problema ou não! Abraço!

  • Recently Browsing   0 members

    No registered users viewing this page.



×
×
  • Create New...

Important Information

Confirmação de Termo