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
Sección titulada «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:
| Modo | Paso | Rango |
|---|---|---|
| Estándar (cada 0.5 s) | 0,5 s | de 0 a 60 s |
| Preciso (cada 0.05 s) | 0,05 s | de 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.
Escribir el tiempo
Sección titulada «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
Sección titulada «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
Sección titulada «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
Sección titulada «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
Sección titulada «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.
| Causante | Rango | Paso | Para qué |
|---|---|---|---|
| Periodos Cortos | 50 ms – 500 ms | 50 ms | Animación fina, movimiento fluido |
| Periodos | 0,5 s – 30 s | 0,5 s | El de uso general |
| Periodos Largos | 5 s – 600 s | 5 s | Ciclos de sala, rondas, avisos |
| ¡Ya! | 0,5 s – 600 s | 0,5 s | Una 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
Sección titulada «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.
| Efecto | Con Periodos y Periodos Largos | Con Periodos Cortos |
|---|---|---|
| Mensaje · Expulsar Usuario · Bot habla o susurra a usuario | Solo si la fuente de usuarios es el Selector | Nunca |
| ¡Adiós! (teletransportar a furni) · Teletransportar a sala | Solo si la fuente de usuarios es el Selector | Solo si la fuente de usuarios es el Selector |
| Mensaje de Bot · Bot mover a furni · Teletransportar Bot a Furni · Bot cambia ropa | Corren | Nunca |
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
Sección titulada «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
Sección titulada «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 sEso 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
Sección titulada «Lo siguiente»- Señales y pilas remotas – encadenar cuando el retardo no basta.
- Límites y rendimiento – qué mide el servidor y cuándo corta.