Foro

Duda: Mostrar enlace si var1!=X OR var2!=X

Comunidad Umbría :: Autorol :: Duda: Mostrar enlace si var1!=X OR var2!=X

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.
IzVe
 
26/03/2020, 13:23
Editado: 26/03/2020, 13:26

Estoy creando un generador de fichas y me veo en una tesitura que no se si está contemplada (no he visto como hacerlo en los tutoriales, que por cierto aprovecho para decir que me están ayudando mucho).

El jugador debe escoger dos maniobras entre un listado. Quiero que una vez escogida esa maniobra ya no se muestre como opción de selección, por lo tanto en los condicionantes de mostrar enlace me gustaría poner que si la variable maniobra1 O la variable maniobra2 contiene el seleccionado anteriormente no me lo muestre.

Se como hacerlo con una sola variable, pero creo que por defecto todo lo que se mete cuenta como AND. En caso de que se pueda hacer ¿Como hago para que las considere OR?

Espero haberme explicado :P

Edito y añado:

Se pueden poner if en el campo de condiciones. Osea algo como

If maniobra1!=0{

 maniobra2==El valor que sea

}Else{

maniobra1==El valor que sea

}

Pongo maniobra1!=0 porque creo que si no existe la variable la crea con valor 0 por lo que he leído.

26/03/2020, 13:52
Editado: 26/03/2020, 13:53

Ahora mismo no existe la cláusula OR (no sé si chemo tendrá previsto añadirla más adelante).

Lo que puedes hacer es, en lugar de reutilizar la misma escena para escoger la segunda maniobra, hacer otra escena donde los botones tengan la condición (maniobra1!="valor maniobra 2") para mostrarse. Si, es bastante engorroso tener que recrear una escena dos veces para estas cosas, pero es lo que hay por el momento.

26/03/2020, 14:48
Editado: 26/03/2020, 14:50

En realidad es tan fácil como que al seleccionar una maniobra, se genere una variable que es maniobra1==1 (siendo 0 'sin seleccionar' y 1 'seleccionada'). Si en el botón de seleccionar maniobra1 pones de condicionante maniobra1==0, en el momento que esté seleccionada el botón saldrá en gris y ya no será seleccionable, así puedes volver a la escena anterior sin crear una nueva solo para eso.

IzVe
 
26/03/2020, 15:12

Jummm, eso es interesante. Vi que lo hiciste así con tu generador (el que pusiste en el otro hilo). Lo intento y si no doy con el tino te pregunto por aquí.

Gracias de nuevo :)

26/03/2020, 15:36
Editado: 26/03/2020, 15:38

Te esquematizo las escenas por si te ahorra tiempo:

Escena de selección de maniobras1 -> Escena de control2 -> Vuelta a selección de maniobras3 -> Escena de control4 -> Siguiente escena

1: El jugador selecciona "Maniobra 1". Desembocan dos variables, maniobra1=1 y maniobras+1. (Así ya se sabe que la maniobra1 ha sido elegida y que has elegido una maniobra de las dos máximas)

2: La escena de control chequea que maniobras==2. Si no es así, te devuelve a la escena anterior.

3: El jugador no puede seleccionar "Maniobra 1" porque su condicionante es maniobra1==0. Solo puede elegir el resto. Selecciona "Maniobra 4" y desembocan dos variables, maniobra4=1 y maniobras+1. (La maniobra4 está seleccionada y has elegido la segunda maniobra de las dos máximas) ["maniobras" ya era 1 por lo anterior y se le suma otro +1]

4: La escena de control chequea que maniobras==2. Es así, así que continúa a la siguiente escena.

Y ya estaría ^^

PD: ¿Es posible que hay una manera más rápida y más cómoda ahora mismo? Puede ser, pero es lo único que se me ha ocurrido xDD

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
26/03/2020, 15:38

Ahora mismo no existe la cláusula OR (no sé si chemo tendrá previsto añadirla más adelante).

Estoy en ello precisamente para esta actualización

La solución de Mushra parece correcta para la pregunta pero como off topic:

Efectivamente tal como dice IzVe una variable que no existe es 0. Pero también podéis forzarlas en cualquier momento 'por si acaso'.

Hay un par de trucos para inicializar variables que creo que no se mencionan en el tutorial de momento:

Si en consecuencias de una escena ponéis:

* = 0

Reseteáis todas las variables. El * es un comodín, por lo que si ponéis:

estado_*=0

Se resetearán sólo las variables que comiencen con el texto 'estado_'

Lo comento por lo que dice IzVe de que una variable que no existe es 0. Efectivamente es así, pero también podéis forzarlas en cualquier momento 'por si acaso'. Por ejemplo yo en todas mis aventuras pongo a 0 las variables con *=0 en la escena de inicio por si acaso (por si, por ejemplo, vuelvo a ella después de haber muerto o finalizado la aventura para probar otro camino).

Por ejemplo yo en todas mis aventuras pongo a 0 las variables con *=0 en la escena de inicio por si acaso (por si, por ejemplo, vuelvo a ella después de haber muerto o finalizado la aventura para probar otro camino).

IzVe
 
26/03/2020, 15:45

Uffff, fenomenal. Pues si me dices que esperas sacarla pronto me dejo todo preparado hasta esa parte :)
Y lo de resetear con el * me lo guardo que me va a venir muy bien :)

Gracias a todos.

26/03/2020, 18:38

Jo. De carambola acabas de simplificar al máximo la escena de inicio de mi partida, el generador de clima. Una de esas que tienes que tirar una y otra vez. Tenía como consecuencia de estar en esa escena a cada item=0, claro, por eso que acabas de escribir, que hay que resetear todo. Lo acabo de editar. Oh, qué elegante, qué bonico queda ahora XDDDD

O sea, apúntalo en grande para poner en los tutoriales lo siguiente :) Y gracias.

IzVe
 
27/03/2020, 21:00
Editado: 27/03/2020, 21:03

@Mushra o quien le pueda interesar. Al final lo hice solo con una escena de control.

Escena 1 (Pongo todas los enlaces que seleccionan una maniobra así, de esa forma si las has seleccionado antes ni siquiera te lo muestra, que es lo que prefería. En la escena 2 asigno el valor de Maniobra1 a la variable Maniobra2 para poder reaprovechar el link)

Condiciones
Maniobra2!=Competente sin armadura
Consecuencias
Maniobra1=Competente sin armadura

Escena 2 (La escena de control)

Link1: Me devuelve a la selección anterior si la maniobra 2 está a 0 y además le asigna a la maniobra 2 el valor de la maniobra 1

Condiciones
Maniobra2==0
Consecuencias
Maniobra2=#Maniobra1
Maniobra1=0

Link2: Continúa al siguiente paso si ninguna maniobra está a 0

Condiciones
Maniobra1!=0
Maniobra2!=0


No se si lo he dejado claro xD

Edito: Esta solución solo funciona para este caso particular en el que solo necesitas dos maniobras (el mío). Si necesitaras tres la cosa se complicaría y no se si se podría hacer ahora mismo la verdad.

Chemo
 
Demiurgo (Fundador de la web) Carné Umbriano nº1
28/03/2020, 17:19

Hoy tengo las neuronas chamuscadas... a ver si el lunes le puedo echar un ojo ;)

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