Hola,
Tengo un problema con variables dinámicas.
Lo que quiero hacer es lo siguiente: alguien escribe una frase y que el resto de personas del canal puedan votar esa frase, pero sin que puedan votar varias veces. Para esto, escribo (es un fragmento, pero suficiente como para resolver mi duda):
on *:text:.rechazo:#canal: {
if ([ %voto $+ $nick ] == $null) {
inc %rechazo
notice #canal %rechazo contra!
inc %voto $+ $nick
}
(nota: en otra parte del script tengo el unset %voto*)
He observado que inc %voto $+ $nick funciona, pero lo que no quiere funcionar [por más que intente y busque (llevo 3 días buscando, intentado y preguntando) no consigo hacerlo funcionar!!], repito, lo que no quiere funcionar es la condición del if, lo de if (%voto $+ $nick == $null)
He intentado poniendo:
if (%voto $+ $nick == $null)
if (%voto $+ [ $nick ] == $null)
if ([ % $+ voto $+ $nick ] == $null
if (%voto [ $+ [ $nick ]]) == $null)
if ([ %voto [ $+ [ $nick ]]] == $null)
if ([ %voto [$+ [ $nick ]]] == $null)
y 100 más... anda que he tenido tiempo en 3 dias de probar )
También he intentado asignar %voto $+ $nick a una variable %p
y poner como condicional "la variable cuyo nombre es el valor de %p", me explico, que lo que devuelva la variable %p, ése sea el nombre de la variable que quiero comparar. He probado con:
var %p voto $+ $nick
if (% [%p] == $null) ó if (%[%p] == $null) ó if (%%p == $null) ó if ([ % $+ %p] == $null) ..................................
Y NADA funciona, ya ni se qué más probar... :wtf:
Explico otra vez lo que quiero hacer en un ejemplo, para que no queden dudas:
Pepe escribe una frase, y los demás la votan. A Juan no le gusta y la vota negativamente escribiendo .rechazo
Ahora es cuando salta el código: como la variable %votoJuan no existe, por lo tanto devuelve $null, se cumple que == $null, y realiza los comandos entre llaves: incrementa %rechazo en 1, avisa que ha habido una persona en contra, y crea e incrementa la variable %votoJuan 1.
Por si acaso a Juan le da por votar varias veces, como %votoJuan ya vale 1, no se cumplirá la condición del if (será distinta de $null), luego no pasará nada.
Espero haberme explicado. ¿Cómo consigo que el if evalúe la condición que puse en cursiva? O de otra manera, ¿cómo se pone corréctamente la condicion, de forma que compare correctamente la variable %votoNick, siendo Nick el nick de la persona que vota?
Muchas gracias de antemano.