Openapoc: Nenhum veículo corresponde ao ID "VEHICLE_794" CTD

Criado em 23 nov. 2017  ·  33Comentários  ·  Fonte: OpenApoc/OpenApoc

Do Log após um CTD ...

W 52740355833 bool __cdecl OpenApoc :: Vehicle :: popFinishedMissions (class OpenApoc :: GameState &): Nenhuma próxima missão do veículo, inativo
E 52741482678 classe std :: shared_ptr__cdecl OpenApoc :: Vehicle :: get (const class OpenApoc :: GameState &, const class OpenApoc :: UString &): Nenhum veículo corresponde ao ID "VEHICLE_794"
0x00000001402F9D30 PHYSFS_writeSLE16 + 0x15f400
0x000000014020208A PHYSFS_writeSLE16 + 0x6775a
0x00000001401FFD3A PHYSFS_writeSLE16 + 0x6540a
0x00000001400A784C PHYSFS_swapULE64 + 0x6600c
0x000000013FFA3D32 PHYSFS_swapULE64 + 0xfffffffffff624f2
0x000000013FF7F210 PHYSFS_swapULE64 + 0xfffffffffff3d9d0
0x000000014017E015 PHYSFS_swapULE64 + 0x13c7d5
0x0000000077A159CD BaseThreadInitThunk + 0xd
0x0000000077C4A561 RtlUserThreadStart + 0x21

image

image

Comentários muito úteis

Este erro irá persistir em salvamentos - então, se a causa original de um StateRef ruimjá aconteceu, e você salva, ele irá incorporar aquela "maldade" no salvamento, então pode não ser surpreendente que recarregar um salvamento "quebrado" irá causar o mesmo erro.

A mensagem de erro acima é mostrada quando o jogo tenta usar aquele objeto "quebrado" e percebe que algo está errado, não um erro em si mesmo. A falha pode ter acontecido há algum tempo, apenas o objeto quebrado ainda não utilizado.

Portanto, se você está testando isso com o mesmo save e não criou um novo jogo desde a correção, provavelmente não nos diz muito.

Todos 33 comentários

Apenas um aviso
Este CTD agora tem dois jogos bugados.
Ambos no "Mapa Fácil"
Ambos com veículo ID 794 ~
Clicar em "Limp Along" leva você de volta ao desktop.

Esse backtrace parece incorreto, como se ele não pudesse encontrar os símbolos de depuração (então ele está apenas usando o símbolo mais próximo que pode encontrar, que por acaso é physfs).

Se você estiver usando as compilações do appveyor - você pode extrair o pacote 'debug' por cima? Portanto, os arquivos .pdb estão no mesmo diretório que o .exe?

E "tentar mancar" simplesmente não funcionará para alguns erros (como este), pois o erro está efetivamente dizendo "Estamos prestes a travar, e aqui está o porquê:", então tentar continuar travando :)

Como um objetivo de longo prazo, pode ser possível descartar o estado atual de 'salvar' em caso de erro, pode nos dar informações úteis sobre o que está errado ... Mas isso pode cair exatamente no mesmo problema (se os dados internos não seja confiável, podemos apenas travar ao tentar gravar o salvamento)

@JonnyH Não tem problema, vou tentar começar os testes com o pacote de depuração quando eu voltar do trabalho na segunda-feira ...

Atualmente, até meus olhos em jovens Ginastas: D

quão jovem? ) espero que seja legal XD

@ makus82 infelizmente, neste fim de semana e no último, mas os últimos eram muito jovens. Mas os eventos universitários quando os faço são sempre divertidos - mulheres gostosas, tudo legal 💃

Quanto ao CTD, encontre o registro, salve, etc. em anexo. Apenas comece a hora e o jogo irá travar ...

Fiz como @JonnyH disse e coloquei a instalação de depuração sobre as coisas antes de gerá-las ...

openapoc_log.txt

save_Easy 1.zip

E uma variação diferente no mesmo arquivo salvo ...

image

openapoc_log.txt

Novamente em 0.1-117
Mesmo fazendo uma instalação limpa (limpe todos os dados apoc existentes, exceto os salvos, extraia do zip novamente)

image

Posso fornecer alguns detalhes.
Passos para reproduzir:

  1. iniciar o jogo em dificuldade média (talvez qualquer)
  2. vender veículo terrestre (talvez qualquer)
  3. salvar o jogo
  4. carregar jogo
  5. retomar o jogo

@OverDrone

Ah, sim, em todos os jogos em que recebo este CTD, vendo meu wolfhound APC e Stormdog para obter alguns milhares extras em dinheiro por veículos que nunca uso.

Farei um teste em um jogo quando NÃO vender nenhum veículo e verei se esse erro ocorre.
Atualmente qualquer jogo ive vendeu qualquer veículo que bate ...

Hmmmm, acabei de ter este acidente em um jogo onde ive vendeu NENHUMA unidade terrestre ... Parece muito semelhante ...

image
image
image

O mesmo problema aqui ... não consigo vender o veículo e a opção de depuração indo para o desktop ...
alguma ideia x resolvendo?

O código da tela de transação parece uma bagunça. É difícil corrigir esse problema sem refatorar.

Ainda presente no 0.1-167 (OpenApoc-x64-v0.1-167-gf31d8b8b) o que é um pouco chato ... O bug da morte do veículo foi relatado como resolvido. Quer saber por que esse bug se recusa a ser esmagado?

image
image
image

Você carregou um jogo ou iniciou um novo?
Tente testar em um novo jogo.

Acabei de começar um novo jogo em uma nova instalação para verificar. Irá confirmar se ainda for um problema.

OK, o jogo travou aparentemente devido ao problema # 255 antes que eu possa confirmar que esse problema foi corrigido.

Dito isso, eu consegui vender Stormdog e Wolfhound APC e nenhum 794 CTD ainda, mas também não cheguei ao final do primeiro dia sem quebrar o jogo :(

Por favor, veja o comentário mais recente em # 255 para o registro e as telas da falha que encerrou meu novo jogo

@redv O acidente do veículo parece corrigido, no entanto, o problema parece ter se estendido aos Agentes também, esse bug ainda ocorre ...

image
image

É um crash ao sair do jogo?

Acontece ao sair do jogo OU entrar na tela Base (o caso acima foi encerrar)

@redv Infelizmente,

A versão do jogo é a última compilação (0.1-172 no momento da escrita)

image
image
image

Clicar em "Limp Along" produz esta variante ...
image
image

Quando o aplicativo destrói a classe GameState, primeiro destrói a lista de agentes, depois as bases, instalações, laboratórios, etc. A classe Lab contém a própria lista de agentes (cientistas), mas as classes de agentes já foram destruídas. Assim, o bug acontece.
O PR # 337 corrigiu esse bug.
Como solução alternativa, é possível remover cientistas do laboratório antes de encerrar o jogo.

@redv
Infelizmente, ainda estou recebendo uma variante desse problema na versão

Desta vez, estou movendo agentes (a pé pelos tubos de pessoas) para um incidente estranho na favela. Também estou me preparando para invadir um templo CoS, o erro ocorre com o prédio e os agentes selecionados.

image
image
image

Anexe o último salvamento antes de CTD.

@redv aqui está. Para repetir o erro, envie a Valquíria ao templo CoS logo a NE da base e envie os dois agentes andróides para o incidente na favela que aparece após um ou dois minutos A PÉ.

O erro ocorre quando a Valquíria chega ao templo de CoS e você seleciona os agentes para invadir o prédio.

save_Medium Test 1.zip

Savegame foi um novo criado hoje em uma instalação limpa do OpenApoc. O jogo está nos primeiros minutos de jogo ...

O bug acontece quando o jogo tenta carregar recursos para o mapa de batalha. O mapa contém vários blocos que selecionam aleatoriamente de um conjunto. Parece que um deles leva a um bug durante o carregamento de recursos.
Ou seja, se você repetir as mesmas ações várias vezes, mais cedo ou mais tarde o mapa de batalha CoS será carregado com sucesso. Este mapa estará sem o bloco ruim.

  1. Erro. Precisa descobrir por que o jogo não pode carregar alguns blocos do mapa.

O AGENT_35 é o fisista quântico Peter Jones.
Quando o bug do carregamento do mapa acontece, o jogo durante a falha chama os destruidores. Os destruidores de agentes correm antes de destruidores de laboratórios. O destruidor de laboratório tenta libertar agentes, mas os agentes já desapareceram da memória. Assim, o segundo bug ocorre na classe StateRef que contém o agente da classe Lab.

  1. Erro. Acho que a classe StateRef é um grande erro arquitetônico. Melhor usar ponteiros C regulares. Acho que o padrão "observador" pode resolver a maioria dos problemas. Pelo menos tentarei encontrar uma boa solução.

Obrigado redv; avise-me quando tiver uma ideia de qual solução pode funcionar

Quanto aos mapas, isso poderia estar relacionado ao problema nº 284? Percebo um grande número de mapas CoS e alguns outros parecem gerar erros quando itens são derrubados por unidades mortas / atordoadas / em pânico.

Outro travamento em 0.1-200, desta vez ao abrir a tela do agente ... Já tendo vendido o Stormdog.
image
image
image

Selecionar "Limp Along" faz isso

image
image

Equipamento desta vez :(
Crie, por favor, um novo problema. Porque este está muito fundo na fila de problemas.

Confirmar que isso ainda é um problema, vender qualquer veículo faz com que isso apareça quando qualquer coisa associada a ele for chamada.

I 417929443733 void __cdecl anonymous-namespace ':: SDLRawBackend :: setTrack (class std :: shared_ptr): Definindo trilha para 0,000.019, B87.324, D20
I 422315537514 void __cdecl anonymous-namespace'::SDLRawBackend::playSample(class std::shared_ptr<class OpenApoc::Sample>,float): Placed sound 0,000,019,BFD,B86,6B0 on queue I 422432359150 void __cdecl OpenApoc::VEquipScreen::setSelectedVehicle(class std::shared_ptr<class OpenApoc::Vehicle>): Selecting vehicle "Valkyrie Interceptor 90" I 422432639858 void __cdecl OpenApoc::VEquipScreen::setSelectedVehicle(class std::shared_ptr<class OpenApoc::Vehicle>): Selecting vehicle "Valkyrie Interceptor 90" I 424865493463 void __cdecl anonymous-namespace ':: SDLRawBackend :: playSample (class std :: shared_ptr, flutuante): Som colocado 0,000,019, BFD, B86,6B0 na fila
I 427732686087 classe std :: shared_ptr__cdecl OpenApoc :: Vehicle :: addEquipment (class OpenApoc :: GameState &, struct glm :: tvec2, classe OpenApoc :: StateRef): "Valkyrie Interceptor 90" equipado com equipamento geral "Passenger Module"
I 430232009610 void __cdecl anonymous-namespace'::SDLRawBackend::playSample(class std::shared_ptr<class OpenApoc::Sample>,float): Placed sound 0,000,019,BFD,B86,6B0 on queue I 432298883338 void __cdecl anonymous-namespace ':: SDLRawBackend :: playSample (class std :: shared_ptr, flutuante): Som colocado 0,000,019, BFD, B86,6B0 na fila
W 432416803536 void __cdecl OpenApoc :: StateRef:: resolve (void) const: objeto AEquipmentType tem prefixo inválido - esperado "AEQUIPMENTTYPE_" ID "VEHICLE_794"
E 432419555645 classe std :: shared_ptr__cdecl OpenApoc :: AEquipmentType :: get (const class OpenApoc :: GameState &, const class OpenApoc :: UString &): Nenhum tipo de equipamento correspondente ao ID "VEHICLE_794"
0x00007FF712CA8C70 PHYSFS_writeSLE16 + 0x917d0
0x00007FF712AF1F6C PHYSFS_swapULE64 + 0xef91c
0x00007FF712B5D944 PHYSFS_swapULE64 + 0x15b2f4
0x00007FF712B5FA0A PHYSFS_swapULE64 + 0x15d3ba
0x00007FF712B63967 PHYSFS_swapULE64 + 0x161317
0x00007FF712B61F0E PHYSFS_swapULE64 + 0x15f8be
0x00007FF712B56B98 PHYSFS_swapULE64 + 0x154548
0x00007FF712A79F49 PHYSFS_swapULE64 + 0x778f9
0x00007FF712A233D8 PHYSFS_swapULE64 + 0x20d88
0x00007FF7129FF6A0 PHYSFS_swapULE64 + 0xffffffffffffd050
0x00007FF712BFAE25 PHYSFS_swapULE64 + 0x1f87d5
0x00007FFF402C3034 BaseThreadInitThunk + 0x14
0x00007FFF41181431 `RtlUserThreadStart + 0x21``

Vários dias de extensos testes de jogo, e não vi esse bug desde
Problema de fechamento.

Muito obrigado Jarskih, RedV e JonnyH

Bug ainda ativo em julho de 2019. Restaure o jogo salvo e continue. Erro imediato. Feche a janela de erro e ela se repete.
Image1
save_Shot down UFO.zip

Este erro irá persistir em salvamentos - então, se a causa original de um StateRef ruimjá aconteceu, e você salva, ele irá incorporar aquela "maldade" no salvamento, então pode não ser surpreendente que recarregar um salvamento "quebrado" irá causar o mesmo erro.

A mensagem de erro acima é mostrada quando o jogo tenta usar aquele objeto "quebrado" e percebe que algo está errado, não um erro em si mesmo. A falha pode ter acontecido há algum tempo, apenas o objeto quebrado ainda não utilizado.

Portanto, se você está testando isso com o mesmo save e não criou um novo jogo desde a correção, provavelmente não nos diz muito.

Sim, os 3 salvamentos anteriores também falharam. Posso voltar aos salvamentos anteriores se isso ajudar.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

nbe-renzel-net picture nbe-renzel-net  ·  3Comentários

FilmBoy84 picture FilmBoy84  ·  3Comentários

FilmBoy84 picture FilmBoy84  ·  3Comentários

Quickmind01 picture Quickmind01  ·  3Comentários

Quickmind01 picture Quickmind01  ·  3Comentários