Openapoc: No hay ningún vehículo que coincida con el ID "VEHICLE_794" CTD

Creado en 23 nov. 2017  ·  33Comentarios  ·  Fuente: OpenApoc/OpenApoc

Desde el registro que sigue a un CTD ...

W 52740355833 bool __cdecl OpenApoc :: Vehicle :: popFinishedMissions (class OpenApoc :: GameState &): No hay próxima misión de vehículo, queda inactivo
E 52741482678 clase std :: shared_ptr__cdecl OpenApoc :: Vehicle :: get (const class OpenApoc :: GameState &, const class OpenApoc :: UString &): No hay ID de vehículo coincidente "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

Comentario más útil

Este error persistirá en los guardados, por lo que si la causa original de un StateRef incorrectoya ha sucedido, y guarde, incrustará esa "maldad" en el guardado, por lo que puede que no sea sorprendente que volver a cargar un guardado "roto" cause el mismo error.

El mensaje de error anterior se muestra cuando el juego intenta usar ese objeto "roto" y se da cuenta de que algo anda mal, no un error en sí mismo. Es posible que la falla haya ocurrido hace algún tiempo, solo que el objeto roto aún no se usó.

Entonces, si está probando esto con el mismo guardado y no ha creado un juego nuevo desde la solución, es probable que no nos diga mucho.

Todos 33 comentarios

Solo un aviso
Este CTD ahora tiene dos juegos.
Ambos en el "Mapa fácil"
Ambos con identificación de vehículo 794 ~
Al hacer clic en "Limp Along", volverá directamente al escritorio.

Ese backtrace parece incorrecto, como si no pudiera encontrar los símbolos de depuración (por lo que solo está usando el símbolo más cercano que puede encontrar, que resulta ser physfs).

Si está utilizando las compilaciones de appveyor, ¿puede extraer el paquete 'debug' en la parte superior? Entonces, ¿los archivos .pdb están en el mismo directorio que el .exe?

Y "intentar cojear" simplemente no funcionará para algunos errores (como este), ya que el error efectivamente dice "Estamos a punto de fallar, y este es el motivo:", por lo que intentar continuar simplemente falla :)

Como objetivo a más largo plazo, puede ser posible volcar el estado actual de 'guardar' en caso de error, podría darnos información útil sobre lo que está mal ... Pero eso puede caer exactamente en el mismo problema (si los datos internos no pueden ser de confianza, es posible que nos bloqueemos al intentar escribir el guardado)

@JonnyH No hay problema, intentaré probar con el paquete de depuración en la parte superior cuando regrese del trabajo el lunes ...

Actualmente hasta mis ojos en jóvenes gimnastas: D

¿que tan joven? ) espero que sea legal XD

@ makus82 lamentablemente, este fin de semana y todos los últimos, excepto los últimos, eran demasiado jóvenes. Pero los eventos uni cuando los hago siempre son divertidos: mujeres calientes, todo legal 💃

En cuanto al CTD, encuentre el registro, guardar, etc. adjunto. Solo comienza la hora y el juego se bloqueará ...

Hice lo que dijo @JonnyH y puse la instalación de depuración sobre las cosas antes de generar estas ...

openapoc_log.txt

save_Easy 1.zip

Y una variación diferente en el mismo archivo guardado ...

image

openapoc_log.txt

De nuevo en 0.1-117
Incluso haciendo una instalación limpia (borre todos los datos de apoc existentes excepto los guardados, extraiga de zip nuevamente)

image

Puedo proporcionar algunos detalles.
Pasos para reproducir:

  1. iniciar el juego en dificultad media (tal vez cualquiera)
  2. vender vehículo terrestre (tal vez cualquier)
  3. guardar partida
  4. cargar juego
  5. reanudar el juego

@OverDrone

Ah, sí, en todos los juegos en los que obtengo este CTD, vendo mi APC Wolfhound y Stormdog para obtener algunos miles extra en efectivo para vehículos que nunca uso.

Haré una prueba en un juego cuando NO vendo ningún vehículo y veré si ocurre este error.
Actualmente cualquier juego he vendido cualquier vehículo que se estrella ...

Hmmmm, acabo de tener este accidente en un juego en el que no he vendido unidades terrestres ... Parece notablemente similar ...

image
image
image

El mismo problema aquí ... no puedo vender la opción de depuración y veicle yendo al escritorio ...
alguna idea x resolver?

El código de la pantalla de transacciones parece un desastre. Es difícil solucionar este problema sin refactorizar.

Todavía presente en 0.1-167 (OpenApoc-x64-v0.1-167-gf31d8b8b) lo cual es un poco molesto ... El error de muerte del vehículo se informa ordenado. Me pregunto por qué este insecto se niega a ser aplastado.

image
image
image

¿Cargaste un juego o comenzaste uno nuevo?
Intenta probar en un juego nuevo.

Acabo de comenzar un juego nuevo en una instalación nueva para verificar. Confirmará si todavía hay un problema.

De acuerdo, el juego se bloqueó aparentemente debido al problema # 255 antes de que pueda confirmar que este problema está solucionado.

Dicho esto, pude vender Stormdog y Wolfhound APC y no 794 CTD todavía, pero tampoco he llegado al final del primer día sin romper el juego :(

Consulte el comentario más reciente sobre el número 255 para ver el registro y las pantallas del bloqueo que terminó con mi nuevo juego.

@redv El accidente del vehículo parece arreglado, sin embargo, el problema parece haberse extendido también a los agentes, este error aún ocurre ...

image
image

¿Se bloquea al salir del juego?

Sucede al salir del juego O al ingresar a la pantalla Base (el caso anterior fue salir)

@redv Lamentablemente,

La versión del juego es la última compilación (0.1-172 al momento de escribir este artículo)

image
image
image

Al hacer clic en "Cojear" produce esta variante ...
image
image

Cuando la aplicación destruye la clase GameState, primero destruye la lista de agentes, en segundo lugar las bases, instalaciones, laboratorios, etc. La clase Lab contiene su propia lista de agentes (científicos), pero las clases de agentes ya están destruidas. Así ocurre el error.
El PR # 337 corrige este error.
Como solución alternativa, eliminar a los científicos del laboratorio antes de abandonar el juego.

@redv
Lamentablemente, todavía recibo una variante de este problema en la versión OpenApoc-debug-x64-v0.1-169-g921de2a3

Esta vez estoy trasladando agentes (a pie a través de los tubos de personas) a un incidente extraterrestre en los barrios marginales. También me estoy preparando para asaltar un templo de CoS, el error ocurre con el edificio y los agentes seleccionados.

image
image
image

Adjunte el último guardado antes de CTD.

@redv aquí tienes. Para repetir el error, envía la Valkyrie al templo de CoS justo al NE de la base y envía a los dos agentes androides al incidente de los barrios marginales que aparece después de uno o dos minutos A PIE.

El error ocurre cuando la Valquiria llega al templo de CoS y seleccionas a los agentes dentro para asaltar el edificio.

save_Medium Test 1.zip

Savegame fue uno nuevo creado hoy en una instalación limpia de OpenApoc. El juego está en sus primeros minutos de juego ...

El error ocurre cuando el juego intenta cargar recursos para el mapa de batalla. El mapa contiene varios bloques que se seleccionan al azar de un conjunto. Parece que uno de ellos provoca un error durante la carga de recursos.
Es decir, si repites las mismas acciones varias veces, tarde o temprano el mapa de batalla de CoS se cargará con éxito. Este mapa estará sin el bloque defectuoso.

  1. Insecto. Necesito averiguar por qué el juego no puede cargar algunos bloques de mapas.

El AGENT_35 es el fisista cuántico Peter Jones.
Cuando ocurre el error de carga del mapa, el juego durante el bloqueo llama a los destructores. Destructros de agentes corre antes que destructores de laboratorios. El destructor del laboratorio intenta liberar a los agentes, pero los agentes ya desaparecieron de la memoria. Por lo tanto, el segundo error ocurre en la clase StateRef que contiene el agente en la clase Lab.

  1. Insecto. Creo que la clase StateRef es un gran error arquitectónico. Es mejor usar punteros C regulares. Creo que el patrón de "observador" puede resolver la mayoría de los problemas. Al menos intentaré encontrar una buena solución.

Gracias redv; avíseme cuando tenga una idea de qué solución puede funcionar

En cuanto a los mapas, ¿podría estar relacionado con el número 284? Noto una gran cantidad de mapas de CoS y algunos otros parecen generar errores cuando las unidades muertas / aturdidas / pánico dejan caer elementos.

Otro bloqueo en 0.1-200, esta vez al abrir la pantalla del agente ... Habiendo vendido ya el Stormdog.
image
image
image

Seleccionar "Cojear" hace esto

image
image

Equipo esta vez :(
Cree, por favor, un nuevo número. Porque este está demasiado metido en la cola de problemas.

Confirmando que esto sigue siendo un problema, vender cualquier vehículo hace que esto aparezca cuando se llama a algo asociado con él.

I 417929443733 void __cdecl espacio de nombres anónimo ':: SDLRawBackend :: setTrack (class std :: shared_ptr): Configuración de la pista en 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 espacio de nombres anónimo ':: SDLRawBackend :: playSample (class std :: shared_ptr, float): sonido colocado 0,000,019, BFD, B86,6B0 en la cola
I 427732686087 clase std :: shared_ptr__cdecl OpenApoc :: Vehicle :: addEquipment (clase OpenApoc :: GameState &, struct glm :: tvec2, clase OpenApoc :: StateRef): Equipado "Valkyrie Interceptor 90" con equipamiento general "Módulo de pasajeros"
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 espacio de nombres anónimo ':: SDLRawBackend :: playSample (class std :: shared_ptr, float): sonido colocado 0,000,019, BFD, B86,6B0 en la cola
W 432416803536 void __cdecl OpenApoc :: StateRef:: resolve (void) const: El objeto AEquipmentType tiene un prefijo no válido - se esperaba "AEQUIPMENTTYPE_" ID "VEHICLE_794"
E 432419555645 clase std :: shared_ptr__cdecl OpenApoc :: AEquipmentType :: get (const class OpenApoc :: GameState &, const class OpenApoc :: UString &): No hay un ID de coincidencia de tipo de equipo "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 ''

Varios días de extensas pruebas de juego, y no he visto este error desde
Problema de cierre.

Muchas gracias Jarskih, RedV y JonnyH

El error sigue activo en julio de 2019. Restaura el juego guardado y luego continúa. Error inmediato. Cierre la ventana de error y se repite.
Image1
save_Shot down UFO.zip

Este error persistirá en los guardados, por lo que si la causa original de un StateRef incorrectoya ha sucedido, y guarde, incrustará esa "maldad" en el guardado, por lo que puede que no sea sorprendente que volver a cargar un guardado "roto" cause el mismo error.

El mensaje de error anterior se muestra cuando el juego intenta usar ese objeto "roto" y se da cuenta de que algo anda mal, no un error en sí mismo. Es posible que la falla haya ocurrido hace algún tiempo, solo que el objeto roto aún no se usó.

Entonces, si está probando esto con el mismo guardado y no ha creado un juego nuevo desde la solución, es probable que no nos diga mucho.

Sí, los 3 guardados anteriores también fallaron. Puedo volver a las partidas guardadas anteriores si me sirve de ayuda.

¿Fue útil esta página
0 / 5 - 0 calificaciones