Jump to content

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.

 

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

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

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

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

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

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.