Openapoc: Error de cantidad de munición y cargador

Creado en 16 sept. 2019  ·  3Comentarios  ·  Fuente: OpenApoc/OpenApoc

Si mal no recuerdo, si la munición se vende en este guardado, terminarás con el error de millones de clips nuevamente. El Heavy Plasma Clip es un buen ejemplo. Lo había vendido como un clip parcial, y cuando lo volví a comprar, todavía era un clip parcial. Si hubiera tenido un segundo clip completo, probablemente se hubiera rellenado. Además, creo que este error de clip afectó mi espacio de almacenamiento.

Esto está utilizando OpenApoc-v0.2.0.2-16-g2f96387e y V7.1 EWM.

save_Ammo y Clip Bug.zip

!BUG! low priority

Todos 3 comentarios

Parece que el guardado ya tiene una cantidad absurda de clips de munición, sin necesidad de comprar / vender nada.

Pero esto da una buena pista: parece que el código de compra / venta no verifica si un cargador de munición está parcialmente lleno, solo saca el (MAX_AMMO) de un clip de las tiendas.

Pero eso, naturalmente, falla si intentas vender un clip no completo, ya que quita MAX_AMMO de un valor menor que MAX_AMMO, causando un subdesbordamiento (ya que es un valor sin firmar, en lugar de volverse negativo, termina con UINT32_MAX, por muchos que sea). estar por debajo de cero, por lo que más de 4 mil millones). Lo que explica claramente el problema.

Así que esto plantea la cuestión de cómo deberíamos manejar los clips parcialmente llenos: tratamos de ser "inteligentes" y agregar funciones al OG mediante el seguimiento del número de balas, no de clips fuera de las batallas, tiene una serie de efectos que no estoy seguro. Vale la pena la complejidad adicional para una función que la mayoría de la gente ni siquiera notará:

  • ¿La compra / venta de un clip parcialmente lleno debería tener el mismo costo que uno completo?
  • La interfaz de usuario de compra / venta realmente no tiene forma de informar al usuario que un clip está parcialmente lleno, ya sea comprando o vendiendo
  • Ya no hay forma en la batalla de fusionar clips parcialmente llenos, por lo que si no tienes cuidado, podrías terminar en una situación en la que luchas en varias batallas seguidas y tienes varios clips casi vacíos en cada agente, lo que parece frustrante.

Podría revisar y cortar y quemar esta función y fusionar automáticamente los clips parcialmente llenos al final de cada batalla. No estoy seguro de si esta gestión realmente / agrega / algo al juego.

Entonces, mirando más en el código, parece que el mercado en realidad no admite clips parciales, después de eliminar el número de rondas de las tiendas, la economía solo rastrea el número de clips.

Eso significa que siempre compra clips completos, incluso si lo vendió parcialmente lleno, por lo que una simple abrazadera aquí rellenará mágicamente un clip si lo vende y lo vuelve a comprar.

Pero a medida que la venta se desbordará a un número CRAZY grande, la recompra se desbordará de nuevo a un número sensato, de regreso a donde comenzó.

Si quieres votar, votaría por no tener una gestión parcial de los clips en las bases y dejar que todos los clips se vuelvan a llenar al regresar a la base, junto con los teletransportes personales y los escudos que se recargan.

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