Ir para conteúdo
  • Cadastre-se

OTClient [otcv8] Como utilizar - Ip fixo, spr, encrypt, auto update


Posts Recomendados

  • Respostas 95
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

* Áudio de saudação *   Neste tutorial, irei ensinar alguns passos inicias para utilizar o OTClientV8   1º Passo: Como fixar ip e colocar a spr no local correto   - Faço

a utilização e testes que fiz foram em linux, utilizando nginx pensei que você ainda soubesse como publicou isso <- no caso o problema é algo com seu webserver, por isso não sei te informar, c

fiquei esperando surgir uma voz bonita mas nem audio tem, decepcionado.. Obrigado pelo guia @marcoshps11, otcv8 é muito bacana, eu sempre uso quando precisa logar em algum Ot. Com certeza va

Posted Images

5 horas atrás, Standard disse:

É um erro de incompatibilidade ? Porque você testou no Linux né então pode ser que não funciona no Windows com XAMPP

 

Não é incompatibilidade, você errou alguma coisa na hora de editar

Link para o post
Compartilhar em outros sites

Parabéns Marcos, excepcional o suporte que você vem dando pra galera.

Uma dúvida, essas sources que foram liberadas do otcv8 (link abaixo) e esses recursos já são utilizados nesse client que você postou ou precisam ser selecionados e instalados separadamente? Grande abraço!

 

Link para o post
Compartilhar em outros sites
2 horas atrás, marcoshps11 disse:

 

Não é incompatibilidade, você errou alguma coisa na hora de editar

 

Vou tentar refazer do zero de novo então, mas eu busquei o link do arquivo updater_advanced.php e ele acusa um erro na linha 63 relacionado ao colchetes "["

 

EDIT: Eu refiz e deu o mesmo erro, da uma conferida para ver se você acha que tem uma coisa errada por favor:

 

init.lua:

 

Spoiler

Services = {
  website = "", -- currently not used
  updater = "http://localhost/api/updater_advanced.php",
  stats = "",
  crash = "",
  feedback = ""
}

 

updater_advanced.lua:

 

Spoiler

$files_dir = "C:/xampp/htdocs/api/files";
$files_url = "http://localhost/api/files";

 

 

print de como estão os arquivos dentro da pasta files:

 

Spoiler

Image_2D_2533_1284.png.2936b3dfc1817d70c4dc662605b7e9ab.png

 

Editado por Standard (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
40 minutos atrás, Standard disse:

 

Vou tentar refazer do zero de novo então, mas eu busquei o link do arquivo updater_advanced.php e ele acusa um erro na linha 63 relacionado ao colchetes "["

 

EDIT: Eu refiz e deu o mesmo erro, da uma conferida para ver se você acha que tem uma coisa errada por favor:

 

init.lua:

 

  Mostrar conteúdo oculto

Services = {
  website = "", -- currently not used
  updater = "http://localhost/api/updater_advanced.php",
  stats = "",
  crash = "",
  feedback = ""
}

 

updater_advanced.lua:

 

  Mostrar conteúdo oculto

$files_dir = "C:/xampp/htdocs/api/files";
$files_url = "http://localhost/api/files";

 

 

print de como estão os arquivos dentro da pasta files:

 

  Mostrar conteúdo oculto

Image_2D_2533_1284.png.2936b3dfc1817d70c4dc662605b7e9ab.png

 

 

Revisa o tutorial, está deixando algumas coisas para trás, como:
"- Atenção nesta parte, as pastas e arquivo data / layout / modules / init.lua necessáriamente precisam estar na mesma pasta do executáveis, conforme time 4:20 no vídeo que deixarei disponível no final."
outra coisas, a pasta precisa estar com permissão de leitura e escrita.

1 hora atrás, Cat disse:

Parabéns Marcos, excepcional o suporte que você vem dando pra galera.

Uma dúvida, essas sources que foram liberadas do otcv8 (link abaixo) e esses recursos já são utilizados nesse client que você postou ou precisam ser selecionados e instalados separadamente? Grande abraço!

 

 

Ambas são a mesma base, o que tiver de feature na closed source, terá nessa open source

Link para o post
Compartilhar em outros sites
13 minutos atrás, marcoshps11 disse:

 

Revisa o tutorial, está deixando algumas coisas para trás, como:
"- Atenção nesta parte, as pastas e arquivo data / layout / modules / init.lua necessáriamente precisam estar na mesma pasta do executáveis, conforme time 4:20 no vídeo que deixarei disponível no final."
outra coisas, a pasta precisa estar com permissão de leitura e escrita.

 

Revisei e corrigi colocando todas as pastas e o init.lua no mesmo local que os executáveis, mas continua dando o mesmo erro. Imagem de como ficou os arquivos:

 

Spoiler

Image_2D_2533_1284.png.eaffb50128938280e4f060e8abf30985.png

 

Editado por Standard (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 4 weeks later...

Estou com o mesmo problema @Standard

Pra quem tá com o erro abaixo, eu consegui fazer ele atualizar colocando da seguinte forma no xampp em Windows:

 

$files_dir = "/xampp/htdocs/api/files";

 

Image_2D_2533_1284.png.3e38fa2ff3eb03f592e0fced9f1f2476.png

 

Problema é que agora o client entra num loop infinito de atualização

Link para o post
Compartilhar em outros sites
Em 15/10/2021 em 18:10, Bruno Rezende disse:

Estou com o mesmo problema @Standard

Pra quem tá com o erro abaixo, eu consegui fazer ele atualizar colocando da seguinte forma no xampp em Windows:

 

$files_dir = "/xampp/htdocs/api/files";

 

Image_2D_2533_1284.png.3e38fa2ff3eb03f592e0fced9f1f2476.png

 

Problema é que agora o client entra num loop infinito de atualização

 

Top amigo, vou testar aqui !

 

Sobre esse loop infinito eu tinha reparado e já estava assim para mim até com os links normais do V8 original

Link para o post
Compartilhar em outros sites
2 minutos atrás, Standard disse:

 

Top amigo, vou testar aqui !

 

Sobre esse loop infinito eu tinha reparado e já estava assim para mim até com os links normais do V8 original

consegui arrumar tudo, minha pasta files ficou assim:

 

image.thumb.png.d5d5098b44675b5167aa30da537dfadd.png

Link para o post
Compartilhar em outros sites
Em 15/10/2021 em 18:10, Bruno Rezende disse:

Estou com o mesmo problema @Standard

Pra quem tá com o erro abaixo, eu consegui fazer ele atualizar colocando da seguinte forma no xampp em Windows:

 

$files_dir = "/xampp/htdocs/api/files";

 

Image_2D_2533_1284.png.3e38fa2ff3eb03f592e0fced9f1f2476.png

 

Problema é que agora o client entra num loop infinito de atualização

 

Então esse erro é porque ele não estava encontrando o diretório do arquivo updater_advanced.php né ?

 

Porém eu corrigi o diretório de acordo com o que você falou e mesmo assim o erro persiste...

Link para o post
Compartilhar em outros sites
10 horas atrás, Standard disse:

 

Então esse erro é porque ele não estava encontrando o diretório do arquivo updater_advanced.php né ?

 

Porém eu corrigi o diretório de acordo com o que você falou e mesmo assim o erro persiste...

Me manda como ficou sua estrutura de arquivos, o meu tá funcionando, inclusive pra Android.

Link para o post
Compartilhar em outros sites

Local do arquivo updater:

 

Spoiler

939039199_arquivoupdater.png.788d016127355bfb274e9c18145eb5a4.png

 

Conteúdo do diretório do arquivo updater:

 

Citar

$files_dir = "/xampp/htdocs/api/files";
$files_url = "http://localhost/api/files";

 

 

Local dos arquivos do v8 na pasta files:

 

Citar

files.png.d0f2c7b09c0042cce94c648263d3105c.png

 

Local do v8 em uma pasta qualquer para receber o update do cliente:

 

Spoiler

v8.png.c348ac4bf39acf12b8ef309ca8faf076.png

 

 

Conteúdo do arquivo init.lua:

 

Citar

Services = {
  website = "", -- currently not used
  updater = "http://localhost/api/updater_advanced.php",
  stats = "",
  crash = "",
  feedback = ""
}

 

Link para o post
Compartilhar em outros sites
5 minutos atrás, Standard disse:

Local do arquivo updater:

 

  Ocultar conteúdo

939039199_arquivoupdater.png.788d016127355bfb274e9c18145eb5a4.png

 

Conteúdo do diretório do arquivo updater:

 

 

 

Local dos arquivos do v8 na pasta files:

 

 

Local do v8 em uma pasta qualquer para receber o update do cliente:

 

  Ocultar conteúdo

v8.png.c348ac4bf39acf12b8ef309ca8faf076.png

 

 

Conteúdo do arquivo init.lua:

 

 

Troca o conteudo do advanced_updater pro conteudo do updater, ai faz as alterações necessárias.

Link para o post
Compartilhar em outros sites
2 horas atrás, Standard disse:

Você diz pegar o conteúdo do arquivo updater e colocar no arquivo advanced_updater ?

Exato, tinha feito isso também. Ai fiz as configurações baseadas no arquivo updater.php 

Link para o post
Compartilhar em outros sites
  • 3 months later...
Em 30/09/2020 em 16:25, marcoshps11 disse:

* Áudio de saudação *

 

Neste tutorial, irei ensinar alguns passos inicias para utilizar o OTClientV8

 

1º Passo: Como fixar ip e colocar a spr no local correto

 

- Faço o download no link: https://github.com/OTCv8/otclientv8

- Extraia o arquivo

- Dentro da pasta principal, vá até o arquivo init.lua

 

Neste trecho, precisará remover os comentários --[[ e ]]:



Servers = {
--[[  OTClientV8 = "http://otclient.ovh/api/login.php",
  OTClientV8c = "otclient.ovh:7171",
  OTClientV8Test = "http://otclient.ovh/api/login2.php",
  LocalTestServ = "127.0.0.1:7171:1098:110:30:93"  ]]
}

 

Ficando assim:



Servers = {
  Meuserver = "127.0.0.1:7171:1098"
}

ficando na seguinte configuração NOME = "IP:PORTA:VERSÃO"

 

 

Para fixar e não aparecer a lista de servers, basta alterar:



ALLOW_CUSTOM_SERVERS = true -- if true it shows option ANOTHER on server list

 

Para:



ALLOW_CUSTOM_SERVERS = false -- if true it shows option ANOTHER on server list

 

 

Caso queira trocar o nome do aplicativo é só mudar



g_app.setName("OTCv8")

trocando o "OTCv8" para o nome desejado, lembrando que isto irá alterar apenas o nome da janela do aplicativo

 

 

Incluir a SPR/Dat:

Para incluir, basta ir na pasta data, criar uma nova pasta e renomear com o nome "things" e depois criar uma outra pasta dentro dela com o nome da versão que desejar utilizar, exemplos:
* 800

* 860

* 910

* 1100

dentro desta pasta, incluir as respectivas spr/dat da versão correspondente 


Um vídeo objetivo do conteúdo citado acima:

 

 

 

Separador-4-300x107.png.c2e695e10d7f7d6b73ed7efdfc4f1016.png

 

2º Passo: Remover campo "Token" da tela inicial

 

Apesar de ser algo simples, vejo muitos perguntarem como remover este campo, vamos lá:

- Vá até a pasta modules -> client_entergame

- Abra o arquivo entergame.lua
- Na linha 380 remova ou comente o trecho:



enterGame:getChildById('accountTokenTextEdit'):clearText()

 

- Na linha 412 remova ou comente o trecho:



G.authenticatorToken = enterGame:getChildById('accountTokenTextEdit'):getText()

 

- salve o arquivo
- na mesma pasta, abra o arquivo entergame.otui

- da linha 32 a 44 remova ou comente o seguinte trecho:



MenuLabel
    !text: tr('Token')
    anchors.left: prev.left
    anchors.top: prev.bottom
    text-auto-resize: true
    margin-top: 8

  TextEdit
    id: accountTokenTextEdit
    anchors.left: parent.left
    anchors.right: parent.right
    anchors.top: prev.bottom
    margin-top: 2

 

Um vídeo objetivo do conteúdo citado acima:

 

 

Separador-4-300x107.png.c2e695e10d7f7d6b73ed7efdfc4f1016.png

3º Passo: como encriptar os arquivos

 

- Recomendo inicialmente criar uma cópia da pasta que ira encriptar, pois não é reversivo

- Copie o endereço da pasta onde estão os arquivos

- Abra o cmd e navegue até esta pasta utilizando o comando cd (link do endereço da pasta)
- utilize o comando otclient_dx.exe --encrypt

- Aguarde o sistema sinalizar que os arquivos foram encriptados 

 

PS: a pasta do modulo bot ( modules -> game_bot ) não pode ser encriptado, remova ela antes deste processo.

 

Um vídeo objetivo do conteúdo citado acima:

 

 

Separador-4-300x107.png.c2e695e10d7f7d6b73ed7efdfc4f1016.png

4º Passo: Utilizando o auto update
 

IMPORTANTE:
Este processo precisa ser feito exatamente como demonstrado, qualquer link errado o sistema não irá funcionar.

 

Dentro da pasta API, abra o arquivo updater_advanced.php

 

em $files_dir = "/var/www/otclient/files"; é a pasta onde conterá os arquivos do otclient para download, lembrando que o caminho precisa estar especificada desde a pasta inicial

em $files_url = "http://otclient.ovh/files"; é o link que você pode utilizar o navegador para acessar a pasta "files" a mesma pasta do processo anterior.

em $checksum_update_interval = 60; é o tempo em segundos, que o update levará para checkar se há alguma atualização ( não é necesário alterar )

 

- Na sua vps, dentro da pasta do SITE, cria uma pasta chamada API e outra pasta dentro dela chamada FILES

Envie o arquivo updater_advanced.php para a pasta API

De permissão 777 para pasta e subpasta API

 

* voltando aos arquivos do otclient * 

 

- Abra o arquivo init.lua

 

aconselho alterar o "APP_NAME = "otclientv8", pois é o nome da pasta que ficará salva nos arquivos temporários, isso evitará conflitos com versões já existe no pc

altere o campo updater, colocando o endereço apontado para o arquivo updater_advanced.php enviado para o seu site nos passos anteriores.

 

- Após as edições anteriores, salve o arquivo 

- Compacte os arquivos data, layout, modules e init.lua, renomeando para data.zip ( obrigatoriamente precisa ser zip )

- Exclua os arquivos zipados e os demais desnecessários para os jogadores.

 

Atenção: o auto update só funcionará se os arquivos estiverem zipado conforme descrito.

 

- Envie todos os arquivos para a pasta files em sua vps ( recomendo zipar para enviar, poupara processamento e tempo de envio )
- Após enviar, extraia os arquivos NA VPS, os arquivos no pc devem continuar zipado

- Atenção nesta parte, as pastas e arquivo data / layout / modules / init.lua necessáriamente precisam estar na mesma pasta do executáveis, conforme time 4:20 no vídeo que deixarei disponível no final.

 

lembrando: o update só aceitará arquivos editados após o tempo estipulado em checksum_update_interval , se fizer edições antes deste tempo, o sistema não irá considerar

 

 

Um vídeo objetivo do conteúdo citado acima:

 

 

 

 

Boa noite, meu velho!! 

 

Desenterrando aí do ano passado pra 2022 porque é coisa boa.

 

Queria ver se consegues me ajudar. Primeiramente, parabéns pelo tutorial. Mas comigo não tá indo...

Meu site é hospedado pela hostinger e o dir da pasta files ficou assim: "/domains/meuendereco.com/public_html/api/files", que é como peguei no próprio filezila (como você assim fez).

Porém, quando coloco esse diretório no $files_dir o game não atualiza... retorna Invalid Http Status Code (500), pode até dar ok, entrar no game, mas não atualiza nada...

 

Debugguei um pouco aqui e vi que a pane dá no: $dir = realpath($files_dir)... tentei dar um echo aqui e já retorna vazio. Arriscando, eu coloquei substitui e coloquei $dir = realpath('files'), pois pensei se esse .php que está rodando já está na pasta do files... aí foi. Porém, a atualização ficou em loop, após o término, começava de novo e assim deixei rodando por mais de uma hora pra realmente ter certeza.

 

Tem alguma ideia do que possa ser? Desde já, tks!

Editado por gabriel.cintra (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Em 18/10/2021 em 18:39, Bruno Rezende disse:

consegui arrumar tudo, minha pasta files ficou assim:

 

image.thumb.png.d5d5098b44675b5167aa30da537dfadd.png

 

 

Resolvi meu problema com isso também! Na madrugada com sono... não tinha nem visto essa mensagem! Tks!

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Jordan422
      Fala comunidade do Tibia King! Eu sei que tem alguém ai escondido que manja muito de modules do Otclient... Se você é essa pessoa, então pode me ajudar e ainda ser pago por isso!
       
      Estou com um projeto de servidor 8.0 já rodando a mais de 2 meses, old school 8.0 com Prey System. Porém essa prey está faltando três funcionalidades do global que são essenciais ( marcado em vermelho na imagem )
       
      Isso ai já tá meio caminho andado, já estou com o código responsável por essas 3 funcionalidades na source e no módulo da prey do meu TFS, só falta passar essas informações para o Otclient.
       
      Ta interessado? Me adiciona no discord: mythh9257
       
       
       
      Nosso projeto: https://tibiaremains.com/
       

    • Por maikon1993
      Fala galerinha de boas ?
       
      Preciso de ajuda, preciso de um macro para otcV8, que faça um item dar use no outro.
      Exemplo: Tem um item no servidor "spellswand" e ela é usada para vender item, dando "use" nela e no item que quer vender, queria deixar isso automático, se alguém poder me ajudar agradeço.
    • Por AddroJhonny
      Andei buscando de tudo que é forma para que o minimap fique com a imagem já liberada, assim como é no PxG. Porém, não encontrei em nenhum lugar alguma instrução. Comecei a mexer no arquivo minimap.lua e consegui avançar em algo.
       
      Meu script ficou assim:
      function updateCameraPosition() local player = g_game.getLocalPlayer() if not player then return end local pos = player:getPosition() if not pos then return end if not minimapWidget:recursiveGetChildById('posLabel') then local minimap = g_ui.createWidget('Minimap', minimapWidget) minimapWidget:setImageSource('/mapa/pisos/piso1') minimapWidget:setId('posLabel') minimapWidget:setOpacity(0.3) minimapWidget:centerInPosition(map, {x = 1015, y=1012, z=7}) end if not minimapWidget:isDragging() then if not fullmapView then minimapWidget:setCameraPosition(player:getPosition()) end minimapWidget:setCrossPosition(player:getPosition()) end minimapPos = minimapWindow:recursiveGetChildById('posLabel') minimapPos:setText('X:'..pos.x..' Y:'..pos.y..' Z:'..pos.z) if minimapWidget:getCameraPosition().z ~= 7 then local minimap = minimapWidget:recursiveGetChildById('posLabel') minimap:setVisible(false) minimapWidget:setColor('black') end end  
      Agora a imagem realmente está aparecendo no minimap com transparência... e quase perfeito. Mas ainda falta conseguir fazer ela acompanhar a posição do player no lugar de ficar aberto por inteiro.
       
      Segue como ficou:
       

       
      Alguém consegue ajudar a melhor maneira de fazer isso? Ou se fiz errado também...
       
      Ty.
    • Por brunei
      Olá galera bom dia , boa tarde e boa noite a todos !
      venho trazer meu primeiro projeto para contribuir com o TK , se trata de um modulo bastante util 
      como é minha primeira vez trazendo algo aqui , talvez eu esqueça de algo , sem enrolação vamos la.

      o modulo é um Shiny Ditto Memory para PDA ,o melhor é que nao precisa de source e é bem simples de instalar !

      1° ponto - Adicionar o memory sistem por TalkAction do @zipter98 (fiz algumas correçoes e melhorias no script para funcionar de uma melhor forma com o modulo)

      em Talkactions.xml adicione a tag :  <talkaction words="/memory;!memory" event="script" value="sdittomemory.lua"/>
       
      2° - Em talkaction/script ,crie um arquivo sdittomemory.lua e cole esse script : 
       
      em : local cd = 2 (em segundos) mude para o numero que desejar como cooldown para efetuar a troca .
      Para efetuar a troca o pokemon precisa esta com os Moves 100% ,caso contrario ira mandar uma mensagem de bloqueio.
       

      3° - em somefunctions.lua adicione essas funçoes !

       
      tem umas correções q eu mesmo fiz no ditto system e shiny ditto system ,e é necessario pro modulo funcionar 100% .

      4° - extraia e adicione o arquivo na pasta Modulos do seu OTClient !

      pronto , com isso vai funcionar o modulo 
       

       
      1 - no icone salvar , vc consegue salvar o pokemon que o ditto esta transformado em cada slot (pokebola) e reverter o ditto.
      2 - no icone check , vc consegue remover uma memoria ou checar quais memorias o seu ditto esta usando.
      3 - e no icone transformar vc transforma em cada memoria salva no s.ditto e tbm consegue reverter para virar um pokemon novo sem usar a memori etc..

      entao é isso galera , espero que seja util .

      CREDITOS :
      @zipter98 
      @usoparagames Eu
      game_memory.rar
    • Por Gryffindori
      Já procurei à fundo mas não achei nada resolvido sobre isso, sempre que vou compilar acaba dando o erro. Alguém tem alguma solução?
       
      Problema - > . C2139 'OTMLNode': an undefined class is not allowed as an argument to compiler intrinsic type trait '__is_convertible_to' (compiling source file ..\src\client\localplayer.cpp) type_traits 325
       


×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo