Foro

Script de tiradas en la Natilla y Tableros

Comunidad Umbría :: La web en general :: Script de tiradas en la Natilla y Tableros

Como medida de seguridad los nuevos usuarios no pueden reabrir hilos antiguos.
Si crees que el tema es realmente necesario, por favor, abre uno nuevo en la sección correspondiente.
02/04/2021, 16:27

¿FATE? 

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
02/04/2021, 16:42

No me vale así. Aparte de poner el reglamento ponedme un par de ejemplos de tiradas. Facilitadme la tarea lo máximo posible para que yo solo me preocupe de codificar y no de aprender reglamentos a los que no juego ;)

02/04/2021, 17:18
Editado: 02/04/2021, 17:18

Hasta ahora se tira 4d{-1|0|1}. el problema es que el motor de tiradas interpreta eso cómo símbolos y no los suma. La idea sería que existiese una forma de tirar un dado personalizado con la posibilidad de que si sus valores son números se puedan sumar los resultados. 

Lo ideal ya sería que se crease un shortcut especifico para ese tipo de dado como en otras plataformas que puedes tirar 1dF y la plataforma lo interpreta como un dado fudge. 

4df = 4d{-1|0|1}

El resto de la tirada es sumar modificadores y comparar con una dificultad. Así que debería ser compatible con lo que ya hay hecho. 

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
02/04/2021, 18:10
Editado: 02/04/2021, 18:14

Ahora mismo funciona así:

4d6[[c-<3,c>4,>=1]]

Esto hace que al tirar el dado de 6 cuando se saca menos que 3 se reste y cuando se saca más de 4 se sume (el cálculo que harías con dados normales en una mesa) y que el resultado se compare en este caso con una dificultad de 1. Quedaría un detalle que es el 'dibujo' de los dados pero eso va en otra capa que es el decorador (de la que me preocuparé más adelante).

A quién esté hiperventilando al pensar que introducir eso en la línea de comandos es el infierno en la tierra ¡calma! Se 'preprogramarán' las tiradas que vayamos conociendo al estilo de las tiradas que tenemos ahora en la Yogur, con la salvedad de que igual que con las fichas cualquiera podrá crear nuevas tiradas (no solo los capataces).

Aparte de eso @Sharak va a implementar en el editor visual de tiradas una interfaz que sea la que controle los parámetros (dejando la línea de comandos para los que estemos experimentando cosas concretas como yo ahora).

02/04/2021, 20:03

Yo tengo uno, la tirada es sencilla pero el daño es el que es caprichoso:

Tirada: Si la caracteristica usada es mayor al resultado del dado es exito

Daño: Base de daño del ataque, más la tirada de algunos D6, pero solo suman si caen 2 o menos y si cea 6 se activa un efecto

Ejemplo:

 - 2 + 3d6 (6, 1, 5) = 3 ¤

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
02/04/2021, 21:10

Perdona Onirian pero no he entendido como funciona...

02/04/2021, 22:50
Editado: 02/04/2021, 22:50

@chemo
Ahora mismo funciona así:
4d6[[c-<3,c>4,>=1]]

Y ¿Cuándo dices que estará el nuevo script en producción? Ahora miso he intentado esa tirada en una escena de prueba y no ha funcionado. 

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
02/04/2021, 22:58

Ahora mismo, como digo, está todo en taller.

En cuanto esté subido (estoy probando que la retrocompatibilidad funcione y no rompa nada) cerraré este hilo y abriré uno nuevo con las instrucciones del nuevo sistema.

Yo pienso que estará mañana porque, ahora mismo, todo parece funcionar. Me quedan unas cuantas baterías de pruebas y p'arriba... que quiero ponerme ya con novedades en Autorol y Tableros. Luego vendrá @Sharak a pavimentar la interfaz para adaptarse a las nuevas soluciones disponibles. Pero el lunes fijo que lo tenemos para empezar a calentar motores en Ironsworn.

03/04/2021, 00:51

Despues de verlo con mas calma, lo unico inusual es cuando activa efecto (cuando algun dado cae en 6) la cantidad de dados que se tiran varia respecto a el arma usada y una tabla basada en los valores de las caracteristicas.

({{Dados del arma}}+{{Bono de habilidad}})d6 + {{Daño del arma}} [[s<=2]]

Solo faltaria que indicara si callo algun 6, pues no suma daño

Momo
 
Carné Umbriano nº577
03/04/2021, 15:58

Gracias por el currazo, como siempre, Chemo... Y una duda un poco distinta... Si se sale demasiado del topic no he preguntado nada (Por ahora...)

Tenía ganas de probar el juego Troika! pero lo más singular del mismo (Aparte de la ambientación pasada de rosca) es su sistema de iniciativa, que consiste en 1ue para cada pj y villano implicados se introducen en un saco X contadores de colores y se van extrayendo por turnos.

P.E: Guerrero (2 contadores rojos) orco (2 contadores verdes) y brujo (5 contadores violetas).

Hay aplicaciones de móvil y otras plataformas que simulan eso, peor estaba pensando en cómo se podría hacer por aquí.
La idea más sencilla parecería ser la de poder definir el número de caras del dado antes de la tirada, e ir bajando el valor del dado cada vez que salga un contador. Veo que el número de caras está predefinido en la natilla peor no sé si se me escapa alguna manera en la que se pueda hacer esto...

Continuando con el ejemplo, para una batalla con los tres personajes anteriores, tendríamos un dado de 9 caras:
1 rojo
2 rojo
3 verde
4 verde
5 violeta
6 violeta
7 violeta
8 violeta
9 violeta

Si en el primer turno sale un contador verde (númeor 4), en el siguiente turno usaríamos un dado de 8 caras, eliminando de la cuenta un contador verde.
1 rojo
2 rojo
3 verde
4 violeta
5 violeta
6 violeta
7 violeta
8 violeta

Y así sucesivamente.

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
03/04/2021, 16:57

Yo creo que eso no se puede porque entra ya dentro de la parte de Autorol.

Por ejemplo yo ahora mismo estoy programando los Oráculos y toda la pesca de Ironsworn. Hacer la tirada es relativamente sencillo:

1d6+2d10[[p1>p2,p1>p3,t==0!Fracaso,t==1!Éxito parcial,t==2!Éxito completo]]

pero luego hay movidas de subir/bajar Impulso, dar o tomar iniciativa, etc... Pues eso me temo que se va fuera de un script de tiradas y ya lo hago con Autorol. Ya os comentaré.

Pero lo que quiero decir es que no penséis que los scripts van a hacer magia. Son la parte 'rápida' del tema. Cuando hablamos de guardar variables, cambiarlas, modificarlas o textos complejos: a Autorol que te vas. De eso hablaré en cuanto yo haya realizado las pruebas específicas.

Iba a subir ya los nuevos 'tiradores' pero estoy probando retrocompatibilidad y unos cuantos cambios leves en el formato de resultados para ver si mejoro la visualización de las tiradas. De todos modos me gustaría que mañana por la noche, como muy tarde, quedasen subidos para tener la semana de 'relax' para el trabajo de verdad y ponerme con otras cosas.

 

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
03/04/2021, 18:28

He logrado conectar limpiamente las tiradas de RPW con Autorol y aunque no he llorado de emoción porque soy un tío duro confieso que he puesto a todo volumen Gimme all your Lovin' de ZZ Top y me he marcado un baile por el despacho.

Lo que ha pasado es esto:

Veréis que a la derecha del probador de dados se ve la tirada de Ironsworn: tres dados, de los cuales uno es un dado de 6 de acción y los otros dos de 10 son de control. El caso es que si veis el resultado es un texto largo, que incluso tiene esquema.

Pero en el script veréis que no existe texto alguno. Lo que hay es un código raro al final de los procesos (t>=0!%313.000%).

Ese código quiere decir: si el total del resultado es 0 o más (en este caso siempre, pues puede ser 0, 1 o 2) llama a la historia 313 de Autorol y ponme el texto que hay en la escena 000.

Pero resulta que en la escena 000 hay más fiesta:

Como veis en esta escena hay tres textos y cada uno tiene unas condiciones que dependen de tirada_resultado. Tan simple como especificar con cual se corresponde cada uno.

Pero lo cosa no acaba ahí: igual que Autorol puede recibir variables externas (en este caso de tiradas, pero también estadísticas de personajes) también podrá llevar un control de variables globales en una partida. Si alguien es capaz de seguir las implicaciones se empezará a dar cuenta de a donde quiero llegar yo con esto... y si no lo seguís no os preocupéis: en breve en la partida de Ironsworn vamos a sacarle brillo a todas estas características y con un ejemplo en práctica se verá todo mucho más fácil.

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
04/04/2021, 11:53

Aún no lo hemos implementado en las fichas (falta un detalle en el interfaz) pero el sistema está implementado para pruebas en:

https://natilla.comunidadumbria.com/dados/

Si alguien tiene curiosidad estos son los comandos que hasta el momento he probado:

* 2d6+1 [[>=8]]
    tira 2d6+1 y si es igual o más que 8 es éxito
* 3d10 [[o,p2>=5]]
    tira 3d10 y será éxito si el dado del medio es mayor que 5
* 3d10 [[o,p3>=5]]
    tira 3d10 y será éxito si el dado superior es mayor que 5
* 3d10 [[o,p1>=5]]
    tira 3d10 y será éxito si el dado inferior es mayor que 5
* 3d10 [[s>=5,r<5]]
    tira 3d10, suma los mayores o iguales a cinco, resta el resto
* 3d6 [[s>=6,r=1]]
    tira 3d6 suma los que sean mayores o iguales que 6, resta los 1
* 1d4 [[e>=4]]
    tira 1d4 con explosión, lo compara con dificultad 4
* 1d6 [[e]]
    tira 1d6 con explosión
* 1d4 [[e,a>=4]]
    tira 1d4 explosivo, los mayores o iguales que 4 son éxito y cada 4 adicionales son aumento.
* 7d6-12 [[o-,d2-]]
    Tira 7d6, los ordena de forma descendente, descarta los dos inferiores y le suma 12
* 1d6+2d12 [[p1>p2,p1>p3,f+]]
    Tira 1d6 y 2d12.
    Compara el d6 con cada uno de los d12 y si es superior apunta un éxito en la tirada.
    El resultado final es la suma de todos los éxitos
* 3d6 [[p1>p2,p1>p3]]
    Tira 3d6 y cada vez que el primer dado sea superior a uno de los otros dos suma 1 al resultado
* 4d5[[c-<3,c>4,>=2]]
    Tirada tipo FATE: lanza los dados, resta 1 de las tiradas inferiores a 3, suma las superiores a 4
    y compara con dificultad 2 el resultado.
* 2d6[[t>=0!%341.0.sajaraja%]]
    Tira y luego busca en la historia 341 de Autorol la escena con código saraja para interpretarla
    El parámetro 0 se puede sustituir por un personaje y en ese caso autorol reconocerá por ejemplo
    las variables de tipo pj_rpw.FUE pj_rpw.DES siendo FUE o DES variables de la ficha del PJ.

El último que se ve (el de Dungeonworld) está conectado con una historia de Autorol donde controlo el resultado a mostrar según el resultado de la tirada. Es decir: en vez de matarme a hacer cosas complejas en el script de dados le paso el trabajo a Autorol y allí trabajo con más herramientas (condicionales, textos con negritas e incluso imágenes).

Es más: Autorol es capaz de leer la ficha de un personaje y cambiar sus atributos según los resultados (ese 0 que hay en el medio en una ficha se sustituye por el PJ que hace la tirada). ¿Qué implica esto? Pues por ejemplo en Ironsworn determinados movimientos hacen subir o bajar un atributo del PJ que se llama Impulso. Con este sistema puedo de forma automática que cuando el manual ponga en un resultado 'aumentas 2 en impulso' sea Autorol quien lo haga de forma automática.

Esto es la primera parte de lo que viene después (que estoy preparando). Como Autorol también puede acceder a la partida de la cual procede el personaje tendremos una opción para que una tirada pueda actuar sobre otras variables de la misma (otros PJs, PNJs o variables globales). Con la entrada de Autorol en la ecuación en breve podremos indicar, por ejemplo, que un ataque determinado usa un arma del PJ (que no deja de ser otra variable) y que si tiene éxito el arma tira para su daño que a su vez se descontará de los PV de un enemigo asignado. Voy un par de pasos por delante en la teoría pero como veis se está cumpliendo el recorrido que empezamos con un simple cambio de script.

Repito lo de antes: este sistema no está pensado para que tengáis que programar de cero cada partida que abráis. Se supone que iremos creando unas reglas para cada reglamento y al asignarlos a las partidas ya estarán disponibles de cero. Yo voy adelantando que estoy trabajando en Ironsworn, Dungeonworld y Savage Worlds. Pero vamos: que una vez tenga la base hecha explicaré en otro post como hay que hacer en Autorol y quien se anime a darle caña podrá hacerlo.

04/04/2021, 13:42

* 2d6[[t>=0!%341.0.sajaraja%]]
    Tira y luego busca en la historia 341 de Autorol la escena con código saraja para interpretarla
    El parámetro 0 se puede sustituir por un personaje y en ese caso autorol reconocerá por ejemplo
    las variables de tipo pj_rpw.FUE pj_rpw.DES siendo FUE o DES variables de la ficha del PJ.

¡chapó! por todo lo de las tiradas y especialmente por esto último. Veo que lo has hecho pensando en ciertos sistemas de dados concretos, pero creo que va a dar mucho juego. Estoy deseando probarlo cuando saque un poco de tiempo.

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
04/04/2021, 16:19

Aquí os pongo una muestra de una tirada dentro de la partida de Ironsworn. Todavía tengo que integrarlo a la ficha (esto lo hice con una tirada 'a pelo') pero esta semana le daré finiquito a algunos sistemas y se podrá ver el alcance de todo esto.

IzVe
 
04/04/2021, 18:36

¿Es eso que veo la luz al final del túnel? ¿Qué hermosas vistas nos aguardarán allí cuando salgamos?

05/04/2021, 14:47

Chemo, todo esto tiene una pintaza.

Supongo que ya lo contarás, pero tengo varias preguntas, para alimentar el hype.

Como veis en esta escena hay tres textos y cada uno tiene unas condiciones que dependen de tirada_resultado.

¿tirada_resultado es una variable predefinida o se pone en algún sitio? Con lo que habías puesto de "2d6[[t>=0!%341.0.sajaraja%]]" esperaría ver el control con la variable t.

¿Se pueden pasar más variables de las tiradas? Supongo que sí, en particular el número de aumentos para Savage Worlds, que permitirá hacer la tirada de daño directamente en autorol, ¿no?

Tira y luego busca en la historia 341 de Autorol la escena con código saraja para interpretarla

¿La historia de autorol se podrá integrar de alguna forma dentro de la propia partida o del módulo de sistema? Si no, supongo que cada director acabará metiendo todas esas cosas en una sola historia, para no volverse loco. Para el módulo de Impulse Drive tengo claro que crearé las escenas de los movimientos cuando haga la ficha. Lo cual me lleva a otra duda, ¿se puede entrecomillar el nombre de la escena o se vuelve loco si el id tiene algún punto? No es grave, pero en ese manual nombre las escenas que no eran de control como capítulo.sección para organizarme.

El parámetro 0 se puede sustituir por un personaje y en ese caso autorol reconocerá por ejemplo las variables de tipo pj_rpw.FUE pj_rpw.DES siendo FUE o DES variables de la ficha del PJ.

(Espera, que cambio el teclado que se me ha llenado de babas).
Supongo que, al hacer la ficha genérica, el parámetro 0 será un código tipo {{self}} para identificar al personaje desde el que se realiza la tirada, ¿no?

Y si cuando lo juntes con los mapas podrás definir también un {{target}} para hacer un ataque a alguien y que afecte sus parámetros, luego controles si el ataque acaba con él y lances un post automático para el fin del combate... ¡¡¡No me extraña que te estés auto-hypeando (o como se diga) al pensar en todo esto!!!

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
05/04/2021, 16:16

Sí a todo.

Ahora mismo cuando se manda la tirada a Autorol envía 'tirada_total' (que es la suma de los dados) y 'tirada_resultado' que es un contador de cuantas veces se ha calculado un éxito según los parámetros del scripting. Pero en realidad acabaré pasando todo a Autotol (cantidad de dados lanzados, procesados, caras, aumentos, etc).

El 't>=0' es un truco para decirle que pase siempre la tirada (t es la abreviatura de total y r de resultado). En realidad voy a darle una vuelta al parser para que si pones 2d6[[%341.0.sajara%]] sea el equivalente a pasar siempre, que es lo lógico (ayer no lo hice por falta de tiempo).

Hay una manera 'rápida' de procesar los aumentos sin entrar siquiera en autorol pero estoy revisándola ahora (un 'formateador de resultados para una sola línea').

Exacto con lo del 0: cuando se pasa por la ficha de un personaje le manda el id del PJ y por tanto acceso al mismo.

La idea es que cuando alguien cargue un reglamento en la partida ya le venga todo junto (reglamento, manual si lo hay, autorol de tiradas si lo hay, hojas de personaje oficial...) pero en realidad da igual: con que la ficha sepa el id del reglamento de autorol al que tiene que llamar eso no importa. Lo que pasa es que ya puestos estoy integrando las tiradas en los propios reglamentos.

Por ejemplo si vais ahora a https://natilla.comunidadumbria.com/autorol/partid... tenéis los movimientos básicos de Dungeon World. Pues bien: en ese mismo manual en la explicación de cada movimiento están también los scripts para que funcionen las tiradas en la ficha de Dungeon World (de hecho en mi partida de Dungeon World lo estoy usando desde ayer). Es decir: es la ficha la que sabe a quien llamar aunque, por lógica, cuando se vayan arreglando 'paquetes' los pondremos en los reglamentos.

Y sí: Autorol también sabe usar y manejar tableros. Ya falta poco para que todo haga 'click'. Eso implica no solo que Autorol sea un gestor de RPW que nos permita, sin tocar el código fuente, implementar cualquier reglamento... implica que una historia de Autorol pura podrá usar fichas de juegos y mecánicas para aventuras de un solo jugador. Y la guinda de pastel: podremos diseñar campañas y módulos interactivos que estén 'listos para su uso' con mecánicas de ayuda para el director.

En fin... que es muy gordo. Y está funcionando. Llevo años dándole vueltas pero ayer empezaron a encajar las primeras piezas y efectivamente mi nivel de hype es muy alto. Porque una cosa es hablar del tema, pensarlo, diseñarlo, medir las consecuencias que pueda tener... y otra es verlo funcionar por fin (aunque sean los primeros pasos).

05/04/2021, 16:44

y efectivamente mi nivel de hype es muy alto

No sólo el tuyo, tenlo por seguro. Muchas gracias por el curro que te estás pegando. La verdad es que me parece super interesante lo que se puede hacer con todo esto.

08/04/2021, 23:56

@chemo puede ser que ya hayas liberado el script? por que esto 4d6[[c-<3,c>4,>=1]] está funcionando mas o menos.

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
09/04/2021, 00:01

Sí. Ya está liberado pero aún no le he dado bombo porque vamos a cambiar el panel de tiradas totalmente para que sea 'usable' y para añadirle ciertas cosillas.

De hecho hasta funciona con Autorol.

09/04/2021, 00:13

Veo que la tirada que me has indicado necesariamente compara con una dificultad ¿hay alguna forma de escribir eso de forma tal que arroje el resultado? en plan... 

4d6[[c-<3,c>4]] = 1

17/04/2021, 14:19

Pregunta: ¿cómo se determina la ID de un personaje? O sea, qué hay que poner en esa fórmula que modificaría una ficha para que identifique al pj al que haya que hacer perrerías... :)

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
17/04/2021, 14:29

Espera un poco... pronto subiré la documentación de todo lo nuevo. Aún hay cosas en proceso de desarrollo ;)

17/04/2021, 14:57

Para los dados Fate...

Pues yo no tengo ni idea de programación, ni de matemáticas. Pero estas cosas que decían Chemo:

4d6[[c-<3,c>4,>=1]]

Esto hace que al tirar el dado de 6 cuando se saca menos que 3 se reste y cuando se saca más de 4 se sume (el cálculo que harías con dados normales en una mesa) y que el resultado se compare en este caso con una dificultad de 1

y Darofar:

Veo que la tirada que me has indicado necesariamente compara con una dificultad ¿hay alguna forma de escribir eso de forma tal que arroje el resultado? en plan... 

4d6[[c-<3,c>4]] = 1

 

¿No calculan solo lo que resta (-1) y lo que suma (+1)?

Quiero decir, que en los dados Fate hay tres posibles resultados: -1, +0 y +1.

¿Esto no está ignorando el resultado de +0?

 

[Que lo mismo no... ya digo que de programación y de mates voy más bien escaso].

17/04/2021, 16:00
Editado: 17/04/2021, 16:00

Quiero decir, que en los dados Fate hay tres posibles resultados: -1, +0 y +1.

¿Esto no está ignorando el resultado de +0?

Si entiendo ese código... si sale 1 o 2, resta 1 y si sale 5 o 6, suma 1. Si sale 3 o 4 (el "+0" del dado Fate), pues no hace nada porque no hace falta.

17/04/2021, 16:37

Espera un poco... pronto subiré la documentación de todo lo nuevo. Aún hay cosas en proceso de desarrollo ;)

Huyssss :P

IzVe
 
02/05/2021, 19:54

Una duda que me surge a la hora de crear una nueva ficha. ¿Ahora mismo cual es la fórmula para que se rellene un campo de forma autocalculada? Por ejemplo. Si quiero que un valor sea CON/10 estoy poniendo {{CON}}/10 y no me calcula nada. 

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
02/05/2021, 20:47

Pues no tendrás o bien puesta la fórmula en su sitio o bien definido el campo llamado CON, porque yo lo he probado y funciona.

IzVe
 
02/05/2021, 22:29

Mondie. Luego reviso porque seguro que es una zarpada mía evidenemente. 

Gracias por la respuesta :)

Este hilo tiene más de 6 meses, lo usuarios novatos no pueden reabrir hilos antiguos.