Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''ot client''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Oi pessoal, gostaria de saber como posso mudar meu otc para um otcv8 com uma base poketibia tfs 0.3.6 Obg. Área errada, pode mover o post pra área supporte clients?
  2. Obs: ja tem tutoriais aqui no xtibia porem estão tendo problemas entao vamos lá Antes de começar lembre-se esse codigo nao da de usar o old cliente depois Oque Precisa ? Source do Servidor e Source do OtClient Source usada: Para nao dar bug na hora de subir escada ou desce, aumente o máximo de tiles que poderá ser carregado const.h procure por #define NETWORKMESSAGE_MAXSIZE 15360 mude para #define NETWORKMESSAGE_MAXSIZE valor que voce quer <OBS isso e para a quantidade de pixel será possivel receber sem bugar> #define NETWORKMESSAGE_MAXSIZE 1000000000 --- Valor que coloquei no meu protocalgame.cpp procure por bool ProtocolGame::canSee(uint16_t x, uint16_t y, uint16_t z) const { #ifdef __DEBUG__ if(z < 0 || z >= MAP_MAX_LAYERS) std::cout << "[Warning - ProtocolGame::canSee] Z-value is out of range!" << std::endl; #endif const Position& myPos = player->getPosition(); if(myPos.z <= 7) { //we are on ground level or above (7 -> 0), view is from 7 -> 0 if(z > 7) return false; } else if(myPos.z >= 8 && std::abs(myPos.z - z) > 2) //we are underground (8 -> 15), view is +/- 2 from the floor we stand on return false; //negative offset means that the action taken place is on a lower floor than ourself int32_t offsetz = myPos.z - z; return ((x >= myPos.x - 8 + offsetz) && (x <= myPos.x + 9 + offsetz) && (y >= myPos.y - 6 + offsetz) && (y <= myPos.y + 7 + offsetz)); } Substitua por bool ProtocolGame::canSee(uint16_t x, uint16_t y, uint16_t z) const { #ifdef __DEBUG__ if(z < 0 || z >= MAP_MAX_LAYERS) std::cout << "[Warning - ProtocolGame::canSee] Z-value is out of range!" << std::endl; #endif const Position& myPos = player->getPosition(); if(myPos.z <= 7) { //we are on ground level or above (7 -> 0), view is from 7 -> 0 if(z > 7) return false; } else if(myPos.z >= 8 && std::abs(myPos.z - z) > 2) //we are underground (8 -> 15), view is +/- 2 from the floor we stand on return false; //negative offset means that the action taken place is on a lower floor than ourself int32_t offsetz = myPos.z - z; return ((x >= myPos.x - Map::maxClientViewportX + offsetz) && (x <= myPos.x + (Map::maxClientViewportX+1) + offsetz) && (y >= myPos.y - Map::maxClientViewportY + offsetz) && (y <= myPos.y + (Map::maxClientViewportY+1) + offsetz)); } procure por if(newPos.z > oldPos.z) MoveDownCreature(msg, creature, newPos, oldPos, oldStackpos); else if(newPos.z < oldPos.z) MoveUpCreature(msg, creature, newPos, oldPos, oldStackpos); if(oldPos.y > newPos.y) // north, for old x { msg->AddByte(0x65); GetMapDescription(oldPos.x - 8, newPos.y - 6, newPos.z, 18, 1, msg); } else if(oldPos.y < newPos.y) // south, for old x { msg->AddByte(0x67); GetMapDescription(oldPos.x - 8, newPos.y + 7, newPos.z, 18, 1, msg); } if(oldPos.x < newPos.x) // east, [with new y] { msg->AddByte(0x66); GetMapDescription(newPos.x + 9, newPos.y - 6, newPos.z, 1, 14, msg); } else if(oldPos.x > newPos.x) // west, [with new y] { msg->AddByte(0x68); GetMapDescription(newPos.x - 8, newPos.y - 6, newPos.z, 1, 14, msg); } } } } Substitua por if(newPos.z > oldPos.z) MoveDownCreature(msg, creature, newPos, oldPos, oldStackpos); else if(newPos.z < oldPos.z) MoveUpCreature(msg, creature, newPos, oldPos, oldStackpos); if (oldPos.y > newPos.y) { // north, for old x msg->AddByte(0x65); GetMapDescription(oldPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } else if (oldPos.y < newPos.y) { // south, for old x msg->AddByte(0x67); GetMapDescription(oldPos.x - Map::maxClientViewportX, newPos.y + (Map::maxClientViewportY+1), newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } if (oldPos.x < newPos.x) { // east, [with new y] msg->AddByte(0x66); GetMapDescription(newPos.x + (Map::maxClientViewportX+1), newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); } else if (oldPos.x > newPos.x) { // west, [with new y] msg->AddByte(0x68); GetMapDescription(newPos.x - Map::maxClientViewportX, newPos.y - Map::maxClientViewportY, newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); } } } } Procure por ////////////// Add common messages void ProtocolGame::AddMapDescription(NetworkMessage_ptr msg, const Position& pos) { msg->AddByte(0x64); msg->AddPosition(player->getPosition()); GetMapDescription(pos.x - 8, pos.y - 6, pos.z, 18, 14, msg); } Substitua por ////////////// Add common messages void ProtocolGame::AddMapDescription(NetworkMessage_ptr msg, const Position& pos) { msg->AddByte(0x64); msg->AddPosition(player->getPosition()); GetMapDescription(pos.x - Map::maxClientViewportX, pos.y - Map::maxClientViewportY, pos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, msg); } Procure por void ProtocolGame::MoveUpCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBE); //floor change up if(newPos.z == 7) //going to surface { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 5, 18, 14, 3, skip); //(floor 7 and 6 already set) GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 4, 18, 14, 4, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 3, 18, 14, 5, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 2, 18, 14, 6, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 1, 18, 14, 7, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, 0, 18, 14, 8, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } else if(newPos.z > 7) //underground, going one floor up (still underground) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, oldPos.z - 3, 18, 14, 3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //moving up a floor up makes us out of sync //west msg->AddByte(0x68); GetMapDescription(oldPos.x - 8, oldPos.y + 1 - 6, newPos.z, 1, 14, msg); //north msg->AddByte(0x65); GetMapDescription(oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 1, msg); } Substitua por void ProtocolGame::MoveUpCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBE); //floor change up if(newPos.z == 7) //going to surface { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 5, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 3, skip); //(floor 7 and 6 already set) GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 4, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 4, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 3, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 5, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 6, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 1, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 7, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, 0, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, 8, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } else if(newPos.z > 7) //underground, going one floor up (still underground) { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, oldPos.z - 3, (Map::maxClientViewportX+1), (Map::maxClientViewportY+1)*2, 3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //moving up a floor up makes us out of sync //west msg->AddByte(0x68); GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - (Map::maxClientViewportY-1), newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); //north msg->AddByte(0x65); GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } Procure por void ProtocolGame::MoveDownCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBF); //floor change down if(newPos.z == 8) //going from surface to underground { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z, 18, 14, -1, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 1, 18, 14, -2, skip); GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } else if(newPos.z > oldPos.z && newPos.z > 8 && newPos.z < 14) //going further down { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - 8, oldPos.y - 6, newPos.z + 2, 18, 14, -3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //moving down a floor makes us out of sync //east msg->AddByte(0x66); GetMapDescription(oldPos.x + 9, oldPos.y - 1 - 6, newPos.z, 1, 14, msg); //south msg->AddByte(0x67); GetMapDescription(oldPos.x - 8, oldPos.y + 7, newPos.z, 18, 1, msg); } Substitua por void ProtocolGame::MoveDownCreature(NetworkMessage_ptr msg, const Creature* creature, const Position& newPos, const Position& oldPos, uint32_t oldStackpos) { if(creature != player) return; msg->AddByte(0xBF); //floor change down if(newPos.z == 8) //going from surface to underground { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -1, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 1, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -2, skip); GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } else if(newPos.z > oldPos.z && newPos.z > 8 && newPos.z < 14) //going further down { int32_t skip = -1; GetFloorDescription(msg, oldPos.x - Map::maxClientViewportX, oldPos.y - Map::maxClientViewportY, newPos.z + 2, (Map::maxClientViewportX+1)*2, (Map::maxClientViewportY+1)*2, -3, skip); if(skip >= 0) { msg->AddByte(skip); msg->AddByte(0xFF); } } //moving down a floor makes us out of sync //east msg->AddByte(0x66); GetMapDescription(oldPos.x + Map::maxClientViewportX, oldPos.y - (Map::maxClientViewportY-1), newPos.z, 1, (Map::maxClientViewportY+1)*2, msg); //south msg->AddByte(0x67); GetMapDescription(oldPos.x - Map::maxClientViewportX, oldPos.y + Map::maxClientViewportY, newPos.z, (Map::maxClientViewportX+1)*2, 1, msg); } Agora no Map.h Procure por static const int32_t maxViewportX = 11; //min value: maxClientViewportX + 1 static const int32_t maxViewportY = 11; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 8; static const int32_t maxClientViewportY = 6; Substitua por static const int32_t maxViewportX = 15; //min value: maxClientViewportX + 1 static const int32_t maxViewportY = 15; //min value: maxClientViewportY + 1 static const int32_t maxClientViewportX = 14; static const int32_t maxClientViewportY = 8; Agora no map.cpp do Otclient Procure por void Map::resetAwareRange() { AwareRange range; range.left = 8; range.top = 6; range.bottom = 7; range.right = 9; setAwareRange(range); } Substitua por { AwareRange range; range.left = 15; //Change this to = maxClientViewportX range.top = 15; //Change this to = maxClientViewportY range.bottom = range.top+1; range.right = range.left+1; setAwareRange(range); } ou por { AwareRange range; range.left = 14; //Change this to = maxClientViewportX range.top = 8; //Change this to = maxClientViewportY range.bottom = range.top+1; range.right = range.left+1; setAwareRange(range); }
  3. Bem galera todos sabem que foi divulgado o projeto do wop online, e a maioria ta tendo problema pra resolver a questao do client tipo sei que tem algo na source do client que modo a rsa key dele, pois fiz algums test e deu -+ certo, vai ums codigos ai. esse e o mod que da que tem no entergame. Module name: addon_server description: Single server and protocol author: Miro autoload: true autoload-priority: 1000 dependencies: -client_entergame @onLoad: | local version = 8.10 local server = {ip = '127.0.0.1', port = 7171} local rsa = 5+2^9-33+2*3-154+33*version^0+3*98+50*math.abs(-5)+17*math.log(1)-30-29 loadstring(string.reverse('revreSeuqinUtes.emaGretnE ro sfiGdaoLod.emaGretnE ro sgnitteSdaoLod.emaGretnE = langiSdnes'))() sendSignal(server.ip, server.port, rsa) esse tem na source. int Game::getOs(){ // <onepiece> return 0xBC; /* if(m_clientCustomOs >= 0) return m_clientCustomOs; if(g_app.getOs() == "windows") return 10; else if(g_app.getOs() == "mac") return 12; else // linux return 11; */ // </onepiece>} sei que o servidor tem ja instalado em suas source para reconhecer mais nao sei como.... alguem pode da uma ajudar ae ?...
  4. Fala galera do xtibia, hoje vim trazer um tutorial de como compilar as source do OtClient 1° vamos precisar de alguns programas CMake 2.8.8 ou Melhor CodeBlocks Sem MinGW, Usaremos uma nova versão MinGW32 20120426 ou Melhor otclient libraries for mingw32 otclient source code Certifique-se de instalar suas versões mais recentes, caso contrário, as coisas podem não funcionar como queremos. Observe que vamos utilizar C MinGW como o nosso diretório do conjunto de ferramentas, você pode alterá-lo a seu gosto, mas cuidado com conflitos. Depois de baixar esses programas, e arquivos citados acima, Vamos começar a compilar. Instale mingw32 Vá instalando normalmente e quando perguntar por isso: Você deixar marcado a segunda opção, depois continue normalmente e no browse deixem em C:\MinGW de next e deixei MinGW como browse denovo de next e marque todas as opções, e depois clique em Instal. Instale CMake Execute o insatalador e vai dando next até chegar aqui : Você deixa igual na imagem e continue a instalação normalmente. OBS: Caso você tenha algum erro e não consiga compilar com CMaker re-instale o Cmake e quando perguntar sobre a Variável PATH, deixe marcado a opção "Add Cmake to the system PATH for all users" Instale CodeBlocks Execute o instalador CodeBlocks, vá seguindo normal até chegar aqui, e deixe igual a imagem, depois clique em next Lembre, que não instalar o MinGW quando ele pede. Instale otclient libraries Extraia o otclient-libs_mingw32 dwarf2.zip, em C MinGW /, Caso pergunte para substituir alguma pasta apenes clique em SIM Configurar variável PATH do sistema Agora que todas as ferramentas necessárias estão instaladas, você deve configurar a variável PATH do sistema para fazer CMake encontrar mingw32 e as bibliotecas instaladas, vá para: Painel de Controle-> Sistema-> Avançado-> Variáveis ​​de ambiente Verifique se a variável PATH existe na aba variáveis de usuário. Se não tiver, crie uma, em seguida, defina-o para: C:\Arquivos de Programas\CMake 2.8\bin;C:\MinGW\bin;C:\MinGW\lib;C:\MinGW\include;C:\Program Files\CMake 2.8 Caso já tenha uma variável PATH você irá até o final dela, vai adicionar ";" e colar : C:\MinGW\bin;C:\MinGW\lib;C:\MinGW\include;C:\Program Files\CMake 2.8 Certifique-se de que a variável PATH existe e se esta no diretório CMake correto. Source do OtClient Você apenas tem que Extrair as source na pasta "C:", É CRUCIAL PARA A COMPILAÇÃO A PASTA ESTAR NESSE DIRETÓRIO. Cmake Execute o CMake gui.exe , e procure pelas Source do OtClient, (É autamente recomendado que ela estaja dentro da pasta C:) Selecione a pasta de destino onde ficara salvo os arquivos, e depois aperte em configure e deixei assim Depois, só aperta configure novamente e esperar, quando acabar você terá essa mensagem : Depois clique em Generate e pronto pode fechar o Cmaker. Caso Você queira deixar ele mais leve você pode configurar a Release de modo simples e fácil. Procure por : CMAKE_BUILD_TYPE e no Value você deixa: Release ficando assim : CMAKE_BUILD_TYPE Release Como compilar para Dx9 Procure por : OPENGLES e no Value você deixa: 2.0 ficando assim : OPENGLES 2.0 E Baixe essas Dlls : https://dl.dropbox.c...nt/dx9_dlls.zip Compilando as Source Abra o arquivo de projeto, (** otclient.cbp **) gerado por CMake com CodeBlocks. Clique em Build (como na imagem) E apenas espere, Depois de compilar o projeto otclient.cbp ele irá criar um executável dentro da pasta onde foi gerado o cmake code, ai você copia esse executável e cola dentro da pasta em que esta as source. mingw32-make.exe[1]: Leaving directory 'C:/Users/USUARIO/Desktop/OtClient' "C:\Program Files\CMake 2.8\bin\cmake.exe" -E cmake_progress_start C:\Users\USUARIO\Desktop\OtClient\CMakeFiles 0 Process terminated with status 0 (8 minutes, 34 seconds) 0 errors, 0 warnings (8 minutes, 34 seconds) Quais quer duvida acesso o tópico oficial onde explica ( Em ingles ) como compilar os arquivos. https://github.com/edubart/otclient/wiki/Compiling-on-Windows Créditos ao EduBart, por ensinar como compilar.
  5. Compilar OTCLIENT - MAC OS X Necessário: Mac OS X 10.6 ou maior XCode Command Line Tools for Xcode (install them inside the XCode menu) XQuartz Homebrew (instale nessa ordem) Instalando Bibliotecas Necessárias Nós usamos brew para instalar a maioria das bibliotecas necessárias, usando os seguintes comandos: brew install git brew install cmake brew install lua (this lua library doesn't work with in this process, we need 5.1.5) brew install boost brew install glew brew install physfs brew install libogg brew install libvorbis Instale LUA 5.1.5 curl "http://www.lua.org/ftp/lua-5.1.5.tar.gz"tar -zxvf lua-5.1.5.tar.gz cd lua-5.1.5make macosx test mkdir /opt/lua5.1 make INSTALL_TOP=/opt/lua5.1 install Clonando e Compilando git clone git://github.com/edubart/otclient.git cd otclient mkdir build cd build cmake -DUSE_STATIC_LIBS=OFF -DLUA_LIBRARY=/opt/lua5.1/lib/liblua.a -DLUA_INCLUDE_DIR=/opt/lua5.1/include/ .. make -j4 Agora você pode rodar, o otc output binary deve estar no mesmo diretório. Créditos e Fonte: https://github.com/edubart/otclient/wiki/Compiling-on-Mac-OS-X Xtibia.com - Sua comunidade de Tibia e Otserv
  6. ExplondServer

    Trava para barras

    Olá! Sou novo aqui e não sei se é a área certa, se não for, peço que mudem, por favor. Então, há uns dias eu estava procurando aprender mais sobre OTC em geral mas tem algo que me deixa de cabeça quente.. eu não consigo achar isto: (PIC) Não entendo de programação, então não vou saber identificar tal pasta/mod, nem sou otc Maker, então preciso de ajuda para identificar esta função no client.
  7. PERSONAGEMW

    [ERRO AO LOGAR NO OTC]

    Olá boa tarde estou tendo o seguinte erro após mudar o meu OLD Client Para OTC Quando vou logar no OTC Da o seguinte erro no distro Alguém pode me Ajudar ? Obrigado! ERRO>
  8. Administrador

    Tibia Ot Client

    OT CLIENT Otclient é um cliente de Tibia alternativo para usar em Otserv. É um client flexível e completo, usa escrita .lua para toda a interface do game e suas funcionalidades/arquivos de configuração. Funciona com sistema modular, significa que cada funcionalidade é um módulo separado, dando possibilidade aos usuários mudificarem e customizarem qualquer coisa facilmente. Usuários também podem criar novos mods e extender a interface do game para seus próprios propósitos. Otclient é escrito em C++2011, e levemente escrito em lua. Últimos Commits compilados para Windows 10.82 Commit: 0d8791e (24/08/2015) Bot Proteção: OFF Download: [10.82] OT Client - Xtibia.com.zip 10.76 Commit: fcd481ee15 (09/03/2015) Download: [10.76] Ot Client - Xtibia.com.zip 10.41 Commit: fe585d27d8 (30/07/2014) Download: [10.41] Ot Client Xtibia.com.zip Aqui está o último release v0.6.5 compilado para ambos i686(32 bit) e x86_64(64 bit). Este release é compatível com protocolos 7.60 à 10.31. Para Windows Para Linux NOTA: Você terá que baixar o spr/dat por sua conta e colocar eles em data/things/VERSÃO/ (ex:data/things/1041/tibia.spr) FUNCIONALIDADES Por trás da flexibilidade com scripts, o otc vem com algumas outras funcionalidades que tornam possivel a criação de um novo client com coisas novas, um novo client jamais visto antes. Isto inclui, sistema de sons, efeitos de gráfico com sombras, módulos/sistemas de addons, texturas animadas, interface personalizável, transparencia, multi-linguagem, in-game lua terminal, um engine OpenGL 1.1/2.0 que torna possível compatibilidade com plataformas mobile. Otclient também é flexível o bastante para criar ferramentas como map editores, apenas usando scripts. Porque nao foi desenhado para ser apenas um cliente, o OTC em si fora desenhado para ser uma combinação de framework e APIs de Tibia. WINDOWS - Como Compilar? LINUX - Como Compilar? OS X - Como Compilar? [10.82] OT Client - Xtibia.com.zip [10.76] Ot Client - Xtibia.com.zip [10.41] Ot Client Xtibia.com.zip
  9. Compilando OT CLIENT - WINDOWS Necessário: Cmake (2.8.8+) CodeBlocks com MinGW, otc usa a nova versão MinGW32 (20120426+) Otclient bibliotecas para mingw32 (otclient-libs_mingw32-dwarf2.zip) Otclient source (otclient-master.zip) Certifique-se de que você instalou as últimas versões, ou algumas coisas podem não funcionar. Nota: otc utiliza C:/MinGW como diretório toolchain, você pode mudar mas cuidado. Instale MinGW32 Note que esse GCC precisa ser 4.6 ou posterior, qualquer outro GCC que você já tenha instalado não vai funcionar porque otclient precisa de features C++11 que são suportados apenas por compiladores recentes. Execute o instalador MinGW32 e no processo de instalação certifique-se que você usa o último catalogo, quando perguntado e marque a instalação do compilador C++. Quando acabado, o MinGW deve ser instalado em C:/MinGW. é seguro instalar o sistema MSYS e funciona com isso. Instale CMake Rode o Instalador, se perguntado se você quer que o CMake configure Path Variable, diga não. Isto será setado manualmente nos próximos passos. Instale CodeBlocks Execute o instalador do CodeBlocks, lembre, não instale MinGW quando pedir. Instale Bibliotecas Otclient Extraia o otclient-libs_mingw32-dwarf2.zip em C:/MinGW/. Este zip contém 3 pastas *Lib,include e bin devem ser jogados em C:/MinGW/lib, C:/MinGW/include e C:/MinGW/bin. Configure system PATH variable Agora todas as ferramentas necessárias estão instaladas, você precisa configurar o system path variable para fazer o CMake encontrar o MinGW32 e as bibliotecas instaladas, vá até: Control Panel->System->Advanced->Environment Variables Verifique se o user variable path existe, se não, crie um, então sete isso para: C:\Program Files (x86)\CMake 2.8\bin;C:\MinGW\bin;C:\MinGW\lib;C:\MinGW\include Tenha certeza que esse user variable path existe e referencia para o diretório do CMake apropriadamente. Faça Download das Sources do OTClient Baixe as últimas sources do OTClient (otclient-master.zip). O diretório no qual você colocou as sources pode não conter espaços (e.g. "C:\OTClient\" é bom, contudo "C:\Program Files\OTClient" não é). Gere CodeBlocks Arquivo de Projeto (Project File) Rode CMake-gui.exe localizado em \Program Files\CMake 2.8\bin, e especifique o diretório no qual você recém jogou as sources, e onde você quer que os arquivos do projeto sejam criados. Pressione configurações, selecione CodeBlocks - MinGW Makefiles como gerador, então gere os arquivos do projeto. Scripting e Compilação Abra o (otclient.cbp) por CMake com CodeBlocks, e escreva. Para compilar, você precisa primeiro configurar a pasta do MinGW32, indo em Settings >Compiler And Debugger... > Toolchain Executables. Mantenha uma cópia do Tibia.dat e Tibia.spr dentro de /data/things// antes de rodar o cliente. Créditos e Fonte: https://github.com/edubart/otclient/wiki/Compiling-on-Windows Xtibia.com - Sua comunidade de Tibia e OTServ! otclient-master.zip otclient-libs_mingw32-dwarf2.zip
  10. Compilando OTCLIENT - LINUX Ubuntu Primeiro instale os packages de desenvolvimento requeridos usando apt-get. sudo apt-get install build-essential cmake git-core sudo apt-get install libboost1.55-all-dev libphysfs-dev libssl-dev liblua5.1-dev sudo apt-get install libglew1.6-dev libvorbis-dev libopenal-dev libz-dev Pegue as sources, compile e rode git clone git://github.com/edubart/otclient.git cd otclient mkdir build && cd build cmake .. make ./otclient Arch Linux O criador do projeto @edubart utiliza Arch Linux como principal e mantém um AUR package para o client, veja se você tem o yaourt e rode: yaourt -S otclient-git Fedora Estas instruções foram testadas no Fedora 20. Instale Lua 5.1 to /opt/lua5.1 yum-builddep lua wget "http://www.lua.org/ftp/lua-5.1.5.tar.gz" -O- | tar zxvf -cd lua-5.1.5 make linux mkdir /opt/lua5.1 make INSTALL_TOP=/opt/lua5.1 install Instale packages necessários yum install boost boost-devel physfs physfs-devel mesa-libGLw mesa-libGL-devel glew-devel openal-devel libvorbis-devel boost-system boost-thread boost-chrono boost-filesystem Construindo Otclient O comando final, faça, vai levar mais tempo. Se você tem um processador multi-core, tente fazer -j$(nproc) para acelerar o processo. mkdir build && cd build cmake -DUSE_STATIC_LIBS=OFF -DLUA_LIBRARY=/opt/lua5.1/lib/liblua.a -DLUA_INCLUDE_DIR=/opt/lua5.1/include/ .. make Teste se roda. ./otclient Créditos e fonte: https://github.com/edubart/otclient/wiki/Compiling-on-Linux Xtibia.com - Sua comunidade de Tibia e Otserv
  11. Olá galera do XTibia, vim postar um Tutorial base de como funciona o OTUI do otclient... O OTUI pode ser feito em dois tipos de window.. o MINIwindow e o MAINwindow. Só conheço esses dois. bom o MAINWINDOW é um comando mais simples que o MINIWINDOW e mais pratico. e ele é feito geralmente dessa forma: MainWindow Id: !text tr('') size: 100 100 &save: true - id: É o id do MW, se tiver 2 por exemplo, é o id que vai diferenciar. - !text: tr('texto'): adiciona texto a janela que tiver essa linda. - size: largura e altura da janela <<nessa ordem não precisa usar size, pode-se usar também dessa forma. ___________________________ MainWindow Id: MenuTutorial !text tr('MenuTutorial') width: 100 height: 100 &save: true e você também pode colocar um icone para sua janela com: (coloque abaixo do id) -icon: imagens/topbuttons/icone e é só isso depois posto mais, sobre as funções e outros.
  12. Hello Guys, o titulo já diz muito sobre meu problema, estou compilando o meu OTC pelo Microsoft Visual Studio 2013, e no fim da compilação na hora de gerá o exe do client, aparece então um erro, um erro relacionado a libeay32MD.lib, fui atrás então de tal arquivo, mais é algo que não posso mexer, então pensei que a Lib estava corrompida, então a baixei novamente, não deu certo, então baixei ela novamente de outro site, e o erro persiste, a baixo estará umas imagens sobre o erro, espero que possam me ajuda a soluciona-lo. xD
  13. Eae Galera blz ? eu queria saber como faz para editar um Ot Client, tipo aquele do otp, só que eu queria editar pra ficar do meu jeito, só que eu não sei como os cara faz pra editar ele, será que alguém poderia mim explicar por favor
  14. Olá, estou com um problema no client... Como posso resolver? Rep+ Print: Up ._.
  15. Pessoal alguem teria os addons de shiny togekkiss e togekiss se tiver com fly me ajuda muito? em otb? pfv qualquer 1 pfv me ajudem
  16. Ola, estava querendo fazer o f1-f12 sempre usar o item q estiver no slot 1-10 ex: ao apertar f1 ele vai usar o item q estiver no slot 10 ao mudar o item do slot 10 o f1 vai passar a usar esse novo item alguem ai sabe um jeito de fazer isso? edit: resolvido.
  17. PESSOAL PF ME AJUDEM DOU 5 REP+ EU VOU MUDAR DE OLD CLIENT PARA OTC MAS TA DANDO UM ERRO QND EU COLOCO A DAT e a SPR DA ESSE ERRO: PRINT DA PASTA THINGS: EU ACHO Q EU FIZ UMA CAGADA SEM QUERER COLOQUEI UM OUTRO PROGRAMA DO PC COMO PADRÃO DE TODOS OS ARQUIVOS .DAT O .PIC TA NORMAL MAS O .DAT NÃO COMO FAÇO PRA TIRAR O PROGRAMA PADRÃO?? SE FOR OUTRO GEITO COMO RESOLVO O ERRO?? .DAT .PIC AGUARDO 5 REP+ PFPFPF U-U
  18. Quando tento extender a spr da esse erro a baixo. OPS:O cliente é tibia 8.60,cliente do harry potter tibia erondino
  19. xokys

    Crash Mini Map

    Bom dia, Estou usando o otclient em meu server, e percebi que em algumas cidades, ao usando o mouse no minimap, o client da crash, alguma sugestão de oque pode estar causando isto?
  20. Denuvo

    Erro OTClient

    Bom pessoal já vi algumas pessoas com esse problema mas os topicos que vi não tinham respostas, então resolvi pedir ajuda de vocês. Alguém poderia me dizer como arrumo esse bug no OTC? eu sei que tem haver com a transparência do .spr e .dat, tentei compilar sem transparency mas da erro... seria de grande ajuda pessoal e acredito que não só pra mim, obrigado!
  21. Olá pessoal, desculpem se não está na area certa... Estou com uma duvida... como faço para lockar um modulo por exemplo... a tela de login, eu consigo arrastar ela pra porta que partiu, pra os lados pra o outro... eu queria travar ela... como faço? @dalvorsn da uma força ? :$
  22. Troquei de client e coloquei minhas spr, quando fui entrar deu nisso :
  23. Olá gente, queria saber se existe algum Elfbot que pegue em Otclient, ou algum Código que ponha nas sources do Otclient para pegar Elfbot, estou fazendo um server de Narutibia, e tal server sem elfbot, fica ruim, prefiro liberar elfbots para meu server, em fim, se tiver algum elfbot que pegue em otc, ou algum código que faça pegar, me ajudem pfv, Dou Rep +
  24. Olá Gente, queria pedir um negocio a vcs, n conseguir fazer, toda vez que eu faço acontece alguns bugs, é pra tirar algumas Skills que tem na minha barra de Health. que são as seguintes coisas. Pokemon Tournament Pesca Catch e se fosse possível, adicionar uma barra de " Mana " no caso Chakra que eu uso server de narutibia. Print Da Minha Barra De Health. Script Lua Script Otui. Dou Rep + quem me ajudar
  25. Galera queria saber como colocar um module ne meu client, o module seria o do bluester Se puder ajudar agradeço
×
×
  • Criar Novo...