Ir al contenido
Wiki Hartico
ConceptosCómo se ejecuta una pila

Retardos y repeticiones

Todo lo que pasa dentro de una pila ocurre de golpe salvo que tú digas lo contrario. Las dos formas de meter tiempo son el retardo de cada efecto y los causantes periódicos.

El retardo de un efecto

Cada efecto lleva en la parte baja de su ventana la sección Retraso (segundos): un campo numérico, un botón pequeño para elegir el modo y una barra con flechas. Es lo que separa una pila que hace cinco cosas a la vez de una que las hace en secuencia. Viene a 0, o sea, sin retardo.

El retardo tiene dos modos, y se elige con el botón de la derecha del campo:

ModoPasoRango
Estándar (cada 0.5 s)0,5 sde 0 a 60 s
Preciso (cada 0.05 s)0,05 sde 0 a 60 s

Que el retardo sea por efecto, no por pila, es lo que permite montar secuencias sin encadenar pilas: pones cuatro efectos en la misma pila con retardos de 0, 1, 2 y 3 segundos, y se ejecutan uno detrás de otro. Cada retardo se cuenta desde que arranca la pila, no desde el efecto anterior: con retardos de 1 y de 2 segundos, el segundo efecto actúa 1 segundo después del primero, no 2.

El furni parpadea al principio, no al final

Cuando un efecto tiene retardo, el wired se ilumina en el momento del disparo, no cuando el retardo vence. Es intencionado: así ves que la pila arrancó aunque el resultado tarde. Si esperas el parpadeo para saber si "ya pasó", te va a despistar.

Escribir el tiempo

Puedes mover la barra, usar sus flechas o escribir en el campo. En Estándar el campo admite un decimal (1,5); en Preciso, dos (0,25). Vale la coma o el punto. Lo que no encaje en el paso se redondea hacia abajo —1,3 en Estándar queda en 1—, y un valor con más decimales de los que admite el modo, o por encima de 60, no se toma: al salir del campo vuelve al último valor válido.

Cada modo guarda su propio valor. Al cambiar de modo el tiempo no se convierte: el campo enseña lo que tenía ese modo (0, si no lo habías usado) y lo que se guarda al pulsar Listo es el valor del modo que dejes elegido. Si pasas un efecto de 3 s a Preciso y guardas sin escribir nada, se queda sin retardo; si vuelves a Estándar antes de guardar, tus 3 s siguen ahí.

Al reabrir el efecto, la ventana vuelve en el modo en que lo guardaste. La excepción es el Preciso a 0, que es lo mismo que no tener retardo y se reabre en Estándar.

La ventana no deja escribir un valor fuera de rango. Si llegara uno por otra vía, el hotel no guarda el efecto y avisa con «El intervalo seleccionado es inválido.»

Efectos en los que no vale

Todos los efectos llevan la sección, pero en tres no retrasa nada: Reset pone el reloj a cero al instante aunque muevas el retardo, Mutear usuario usa ese hueco para la duración del silencio y Bot Sigue a Usuario aplica su orden en el acto. Mover el retardo de estos tres no cambia nada.

El retardo no cancela nada

Si la pila se vuelve a disparar antes de que venza un retardo pendiente, el nuevo disparo no sustituye al anterior: se acumulan. Con un causante rápido y un retardo largo puedes acabar con decenas de ejecuciones en cola.

Es la causa número uno de salas que se ponen lentas sin motivo aparente. Si un efecto lleva retardo, asegúrate de que su causante no puede dispararse más rápido de lo que el retardo tarda en vencer. Con retardos de hasta 60 segundos se acumulan efectos con facilidad, y hay un tope: una sala no admite más de 300 efectos esperando a la vez, y los que sobren se pierden sin avisar. Está contado en Límites y rendimiento.

El retardo vuelve a leer los marcadores de texto

Un efecto con retardo vuelve a leer los marcadores de texto de su propia pila en el momento de correr: un $(puntos) en un mensaje retrasado enseña los puntos de ese momento. Los marcadores que vengan de otras pilas de la cadena sí llegan congelados. Los detalles, en Marcador de posición de variable.

Los cuatro causantes de tiempo

Se diferencian en el rango y en la precisión. Elegir el que va sobrado de rango y ponerlo al mínimo es peor que elegir el ajustado.

CausanteRangoPasoPara qué
Periodos Cortos50 ms – 500 ms50 msAnimación fina, movimiento fluido
Periodos0,5 s – 30 s0,5 sEl de uso general
Periodos Largos5 s – 600 s5 sCiclos de sala, rondas, avisos
¡Ya!0,5 s – 600 s0,5 sUna vez por cada pasada del reloj de la sala por esa marca

Los tres primeros repiten para siempre. El cuarto dispara una vez cuando el reloj de la sala llega a su marca; ese reloj arranca al cargar la sala y vuelve a cero con el efecto Reset (reiniciar temporizadores), y entonces ¡Ya! se rearma y vuelve a disparar al llegar de nuevo a la marca.

Hay efectos que se niegan a correr desde un periódico

Esto no lo avisa nadie y es la causa de muchos "mi pila no hace nada": varios efectos se plantan si quien los dispara es un causante periódico. No fallan ni dan error, simplemente no se ejecutan.

EfectoCon Periodos y Periodos LargosCon Periodos Cortos
Mensaje · Expulsar Usuario · Bot habla o susurra a usuarioSolo si la fuente de usuarios es el SelectorNunca
¡Adiós! (teletransportar a furni) · Teletransportar a salaSolo si la fuente de usuarios es el SelectorSolo si la fuente de usuarios es el Selector
Mensaje de Bot · Bot mover a furni · Teletransportar Bot a Furni · Bot cambia ropaCorrenNunca

Con Periodos y Periodos Largos la razón es que son efectos que le hacen algo a una persona concreta, y un causante periódico no tiene persona — salta solo, sin que nadie lo dispare. La salida es ponerles delante un selector de usuarios y la fuente de usuarios del efecto en Usar usuarios del Selector: así ya saben a quién afectar.

Los de bot con Periodos y Periodos Largos corren porque, con la fuente de bots de fábrica, eligen al bot por su nombre y no necesitan a nadie. Con Periodos Cortos el veto es otro: a 50 ms, un mensaje, una expulsión o un bot hablando o moviéndose se repetirían veinte veces por segundo, y por eso no corren ni con selector.

Y un veto que no es de periódicos: Dar puntos y Dar Puntos a Equipo no corren si la pila la disparó Puntos Conseguidos, para que puntuar no vuelva a disparar puntuar.

Sobre Periodos Cortos

Es la herramienta más potente y la más peligrosa. A 50 ms una pila se ejecuta veinte veces por segundo; con cinco pilas así en una sala, son cien ejecuciones por segundo compitiendo con todo lo demás.

Úsalo cuando necesites que algo se vea fluido, y solo durante el tiempo que haga falta. Si lo que quieres es que algo pase "rápido" pero no es una animación, Periodos al mínimo (medio segundo) suele bastar y cuesta diez veces menos. Y si lo que necesitas es una pausa corta entre dos efectos, no hace falta un periódico: el retardo Preciso de un efecto baja hasta 0,05 s.

Combinar retardo y repetición

El patrón más útil del sistema es un causante periódico lento con efectos escalonados por retardo:

CUANDO    cada 10 segundos               ← Periodos
          → efecto A con retardo 0 s
          → efecto B con retardo 2 s
          → efecto C con retardo 4 s

Eso te da una secuencia de tres pasos que se repite cada diez segundos, con una sola pila y sin señales. Mientras el retardo mayor sea menor que el periodo, nunca se solapan.

Si el retardo mayor supera el periodo, empiezan a solaparse ejecuciones. A veces es justo lo que quieres –una cascada continua– pero tienes que decidirlo tú, no descubrirlo.

Lo siguiente

En esta página