Acciones y requisitos
Cada paso que puede ejecutar un clic, requisitos, líneas deny y las expresiones que usan.
Acciones
En una pantalla, action se ejecuta con clic izquierdo, action-right con clic derecho y action-shift con un clic mientras se corre. Los pasos se separan con ; y se ejecutan en orden. En los
menús de cofre y 3D los mismos pasos son líneas de click, escritas entre corchetes.
| Paso | Qué hace |
|---|---|
[PLAYER] spawn | El jugador ejecuta /spawn (también player: spawn). |
[CONSOLE] give %player_name% diamond 1 | La consola lo ejecuta (también console: ...). |
[MESSAGE] {success}Hecho | Una línea de chat para el jugador. |
[MONEY] take 100, [MONEY] give 100 [moneda] | La economía del servidor, según el economy.yml de ExyliaLib. Un cobro que no pueden pagar detiene todos los pasos siguientes. |
[SERVER] survival | Los envía a otro servidor de la red. |
[TELEPORT] world,0,64,0 | Los mueve en este servidor (con comas, porque ; separa pasos). |
[DELAY] 1s | Espera antes de las líneas siguientes. |
[CHANCE] 30 | Las líneas siguientes se ejecutan el 30% de las veces; si no, la lista se detiene ahí. |
[HUD] texto;group:coins | Un aviso que entra deslizándose en el HUD del jugador; opciones anchor:, seconds:, group:. |
[MOMENT] texto | Un momento grande justo encima de la mira. |
[BROADCAST] {highlight}%player_name% {letters}ha ganado | Una línea de chat para todos los conectados. |
[DATA] set daily true | Recuerda un valor del jugador. Consulta Datos del jugador. |
[TITLE] ..., [ACTION_BAR] ..., [ACTION] ns:id | Los tokens de interacción de ExyliaLib. |
open shop | Abre otra pantalla (open shop tab=food fija su estado). |
close, back | Cierra la pantalla; vuelve a la anterior. |
sound entity.experience_orb.pickup 0.6 1.2 | Un sonido solo para el jugador. |
toast success 'Comprado' | Una nota corta en la pantalla (success, error, info, warning). |
confirm '¿Comprarlo por 1.000?' yes=Comprar no=Cancelar then ... | Pregunta primero; el resto solo se ejecuta si dice que sí. |
input text name 'Tu apodo' then [PLAYER] nick ${name} | Pide una línea de texto y continúa. |
set tab food, toggle open, clear tab | Estado de la pantalla, que se lee como %tab% o tab en las expresiones. |
animate shake, animate #balance pop 8t back | Reproduce una animación una vez en el elemento pulsado (necesita un id) o en el indicado. Consulta Movimiento. Solo en pantallas. |
En los menús de cofre y 3D, [CLOSE] cierra el menú y [SCREEN] <id> abre un menú de cualquier forma.
Un valor nunca se convierte en otro paso: el nombre de un jugador con un ; sigue siendo una palabra. Entrecomilla una palabra para conservar espacios o ;: [CONSOLE] say 'hola; mundo'.
Requisitos
require="<expresión>" en un elemento clicable: cuando es falsa, el clic ejecuta deny (o un sonido de rechazo discreto). require-right/deny-right y require-shift/deny-shift controlan solo ese clic.
<card require="balance() >= 50" deny="toast error 'Necesitas 50 monedas'; sound entity.villager.no"
action="[MONEY] take 50; [CONSOLE] give %player_name% bread 16; toast success 'Compraste 16 de pan'">Un rechazo se lee mejor cuando la propia tarjeta reacciona: deny="animate shake; sound entity.villager.no 0.4; toast error 'Necesitas 50 monedas'".
El mismo require y deny funcionan en un menú entero (consulta Apertura y alternativas) y, en los menús de cofre, en una ranura.
Esperas
cooldown en un elemento clicable de una pantalla hace que su action espere entre clics:
| Escrito | Significa |
|---|---|
cooldown="5s" | 5 segundos entre clics de este elemento (se guarda bajo su id). |
cooldown="daily 24h" | Una espera llamada daily, compartida por todas las pantallas que la nombren. |
Los tiempos son 500ms, 20t, 5s, 10m, 24h, 7d o varios juntos (1h30m). Una espera de 5 minutos o más
sobrevive a los reinicios. Mientras dura, un clic reproduce deny-cooldown (por defecto un sonido de rechazo y un toast
"Ready again in …" en el idioma del jugador). Un clic que su require rechazó no inicia ninguna espera.
<card id="claim" cooldown="daily 24h"
deny-cooldown="animate shake; toast warning ${t('wait', 'Next reward in')} ${fmt.time(cooldown('daily'))}"
action="[CONSOLE] give %player_name% diamond 3; animate pop; toast success 'Claimed'">
<small if="cooldown('daily') > 0">${fmt.time(cooldown('daily'))}</small>
<small else>{success}Claim</small>
</card>cooldown('daily') son los segundos que faltan, 0 cuando está listo, en cualquier expresión. El ejemplo de recompensas diarias está hecho con ella.
Expresiones
| Comprobaciones | perm('nodo'), balance() / balance('points'), has_item('diamond', 16), level(), world(), health(), food(), data('clave'), chance(30), cooldown('clave') |
| Red | players('survival') (jugadores en ese servidor, según el último recuento del proxy), players() (toda la red), online('survival') |
| Texto | contains(texto, 'parte'), matches(texto, 'regex'), plural(n, 'muerte', 'muertes') |
| Formato | fmt.number(x), fmt.time(segundos) |
| Valores | %cualquier_placeholder%, números, 'texto' |
| Operadores | == != < <= > >=, and or not, + - * /, a ? b : c |
Funcionan en if="..." (dibujar o no), en ${...} (cualquier texto) y en require. Los menús de cofre y 3D usan if: y require: con las mismas expresiones.
<small if="balance() >= 50" class="price-ok">50 monedas</small>
<small else class="price-short">50 monedas</small>¿Falta algo en esta página? Dínoslo en Discord