Crear, borrar y mover
El documento no es solo una vista de lo que hay: es la lista de lo que quieres que haya.
| En el texto | Qué pasa al aplicar |
|---|---|
Un bloque o una línea furni sin #id | Se compra ese furni y se coloca en su stack (x, y) con su rot (o 0); si lleva z, la altura se ajusta después, al final de la construcción |
Un #id (de wired o de furni normal) que está en la sala pero ya no en el texto | Se recoge y vuelve al inventario de su dueño |
Un #id bajo una stack (x, y) distinta de la que trae de la sala | Se mueve a esa baldosa |
Una línea furni con #id y z distinto del que trae | Se pone a esa altura exacta |
Una línea furni con #id y rot distinto del que trae | Se rota |
Un bloque con #id y algo cambiado | Se guarda, como siempre |
Siempre que haya compras, recogidas, movimientos o cambios de altura/rotación, el botón de la barra
pasa a llamarse Vista previa… y antes de tocar nada sale una vista previa que hay que confirmar.
Aunque el total sean 0 créditos, y aunque lo único que haya sea un movimiento o un cambio de altura.
Crear: un bloque sin #id
Crear pide los permisos comunes (ver Permisos) y, además, no tener activado el modo de prueba. No hace falta ser dueño de nada, porque el furni todavía no existe.
Lo escribes igual que cualquier otro, pero sin el #id:
stack (3, 1) {
trigger.says #48211 {
text = "abre"
}
effect.teleport_to {
furnis = [ #48360 ]
delay = 2
}
}La forma más rápida de crear uno es duplicar un bloque que ya funciona y quitarle el #id.
Lo que hace falta:
- No se elige el furni por texto: lo decide el
familia.nombredel bloque. Qué wired es cada nombre lo dice la referencia, con el nombre con el que sale en el juego, y la vista previa te enseña qué se compra y cuánto cuesta antes de confirmar. - La baldosa es la del
stack (x, y)que lo contiene. La altura no se elige: cada pieza cae a la altura a la que caería si la soltaras con el ratón, encima de lo más alto que haya en las casillas que ocupa, y si creas varias en la misma casilla se apilan en este orden: primero las líneasfurni, luego las cajasvariable.*y por último el resto de bloques, y dentro de cada grupo en el orden en que están escritas. Entre efectos, por tanto, el orden del texto es el de la pila — lo que cuenta para Ejecutar en orden. - Como con el ratón, cuenta todo lo que ocupa: un furni de varias casillas se apoya en lo más alto de
todas ellas, y sobre una silla o una cama la pieza queda encima, no metida dentro. Sobre una baldosa
mágica, cada pieza cae a la altura de la baldosa, aunque ya haya otras encima. En una línea
furnipuedes fijar otra altura escribiendo suz, que se aplica al final de la construcción. - La rotación de un bloque nuevo es siempre 0 (la primera posición que admite el furni).
- Un campo que no escribes vale su valor por defecto, que es el de una caja recién colocada en el juego (ver Campos).
- Una caja
variable.*nueva sinnamesolo se compra: sin nombre todavía no es ninguna variable, así que ningún bloque la puede nombrar y lo demás que escribas en ella no se guarda. El panel lo avisa con un ℹ,la caja se compra sin nombre: no registra ninguna variable hasta que le pongas `name`(si escribes otros campos, el aviso añade «; los demás campos que escribes tampoco se guardan hasta entonces»), y al aplicar su fila es la de la compra (wf_var_context → #N). Para que cuente como variable, dale unname. - Con
user_source = clickedouser_source = reached, su causante (trigger.click_userotrigger.bot_reached_avtr) tiene que estar en la misma pila. Puede ser nuevo también, del mismo texto. Si falta, el editor da un error (ver De los campos).
En el margen izquierdo del editor, los bloques nuevos y las líneas furni sin #id llevan un
+ verde. En la barra sale la pastilla +N nuevos y en el panel un aviso por cada uno («nuevo
wired familia.nombre en (3, 1)»). Son avisos con su propio icono, +, no errores: no bloquean.
Qué puede referenciar un bloque nuevo
- ✅ Puede referenciar furnis que ya existen:
furnis = [ #48360, #48361 ]. - ✅ Puede referenciar por nombre una variable que declara otra caja
variable.*nueva del mismo documento:variable = "a". El editor guarda esas cajas de variable antes que el resto y, en cuanto tienen su#idreal, rellena la referencia con él — no hace falta escribir el#ida mano ni recargar. Mientras tanto, esa fila del panel sale como un aviso…que no bloquea:'campo': se resolverá al crear 'a'. - ✅ Puede referenciar por etiqueta un
furnio un wired nuevo del mismo documento:furnis = [ tile1 ],antennas = [ ant ]. Se guarda vacío hasta que ese bloque se crea y el editor rellena el#idsolo (aviso…:'furnis': se resolverá al crear 'tile1') — ver Etiquetas. - ❌ No puede ser referenciado por su
#id, porque todavía no lo tiene: usa su etiqueta.
Es lo que recuerda la propia vista previa: los wireds nuevos reciben su #id al aplicar; hasta
entonces se referencian por etiqueta (o por nombre, si son cajas de variable: ver la regla de abajo).
Si prefieres la referencia por #id, aplica, deja que el editor recargue —los bloques nuevos ya salen
con su #id real— y entonces escríbela.
Nombres de variable únicos por sala
El servidor solo admite un nombre por sala para las siete cajas: el nombre de una
variable.context/furni/room/user, el nombre local de una variable.echo, el alias de una
variable.reference y el nombre de una variable.pointer no pueden repetirse entre sí. Escribir el mismo nombre dos veces en el documento
es un error:
| Mensaje | Cuándo |
|---|---|
nombre de variable repetido 'a': ya lo declara el bloque de la línea L | Dos cajas de variable del documento declaran el mismo nombre y al menos una es nueva o tiene el campo name cambiado. Sale en la segunda |
nombre de variable repetido 'a': ya lo usa #N en la sala | Una caja del documento (nueva, o renombrada) declara un nombre que ya tiene, con otra id, una caja que se queda en la sala |
Si la sala ya traía dos cajas con el mismo nombre y tu texto no toca ninguna de las dos, no es un
error y puedes aplicar lo demás: sale un aviso ℹ nombre de variable repetido 'a' (ya venía repetido en la sala; no bloquea): ya lo declara el bloque de la línea L. El servidor conserva las dos cajas, pero
cuando algo busca "a" por su nombre se queda con la primera que registró. Para arreglarlo, renombra una
de las dos: el aviso desaparece.
Una caja que quitas del texto se recoge antes de que se creen las nuevas, así que su nombre queda libre
en ese mismo Aplicar. Por eso puedes rehacer una caja de una vez: quitas variable.user #N { name = "a" },
escribes variable.furni { name = "a" } y aplicas. Los bloques que nombran "a" pasan a la caja nueva.
Si la caja nueva es de otro tipo, como en el ejemplo, cambia también el ámbito de esos bloques
(scope, reference_scope…). Ese nombre también se lo puedes dar a otra caja de la sala,
renombrándola: los bloques pasan a ella.
Ojo: si la vieja guarda valores permanentes, se pierden igual (ver
Recoger una caja de variable permanente o compartida).
Una caja que renombras se puede nombrar ya por su nombre nuevo, en el mismo texto.
Siguen siendo un error dos cajas nuevas con el mismo nombre. También lo es renombrar una caja y crear otra con su nombre en el mismo texto: la nueva se guarda antes que el cambio de nombre, y ese nombre todavía está ocupado.
Declara cada variable una sola vez para toda la sala
Regla práctica al escribir un script: una caja de variable por nombre, en una sola pila, y el resto
de pilas la referencian por nombre (variable = "a") sin volver a declararla. Las variables no son
de la pila que las declara, son de la sala entera: cuatro pilas que hacen cuatro operaciones distintas
sobre a, b y res llevan las tres cajas variable.* solo en la primera, y las otras tres solo
trigger, effect y extra. Repetir variable.context { name = "a" } en cada pila no añade nada —el
nombre ya existe en la sala en cuanto se guarda la primera— y es exactamente el error de arriba.
Las cajas de variable van en pilas aparte, agrupadas por tipo
Las cajas variable.* no se mezclan con los causantes y efectos que las usan: van en sus propias
pilas, y agrupadas por tipo — una pila con las variable.user, otra con las variable.furni, otra
con las variable.context… El motivo es que los complementos (extra.*) de una pila se aplican a
todas las cajas de esa pila, así que meter una variable.* junto a un trigger o un effect la
deja expuesta a un complemento que no le corresponde.
La única excepción es un complemento que deba aplicarse a una sola variable: esa caja va sola, en su
propia pila, junto con su complemento. Pasa con un Conector de texto
(extra.var_text_connector), con Compartir (extra.var_addon_share), que va
con su caja compartida entre salas, y con Importar (extra.var_addon_import),
que va con su variable.reference.
stack (1, 1) {
variable.user #48301 {
name = "puntos"
}
variable.user #48302 {
name = "vidas"
}
}
stack (2, 1) {
variable.context #48303 {
name = "mensaje"
}
extra.var_text_connector #48304 {
table = "1=hola\n2=adiós"
}
}
stack (3, 1) {
trigger.says #48211 {
text = "puntos"
}
effect.change_var #48230 {
variable = "puntos"
scope = user
operation = add
literal_value = 1
}
}Las pilas nuevas van en el eje X
Cuando escribes o generas varias pilas nuevas, colócalas en fila por defecto: misma y, x
creciente — stack (1, 1), stack (2, 1), stack (3, 1)… Usa otra disposición solo si quien te
pide el script especifica una en concreto, o si la sala no tiene sitio en esa fila.
Declara los furnis con etiqueta y sin #id si el script se va a copiar
Si escribes o generas un script pensado para aplicarse en más de una sala, no lo ates a los #id de
esta: declara cada furni con su etiqueta y sin #id, y referencia siempre por etiqueta
(furnis = [ tile1 ]), nunca por #id. Así el documento compra y coloca lo que haga falta en
cualquier sala donde lo apliques — ver
Copiar un script a otra sala.
Las antenas de effect.send_signal van igual: antennas = [ ant ] con la antena declarada como
furni ant "wf_antenna2" sin #id, y el mismo documento la compra, la coloca y la engancha al envío
y al trigger.recv_signal — ver Antenas y señales.
Las variables de contexto solo viven durante una ejecución
Una variable de contexto existe solo mientras dura la ejecución de la pila que la usa, y se descarta al terminar. Para el script eso tiene una consecuencia directa: no hace falta —ni conviene— crear un juego de variables de contexto por pila; se declaran una sola vez (la regla de arriba) y las usan todas las pilas que las necesiten.
Si el valor tiene que sobrevivir entre ejecuciones o entre usuarios, no es una variable de contexto: es de usuario, de furni o de sala.
Una variable de contexto hay que darla antes de usarla
La caja variable.context { name = "res" } solo declara el nombre. Dentro de la ejecución la
variable no existe hasta que algo la crea: un Dar variable
(effect.give_var) al principio de la pila, o un
Capturador de variables (extra.text_input_variable) que la
rellena con lo que dijo el usuario. Un Cambiar valor de variable
(effect.change_var) sobre una variable de contexto que nadie ha dado no hace nada: no la crea.
Así que en toda pila que calcule algo en una variable de contexto, el primer efecto es darla:
stack (3, 1) {
trigger.says {
text = "#(a)+#(b)"
match_type = exact
}
effect.give_var {
scope = context
variable = "res"
initial_value = 0
}
effect.change_var {
scope = context
variable = "res"
operation = assign
use_reference = true
reference_variable = "a"
reference_scope = context
}
}a y b no necesitan su effect.give_var porque las crea el capturador al leer el chat; res sí.
Borrar: quitar el bloque o la línea
Borras el bloque o la línea furni del texto (o comentas sus líneas) y al aplicar ese furni se
recoge al inventario — un wired o un furni normal, da igual: es como recogerlo con el ratón, solo
que decidido por lo que falta en el texto. En la barra sale la pastilla −N quitados y en el panel
un aviso por cada uno («#48213 (condition.has_furni_on) se recogerá al inventario»).
Lo que conviene saber:
- El furni vuelve siempre a su dueño, que puede no ser quien está aplicando (con el ratón, en una sala sin grupo, lo ajeno se lo queda quien lo recoge). Si el dueño está conectado, le aparece en el inventario en el momento.
- Las selecciones de furnis que otros wireds tuvieran sobre él se limpian solas, como en cualquier
recogida, salvo en las listas que el wired guarda aparte: ahí el wired sigue guardando el
#Nrecogido (y, como el furni conserva su#id, si vuelve a la sala mientras siga ahí, esas listas lo nombran otra vez). Si editas una lista que todavía lo nombra en el texto, el editor da'campo': el furni #N no está en la sala. El panel ofrece entonces Quitar los #id desconocidos: saca de la lista solo los#idque ya no están en la sala, y el resto se queda. Lo que ves depende del wired:- En
antennasysecondary_furnisdeeffect.send_signalyeffect.neg_send_signal, y enfurnisysecondary_furnisdeeffect.furni_to_furni,condition.stuff_isycondition.not_stuff_is, el#Ndeja de salir en el texto en cuanto recargas, aunque el wired lo guarda hasta la próxima vez que se guarda. - En
furnisysecondary_furnisdeeffect.init_transaction,condition.chest_has_item_type,extra.custom_contractyextra.scan_chest_furni_by_type, sigue en el texto hasta la próxima vez que se guarda ese wired. - En
furnisysecondary_furnisdeeffect.change_var,effect.modify_highscore,condition.var_val_matchyextra.mov_physics, enreference_furnisdeeffect.give_varycondition.var_age_match, y ensecondary_furnisdeeffect.place_furniyeffect.move_furni_as_group(en estos cuatro, su otra lista sí se limpia), se queda hasta que lo quitas tú.
- En
- Las variables no se limpian: si recoges una caja
variable.*que otros bloques usan, esos bloques se quedan apuntando a una variable que ya no existe. El panel te lo avisa antes con un ℹ:la variable 'puntos' se recoge en esta tanda y la usan 2 bloques. Si el mismo texto da ese nombre a otra caja (una nueva o una renombrada), esos bloques pasan a ella y el aviso no sale (ver Nombres de variable únicos por sala). - Solo puedes recogerlo si es tuyo, o si eres el dueño de la sala, staff con control de salas o
administrador del grupo de la sala — la misma condición que con el ratón (ver Permisos).
Los cofres son la excepción: solo los recoge el dueño de la sala, ni siquiera el staff. Si no
puedes, el bloque se queda tal cual: la vista previa saca la fila suelta
#N no es tuyo(con un cofre,#N: Solo el dueño de la sala puede recoger los cofres.) yAplicarqueda apagado. - Por texto tampoco se recoge un Espacio Alquilable mientras esté alquilado, ni un furni de
Builders Club: la vista previa lo dice con su propia fila suelta (ver
Cuando una fila no se puede hacer) y
Aplicarqueda apagado, igual que con#N no es tuyo.
Borrar el bloque no es lo mismo que dejarlo vacío
condition.has_furni_on #48213 { } sigue siendo el wired, con todos sus campos
a su valor por defecto. Para que desaparezca hay que quitar el bloque entero.
Recoger una caja de variable permanente o compartida
Una caja variable.* con availability = permanent o permanent_shared guarda su valor fuera de la
sesión (ver Variable de usuario,
Variable de furni y Variable global):
sobrevive a que te vayas de la sala, y con permanent_shared es un dato de todo el hotel. Pero
incluso permanent a secas guarda un valor por cada usuario o furni que la haya usado, todos bajo
la misma definición. Recogerla no solo la manda al inventario: borra esa definición, y con ella
todos esos valores guardados —los de todo el mundo, no solo los tuyos—, y no hay vuelta atrás.
Por eso, además de la regla de dueño de arriba, solo puede recogerla quien podría recogerla con el
ratón (tú, o quien gestiona el furni del grupo) y la vista previa pide, aparte, una confirmación
explícita: sale una fila propia con la casilla «Entiendo que se borrarán los valores permanentes de
estas variables», seguida de los #id afectados. Hasta que la marcas, Aplicar está apagado y la
fila suelta del panel dice #N guarda valores permanentes: confírmalo en la vista previa. En cuanto
la marcas, el editor vuelve a pedir la vista previa —puede tardar un par de segundos, el respiro de
siempre entre dos vistas previas (ver La vista previa)— y esta vez la trae ya
confirmada.
No hay vuelta atrás
Borrar los valores de una variable permanente o compartida afecta a todo el hotel, no solo a
quien aplica: si cien usuarios tenían puntos guardados en esa caja, los cien los pierden. Revisa los
#id que lista la casilla antes de marcarla.
Recoger el complemento Web API de variables
Quitar del texto el bloque extra.var_web_api recoge el complemento. Recogerlo borra sus claves
de lectura y de escritura sin vuelta atrás: dejan de valer y, si lo vuelves a colocar, serán otras
(ver Web API de variables). El panel lo avisa con un ℹ en
cuanto quitas el bloque.
La vista previa pide la misma casilla de confirmación, con su propia frase: «Entiendo que las claves
de la API de estos complementos se borran sin vuelta atrás (al volver a colocarlos serán otras)»,
seguida de los #id afectados. Hasta que la marcas, Aplicar está apagado. Sin cajas permanentes o
compartidas en la tanda, al marcarla no hay que esperar a otra vista previa. Si en la misma tanda
recoges también una caja de variable permanente o compartida, es una sola casilla con las dos frases,
cada una con sus #id.
Mover: cambiar la casilla
Cambias el stack (x, y) que envuelve un bloque con #id y al aplicar ese wired se mueve a la
baldosa nueva:
stack (5, 7) {
trigger.says #48211 {
text = "abre"
}
}Mover la cabecera de una pila mueve todos sus bloques a la vez, a la baldosa nueva; mover un solo bloque a otra pila —dejando el resto donde estaba— también vale. Las piezas de la pila que salen como comentario no tienen bloque, así que se quedan en su casilla.
- Mover pide los permisos comunes (ver Permisos) —el modo de prueba no lo frena— y, igual que al arrastrarlo con el ratón, no hace falta que el wired sea tuyo: con derechos, mueves también el que colocó otra persona.
- Un bloque movido puede además tener campos distintos: se mueve primero (es parte de la construcción) y se guarda después, igual que si lo guardaras desde su propia ventana. Ese cambio de configuración cuenta como cualquier otra edición.
- La altura (Z) la pone el destino, como al arrastrarlo con el ratón: se apoya encima de lo que
ya haya en la casilla destino, y si mueves varios bloques a la misma pila se apilan en el orden en
que están escritos — como arrastrarlos uno a uno. En una línea
furnien la que además cambias lazo larot, al final manda lazde la línea, o la que tenía si no la escribes (ver Furnis normales). Si no cambias ninguna de las dos, lazde la línea no se aplica. Si no es 0, el panel te lo recuerda con un ℹ, por ejemplo#48300 tile1: al moverlo a (5, 7) queda en la cima de esa casilla y no se aplica z = 250; para fijarla, vuelve a escribirla después de aplicar. - La rotación no cambia: los wireds no llevan
roten el DSL, así que mover un bloque de wired conserva la que ya tenía. Unfurnisí cambia de rotación por texto — ver Furnis normales más abajo. - Se mueve cualquier furni de suelo del documento, wired o normal (los temporales no salen en él: ver Furnis normales) — mover a otra sala queda fuera (ver Qué no hace).
- Las zonas de Furnis en área y
Usuarios en Área (
area_x,area_y…) son casillas de la sala, no de la pila: mover el bloque no las mueve. El panel te lo recuerda con un ℹ en la línea de la pila:stack (x, y): selector.furni_area #N cambia de casilla, pero su zona (area_x, area_y) se queda en las mismas casillas de la sala; cámbiala si quieres que lo acompañe.
En el margen izquierdo el bloque movido lleva un ↔ azul, en la barra sale la pastilla ↔N movidos
y en el panel un aviso por cada uno (↔ #id (x1, y1) → (x2, y2)). Son avisos con su propio icono,
↔, no errores: no bloquean.
Las reglas que ya conocías siguen igual: un #id repetido es un error, el i_type que no casa con
ese #id es un error, y un #id que no está en la sala es un error (ver
Editar y aplicar).
Furnis normales
Una línea furni (ver Sintaxis) no es un wired —no tiene
familia ni ventana propia—, pero se edita como con el ratón: por texto lo recoges, lo mueves, lo
subes o lo bajas y lo rotas. Hay tres diferencias: lo recogido vuelve siempre a su dueño (ver
Borrar), la z es la altura exacta del furni y rotarlo por
texto no lo sube a la cima de su pila, como sí hace el ratón al girarlo en su sitio.
| En el texto | Qué pasa al aplicar |
|---|---|
Una línea furni con #id, sin cambios | Es el furni real de la sala: no pasa nada, solo sirve para referenciarlo |
Una línea furni sin #id | Se compra y se coloca en su stack (x, y) con su rot (o 0), igual que un wired nuevo. Si lleva z, la altura se ajusta después, al final de la construcción |
Quitar del texto una línea furni con #id | Se recoge al inventario de su dueño |
Cambiar de pila una línea furni con #id | Se mueve a esa baldosa, como arrastrarlo: se apoya en lo que haya allí. Si además cambias su z o su rot, al final se pone a la z de la línea (o a la que tenía, si no la escribes) |
Cambiar el z de una línea furni con #id | Se pone a esa altura exacta |
Cambiar el rot de una línea furni con #id | Se rota. rot es el índice de posición (0, 1, 2…) que ves en el infostand; uno que el furni no tenga se rechaza con la rotación N no existe en este furni (0 a M) |
- La compra sale en la vista previa como cualquier otra compra (
classname (x, y) · N c), mezclada con las de los wireds nuevos, no en una lista aparte. - La rotación se escribe con
rot, índice de posición (0, 1, 2…, el del infostand):furni tile1 "dice_wired_grey" { z = 0, rot = 2 }. El volcado lo escribe siempre, aunque sea 0. - La altura se escribe con
z, entero en centésimas (250= 2,50):furni tile1 "dice_wired_grey" \{ z = 250, rot = 0 \}. El volcado también la escribe siempre. Cambiarla en un furni existente lo deja a esa altura exacta, sin apoyarlo en lo que tenga debajo, de -4000 a 8000: de -40 (hundido bajo el suelo) a 80 (el tope de apilado de la sala). Es la altura del furni en la sala, no la de:setz, que admite de -40 a 100 y, al colocar o mover, cuenta desde el suelo de la casilla. - Los cambios de altura y rotación de furnis normales tienen su propia pastilla,
↕N alturas; la de↔N movidoscuenta solo los cambios de casilla. En el margen llevan un↕azul, y en la vista previa salen en su propio grupo,↕ N alturas, con el detalle#id classname z 250 → 300 · rot 0— ver La vista previa. - Un
#idque no está en la sala:el furni #N no está en la sala. - Un
#idque en realidad es un wired:#N es un wired: escríbelo como familia.nombre. - Dos líneas
furnicon el mismo#id:el furni #N aparece dos veces. Copiaste y pegaste sin quitar el id, igual que con un wired. - Un
furnisin#idcuyoclassnamees en realidad un wired:"classname" es un wired: escríbelo como familia.nombre. Un wired no se compra ni se coloca como furni normal. - Un
furnisin#idcuyoclassnameempieza porwf_trg_,wf_act_,wf_cnd_,wf_slc_,wf_xtra_owf_var_y que el editor no conoce:"classname" es un wired que Wired Code todavía no conoce: no se puede crear con una línea furni(ver Un wired que el editor no conoce). Los demás furnis que empiezan porwf_, como interruptores, baldosas o antenas, se compran igual que cualquier otro.
Los furnis temporales que ponen los wireds (ver Furnis temporales)
no salen en el documento: no tienen línea furni, así que por texto no se recogen, ni se mueven,
ni cambian de altura. Los ponen y los quitan sus wireds. Si tu texto lleva la línea furni de uno (un
texto viejo, a veces con el comentario // temporal al final), esa línea no hace nada y no da error;
si el temporal ya no está en la sala, el panel lo dice con el aviso
#N era temporal y ya no está en la sala: se ignora esta línea.
Declara los furnis normales con z y rot explícitos
Regla práctica al escribir o generar un script, junto a las de organización de
más arriba: escribe siempre z y rot en cada línea furni, aunque
sean 0. Es lo que hace el propio volcado, y evita ambigüedad entre «no me importa la altura/rotación de
este furni» y «quiero que quede a 0» — sobre todo en un furni nuevo, donde la z se aplica tras
colocarlo. En un furni que ya está en la sala y que cambias de pila, en cambio, la z solo se aplica si
cambias la z o la rot: si dejas las dos como estaban, se apoya en lo que haya en el destino; si lo
giras al moverlo, escribe la z que quieres que tenga allí.
Copiar un script a otra sala
Los #id son de una sala: un documento que traes de la sala A no se puede aplicar tal cual en la
sala B, porque ninguno de sus #id existe ahí.
Para llevarlo, quita todos los #id. El panel ofrece el botón «Quitar los #id desconocidos (N)»
en cuanto detecta alguno que no es de la sala en la que estás, así que no hace falta hacerlo a mano.
El botón quita de las cabeceras los #id que no son de esta sala. Dentro de las listas [ … ], cambia
cada #id desconocido por la etiqueta de su bloque, para que la referencia no se rompa. Si ese #id no es de
ningún bloque que se vaya a crear (un furni de pared de la sala de origen, por ejemplo), lo saca de la
lista. Todo lo que se queda sin #id pasa a tratarse como nuevo: se compra y se coloca, sea un furni
o un wired. Las referencias por etiqueta se resuelven solas en cuanto se crea.
El botón puede salir deshabilitado, con el motivo a la derecha, en la misma fila:
| Motivo | Cuándo |
|---|---|
#N no tiene etiqueta y otros bloques lo referencian | Un bloque con #id desconocido no tiene etiqueta, pero alguna lista lo referencia: sin etiqueta no hay con qué reescribir la referencia. Ponle una etiqueta al bloque |
Lo que no viaja. Un wired lleva su configuración en el texto, pero de una línea furni solo viajan
el tipo, la casilla, la altura y el giro: el furni que se crea sale de fábrica, como recién comprado. Así
que en la sala nueva tienes que repetir a mano la zona de una Zona Oculta, el texto de una Etiqueta
WIRED, el color de un bloque recoloreable, la configuración de los contratos y la de la Tabla de
Puntuación - Variable; los tablones de puntuación empiezan sin resultados. Además:
- Las piezas que salen como comentario no se crean: no tienen bloque.
- Los cofres no se crean por texto: los compra y los coloca a mano el dueño de la sala.
- Los teletransportadores y los Nexos de Sala tampoco se crean por texto: se compran por
parejas, así que la vista previa rechaza su línea
furnicones un teletransportador: se compra por parejas, cómpralo y colócalo a mano(oes un Nexo de Sala: …). Cómpralos y colócalos a mano. - De cada controlador solo cabe uno por tipo en la sala (ver
Controladores de sala): si la sala nueva ya
tiene uno, o el texto trae dos, la vista previa rechaza el que sobra con
solo cabe uno de este tipo por sala y ya hay uno puesto(o… y esta tanda ya crea otro). Quitar del texto el de la sala y escribir otro del mismo tipo sí vale: se recoge antes de crear el nuevo. La Zona Oculta no cuenta: de esa caben varias. - Las zonas de Furnis en área y Usuarios en Área son casillas de la sala: no se mueven aunque
cambies el
stack (x, y)de su pila. Revísalas: aquí el editor no avisa, porque los bloques llegan sin#id. - A cero y Posición o Estado Coincide (y su versión NO Coincide) no se llevan su foto: la vuelven a sacar al aplicar, con los furnis tal como estén entonces en la sala nueva.
Regla para quien genera scripts: si el documento está pensado para copiarse a otra sala (o para
varias), declara los furnis con etiqueta y sin #id, y referencia siempre por etiqueta, nunca por
#id — ver Declara los furnis con etiqueta y sin #id si el script se va a
copiar.
La vista previa
Con compras o recogidas por medio, Vista previa… no guarda: le pregunta al servidor cuánto cuesta y qué
se puede hacer sin tocar la sala, y abre un panel titulado Aplicar cambios encima del editor:
Aplicar cambios
✎ 3 modificados
+ 2 nuevos → 2 compras · 45 créditos
wf_act_teleport_to (3, 1) · 25 c
wf_trg_periodically (5, 7) · 20 c
− 1 quitados → al inventario
#48213 condition.has_furni_on (3, 1)
↔ 1 movidos
#48211 trigger.says (3, 1) → (5, 7)
↕ 1 alturas
#48300 dice_wired_grey z 250 → 300 · rot 0
Los wireds nuevos reciben su #id al aplicar; hasta entonces los demás bloques los referencian por su etiqueta.
[ Cancelar ] [ Aplicar · 45 créditos ]- Cada fila de compra, movimiento o cambio de altura/rotación salta a su línea en el editor si la pulsas. Las de recogida no: su bloque ya no está en el texto.
- Si alguna recogida borraría valores de variable permanente o compartida, o las claves de un complemento Web API de variables, justo debajo de las recogidas sale una fila propia con la casilla de confirmación — ver Recoger una caja de variable permanente o compartida y Recoger el complemento Web API de variables.
- El botón dice
Aplicar · X créditos, o soloAplicarcuando el total es 0 (no se enseña «· 0 créditos», que solo mete ruido). Cancelar, cerrar la ventana o pulsarEscapecancelan sin haber tocado nada.- Mientras el editor está esperando al servidor, el texto queda bloqueado y aparece
Aplicando…junto a los botones. Durante esa fase Cancelar, Escape y Recargar están apagados: el servidor ya está comprando y recogiendo, y no hay vuelta atrás. - La barra de estado enseña
Vista previa: +N −N ↔N ↕Nmientras el panel está abierto (el↕N, solo si hay cambios de altura o rotación).
Si confirmas: pieza a pieza
Al pulsar Aplicar, el servidor no ejecuta la tanda de golpe: la construye pieza a pieza, una
operación cada vez, a un ritmo de unas 7 por segundo. El orden es siempre el mismo: primero se
recoge, después se mueve, luego se crea —dentro de las creaciones, primero los furnis
normales, luego las cajas de variable y por último el resto— y al final se aplican los cambios de
altura y rotación (↕), de uno en uno, en el orden en que están escritos —incluidos los de los
furnis recién creados, con su #id nuevo—. Recoger libera casillas y altura antes de mover, y los
movidos y creados ya están en su sitio nuevo cuando se cambia la altura o la rotación de lo último.
El motivo: así es el servidor quien fija el ritmo, así que una tanda grande nunca lo satura, y si algo falla se ve en la pieza exacta en la que pasó, no perdido dentro de un bloque de 200 a la vez.
Mientras dura, la vista previa sigue abierta y su texto pasa a Construyendo 12/47… (el mismo
progreso sale también en la barra de estado). Una pieza rechazada se anota y el barrido sigue con
la siguiente, no para la tanda. Lo que sí la corta es un silencio del servidor —esa pieza no se
reintenta, porque puede que ya esté hecha— o un rechazo de la tanda entera, como perder los derechos a
mitad: lo hecho hasta ahí se queda y el resto sale en el panel como no hecho (ver
Mensajes de la tanda entera).
Con los #id nuevos ya en la mano, la vista previa se cierra y la configuración de todo lo tocado
(lo modificado, lo nuevo y lo movido) se guarda igual de despacio, un wired detrás de otro —también
tras un corte, con lo que llegó a colocarse—; al terminar, el editor recarga y enseña los resultados.
Si alguna fila sale con ✗ o ⚠, tu texto no se pierde: la recarga enseña la sala como quedó y bajo la
barra sale, en ámbar, «Parte de tu texto no se aplicó» con el botón Recuperar lo no aplicado (ver
Si sales de la sala o algo falla).
Si la tanda llegó a crear bloques nuevos, o pudo crearlos, sale además en ámbar
«Ya se crearon bloques nuevos: aplicarlo tal cual los compraría otra vez»: en el texto recuperado
siguen sin #id, así que ponles el que tienen en la sala o sigue sobre el texto recargado (quitarlos
no sirve: Aplicar los recogería).
Si te sales de la sala a mitad de la construcción
La tanda se aborta en el cliente y sale cancelado: cambio de sala, pero eso es lo que hace el
editor: el servidor no se entera y puede haber recogido y colocado los furnis igualmente. Lo
que se pierde es la configuración, que viaja después con los #id nuevos — así que puedes
encontrarte los wireds nuevos en la sala, comprados y en su sitio, pero en blanco: si ya están
puestos, lo que toca es rellenarlos, no volver a comprarlos.
Tu texto no se pierde: queda como borrador de la sala (ver
Si sales de la sala o algo falla) y, si la
tanda llegó a colocar bloques nuevos o estaba comprando uno, al volver sale también en ámbar
«Ya se crearon bloques nuevos: aplicarlo tal cual los compraría otra vez». Si recuperas el texto y
vuelve a quedarse sin aplicar, el borrador nuevo conserva ese aviso mientras tenga algún bloque o
línea furni sin #id. Aun así, antes de aplicar un texto recuperado mira siempre la vista previa: si
enseña compras de bloques que ya están en la sala, cancela y ponles el #id que tienen.
Dos segundos entre vistas previas
El servidor deja 2 segundos entre dos vistas previas: si pides otra antes, contesta «Espera un momento antes de volver a aplicar.». La construcción real no lleva ese respiro: va pieza a pieza, y el editor ya deja entre una y otra el hueco que pide el servidor.
Cuando una fila no se puede hacer
El motivo sale en la fila en vez del precio, y Aplicar queda deshabilitado: basta con que
haya un solo rechazo para que la tanda entera no se pueda confirmar. Hay que quitar o cambiar ese
bloque y volver a pedir la vista previa. Un rechazo que no pertenece a ninguna compra (una recogida
imposible, por ejemplo) sale como una fila ⚠ suelta al final del panel.
Y en esas filas ⚠ sueltas caben también avisos que no bloquean, que son información y no un no:
| Fila ⚠ | Qué significa | ¿Bloquea? |
|---|---|---|
#N no se va a recoger: ya no está en la sala | Quitaste ese bloque o línea del texto, pero ese #id ya no está en la sala: no hay nada que recoger. Si el servidor ya explica ese mismo #id con una fila suya (como #N no es tuyo), sale la suya y esta no | No |
#N no es tuyo | Quitaste del texto un bloque o línea que no es tuyo, ni puedes gestionar el furni del grupo de la sala: la misma condición que hace falta para recogerlo con el ratón (ver Permisos) | Sí |
#N: Solo el dueño de la sala puede recoger los cofres. | Quitaste del texto la línea de un cofre y no eres el dueño de la sala: ni el staff los recoge | Sí |
#N es un espacio alquilado: no se puede recoger mientras esté alquilado | Quitaste del texto la línea de un Espacio Alquilable con el alquiler en curso: no se recoge, igual que con el ratón | Sí |
#N es de Builders Club: recógelo a mano | Quitaste del texto la línea de un furni de Builders Club: por texto no se recoge | Sí |
no tienes créditos suficientes: la tanda cuesta X créditos y tienes Y | Lo que compra la tanda cuesta más créditos de los que tienes. Quita compras del texto (cada fila dice lo que cuesta) o consigue los créditos y vuelve a pedir la vista previa | Sí |
#N guarda valores permanentes: confírmalo en la vista previa | Ese #id es una caja variable.* con availability = permanent o permanent_shared: recogerla borra su definición y todos los valores guardados, de todo el mundo, sin vuelta atrás. Marca la casilla de confirmación que aparece con las recogidas: el editor vuelve a pedir la vista previa por su cuenta (ver Recoger una caja de variable permanente o compartida) | Sí |
sin respuesta del servidor para este bloque | El servidor no dijo ni sí ni no sobre esa compra. Su fila sale con ? en vez del precio, porque nadie ha dado uno | Sí |
¿borraste el #N de este bloque? Se crearía uno nuevo y se recogería el existente | Hay una compra y una recogida en la misma casilla y del mismo familia.nombre: casi siempre es el mismo wired al que se le fue el #id por delante. Si lo aplicas tal cual, el furni estrena #id y pierde todo lo que no esté escrito en el texto | No |
Las recogidas del panel son las que el servidor dice que haría de verdad, no las que pediste: por eso
un #id que ya no está en la sala no sale como fila de recogida sino como el aviso de arriba.
Los que decide el editor de wireds al validar la tanda:
| Motivo | Qué significa |
|---|---|
no existe ese furni | Ningún furni del hotel se llama así |
solo se pueden crear furnis de suelo | Un furni con el classname de un furni de pared: no se compra. Los furnis de pared no se declaran con una línea furni, aunque sí se pueden nombrar por su #id dentro de una lista |
#N no está en la sala | Se pidió mover (o subir/rotar) un #id que ya no está en la sala, o que es un furni de pared |
la sala está llena (máx N furnis) | Se llegó al tope de furnis de suelo. Las recogidas se descuentan antes, así que quitar cosas hace hueco |
solo cabe uno de este tipo por sala y ya hay uno puesto | Creas un controlador de un tipo que la sala ya tiene: de cada tipo solo cabe uno (la Zona Oculta no cuenta). Si la misma tanda recoge el que hay, sí se puede — ver Controladores de sala |
solo cabe uno de este tipo por sala y esta tanda ya crea otro | El texto crea dos controladores del mismo tipo: el segundo sobra |
es un teletransportador: se compra por parejas, cómpralo y colócalo a mano / es un Nexo de Sala: se compra por parejas, cómpralo y colócalo a mano | Los teletransportadores y los Nexos de Sala no se crean por texto: cada compra trae dos, enlazados |
es solo para socios HC y no tienes la suscripción | La oferta de ese furni es solo para socios HC y no lo eres |
índice repetido | Dos bloques nuevos con el mismo índice (no debería pasar; es una salvaguarda) |
índice no válido | Un bloque nuevo llegó con un índice negativo. Tampoco debería pasar: es una salvaguarda interna, y la fila sale suelta (⚠) porque no hay bloque al que engancharla |
#N se recoge en esta misma tanda | Ese #id está a la vez en las recogidas y en los movimientos: gana la recogida y el movimiento no se hace |
la rotación N no es válida (0 a 7) | Una rot fuera de 0 a 7. El editor ya la marca antes de aplicar con el error 'rot': N está fuera de rango (0..7), así que es una salvaguarda |
la altura N está fuera de rango (-4000 a 8000) | Una z fuera de rango. También la marca antes el editor, con 'z': N está fuera de rango (-4000..8000): es una salvaguarda |
la casilla (x,y) no existe en la sala | Esa baldosa cae fuera de la rejilla del modelo |
la casilla (x,y) no es suelo | La baldosa existe en la rejilla pero es un hueco del modelo (una x del mapa de alturas): ahí no se puede colocar nada |
el furni ocupa la casilla (x,y), que no es suelo | El wired es más grande de 1x1 y, con esa rotación, alguna de las baldosas que ocuparía es un hueco |
la pila de la casilla (x,y) pasa del tope de 80 de altura | Lo que ya hay apilado en esa baldosa llega al tope de altura: el wired no cabe encima |
Un movimiento falla por estos mismos tres motivos de casilla: la del destino puede no existir, no ser suelo o estar ya en el tope de 80 — exactamente igual que si estuvieras colocando ahí un furni nuevo.
Con :setz encendido no salen
Las tres últimas (no es suelo, el furni ocupa…, la pila…) no se aplican mientras tengas
activo el modo de altura libre :setz, exactamente igual que al colocar (o mover) un furni a mano:
en ese modo sí se puede plantar sobre un hueco del modelo y por encima del tope de 80.
Y los de la compra, los mismos que aplica el aplicador de W-Presets (llegan tal cual, sin acentos):
| Motivo | Qué significa |
|---|---|
no esta a la venta en el catalogo | Ese furni no tiene oferta de compra para ti |
es un rare o tiene existencias limitadas | Un LTD o algo con contador de existencias: no se compra por este camino |
cuesta X pixeles + Y specialcoins + Z esmeraldas ademas de creditos, y este flujo solo compra a creditos | Se paga con otra moneda además de créditos |
su contenido lo pone el catalogo al comprarlo (placa, trofeo, grupo, disco...) y hay que comprarlo desde alli | Su contenido lo rellena el catálogo: hay que comprarlo desde allí |
el furni base ya no existe en este hotel | El furni base desapareció |
es un cofre: lo compra y lo coloca a mano el dueño de la sala | Los cofres no se crean por texto (tampoco con W-Presets): los pone a mano el dueño de la sala. Si no eres el dueño de la sala, o la sala ya tiene sus 10 cofres, la fila dice en cambio la regla que no cumples: Solo el dueño de la sala puede colocar cofres, y solo los suyos. o La sala ya tiene el máximo de 10 cofres. |
La vista previa mira tu saldo: si lo que compra la tanda cuesta más créditos de los que tienes,
sale la fila ⚠ suelta no tienes créditos suficientes: la tanda cuesta X créditos y tienes Y y
Aplicar queda apagado mientras sea así. Aun así, cada pieza se vuelve a comprobar justo antes de
hacerse: si algo cambia entre la vista previa y la ejecución (gastas créditos en otra cosa, la
oferta cambia, la sala se llena por otro camino), su fila sale en el panel de resultados con el motivo
exacto que dio el servidor —una compra que ya no puedes pagar, con
no se pudo comprar (saldo o disponibilidad)—; solo cae en no se pudo comprar o colocar cuando no
dio ninguno. Lo que ya se colocó se queda: no es todo o nada.
Un movimiento también se vuelve a comprobar antes de hacerse: si la casilla destino cambió desde la
vista previa (alguien apiló algo hasta el tope, por ejemplo), la fila sale con ese motivo y el resto
de la tanda sigue adelante. no se pudo mover a (x,y) solo sale si la casilla cambia en ese mismo
instante.
Un caso se pinta aparte, en ámbar y con ⚠ en vez de ✗:
| Mensaje | Qué significa |
|---|---|
comprado pero no cabía en (x,y): está en tu inventario | La compra sí se hizo y el furni no cupo: lo tienes en el inventario. Como cada pieza comprueba su casilla justo antes de comprarse, solo pasa si alguien apila algo en esa baldosa en ese mismo instante |
comprado pero no se pudo colocar | La compra sí se hizo, pero el furni no se colocó por algo que no era la casilla, como un fallo al entregarlo: puede que no haya llegado a existir. Mira si está en tu inventario y, si no está, avisa al staff |
Mensajes de la tanda entera
Cuando el servidor rechaza la petición completa, la fila del panel lleva su texto:
| Mensaje | Cuándo |
|---|---|
En modo de prueba no se compra nada: quítalo para crear bloques nuevos. | Tienes activado el modo de prueba, que es una preferencia tuya y no de la sala: puedes editar, mover y recoger, pero no comprar; desactívalo para aplicar bloques nuevos |
No estás en una sala. | Se aplicó fuera de una sala |
No puedes colocar furnis en esta sala ahora mismo. | No tienes derechos de decoración en la sala, o la sala está en venta |
La sala está bloqueada por el staff: solo el staff puede modificarla. | El staff ha bloqueado la sala: mientras siga así, solo el staff crea, mueve o recoge |
No tienes permiso para modificar los wireds de esta sala. | Falta el permiso de wired |
Espera un momento antes de volver a aplicar. | Pediste otra vista previa antes de que pasaran los 2 s de respiro |
Demasiados bloques nuevos de una vez. / Demasiadas recogidas de una vez. / Demasiados movimientos de una vez. / Demasiadas alturas de una vez. / Demasiados cambios de una vez (tope 2000). | Más de 2000 creaciones, recogidas, movimientos o alturas en una sola tanda (la sala sigue teniendo su propio tope de furnis) |
Solo una operación por packet. | El servidor solo acepta una recogida, un movimiento o una creación por paquete. Solo lo verás con un cliente modificado: el editor siempre manda uno |
Demasiado rápido. | Menos de 100 ms desde la última pieza construida. Solo lo verás con un cliente modificado o una conexión muy rara: el editor ya deja 150 ms entre piezas, y si le toca reintenta esa misma pieza una vez; si vuelve a pasar, la construcción se corta ahí |
el servidor rechazó la construcción | El servidor dijo que no sin dar motivo |
Paquete malformado. | El servidor no pudo leer la petición entera (no debería pasar desde el editor: es una salvaguarda interna). No se toca nada |
sin respuesta del servidor | La vista previa no contestó a tiempo. No se ha tocado nada: vuelve a pulsar y ya está |
sin respuesta: se construyeron N de M | La construcción real no contestó a tiempo a una pieza, y se corta ahí. Esa pieza sale como sin respuesta: no se sabe si se compró (o …se recogió, …se movió, …se cambió la altura): el servidor pudo hacerla y ser la respuesta lo que se perdió. Las que faltaban salen como no se compró: se cortó la construcción (o no se recogió: …, según la pieza). Lo hecho se queda y se guarda su configuración; luego el editor recarga. Mira lo que hay antes de volver a pulsar Aplicar, o comprarás los mismos wireds dos veces |
motivo — se construyeron N de M | El servidor rechazó la tanda a mitad de la construcción (por ejemplo, perdiste los derechos). Se corta igual que en la fila anterior, pero la pieza en marcha sale como no se compró: motivo (o no se recogió: motivo…, según lo que fuera) |
sin respuesta del servidor para este bloque | El servidor no dijo ni que sí ni que no sobre esa creación |
cancelado: cambio de sala | Saliste de la sala en mitad de la tanda |
recogido al inventario | ✓ Ese wired o furni se recogió (una fila por cada #id borrado) |
no se recogió (el servidor no lo aceptó) | Ese #id se pidió recoger y el servidor no lo hizo. Su bloque ya no está en el texto, así que sin esta fila parecería recogido. Igual que en la vista previa, no sale si el servidor ya dio su propio motivo para ese #id |
↕ #id z → 300 | ✓ Esa altura/rotación se guardó |
#id línea L: motivo | ✗ Esa altura/rotación se rechazó, con el motivo del servidor (por ejemplo, #N no está en la sala si dejó de estarlo entre la vista previa y el Aplicar). Es la forma de toda fila ✗ de un bloque o línea con #id |
Permisos
Crear, mover y recoger piden más que editar un bloque con #id. Los permisos comunes a las tres
son: derechos de decoración en la sala (ser su dueño, estar en su lista de derechos, ser
administrador de su grupo o, si el grupo lo permite, miembro; también el staff con control de salas),
permiso para modificar los wireds y que la sala no esté en venta ni
bloqueada por el staff. Solo comprar exige, además, no tener activado el modo de prueba
(Enable playtesting mode, en tus
preferencias de las herramientas de creador).
«Coloca más» y los W-Presets piden lo mismo para comprar, salvo el permiso para modificar los wireds.
| Acción | Qué hace falta |
|---|---|
Editar un bloque con #id, sin moverlo | Lo de siempre: ver Editar y aplicar |
| Crear | Los permisos comunes y no tener activado el modo de prueba |
| Mover | Los permisos comunes; el modo de prueba no lo frena. No hace falta que el wired o el furni sea tuyo — igual que arrastrarlo con el ratón |
Cambiar altura o rotación de un furni | Lo mismo que mover. No hace falta que sea tuyo |
| Recoger | Lo mismo que mover, y además que el furni sea tuyo, o que seas el dueño de la sala, staff con control de salas o administrador del grupo — igual que recogerlo con el ratón. Los cofres solo los recoge el dueño de la sala, ni siquiera el staff. Un Espacio Alquilable alquilado y los furnis de Builders Club no se recogen por texto |
Recoger una caja variable.* permanente o compartida | Lo mismo que recoger, y además marcar en la vista previa la casilla «Entiendo que se borrarán los valores permanentes de estas variables» |
| Recoger el complemento Web API de variables | Lo mismo que recoger, y además marcar en la vista previa la casilla «Entiendo que las claves de la API de estos complementos se borran sin vuelta atrás (al volver a colocarlos serán otras)» |
Sin el permiso que toque, ese cambio no se aplica. Si falta uno de los comunes, el servidor rechaza la
tanda entera con su mensaje (ver Mensajes de la tanda entera). Una
recogida sin ser tuya sale como la fila suelta #N no es tuyo (la de un cofre, como
#N: Solo el dueño de la sala puede recoger los cofres.), y una caja permanente sin confirmar
como #N guarda valores permanentes: confírmalo en la vista previa — todas con Aplicar apagado
(ver Cuando una fila no se puede hacer).
Lo que no se puede hacer
| Rotar un wired por texto | Los wireds no llevan rot en el DSL: los bloques nuevos salen siempre con rotación 0 y mover un bloque existente conserva la que ya tenía. Un furni sí se rota — ver Furnis normales |
Duplicar repitiendo un #id | Es un error (el wired #N aparece dos veces). Para duplicar, quita el #id |
Crear effect.give_reward, effect.bot_follow_avatar, condition.conditionstatepos o condition.conditionuserhasfurni | Un bloque nuevo de cualquiera de los cuatro da el error familia.nombre ya no se puede crear con Wired Code. Los que ya están en la sala se leen y se editan como cualquier otro (Dar Premio, solo si tienes permiso de Super Wired: sin él sale como comentario y no se toca) |
| Crear cofres, teletransportadores o Nexos de Sala | La vista previa rechaza su línea furni con su motivo (ver Cuando una fila no se puede hacer): cómpralos y colócalos a mano |
Referenciar un bloque nuevo por su #id | Todavía no lo tiene: ponle una etiqueta y referéncialo por ella (ver Qué puede referenciar un bloque nuevo) |
| Construir en otra sala | El documento es siempre el de la sala en la que estás |
| Aplicar todo o nada | Si algo falla a mitad, lo anterior queda hecho |
Y un caso que no es una limitación sino una salvaguarda: una pieza que el editor no sabe leer, una nueva del servidor que todavía no conoce, sale como comentario y no se toca, igual que un Dar Premio que no puedes ver sin permiso de Super Wired. No cuenta como borrado aunque no haya bloque suyo en el texto, y si mueves o borras la pila en la que está, se queda en su casilla.
Editar y aplicar
El flujo de Wired Code: recargar, aplicar solo lo cambiado, leer el panel de problemas y resultados, atajos y qué significa cada error.
Guía para generar scripts
Las convenciones que debe seguir un script de Wired Code generado (por una persona o por una IA) para que se aplique de una vez, se lea bien y quede optimizado.