DaviMedrade / ETS2Sync-Helper-2

Euro Truck Simulator 2 job synchronizer for Multiplayer.
Other
2 stars 0 forks source link

Erro injetando codigo no savegame versão 1.25 #17

Closed j1m1l0k0 closed 8 years ago

j1m1l0k0 commented 8 years ago

Fala David blz ? tentei sincronizar e deu esse erro.

captura de tela 16

DaviMedrade commented 8 years ago

Obrigado pela informação. Um beta da versão 4.0 deve estar disponível em alguns dias.

Esse erro acontece durante a conversão do save binário (feito com g_save_format 0). Até o beta da versão 4.0 ser lançado, você pode sincronizar mudando o g_save_format para 2 no console.

Quando for salvar para sincronizar, faça o seguinte:

  1. Abra o console e digite g_save_format 2 [Enter]
  2. Salve o jogo, sincronize e carregue o save normalmente.
  3. Abra o console e digite g_save_format 0 [Enter}

Isso deve permitir que você sincronize enquanto a versão nova não está pronta sem que o jogo dê lag ao criar autosaves.

losfacto commented 8 years ago

Boa tarde Davi, tentei esse método ai mas não obtive exito, alguém conseguiu? e quanto tempo acha que leva pra sair o novo app?

JhowDroid commented 8 years ago

Pois é, reparei também o mesmo problema. Bom que existe uma alternativa. =D

losfacto commented 8 years ago

Como assim JhowDroid? Você conseguiu o sync? usando esta forma acima?

JhowDroid commented 8 years ago

@losfacto, consegui usar o mesmo aplicativo usando o g_save_format 2 como @davidsantos-br orientou. Funciona da mesma maneira. Com o formato "zero" estava acontecendo o problema informado pelo @j1m1h3ndr1x

saifrer commented 8 years ago

@JhowDroid vc está conseguindo fazer a sincronia com as viagens ficando com 500h ou apenas liberando pra fazer viagens como no modo off-line

JhowDroid commented 8 years ago

@saifrer, eu e mais 4 colegas usamos no MP, e sim, carregam as 500h.

losfacto commented 8 years ago

estranho, o meu até funciona, ja meus amigos dizem que ouve alteração no jogo e volta pra garagem inicial e não sincroniza... Mas fazer oq... vamo espera a atualização. Bora roda...

JhowDroid commented 8 years ago

@losfacto, seus amigos devem ter atualizado para a versão 1.25 do ETS2 e devem estar alterando o save de sincronismo da versão 1.24 fazendo o jogo na versão 1.25 carregar o save antigo. Nesse momento o jogo converte o save da versão 1.24 para a versão 1.25 e te leva para a garagem para evitar inconsistências na portabilidade de versão e automaticamente o jogo deve atualizar as cargas fazendo com que o sincronismo gerado anteriormente seja desfeito. Diria que há uma grande chance de ser isso. Não pode esquecer de antes de fazer o sincronismo, gerar um novo save instantes antes para garantir que a alteração das cargas sejam feitas nesse último arquivo. Como paleativo informado pelo @davidsantos-br usar o "g_save_format 2":

Quando for salvar para sincronizar, faça o seguinte:

Abra o console e digite g_save_format 2 [Enter]
Salve o jogo, sincronize e carregue o save normalmente.
Abra o console e digite g_save_format 0 [Enter}

Isso deve permitir que você sincronize enquanto a versão nova não está pronta sem que o jogo dê lag ao criar autosaves.

saifrer commented 8 years ago

e vc ta conseguindo jogar na versão 1.24?? Já fiz fretes na versão nova, ja comecei um profile novo. Já criei save na versão beta 1.24 e depois atualizei pra 1.25 e até agora n deu em nada.

DaviMedrade commented 8 years ago

Já isolei o problema. O formato que a posição do caminhão e do trailer são salvos no save binário mudou (por isso que em g_save_format 2 funciona, porque no save em formato texto o formato não mudou).

Ainda não consegui entender o novo formato, mas assim que eu conseguir já vou poder lançar o beta da nova versão.

Originalmente o placement é uma sequência de sete números em ponto flutuante, de 4 bytes cada um. Esses sete números indicam a posição (onde está) e a orientação (para onde está virado) o objeto (i.e. o caminhão ou o trailer). Com isso cada atributo desse tipo no save binário ocupava 28 bytes no total.

Depois da atualização, no save em formato texto o placement continua com o mesmo formato, mas no save binário esse atributo agora ocupa 32 bytes (foram adicionados 4 bytes entre o terceiro e o quarto número). Por isso o ETS2Sync Helper dá pau: ele lê 28 bytes quando deveria ler 32, e daí pra frente ele “se perde” no arquivo.

O problema é que o primeiro e o terceiro número agora são codificados de alguma forma (muito provavelmente envolvendo esses quatro bytes adicionais), e eu ainda não consegui decodificar. Com isso se eu simplesmente ignoro os quatro bytes adicionais a sincronização funciona, mas, como o primeiro e o terceiro número possuem o valor errado, quando o save é carregado o caminhão está caindo no vazio, fora do mapa.

Eu sinceramente não sei quanto tempo vou levar pra descobrir como decodificar esses valores ou até se vou conseguir, mas se de fato eu não conseguir eu já tenho algo em mente pra contornar esse problema. Infelizmente isso significa que a nova versão deve demorar mais do que eu imaginei (mas não acho que demora mais que uma semana).

losfacto commented 8 years ago

Olha incrível, não sei como, mas eu to fazendo e funciona normalmente carga on-line 500h, mas meus colegas não... vai intender... ja tentamos de tudo que possa imaginar format 2, 3 tudo e não vai, quando ele carrega o jogo é como o JhowDroid falou, ele olha como se estivesse atualizado o jogo naquele momento e joga o caminhão pra garagem. Boa sorte David esperamos ansiosos a nova versão.

j1m1l0k0 commented 8 years ago

@davidsantos-br esses 4 bytes adicionais deve ser as coordenadas de posição do objeto(caminhão) dentro do jogo. Se você disse que sem eles o caminhão aparece fora do mapa provavelmente seja as coordenadas.

j1m1l0k0 commented 8 years ago

A única forma de manter o sincronizador funcionando é usar um savegame aberto (tipo 2) fixo em algum local e sincronizar por meio dele. Quando se tenta usar um savegame novo já na versão 1.25 o sincronizador não atualiza realmente. A parte "ruim" disso é ter de começar o jogo de um mesmo local até que a correção seja descoberta.

Uma alternativa é salvar alguns savegames abertos em garagens de regiões diversas onde mais joga e sincronizar a partir desse. No caso, é uma escolha bem pessoal.

losfacto commented 8 years ago

Acho que descobri porque eu estou Sync e o pessoal não, eu tenho as DLC´s um outro amigo que tbm tem consegue Sync tbm, porem tem que mudar pra save format 2. Abraço pessoal, e vamo aguarda ai a nova versão.

DaviMedrade commented 8 years ago

Anotando aqui pra eu não esquecer:

00 08 00 4b = sem alteração
08 90 ff 4a = primeiro num. - 2048, terceiro num. + 2048 (2048 = 0x0800)
26 90 fd 4a = primeiro num. - 9728, terceiro num. - 10240 (9728 = 0x2600, 10240 = 0x2800)
olecr4n commented 8 years ago

pra mim funcionou mudando o formato do save, mas pro restante do grupo não funcionou, apenas pra mim e pro Losfacto que está sincronizando, e ambos possuímos as dlcs de expansão de mapa.

DaviMedrade commented 8 years ago

Esses pra quem não funcionou depois de mudar o formato, qual é o erro?

olecr4n commented 8 years ago

um deles comprou a Escandinávia e parou o erro, pros demais na hora que carrega o save diz que teve alteração no jogo e manda de volta pra garagem e não sincroniza!!!!

DaviMedrade commented 8 years ago

Nova versão 4.0.0 beta (só sincroniza saves criados com g_save_format 2):

https://github.com/davidsantos-br/ETS2Sync-Helper-4