Jump to content
  • Announcements

    • Tierri Lopes

      Introduce yourself   12/20/2017

      Introduce yourself here:  https://tlthings.net/board/index.php?/forum/6-apresentações/  
Sign in to follow this  
Mário.

Pago pela resolução

Recommended Posts

Bem, vejo-me obrigado a fazer este tópico por vários fatores, sendo uma delas a falta de tempo.

Ontem este tópico:

No entanto foi despropositado, pois tal como este que irei apresentar, não passou de um simples erro que acabei por resolver e também dar a solução para os que forem ter no futuro, porém, tal como disse no começo, não tenho tido mesmo tempo de sobra para poder dedicar-me a isto e peço a vossa ajuda a quem souber resolver isto.


Por algum motivo, sempre que tento teleportar, o personagem fica desta forma:

Please login or register to see this image. /applications/core/interface/imageproxy/imageproxy.php?img=https://i.imgur.com/8em9SoE.jpg&key=a7904a811e536bf1c7e21aeb74b33d501b9eca621b7378478e47a559fe1b5576" width="800">

 

O syserr diz o seguinte:

Please login or register to see this code.

Ora, o header 3 refere-se ao HEADER_CG_MOVE no entanto não fiz nenhuma alteração nesse campo e não entendo o porquê disto.

Com uma curta pesquisa, percebi que para "solucionar" o primeiro erro que aparece era somente acrescentar "case HEADER_CG_MOVE: break;" no input_login.cpp, e isso acabou por fazer "desaparecer" o mesmo do syserr, porém o erro da sequência não termina.

Já testei alterar por completo a tabela de sequência por diffs e (in)felizmente não deu certo - se temos a disponibilidade de source, porquê usar diffs -, as sequências foram editadas com sucesso mas o erro persistiu.

Considero o erro simples e sei que haverá alguma pessoa aqui que tem a solução (o facto de ser simples não significa que seja fácil).

 

Como ninguém neste mundo gosta de perder tempo de graça, ofereço um valor monetário a quem conseguir ajudar-me a resolver o problema.

Ficarei à vossa espera!

 

Share this post


Link to post
Share on other sites
Please login or register to see this quote.

 

A verdade é essa, depois de tanto tempo já consegui descobrir a solução para tal erro, por isso lembrei logo deste tópico e decidi postar aqui invés de criar outro:

Please login or register to see this code.

 

Este erro refere-se que a fase/passagem do login não consegue suportar um packet que não está inserido do int CInputLogin::Analyze(LPDESC d, BYTE bHeader, const char * c_pData):

Please login or register to see this code.

A partir daqui, declaramos que é por default que apareça sempre um erro derivado a um header que o game não consegue analisar nem comunicar de volta para o cliente.

Lembrando que são só headers GC (Game to Client) e CG( Client to Game) sendo improvável de ser DG (visto tratar da Database para Game respetivamente)  - se for, alguma coisa de incomum tem o vosso game -.

 

Analisando pelo número que nos é dado (3), através do packet.h, procuramos pelo header que se iguala pelo mesmo, sendo o nosso:

Please login or register to see this code.

 

Agora, para o game analisar corretamente o header a sair para o cliente, é necessário inserir o seguinte no int CInputLogin::Analyze(LPDESC d, BYTE bHeader, const char * c_pData):

Please login or register to see this code.

 

No entanto se acontecer estes tipos de erros:

Please login or register to see this code.

 

Façam a mesma coisa mas insiram no int CInputHandshake::Analyze(LPDESC d, BYTE bHeader, const char * c_pData) - input.cpp:

Please login or register to see this code.

 

Edited by Mário.
  • Upvote 1

Share this post


Link to post
Share on other sites

Não há necessidade de pagares numa zona de problemas/pedidos..
Posso tentar "dar algumas sugestões", deixa-me o teu skype por mensagem se quiseres.

  • Like 1

Share this post


Link to post
Share on other sites

A sequencia esta igual em servidor e cliente?

Coloca aqui packet.h do cliente e servidor, por vezes o id do packet que aparece no erro não é o correcto

 

Vê também se tens isto assim em char.cpp

Please login or register to see this attachment.

e em input_main.cpp

Please login or register to see this image. /monthly_2017_12/image.png.1995f8ae7286190748390b5be2ffdb9d.png">

 

__

Tens _IMPROVED_PACKET_ENCRYPTION_  ativado ou desativado?

  • Like 1

Share this post


Link to post
Share on other sites

Do servidor:

Please login or register to see this code.

Do cliente:

Please login or register to see this code.

 

Aqui fica os packets do servidor e do cliente, respetivamente:

Please login or register to see this link.

Please login or register to see this link.


char.cpp possui exatamente isso:

Please login or register to see this code.

 

input_main.cpp possui o mesmo:

Please login or register to see this code.


Tenho-o neste preciso momento ativado, no entanto com os conselhos que o @znyR tem-me dado, já o desativei para testes porém não consigo sequer entrar visto que a sequência do auth impossibilita o mesmo:

Please login or register to see this code.

 

Share this post


Link to post
Share on other sites

Isso tem a ver com a chave 1234abcd ou testtest provavelmente, tem de ser igual em cliente e servidor.

A clientkey (diferente do pong acima) e usada também na sequencia,caso seja diferente de servidor/cliente dará esses erros também

Já não estou no pc, só posso ver amanha a noite ou 2f de madrugada

  • Like 1

Share this post


Link to post
Share on other sites
Please login or register to see this quote.

Tens razão, mudei a chave do cliente e consegui entrar, no entanto o erro persiste:

Please login or register to see this code.

 

Share this post


Link to post
Share on other sites
Please login or register to see this quote.

Sim meu caro, o único problema é saber o quê propriamente, visto que não mexi (ou que me lembre) em algo a ver com o header do movimento

Share this post


Link to post
Share on other sites

O primeiro erro como disseste, é só mesmo fazer o que fizeste, não é bem um erro mas um aviso que esse packet não tem codigo especificado

 

Cliente/userinterface/netstream.cpp

sff coloca o que está em:

Please login or register to see this code.

game/sequence.cpp

sff coloca o que está em:

Please login or register to see this code.

 

Se isso estiver ok então amanhã vou ler os packets, ver se algo está diferente entre ambos

  • Like 1

Share this post


Link to post
Share on other sites

A comparação dos dois está igual, comparei os dois e não houve nenhuma falha:

Please login or register to see this attachment.

Share this post


Link to post
Share on other sites

Ora, criei uma personagem chama tlthings e acontece o tal erro que tinha dito no início sobre o selecionar a personagem, ela fica apenas assim (sem qualquer erro no syserr, tanto no auth como na db):

Please login or register to see this attachment.

A acontecer isto, sou obrigado a sair da conta e a entrar de novo para conseguir entrar.

No entanto o erro persiste somente se fizer teleportar (/go c):

Please login or register to see this attachment.

 

 

OBS: Uma observação, apesar de considerar irrelevante, antes aparecia o nível e o karma do jogador assim que criasse a personagem e agora não aparece, só se alterar ou relogar (talvez tenha a ver com erro?)

Please login or register to see this attachment.


Please login or register to see this quote.

Perdão, não tinha visto a resposta!

Com certeza absoluta o erro apenas refere-se a isso:

Please login or register to see this attachment.

 

Share this post


Link to post
Share on other sites

«dwNewIsGuildName»

Isto é aquele sistema de mostrar o lider, general, etc das guilds acima da personagem? O do vegas?

Experimenta desativá-lo sff

 

Os packets normais do jogo estão todos iguais aos meus, por isso deverá vir de outro lado

  • Like 1

Share this post


Link to post
Share on other sites

A um tempo atrás eu tentei resolver isso de toda forma possível, cheguei até a pagar por uma "correção", ficou mais estável mas não muda muita coisa, sempre vai ter problemas. Tenha cuidado que muita gente diz que corrigi, cata a grana e vaza. (Eu desisti de resolver.) 

  • Like 1

Share this post


Link to post
Share on other sites
Please login or register to see this quote.

Se for para pagar, será somente depois do problema for resolvido mas obrigado pelas palavras

Em caso de não existir solução até sexta, terei que levar a cabo o plano B e desistir disto

Share this post


Link to post
Share on other sites

ta errado seu syser nao ta mostrando o verdadeiro erro !

segundo voce deve copilar uma debug  e depois prestar a atenaçao do que acontece la voce vai achar o verdadeiro erro

 

se gostou da ideia de like !

pq se isso nao resolver me mato aqui kkk mais nao e e esse o erro do syser amigo se vc mecheu nisso pode desfazer tudo !

  • Like 1

Share this post


Link to post
Share on other sites

Dei debug e não mostrou nada que pudesse a ver com o erro, mas agradeço pela ajuda.

Infelizmente terei que seguir o plano B até conseguir mais detalhes sobre o erro.

Obrigado a todos que tentaram ajudar, a vossa ajuda foi notada.

 

Podem fechar o tópico.

Share this post


Link to post
Share on other sites
Sign in to follow this  

×

Important Information

By using this site, you agree to our Terms of Use.