4.1 KiB
Stat Checks — tirar una estadística contra una dificultad
Stat Checks añade un comando de escenario, check: toma la estadística de un personaje, suma una tirada de dados y un bonus, compara el total con una dificultad y continúa la historia según salga bien o mal. Una novela visual lo usa para convencer a un guardia; un RPG de tiles, para forzar una puerta oxidada. Las estadísticas en sí vienen de Stats Engine y de las reglas del juego (en RPG Plus, Classic RPG Rules).
En el juego
En el prólogo de RPG Plus una forastera aguarda en un cruce de caminos. Una de las respuestas anuncia la prueba que supone: Carisma contra 10:
Tras la respuesta, la tirada se muestra en una sola línea:
El héroe es aquí un pícaro de nivel 1 con Carisma 8; el d20 sacó un 3, así que el total es 11 contra 10: un éxito. La historia sigue por la rama del éxito: la forastera lanza al héroe un amuleto.
Con un total por debajo de 10, la línea diría Fallo y la historia tomaría la otra rama, en la que ella se da la vuelta.
El escenario que hay detrás
De rpg_plus_game/scenarios/rpg_plus/prologue.scenario (líneas acortadas):
option "Preguntar el camino con cortesía [Carisma 10]" -> :ask_way
option "Pasar de largo en silencio" -> :leave
:ask_way
check cha 10 who=rpg_hero else=snub -> :gift
:gift
text "—Educado. Mira tú..."
action item.add id=classic/clover_charm
goto -> :leave
:snub
text "—Ya lo encontrarás..."
check cha 10 tira Carisma contra dificultad 10. Si tiene éxito salta a la etiqueta que sigue a la flecha; si falla, a la etiqueta de else=. Sin else=, un fallo simplemente continúa con la línea siguiente.
El comando check
check <stat> <difficulty> [who=player] [dice=d20] [bonus=2] [else=label] [quiet=1] -> :label
<stat>— un id de estadística del juego, por ejemplochaostr.<difficulty>— el número que hay que alcanzar: la prueba tiene éxito cuando el total llega al menos a eso.who=— un id de personaje, oplayer(por defecto).dice=—d20,2d6,1d100y demás.noneno tira nada: la prueba se convierte en un umbral simple; decide solo la estadística, siempre igual — útil en una novela («lo bastante valiente o no»).bonus=— se suma al total; puede ser negativo.else=— la etiqueta del fallo.quiet=1— no mostrar la línea de la tirada.
El total es estadística + dados + bonus.
Dados por defecto
Sin dice=, la prueba usa el ajuste checks.dice del juego y, si no existe, d20. RPG Plus lo fija en su colección:
"settings": { "checks.dice": "d20" }
Un juego que quiera todas sus pruebas sin azar pone "checks.dice": "none".
Contar el resultado a tu manera
Tras una prueba, estas variables del diálogo guardan la tirada: check_stat, check_value, check_roll, check_bonus, check_total, check_dc y check_result. Con quiet=1, una línea ptext puede contarlo con palabras de la historia:
check str 14 quiet=1 else=stuck -> :open
:stuck
ptext "Apuñas con todo tu ${check_total}, pero la puerta no cede."
La línea estándar es la clave de traducción checks/line ([${check_stat}: ${check_total} contra ${check_dc}] ${check_result}); un juego puede sustituirla en sus archivos de localización.
Si algo falla
- El total es solo los dados. El id de la estadística está mal, o el personaje no tiene esa estadística.
- Siempre el mismo resultado. El
checks.dicedel juego esnone, o en la línea está escritodice=none. - Texto de dados roto. Un
dice=mal formado no tira nada en lugar de romper la escena, así que la prueba se queda en un umbral simple. Escribe los dados comod20,2d6,1d100.
![El cruce al anochecer; la pregunta «¿Qué le dirás?» y dos respuestas: «Preguntar el camino con cortesía [Carisma 10]» y «Pasar de largo en silencio».](/cthangover/mod_stat_checks/media/commit/91c9b6f630dfd1db4c35e4dd019171a0f3f2543b/docs/assets/seer-choice.jpg)
![El cuadro de diálogo con la línea «[Carisma: 11 contra 10] Éxito».](/cthangover/mod_stat_checks/media/commit/91c9b6f630dfd1db4c35e4dd019171a0f3f2543b/docs/assets/check-line.jpg)
