Foro

Plantillas de ficha de personaje, dudas

Otros lugares, otras opciones :: Sin clasificar :: Plantillas de ficha de personaje, dudas

Este hilo ha sido cerrado.
03/10/2021, 13:08
Editado: 03/10/2021, 13:13

Buenas gente, como no se donde preguntar, pregunto aquí.

Cuando haces los campos de una plantilla, en la formula ... ¿Se puede hacer un condicional?

Por ejemplo:

Tengo un campo de rangos de habilidad, de 0 a 10 cada rango da +5, hasta 20 da +2 y más allá da +1.

Así que según los rangos quiero que sume distinto. Pero no se si se puede y en tal caso la sintaxis exacta de un IIF.

Edit: Me refiero a las fichas de la "Natilla" claro.

Ya hice algo así para la experiencia ... pero la verdad es que la formula que me salió era un poco dolorosa a los ojos. Y estaba pensando que si podía hacer algún condicional para evitar eso : (((({{Level}} - ((({{Level}}-1) % 5) +1))/5)*10) * ({{Level}}-5))+({{Level}}*10)

En este caso tengo claro que seria un "simple":

({{Rangos}} <= 10)?

  {{Rangos}} * 5 :

  ({{Rangos <= 20)?

    (({{Rangos}}-10) * 2) + 50 :

    (({{Rangos}}-20) * 1) + 70

03/10/2021, 18:27
Editado: 03/10/2021, 18:34

Que yo sepa, ahora mismo no se aceptan condicionales para hacer IF-ELSE pero los operadores matemáticos sí funcionan, con lo que puedes usar un pequeño truco para imitarlos.

Explicación previa: Los operadores matemáticos de comparación (menor que, mayor o igual que, etc.), devuelven un valor TRUE (1) o FALSE (0).

Sabiendo esto, podrías "imitar" tus condiciones IF ELSE más o menos así:

Formula:

( ( {{Rangos}}<=10 ) * ( {{Rangos}} * 5 ) )

+ ( ( {{Rangos}}>10 ) * ( {{Rangos}}<=20 )  * ( ( ( {{Rangos}} -10 ) *2 ) + 50 ) )

+ ( ( {{Rangos}}>20 ) * ( ( {{Rangos}}-20 ) +70 ) )

Ejemplos: Digamos que en este momento tu valor de {{Rangos}} es 13, la fórmula se convertiría en algo como esto:

Resultado (Rangos = 13):

( 13<=10 ) * ( 13 * 5 ) )

+ ( ( 13>10 ) * ( 13<=20 )  * ( ( ( 13 -10 ) *2 ) + 50 ) )

+ ( ( 13>20 ) * ( ( 13-20 ) +70 ) )

-->

(0) * ( 13 * 5 ) )   Al multiplicarse por 0, se anula 

+ ( (1)(1) * ( ( ( 13 -10 ) *2 ) + 50 ) )      --> (3*2)+50 = 56

+ ( (0) * ( ( 13-20 ) +70 ) )   Al multiplicarse por 0, se anula 


 

El problema es que, aún con este truco, no te evita tener que construir unas fórmulas enormes y "dolorosas a la vista", por usar tu misma expresión, aunque te podría ayudar para las fórmulas menos complejas.

03/10/2021, 19:40

Oh, servirá ... sin duda. No había reparado en que se podían usar las comparaciones.

Muy buena idea, thanks.

Este hilo ha sido cerrado.