Límite de Ejecución
En Wired Code: extra.execution_limit
Limita cuántas veces puede ejecutarse la pila dentro de un intervalo de tiempo, contado en pulsos de la sala.
Cómo funciona
Sección titulada «Cómo funciona»Es el freno del sistema. Una pila con un causante que se dispara mucho —un chat, una baldosa muy pisada, un periódico corto— puede acabar ejecutándose decenas de veces por segundo, y eso es lo que ahoga una sala.
Con este complemento, la pila corre lo que tú digas y el resto de disparos se descartan.
También sirve como regla de juego: “el botón solo responde tres veces cada diez segundos” no es una optimización, es una mecánica. Ojo: el cupo es de la pila, o sea de todos los que estén en la sala juntos; para limitar a cada persona por separado necesitas una variable de usuario con Contiene variable o Edad de variable, no esta caja.
El intervalo se cuenta en pulsos de la sala, no en milisegundos de reloj. Un pulso es medio segundo, el mismo con el que cuentan Periodos y el resto de causantes periódicos, así que un Periodos de 0,5 s y un límite de 1 cada 0,5 s encajan pulso a pulso: la pila corre en todos, sin saltarse ninguno por unos milisegundos de diferencia. Y cada vez que la pila arranca cuenta una ejecución, se cumplan o no sus condiciones.
Configuración
Sección titulada «Configuración»
Cantidad de ejecuciones, entre 1 y 100.
Establecer intervalo, el tiempo en el que cuentan esas ejecuciones: de medio segundo a diez segundos, en pasos de medio segundo —de 1 a 20 pulsos de la sala—. No hay valores más largos.
Conviene saber de dónde parte: cualquier pila viene ya con un tope de fábrica de 100 ejecuciones cada medio segundo, y la caja viene con esos mismos valores. O sea que colocar una y no tocarla deja la pila con el mismo tope; el complemento se usa bajando la cantidad o alargando el intervalo. Lo único que cambia es qué pasa al agotarlo (mira las notas).
Ejemplo
Sección titulada «Ejemplo»Un botón que solo se puede pulsar una vez cada cinco segundos:
Pila A│├─ Complemento: Límite de Ejecución│ ├─ Cantidad de ejecuciones ................. 1│ └─ Establecer intervalo .................... 5 segundos│├─ Causante: Click en Furni│ └─ Elige Furni ............................. Interruptor de Suelo 1│└─ Efecto: Mensaje ├─ ¿Cuál es el mensaje? .................... "¡Has pulsado el botón!" └─ Solo el usuario desencadenanteEs el freno más directo para una pila que se dispara de más. Antes de recortar efectos o quitar furnis, mira qué pila se está ejecutando de más y ponle un límite.
Los disparos de sobra se pierden, no se aplazan. No se ejecutarán más tarde: simplemente no ocurren, y quien los provocó no recibe ningún aviso. Tampoco queda anotado en el Monitor: el tope de fábrica, al agotarse, suma RECURSION_TIMEOUT (está contado en Límites y rendimiento); agotar el que pones tú se toma como lo que pediste y no deja rastro.
Apilar varias cajas suma sus cupos, y sirve justo para lo contrario que su nombre: dos de 100 dan 200 ejecuciones, tres dan 300. Es la única forma de subir una pila por encima del tope de fábrica cuando de verdad lo necesita —un relleno grande, por ejemplo—, y cuesta un furni por cada 100 ejecuciones de más. Si las cajas apiladas llevan intervalos distintos, manda el más corto.
A los causantes periódicos no les afecta el tope de fábrica, pero sí esta caja. Es la forma limpia de frenar un Periodos sin cambiarle el tiempo: con una ejecución cada diez segundos, un periódico de un segundo pasa a correr una vez cada diez.
El intervalo es una ventana fija, no una cuenta atrás desde el último disparo. La ventana se abre con la primera ejecución y, al cumplirse sus pulsos, el contador se reinicia entero con la siguiente, así que una ráfaga a caballo de esa frontera puede dejar pasar casi el doble de la cantidad en muy poco tiempo. Para un tope duro, cuenta con ello.
Reconfigurar la caja pone el contador a cero, igual que volver a cargar la sala. Si estás probando, no te fíes de lo que veas justo después de guardar. El efecto Reset, en cambio, no mueve la ventana: sigue contando sus pulsos aunque el reloj de la sala se reinicie.
Las llamadas con Ejecuta Pilas no gastan este cupo. El límite cuenta las veces que la pila arranca por su propio causante o por una señal; una pila a la que solo se llama con Ejecuta Pilas no se frena con esta caja.