Diferencia entre revisiones de «Bots»

Sin resumen de edición
Línea 1: Línea 1:
'''BlosamAO''' cuenta con duelos contra bots, tanto para '''practicar''' como para '''Texto en negrita'''competir en temporadas y medir tu progreso frente a rivales controlados por el servidor.
'''BlosamAO''' cuenta con duelos contra bots para practicar y con un modo competitivo por temporadas. Los bots no son criaturas del mundo abierto: aparecen en salas de duelo, cumplen las reglas de esa sala y desaparecen al finalizar el combate.


Los bots no son criaturas del mundo abierto. Aparecen únicamente en salas de duelo, cumplen las reglas de la sala correspondiente y desaparecen una vez finalizado el combate.
La ventana principal se abre con '''/BOT'''. Desde ahi se consulta el progreso competitivo, se elige la modalidad disponible y se inicia el duelo correspondiente.


Para acceder a este sistema, debes encontrarte en la ciudad de Zendrac y utilizar el comando '''/BOT'''.
== Modalidades ==


== Modalidades ==
Existen tres formas principales de jugar con bots:


Existen tres formas de jugar '''con o contra bots''':
* '''Practica 1vs1''': duelo individual contra un bot elegido por el jugador.
* '''Practica 2vs2 mixta''': duelo 2vs2 con jugadores y bots mezclados.
* '''Competitivo 1vs1''': duelo 1vs1 contra un bot generado por el servidor, con progreso de temporada.


* Práctica 1vs1: Práctica 1vs1 contra un bot a elección.
Cada modalidad debe estar habilitada por el staff. Si una modalidad esta desactivada, no hay salas libres o el personaje no cumple las condiciones para entrar, el servidor informa el motivo por chat.
* Práctica 2vs2 mixta: Práctica 2vs2 con uno o más bots.
* Competitivo 1vs1: Competitivo 1vs1 contra un bot generado por el servidor.


== Rangos de bot ==
== Rangos de bot ==


Los bots tienen rangos de dificultad:
Los bots tienen perfiles de dificultad asociados a rangos y divisiones. La escala competitiva visible es:


* Bronce.
* Bronce III.
* Plata.
* Bronce II.
* Oro.
* Bronce I.
* Platino.
* Plata III.
* Diamante.
* Plata II.
* Plata I.
* Oro III.
* Oro II.
* Oro I.
* Platino III.
* Platino II.
* Platino I.
* Diamante III.
* Diamante II.
* Diamante I.
* Maestro.
* Maestro.
* Gran Maestro.
* Gran Maestro.
* Retador.
* Leyenda.
 
Desde Bronce hasta Diamante existen tres divisiones: III, II y I. La division III es la entrada de la liga y la division I es la mas alta antes de pasar a la liga siguiente.


El rango del bot reside en su forma de jugar: reacción, puntería, uso de hechizos, distancia, pociones, remoción de parálisis, apoyo en equipo y presión durante el combate. El bot toma decisiones según su clase, rango y estado del combate.
A partir de Maestro ya no hay divisiones. La escala superior es Maestro, Gran Maestro y Leyenda.


En rangos bajos, el bot reacciona más lento y comete más errores. En rangos altos, administra mejor sus recursos, falla menos, remueve parálisis más rápido y castiga mejor los errores del rival.
El rango del bot representa su forma de jugar: reaccion, punteria, uso de hechizos, distancia, pociones, remocion de paralisis, apoyo en equipo y presion durante el combate. En rangos bajos el bot reacciona mas lento y comete mas errores. En rangos altos administra mejor sus recursos, falla menos y castiga mejor los errores del rival.


== Clases y razas ==
== Clases y razas ==


Los bots utilizan combinaciones de clase y raza configuradas por el servidor. Existen bots para todas las combinaciones posibles, equipados con el mejor equipamiento disponible en la tienda.
Los bots usan combinaciones de clase y raza configuradas por el servidor. En practica, el jugador puede elegir el rango y la combinacion disponible para el bot.
 
*En el modo de práctica, puedes enfrentarte a cualquier combinación de clase y raza a elección.


*En el modo competitivo, algunas combinaciones son descartadas por cuestiones de balance y coherencia. Por ejemplo, nunca te enfrentarás a bots con combinaciones como Mago Enano o Guerrero Gnomo.
En competitivo, el servidor genera un bot desde los presets activos de clase y raza. Algunas combinaciones pueden estar desactivadas por balance o coherencia, por lo que no necesariamente aparecen en competitivo aunque existan en practica.


== Práctica 1vs1 ==
== Practica 1vs1 ==


* El jugador elige el rango del bot.
* El jugador elige el rango del bot.
* El jugador elige la combinación raza-clase del bot.
* El jugador elige la combinacion raza-clase del bot.
* Se juega con o sin parálisis, según la opción elegida.
* Se juega con o sin paralisis, segun la opcion elegida.
* Se juega a un duelo o al mejor de 3, según la opción elegida.
* Se juega a un duelo o al mejor de 3, segun la opcion elegida.
* Se juega en modo normal o plante, según la opción elegida.
* Se juega en modo normal o plante, segun la opcion elegida.
* No suma ni resta puntaje competitivo.
* No suma ni resta puntos de liga competitivos.


== Práctica 2vs2 mixta ==
== Practica 2vs2 mixta ==


* Es una práctica 2vs2 con jugadores y bots mezclados.
* Es una practica 2vs2 con jugadores y bots mezclados.
* El que inicia el reto siempre participa y los otros lugares se completan con bots o jugadores reales, según la composición elegida.
* El jugador que inicia siempre participa.
* Se puede elegir la combinación raza-clase del o de los bots partícipes.
* Los otros lugares se completan con bots o jugadores reales, segun la composicion elegida.
* Debe haber al menos un bot en la sala.
* Debe haber al menos un bot en la sala.
* Si se eligen otros jugadores reales, reciben invitación y deben aceptar.
* Si se eligen otros jugadores reales, reciben invitacion y deben aceptar.
* Se juega con o sin parálisis, según la opción elegida.
* Se puede elegir la combinacion raza-clase del o de los bots participantes.
* Se juega a un duelo o al mejor de 3, según la opción elegida.
* Se juega con o sin paralisis, segun la opcion elegida.
* No suma ni resta puntaje competitivo.
* Se juega a un duelo o al mejor de 3, segun la opcion elegida.
* No suma ni resta puntos de liga competitivos.


NOTA: Los bots de 2vs2 también juegan en equipo: atacan, asisten y remueven parálisis según la situación del combate.
Los bots de 2vs2 tambien juegan en equipo: atacan, asisten y remueven paralisis segun la situacion del combate.


== Competitivo 1vs1 ==
== Competitivo 1vs1 ==
Línea 64: Línea 75:
El competitivo contra bots es un ranking por temporadas. Se juega 1vs1, al mejor de 3, contra bots preparados para competir.
El competitivo contra bots es un ranking por temporadas. Se juega 1vs1, al mejor de 3, contra bots preparados para competir.


* Características:
* El rival lo asigna el servidor.
** El rival se asigna por el servidor según el progreso competitivo del personaje.
* El duelo usa un bot generado desde presets activos.
** Suma o resta puntaje visible al finalizar.
* El bot no muestra su rango durante placements.
** Tiene partidas de clasificación antes de publicar el rango.
* El resultado actualiza puntos de liga, nivel oculto y estadisticas.
** Usa un nivel oculto para mejorar la elección de rivales.
* La temporada define ranking, historial y recompensas.
** Tiene series de ascenso en rangos determinados.
** Puede perder puntaje por inactividad competitiva en rangos altos.
** Entrega recompensas de temporada según corresponda.


== Clasificación inicial ==
== Placements ==


Antes de tener rango publicado, cada personaje juega una cantidad de partidas de clasificación.
Antes de tener rango publicado, cada personaje juega '''10 partidas de clasificacion'''.


* Durante la clasificación, el rango aparece como sin clasificar.
Durante placements:
* La ventana (/BOT) muestra el avance, por ejemplo partida X/Y.
* El sistema ajusta los rivales según el rendimiento.
* Las rachas ayudan a probar rivales más altos o más bajos.
* Al terminar la clasificación, el personaje recibe un rango visible inicial.


La clasificación no garantiza salir en el rango más alto aunque el rendimiento sea muy bueno. El servidor limita el rango inicial para que la temporada tenga progresión.
* La ventana muestra el progreso como partida X/10.
* El rango visible del jugador todavia no esta publicado.
* El rango del bot no se muestra en el formulario de /BOT.
* El rango del bot tampoco se muestra al hacer click sobre el bot.
* El servidor elige rivales segun el rating interno de placements y la racha reciente.


== Puntaje visible ==
El rating inicial de placements es 850. Las victorias y derrotas lo ajustan con una formula tipo rating: ganar contra bots mas altos suma mas y perder contra bots mas bajos castiga mas.


El puntaje visible, también llamado ELO, es el número que ve el jugador. Ese puntaje define:
Al completar la decima partida, el sistema publica el rango visible inicial. El rango inicial esta limitado por configuracion: por defecto no puede publicarse por encima de '''Diamante I''' aunque el rendimiento interno sea mayor.


* Rango mostrado.
== Puntos de liga ==
* Progreso hacia el siguiente rango.
* Posición en el ranking.
* Rango visible del personaje cuando corresponde.
* Recompensas de temporada.


Después de la clasificación, ganar sube el puntaje visible y perder lo baja. La cantidad exacta depende de la configuración vigente y del rendimiento del personaje.
Despues de placements, el progreso visible usa '''puntos de liga''' de 0 a 100.


== Nivel oculto para elegir rivales ==
* Al ganar, se suman puntos de liga.
* Al perder, se restan puntos de liga.
* La cantidad ganada o perdida depende del nivel oculto del jugador comparado contra su rango visible.
* Si el nivel oculto esta por encima del rango visible, el jugador tiende a ganar mas y perder menos.
* Si el nivel oculto esta por debajo del rango visible, el jugador tiende a ganar menos y perder mas.


Además del puntaje visible, existe un nivel oculto, también llamado MMR oculto. Este valor no se muestra en la ventana ni en el personaje.
Con la configuracion actual, una partida normalmente mueve entre 14 y 25 puntos de liga. Un jugador alineado con su rango suele moverse cerca de 18, 19 o 20 puntos. Un jugador con nivel oculto alto puede recibir 22, 23, 24 o 25 puntos. Un jugador con nivel oculto bajo puede recibir 14, 15 o 16 puntos.


El nivel oculto se usa para:
== Divisiones y promociones ==


* Elegir bots más acordes al nivel real del jugador.
De Bronce a Diamante, llegar a 100 puntos de liga no asciende automaticamente: inicia una promocion.
* Evitar que el sistema dependa solo del puntaje visible.
* Ajustar cuánto puntaje se gana o se pierde.
* Detectar si el rendimiento está por encima o por debajo del rango visible.


Si el nivel oculto está por encima del puntaje visible, el sistema ayuda a que el jugador suba más rápido. Si está por debajo, la subida se vuelve más exigente.
* Las promociones entre divisiones son al mejor de 3.
* Las promociones entre ligas son al mejor de 5.
* Una promocion entre divisiones requiere 2 victorias antes de 2 derrotas.
* Una promocion entre ligas requiere 3 victorias antes de 3 derrotas.
* Si la promocion se gana, el jugador sube al objetivo y queda con 0 puntos de liga.
* Si la promocion se pierde, el jugador queda en el rango actual con 75 puntos de liga.


Los números exactos no se publican porque forman parte del balance del competitivo y cambian cuando el staff ajusta la temporada.
Ejemplos:


== Series de ascenso ==
* Bronce III a Bronce II: promocion al mejor de 3.
* Bronce I a Plata III: promocion al mejor de 5.
* Diamante I a Maestro: promocion al mejor de 5.


En algunos rangos, llegar al puntaje necesario no asciende automáticamente. Primero se entra en una serie de ascenso.
Mientras una promocion esta activa, el duelo inicial muestra el estado de la serie. Por ejemplo:


* La serie se juega al mejor de 3.
* Desafio de promocion contra Bot Bronce II. Promo Bronce II: 1/0 (necesitas 2 victorias).
* Si el jugador gana la serie, asciende al rango objetivo.
* Si pierde la serie, se mantiene en el rango actual y pierde parte del progreso.
* No se saltan series ni rangos.


Mientras una serie está activa, la ventana muestra el estado de la serie.
Al resolver la promocion, el chat informa si fue superada o no. Si se gana una promocion divisional, por ejemplo Bronce III a Bronce II, el mensaje correcto es:


== Inactividad competitiva ==
* Promo Bronce II superada.
* Ascendiste a rango Bronce II.


En rangos altos, dejar de jugar competitivo contra bots puede hacer que el personaje pierda puntaje visible.
== Maestro, Gran Maestro y Leyenda ==


* No afecta a todos los rangos.
A partir de Maestro no hay divisiones.
* Solo aplica a personajes clasificados en rangos altos.
* Jugar partidas genera días protegidos.
* Mientras quedan días protegidos, la inactividad no descuenta puntaje.
* Cuando se agota la protección, la inactividad descuenta puntaje.
* Si el jugador baja hasta un rango no afectado, la pérdida por inactividad se detiene.


La regla existe para que los puestos altos representen actividad reciente. Los rangos bajos no son castigados por esta mecánica.
Para entrar a Maestro hay que ganar la promocion desde Diamante I. Al subir, el jugador queda en Maestro con 0 puntos de liga.


El servidor revisa esta condición de forma automática una vez por día, después de las 00:05 hora local del servidor. Si se consume protección o se pierde puntaje por inactividad competitiva, el jugador recibirá un aviso.
Dentro de la escala superior:
 
* Maestro empieza en 0 puntos de liga.
* Gran Maestro empieza al alcanzar 150 puntos de liga.
* Leyenda empieza al alcanzar 900 puntos de liga.
* El paso de Maestro a Gran Maestro y de Gran Maestro a Leyenda no usa promocion.
* Si los puntos bajan por debajo del umbral correspondiente, el rango visible vuelve al tramo que corresponda.
 
Los umbrales de Gran Maestro y Leyenda son configurables en BotLadder.dat. Los valores por defecto son 150 y 900.
 
== Nivel oculto / MMR ==
 
Ademas de los puntos de liga visibles, el sistema mantiene un '''nivel oculto''' o MMR.
 
El MMR no reemplaza al rango visible. Se usa para ajustar el progreso:
 
* Calcula cuanto MMR se gana o pierde en cada partida.
* Ayuda a decidir si los puntos de liga visibles deben subir mas rapido o mas lento.
* Permite que un jugador con buen rendimiento avance mas rapido.
* Permite que un jugador con bajo rendimiento avance mas lento aunque todavia conserve su rango visible.
 
El dashboard puede mostrar a que rango se acerca el MMR. La escala interna usa los mismos pasos visibles:
 
{| class="wikitable"
! MMR aproximado !! Rango cercano
|-
| 0 - 99 || Bronce III
|-
| 100 - 199 || Bronce II
|-
| 200 - 299 || Bronce I
|-
| 300 - 399 || Plata III
|-
| 400 - 499 || Plata II
|-
| 500 - 599 || Plata I
|-
| 600 - 699 || Oro III
|-
| 700 - 799 || Oro II
|-
| 800 - 899 || Oro I
|-
| 900 - 999 || Platino III
|-
| 1000 - 1099 || Platino II
|-
| 1100 - 1199 || Platino I
|-
| 1200 - 1299 || Diamante III
|-
| 1300 - 1399 || Diamante II
|-
| 1400 - 1499 || Diamante I
|-
| 1500 - 1649 || Maestro
|-
| 1650 - 2399 || Gran Maestro
|-
| 2400+ || Leyenda
|}
 
Estos rangos son una lectura aproximada del MMR, no un ascenso visible automatico. El ascenso visible sigue dependiendo de puntos de liga y promociones.
 
== Eleccion de rivales en competitivo ==
 
La eleccion del bot competitivo depende del estado del jugador:
 
* Durante placements, el servidor usa el rating interno de placements y la racha reciente para probar rivales.
* Despues de placements, el servidor usa el rango y division visibles del jugador.
* Si el jugador esta en promocion, el servidor usa el rango y division objetivo de esa promocion.
* A partir de Maestro, se usa Maestro, Gran Maestro o Leyenda segun el rango visible actual.
 
Esto significa que, si un jugador esta en Oro II, el sistema lo enfrenta contra Bot Oro II. Si entra en promocion a Oro I, lo enfrenta contra Bot Oro I durante esa serie. Si pierde una partida dentro de Oro II, no baja automaticamente a pelear contra bots de Plata por esa derrota: primero debe bajar de division o liga por puntos de liga.
 
== Proteccion por inactividad ==
 
Desde Oro III en adelante puede existir perdida de puntos de liga por inactividad competitiva.
 
La ventana de /BOT muestra esta mecanica como '''proteccion por inactividad'''.
 
* Si no aplica al rango actual, la ventana informa que ese rango no pierde puntos de liga por inactividad.
* Si aplica y el jugador tiene dias protegidos, aparece como protegido.
* Si aplica y no quedan dias protegidos, aparece en riesgo.
* Jugar partidas competitivas suma dias protegidos, gane o pierda.
* La inactividad no baja el MMR oculto. Solo afecta puntos de liga visibles.
* La perdida por inactividad puede bajar divisiones o ligas si los puntos no alcanzan.
 
El servidor revisa la inactividad automaticamente una vez por dia, despues de las 00:05 hora local del servidor. Si se consumen dias protegidos o se pierden puntos de liga, el jugador recibe un aviso con prefijo Bots.


Ejemplos de avisos:
Ejemplos de avisos:
* Bots> Ya no tenes dias protegidos. Si no jugas competitivo, podes perder ELO por inactividad.
 
* Bots> Por inactividad competitiva perdiste 45 ELO. Bajaste de Maestro a Diamante. ELO actual: 1540.
* Bots> Consumiste 1 dia protegido. Te quedan 3 dias protegidos.
* Bots> Ya no tenes dias protegidos. Si no jugas competitivo, podes perder puntos de liga por inactividad.
* Bots> Por inactividad competitiva perdiste 45 puntos de liga. Bajaste de Maestro a Diamante I. Puntos de liga actuales: 75.
 
La configuracion por defecto de dias protegidos y perdida diaria es:
 
{| class="wikitable"
! Rango !! Dias por partida !! Maximo de dias !! Dias iniciales !! Perdida base diaria !! Aumento por dias consecutivos !! Maximo diario
|-
| Oro || 1 || 7 || 0 || 20 || 0 || 20
|-
| Platino || 1 || 6 || 0 || 20 || 0 || 20
|-
| Diamante || 1 || 5 || 5 || 20 || 5 || 45
|-
| Maestro || 1 || 4 || 4 || 30 || 8 || 70
|-
| Gran Maestro || 1 || 3 || 3 || 40 || 10 || 90
|-
| Leyenda || 1 || 2 || 2 || 50 || 15 || 120
|}
 
== Proteccion de descenso por partida ==
 
La proteccion por inactividad no es lo mismo que la proteccion de descenso por perder una partida.
 
Cuando un jugador sube de liga, puede tener una proteccion de descenso de liga por una unica vez. Si pierde en 0 puntos y corresponderia bajar de liga, esa proteccion puede mantenerlo en 0 puntos y consumirse.
 
Esta proteccion:
 
* No aplica entre divisiones de una misma liga.
* No impide que el MMR baje por derrotas.
* No impide la perdida de puntos por inactividad.


== Temporadas y recompensas ==
== Temporadas y recompensas ==


El modo competitivo funciona por temporadas.
El competitivo funciona por temporadas.


* Cada temporada tiene nombre, inicio y cierre.
* Cada temporada tiene nombre, inicio y cierre.
* El servidor cierra la temporada automáticamente cuando cambia el mes.
* El servidor cierra la temporada automaticamente cuando cambia el mes.
* Al cerrar una temporada, el servidor calcula recompensas para los jugadores clasificados.
* Al cerrar una temporada, se calculan recompensas para los jugadores clasificados.
* Después del cierre, se abre una temporada nueva.
* Despues del cierre, se abre una temporada nueva.
* Las recompensas dependen del rango alcanzado y de la configuración vigente.
* Las recompensas dependen del rango alcanzado y de la configuracion vigente.
* Las recompensas incluyen los canjeos e ítems definidos para esa temporada.
* Las recompensas pueden incluir canjeos e items definidos para esa temporada.
 
Las recompensas se configuran por separado de la ladder, en BotSeasonRewards.dat.


== Información visible en la ventana ==
== Informacion visible en /BOT ==


La ventana que nos aparece cuando utilizamos el comando /BOT, nos muestra la información importante:
La ventana de /BOT muestra la informacion importante del sistema:


* Temporada activa.
* Temporada activa.
* Días restantes.
* Dias restantes.
* Rango actual.
* Rango actual.
* Mejor rango alcanzado.
* Mejor rango alcanzado.
* Puntaje actual.
* Puntos de liga actuales.
* Progreso al siguiente rango.
* Progreso hacia el siguiente objetivo.
* Rival estimado.
* Rival estimado.
* Partidas de clasificación jugadas.
* Partidas de placements jugadas.
* Victorias y derrotas.
* Victorias y derrotas.
* Racha actual y mejor racha.
* Racha actual y mejor racha.
* Duración promedio.
* Duracion promedio.
* Estado de serie de ascenso.
* Estado de promocion.
* Protección de rango (solo cuando aplica).
* Proteccion por inactividad, cuando aplica.
 
Durante placements, el rango todavia no esta publicado y el rango del bot se oculta. Despues de placements, la ventana muestra el rango y division visibles, por ejemplo Oro I o Diamante III.
 
== Configuracion: BotLadder.dat ==
 
La ladder se configura con BotLadder.dat. Si el archivo no existe, el servidor lo autogenera con los defaults del codigo.
 
Valores globales por defecto:
 
{| class="wikitable"
! Campo !! Valor !! Uso
|-
| PlacementVisibleCapPoints || 1499 || Cap maximo del rango visible al terminar placements.
|-
| DivisionPromotionPoints || 100 || Puntos de liga necesarios para entrar en promocion de Bronce a Diamante.
|-
| PromotionFailPoints || 75 || Puntos de liga al fallar una promocion.
|-
| GrandMasterMinPoints || 150 || Puntos necesarios para pasar de Maestro a Gran Maestro.
|-
| LegendMinPoints || 900 || Puntos necesarios para pasar a Leyenda.
|-
| BaseK || 70 || Base del movimiento de MMR por partida.
|-
| MaxDelta || 220 || Limite maximo del cambio bruto de MMR por partida.
|-
| StreakStep || 0.15 || Multiplicador adicional por racha.
|-
| CatchUpMultiplier || 0.3 || Ajuste que acerca el MMR al rango visible cuando estan desalineados.
|}
 
El archivo tambien define:
 
* multiplicadores por diferencia entre MMR oculto y rango visible;
* el profile de PvpBotAI.dat que corresponde a cada rango/division;
* la perdida por inactividad y dias protegidos por rango;
* umbrales de Maestro, Gran Maestro y Leyenda.
 
Cada seccion de matchmaking apunta a un profile de PvpBotAI.dat. Por defecto, cada rango/division usa el profile de su mismo nombre:
 
* BronceIII usa BronceIII.
* OroII usa OroII.
* DiamanteI usa DiamanteI.
* Maestro usa Maestro.
* GranMaestro usa GranMaestro.
* Leyenda usa Leyenda.
 
== Dashboard ==


Durante la clasificación, algunos datos aparecen como clasificación en curso. Después de completarla, el rango queda publicado. La protección de rango solo se muestra para personajes que están dentro de los rangos afectados por inactividad competitiva.
El dashboard de bots permite administrar:


== Elección de rivales en competitivo ==
* temporadas;
* revision manual de inactividad;
* leaderboard;
* ajustes globales de ladder;
* perdida por inactividad y dias protegidos;
* rewards por rango;
* editor de perfiles de IA de bots en PvpBotAI.dat.


El competitivo no elige bots completamente al azar.
En el dashboard, el MMR oculto puede mostrarse con una referencia aproximada, por ejemplo: 1700 (cerca de Gran Maestro). Esa referencia ayuda al staff a entender si el nivel oculto del jugador esta alineado con su rango visible.


* Durante la clasificación, el sistema prueba rivales según el rendimiento reciente.
== Cosas importantes ==
* Después de la clasificación, usa el nivel oculto para elegir un rival adecuado.
* Dos jugadores con el mismo puntaje visible enfrentan bots distintos si su rendimiento reciente es diferente.


El objetivo es que el rival represente mejor el nivel actual del jugador.
* Practica y competitivo son sistemas separados.
* Ganar una practica no sube puntos de liga.
* El rango visible se compone de liga y division hasta Diamante.
* Los puntos visibles se llaman puntos de liga.
* La perdida por inactividad no baja el MMR.

Revisión del 20:17 26 jun 2026

BlosamAO cuenta con duelos contra bots para practicar y con un modo competitivo por temporadas. Los bots no son criaturas del mundo abierto: aparecen en salas de duelo, cumplen las reglas de esa sala y desaparecen al finalizar el combate.

La ventana principal se abre con /BOT. Desde ahi se consulta el progreso competitivo, se elige la modalidad disponible y se inicia el duelo correspondiente.

Modalidades

Existen tres formas principales de jugar con bots:

  • Practica 1vs1: duelo individual contra un bot elegido por el jugador.
  • Practica 2vs2 mixta: duelo 2vs2 con jugadores y bots mezclados.
  • Competitivo 1vs1: duelo 1vs1 contra un bot generado por el servidor, con progreso de temporada.

Cada modalidad debe estar habilitada por el staff. Si una modalidad esta desactivada, no hay salas libres o el personaje no cumple las condiciones para entrar, el servidor informa el motivo por chat.

Rangos de bot

Los bots tienen perfiles de dificultad asociados a rangos y divisiones. La escala competitiva visible es:

  • Bronce III.
  • Bronce II.
  • Bronce I.
  • Plata III.
  • Plata II.
  • Plata I.
  • Oro III.
  • Oro II.
  • Oro I.
  • Platino III.
  • Platino II.
  • Platino I.
  • Diamante III.
  • Diamante II.
  • Diamante I.
  • Maestro.
  • Gran Maestro.
  • Leyenda.

Desde Bronce hasta Diamante existen tres divisiones: III, II y I. La division III es la entrada de la liga y la division I es la mas alta antes de pasar a la liga siguiente.

A partir de Maestro ya no hay divisiones. La escala superior es Maestro, Gran Maestro y Leyenda.

El rango del bot representa su forma de jugar: reaccion, punteria, uso de hechizos, distancia, pociones, remocion de paralisis, apoyo en equipo y presion durante el combate. En rangos bajos el bot reacciona mas lento y comete mas errores. En rangos altos administra mejor sus recursos, falla menos y castiga mejor los errores del rival.

Clases y razas

Los bots usan combinaciones de clase y raza configuradas por el servidor. En practica, el jugador puede elegir el rango y la combinacion disponible para el bot.

En competitivo, el servidor genera un bot desde los presets activos de clase y raza. Algunas combinaciones pueden estar desactivadas por balance o coherencia, por lo que no necesariamente aparecen en competitivo aunque existan en practica.

Practica 1vs1

  • El jugador elige el rango del bot.
  • El jugador elige la combinacion raza-clase del bot.
  • Se juega con o sin paralisis, segun la opcion elegida.
  • Se juega a un duelo o al mejor de 3, segun la opcion elegida.
  • Se juega en modo normal o plante, segun la opcion elegida.
  • No suma ni resta puntos de liga competitivos.

Practica 2vs2 mixta

  • Es una practica 2vs2 con jugadores y bots mezclados.
  • El jugador que inicia siempre participa.
  • Los otros lugares se completan con bots o jugadores reales, segun la composicion elegida.
  • Debe haber al menos un bot en la sala.
  • Si se eligen otros jugadores reales, reciben invitacion y deben aceptar.
  • Se puede elegir la combinacion raza-clase del o de los bots participantes.
  • Se juega con o sin paralisis, segun la opcion elegida.
  • Se juega a un duelo o al mejor de 3, segun la opcion elegida.
  • No suma ni resta puntos de liga competitivos.

Los bots de 2vs2 tambien juegan en equipo: atacan, asisten y remueven paralisis segun la situacion del combate.

Competitivo 1vs1

El competitivo contra bots es un ranking por temporadas. Se juega 1vs1, al mejor de 3, contra bots preparados para competir.

  • El rival lo asigna el servidor.
  • El duelo usa un bot generado desde presets activos.
  • El bot no muestra su rango durante placements.
  • El resultado actualiza puntos de liga, nivel oculto y estadisticas.
  • La temporada define ranking, historial y recompensas.

Placements

Antes de tener rango publicado, cada personaje juega 10 partidas de clasificacion.

Durante placements:

  • La ventana muestra el progreso como partida X/10.
  • El rango visible del jugador todavia no esta publicado.
  • El rango del bot no se muestra en el formulario de /BOT.
  • El rango del bot tampoco se muestra al hacer click sobre el bot.
  • El servidor elige rivales segun el rating interno de placements y la racha reciente.

El rating inicial de placements es 850. Las victorias y derrotas lo ajustan con una formula tipo rating: ganar contra bots mas altos suma mas y perder contra bots mas bajos castiga mas.

Al completar la decima partida, el sistema publica el rango visible inicial. El rango inicial esta limitado por configuracion: por defecto no puede publicarse por encima de Diamante I aunque el rendimiento interno sea mayor.

Puntos de liga

Despues de placements, el progreso visible usa puntos de liga de 0 a 100.

  • Al ganar, se suman puntos de liga.
  • Al perder, se restan puntos de liga.
  • La cantidad ganada o perdida depende del nivel oculto del jugador comparado contra su rango visible.
  • Si el nivel oculto esta por encima del rango visible, el jugador tiende a ganar mas y perder menos.
  • Si el nivel oculto esta por debajo del rango visible, el jugador tiende a ganar menos y perder mas.

Con la configuracion actual, una partida normalmente mueve entre 14 y 25 puntos de liga. Un jugador alineado con su rango suele moverse cerca de 18, 19 o 20 puntos. Un jugador con nivel oculto alto puede recibir 22, 23, 24 o 25 puntos. Un jugador con nivel oculto bajo puede recibir 14, 15 o 16 puntos.

Divisiones y promociones

De Bronce a Diamante, llegar a 100 puntos de liga no asciende automaticamente: inicia una promocion.

  • Las promociones entre divisiones son al mejor de 3.
  • Las promociones entre ligas son al mejor de 5.
  • Una promocion entre divisiones requiere 2 victorias antes de 2 derrotas.
  • Una promocion entre ligas requiere 3 victorias antes de 3 derrotas.
  • Si la promocion se gana, el jugador sube al objetivo y queda con 0 puntos de liga.
  • Si la promocion se pierde, el jugador queda en el rango actual con 75 puntos de liga.

Ejemplos:

  • Bronce III a Bronce II: promocion al mejor de 3.
  • Bronce I a Plata III: promocion al mejor de 5.
  • Diamante I a Maestro: promocion al mejor de 5.

Mientras una promocion esta activa, el duelo inicial muestra el estado de la serie. Por ejemplo:

  • Desafio de promocion contra Bot Bronce II. Promo Bronce II: 1/0 (necesitas 2 victorias).

Al resolver la promocion, el chat informa si fue superada o no. Si se gana una promocion divisional, por ejemplo Bronce III a Bronce II, el mensaje correcto es:

  • Promo Bronce II superada.
  • Ascendiste a rango Bronce II.

Maestro, Gran Maestro y Leyenda

A partir de Maestro no hay divisiones.

Para entrar a Maestro hay que ganar la promocion desde Diamante I. Al subir, el jugador queda en Maestro con 0 puntos de liga.

Dentro de la escala superior:

  • Maestro empieza en 0 puntos de liga.
  • Gran Maestro empieza al alcanzar 150 puntos de liga.
  • Leyenda empieza al alcanzar 900 puntos de liga.
  • El paso de Maestro a Gran Maestro y de Gran Maestro a Leyenda no usa promocion.
  • Si los puntos bajan por debajo del umbral correspondiente, el rango visible vuelve al tramo que corresponda.

Los umbrales de Gran Maestro y Leyenda son configurables en BotLadder.dat. Los valores por defecto son 150 y 900.

Nivel oculto / MMR

Ademas de los puntos de liga visibles, el sistema mantiene un nivel oculto o MMR.

El MMR no reemplaza al rango visible. Se usa para ajustar el progreso:

  • Calcula cuanto MMR se gana o pierde en cada partida.
  • Ayuda a decidir si los puntos de liga visibles deben subir mas rapido o mas lento.
  • Permite que un jugador con buen rendimiento avance mas rapido.
  • Permite que un jugador con bajo rendimiento avance mas lento aunque todavia conserve su rango visible.

El dashboard puede mostrar a que rango se acerca el MMR. La escala interna usa los mismos pasos visibles:

MMR aproximado Rango cercano
0 - 99 Bronce III
100 - 199 Bronce II
200 - 299 Bronce I
300 - 399 Plata III
400 - 499 Plata II
500 - 599 Plata I
600 - 699 Oro III
700 - 799 Oro II
800 - 899 Oro I
900 - 999 Platino III
1000 - 1099 Platino II
1100 - 1199 Platino I
1200 - 1299 Diamante III
1300 - 1399 Diamante II
1400 - 1499 Diamante I
1500 - 1649 Maestro
1650 - 2399 Gran Maestro
2400+ Leyenda

Estos rangos son una lectura aproximada del MMR, no un ascenso visible automatico. El ascenso visible sigue dependiendo de puntos de liga y promociones.

Eleccion de rivales en competitivo

La eleccion del bot competitivo depende del estado del jugador:

  • Durante placements, el servidor usa el rating interno de placements y la racha reciente para probar rivales.
  • Despues de placements, el servidor usa el rango y division visibles del jugador.
  • Si el jugador esta en promocion, el servidor usa el rango y division objetivo de esa promocion.
  • A partir de Maestro, se usa Maestro, Gran Maestro o Leyenda segun el rango visible actual.

Esto significa que, si un jugador esta en Oro II, el sistema lo enfrenta contra Bot Oro II. Si entra en promocion a Oro I, lo enfrenta contra Bot Oro I durante esa serie. Si pierde una partida dentro de Oro II, no baja automaticamente a pelear contra bots de Plata por esa derrota: primero debe bajar de division o liga por puntos de liga.

Proteccion por inactividad

Desde Oro III en adelante puede existir perdida de puntos de liga por inactividad competitiva.

La ventana de /BOT muestra esta mecanica como proteccion por inactividad.

  • Si no aplica al rango actual, la ventana informa que ese rango no pierde puntos de liga por inactividad.
  • Si aplica y el jugador tiene dias protegidos, aparece como protegido.
  • Si aplica y no quedan dias protegidos, aparece en riesgo.
  • Jugar partidas competitivas suma dias protegidos, gane o pierda.
  • La inactividad no baja el MMR oculto. Solo afecta puntos de liga visibles.
  • La perdida por inactividad puede bajar divisiones o ligas si los puntos no alcanzan.

El servidor revisa la inactividad automaticamente una vez por dia, despues de las 00:05 hora local del servidor. Si se consumen dias protegidos o se pierden puntos de liga, el jugador recibe un aviso con prefijo Bots.

Ejemplos de avisos:

  • Bots> Consumiste 1 dia protegido. Te quedan 3 dias protegidos.
  • Bots> Ya no tenes dias protegidos. Si no jugas competitivo, podes perder puntos de liga por inactividad.
  • Bots> Por inactividad competitiva perdiste 45 puntos de liga. Bajaste de Maestro a Diamante I. Puntos de liga actuales: 75.

La configuracion por defecto de dias protegidos y perdida diaria es:

Rango Dias por partida Maximo de dias Dias iniciales Perdida base diaria Aumento por dias consecutivos Maximo diario
Oro 1 7 0 20 0 20
Platino 1 6 0 20 0 20
Diamante 1 5 5 20 5 45
Maestro 1 4 4 30 8 70
Gran Maestro 1 3 3 40 10 90
Leyenda 1 2 2 50 15 120

Proteccion de descenso por partida

La proteccion por inactividad no es lo mismo que la proteccion de descenso por perder una partida.

Cuando un jugador sube de liga, puede tener una proteccion de descenso de liga por una unica vez. Si pierde en 0 puntos y corresponderia bajar de liga, esa proteccion puede mantenerlo en 0 puntos y consumirse.

Esta proteccion:

  • No aplica entre divisiones de una misma liga.
  • No impide que el MMR baje por derrotas.
  • No impide la perdida de puntos por inactividad.

Temporadas y recompensas

El competitivo funciona por temporadas.

  • Cada temporada tiene nombre, inicio y cierre.
  • El servidor cierra la temporada automaticamente cuando cambia el mes.
  • Al cerrar una temporada, se calculan recompensas para los jugadores clasificados.
  • Despues del cierre, se abre una temporada nueva.
  • Las recompensas dependen del rango alcanzado y de la configuracion vigente.
  • Las recompensas pueden incluir canjeos e items definidos para esa temporada.

Las recompensas se configuran por separado de la ladder, en BotSeasonRewards.dat.

Informacion visible en /BOT

La ventana de /BOT muestra la informacion importante del sistema:

  • Temporada activa.
  • Dias restantes.
  • Rango actual.
  • Mejor rango alcanzado.
  • Puntos de liga actuales.
  • Progreso hacia el siguiente objetivo.
  • Rival estimado.
  • Partidas de placements jugadas.
  • Victorias y derrotas.
  • Racha actual y mejor racha.
  • Duracion promedio.
  • Estado de promocion.
  • Proteccion por inactividad, cuando aplica.

Durante placements, el rango todavia no esta publicado y el rango del bot se oculta. Despues de placements, la ventana muestra el rango y division visibles, por ejemplo Oro I o Diamante III.

Configuracion: BotLadder.dat

La ladder se configura con BotLadder.dat. Si el archivo no existe, el servidor lo autogenera con los defaults del codigo.

Valores globales por defecto:

Campo Valor Uso
PlacementVisibleCapPoints 1499 Cap maximo del rango visible al terminar placements.
DivisionPromotionPoints 100 Puntos de liga necesarios para entrar en promocion de Bronce a Diamante.
PromotionFailPoints 75 Puntos de liga al fallar una promocion.
GrandMasterMinPoints 150 Puntos necesarios para pasar de Maestro a Gran Maestro.
LegendMinPoints 900 Puntos necesarios para pasar a Leyenda.
BaseK 70 Base del movimiento de MMR por partida.
MaxDelta 220 Limite maximo del cambio bruto de MMR por partida.
StreakStep 0.15 Multiplicador adicional por racha.
CatchUpMultiplier 0.3 Ajuste que acerca el MMR al rango visible cuando estan desalineados.

El archivo tambien define:

  • multiplicadores por diferencia entre MMR oculto y rango visible;
  • el profile de PvpBotAI.dat que corresponde a cada rango/division;
  • la perdida por inactividad y dias protegidos por rango;
  • umbrales de Maestro, Gran Maestro y Leyenda.

Cada seccion de matchmaking apunta a un profile de PvpBotAI.dat. Por defecto, cada rango/division usa el profile de su mismo nombre:

  • BronceIII usa BronceIII.
  • OroII usa OroII.
  • DiamanteI usa DiamanteI.
  • Maestro usa Maestro.
  • GranMaestro usa GranMaestro.
  • Leyenda usa Leyenda.

Dashboard

El dashboard de bots permite administrar:

  • temporadas;
  • revision manual de inactividad;
  • leaderboard;
  • ajustes globales de ladder;
  • perdida por inactividad y dias protegidos;
  • rewards por rango;
  • editor de perfiles de IA de bots en PvpBotAI.dat.

En el dashboard, el MMR oculto puede mostrarse con una referencia aproximada, por ejemplo: 1700 (cerca de Gran Maestro). Esa referencia ayuda al staff a entender si el nivel oculto del jugador esta alineado con su rango visible.

Cosas importantes

  • Practica y competitivo son sistemas separados.
  • Ganar una practica no sube puntos de liga.
  • El rango visible se compone de liga y division hasta Diamante.
  • Los puntos visibles se llaman puntos de liga.
  • La perdida por inactividad no baja el MMR.