FANDOM


Este artículo explica la IA de batalla (inteligencia artifical). Esto es, las decisiones sobre los movimientos u objetos a utilizar en batallas contra oponentes contralados por la computadora (tanto Pokémon salvajes como entrenadores enemigos y aliados). Este artículo asume que la IA es para un entrenador enemigo, aunque también aplica para Pokémon salvajes y entrenadores aliados también.

Éste es un tema complejo, pero innecesario para la mayoría de los usuarios. No intente modificar la IA al menos que tenga un buen dominio de programación.

Ver también Editar

Turno de batalla

  • Aquí es donde se usa la AI.

Niveles de la IA Editar

Los mejores entrenadores deberían ser más listos que los más novatos. La forma en la que la IA decide qué tan bueno es un entrenadores es mirando la cantidad de dinero que el jugador recibirá al vencerlo. Mientras más dinero entregue, mejor será el entrenador y su también su IA.

Resumen de la IA Editar

La primer cosa que necesita hacer la IA en cada turno es decidir entre usar un ataque, un objeto o cambiar de Pokémon. Esta decisión inicia en el script PokeBattle_AI, en la definición de pbDefaultChooseEnemyCommand.

En primer lugar, la IA decide si se debería utilizar un objeto (PokeBattle_AI, pbEnemyItemToUse). Este código recorre cada uno de los objetos que tenga la IA y decide si usará uno. Se han programado distintas condiciones para que la IA reconozca el momento de utilizar los distintos objetos. La IA reconoce (y por lo tantos, los utiliza) solamente los objetos de batalla básicos. Observe el orden en el que se suceden las condiciones, por ejemplo Restaura Todo tiene más prioridad que Cura Total.

Si la IA decide no utilizar ningún objeto, entonces se intenta descubrir si se puede y debería cambiar de Pokémon (PokeBattle_AI, pbEnemyShouldWithdrawEx?). Esta código realiza varias verificaciones previas, incluyendo una estimación de qué tan bueno será el movimiento del Pokémon del jugador contra éste, si puede utilizar un movimiento, si está por debilitarse por envenenamiento o Canto Mortal, y muchas más. Esta decisión puede cambiar a medida que se pasan por otras condiciones. Y al final, verifica qué otro Pokémon es la mejor opción para intercambiarlo.

Si la IA decide no cambiar de Pokémon, entonces se deberá elegir el movimiento a usar (PokeBattle_AI, pbChooseMoves). Por cada uno de los movimientos disponibles, se calcula un puntaje dependiendo de varios factores, incluyendo el código de función y la efectividad del movimiento, la habilidad activa actualmente, los efectos del movimiento y el clims, el objeto del Pökémon y su estado, y cuántos Pokémon le quedan al oponente. Luego, se compara los puntajes de cada movimiento para escoger el que se usará. No hay ningún movimiento bueno para encoger, entonces habrá otra oportunidad de cambiar de Pokémon.

Justo antes de escoger el movimiento a usar, la IA decide si debería Mega Evolucionar su Pokémon. Por defecto, se elegirá siempre que sea posible.

Reconocimiento de objetos y efectos Editar

La IA necesita ser programada para reconocer los objetos. Actualmente, sólo reconoce los objetos de curación básicos y los que aumentan las características. Este reconocimiento se realiza en la sección del script PokeBattle_AI, en la definición de pbEnemyItemToUse.

Los objetos usados por la IA tienen que tener sus efectos. Estos efectos se definen separadamente de los efectos usados por los objetos del jugador. Estos Efectos se listan en la definición de pbEnemyUseItem del script PokeBattle_Battle. Estos efectos debería ser los mismos que los que tiene el jugador, para ser justo.