Contenido generado con IA — puede contener errores.

Proteger terreno

Crear protecciones

Los tipos de núcleo y cada clave de un tipo, la tienda de protecciones, colocar un núcleo, el selector de dos esquinas, límites, reglas de solapamiento, altura, y recoger, mover o borrar una protección.

Una protección es una caja de bloques con un dueño. Se crea de una de dos formas: colocando un núcleo, un bloque comprado en la tienda o entregado por el staff, o seleccionando dos esquinas con el selector. Ambas pasan las mismas comprobaciones y terminan en el mismo tipo de protección; una seleccionada simplemente no tiene bloque núcleo.

Cada protección de la red es una fila de la base de datos. Los límites de un jugador cuentan todos los servidores, pero las reglas de solapamiento y distancia solo comparan protecciones del servidor y el mundo en que está el terreno nuevo.

Tipos

Un tipo es una clase de núcleo: el bloque que es, el ítem que sostienen los jugadores, el terreno que protege y las flags con las que empieza una protección nueva. tiers en config.yml los guarda, por id de tipo. Vienen tres:

TipoBloqueradiusÁreaPrecio en tienda
smallAMETHYST_BLOCK1021x212500
mediumPURPUR_BLOCK2041x4110000
largeCRYING_OBSIDIAN3571x7140000

El radio se cuenta a cada lado del núcleo, así que un lado mide radius × 2 + 1 bloques. Los tres vienen con height: FULL, sin permiso, sin límite propio y con la moneda por defecto.

Clave del tipoValor de un tipo nuevoQué hace
materialAMETHYST_BLOCKEl bloque y el ítem del núcleo. Lo que no sea un bloque colocable vuelve a AMETHYST_BLOCK.
name{primary}&lPROTECTION COREEl nombre del ítem. Los tipos incluidos dicen PROTECTION CORE [SMALL] y así.
lorevacíoLa descripción del ítem. Los tipos incluidos describen el área y dicen que la altura es completa.
radius10Bloques protegidos a cada lado del núcleo.
heightFULLFULL protege toda la columna, del suelo del mundo a su techo. CUBOID protege solo y-radius bloques por encima y por debajo del núcleo.
y-radius10Solo para CUBOID: la protección mide y-radius × 2 + 1 bloques de alto.
price0Precio en la tienda de protecciones. 0 deja el tipo fuera de la tienda.
currencyvacíoQué moneda cobra la tienda. Vacío es la moneda por defecto.
permissionvacíoNecesario para colocar el núcleo y para comprarlo en la tienda. Vacío para ninguno.
limit0Cuántas protecciones de este tipo puede tener un jugador. 0 para ningún límite propio.
flagsningunaLas flags con las que una protección nueva de este tipo empieza activadas. Las que no estén empiezan desactivadas.

Los tipos incluidos empiezan con mob-spawning, crop-growth, leaf-decay, liquid-flow y visitor-entry activadas, y pvp, explosions y fire-spread desactivadas. Las flags se explican en Personas y acceso.

Los tipos se editan en el juego desde el editor de tipos, que escribe estas mismas claves. Las vidas por tipo están en raids.tier-lives y el mantenimiento por tipo en upkeep.tier-costs, no dentro del tipo.

Roles y flags se copian al crear la protección

Una protección nueva copia la sección roles y las flags de su tipo en ese momento. Editar cualquiera de las dos después cambia las protecciones creadas a partir de entonces, nunca las que ya existen.

La tienda de protecciones

/protections → Tienda de protecciones muestra cada tipo con price mayor que 0, con su área, su altura y su precio. El botón se oculta mientras ningún tipo tenga precio. Al hacer clic en un tipo:

  1. Se rechaza si el tipo tiene un permission que el jugador no tiene.
  2. Se cobra el precio en la moneda del tipo, y se rechaza si el jugador no puede pagarlo.
  3. Se entrega un núcleo. Un núcleo que no cabe en el inventario se guarda y se entrega la próxima vez que el jugador entre.

El staff entrega núcleos con /protections admin give <jugador> <tipo> [cantidad], de 1 a 64 a la vez.

Colocar un núcleo

Colocar un ítem de núcleo protege el terreno a su alrededor. La colocación se rechaza, y el núcleo se queda en la mano, si falla cualquiera de estas:

  1. El jugador puede colocar un bloque ahí. Un núcleo no se puede colocar dentro de la protección de otro sin place en ella.
  2. El tipo del ítem sigue existiendo en tiers. Un núcleo de un tipo borrado se rechaza con "No existe ningún tipo de protección llamado …".
  3. El permission del tipo, si tiene uno.
  4. El mundo no está en settings.disabled-worlds (world_the_end por defecto).
  5. Los límites de abajo.
  6. El terreno no se solapa con ninguna otra protección y guarda la distancia con las de otros dueños. Ver Solapamiento y distancia.
  7. Con WorldGuard activado, el terreno no se solapa con ninguna región de WorldGuard que no sea de este plugin, la región global o las de settings.allowed-world-guard-regions. Se comprueba en los dos backends.

Las comprobaciones se hacen una vez antes de que el bloque se coloque, para poder rechazarlo, y otra vez cuando ningún otro plugin lo canceló. Si algo cambió entre medias, el bloque se quita y el núcleo se devuelve.

Una protección nueva se llama Terreno de %player% #%number% (la línea default-name de messages.yml), donde el número es cuántas tiene el jugador más uno. Su hogar empieza donde está el jugador. Con visualization.show-on-create activado, se le dibuja el borde al instante.

Proteger por selección

El botón Seleccionar terreno de /protections da al jugador un selector. Hace clic izquierdo en una esquina, clic derecho en la otra y luego shift + clic izquierdo para confirmar, o suelta el selector para cancelar. Después ve el área y el precio y se le pide confirmar.

El botón solo aparece mientras selection.enabled esté activado y el jugador tenga exyliaprotections.select (concedido a todos por defecto).

El selector solo existe para el cliente del jugador

El selector se envía con PacketEvents como un ítem que solo ve el cliente de ese jugador. Nunca llega al inventario real, así que no se puede soltar para otro, guardar en un cofre ni vender. Sin PacketEvents la selección se rechaza con "Proteger terreno por selección no está disponible."

ClavePor defectoQué hace
selection.enabledtrueSi los jugadores pueden proteger terreno por selección.
selection.tiermediumEl tipo con el que cuenta una selección: para el limit del tipo y sus flags iniciales.
selection.heightFULLFULL protege toda la columna de ambas esquinas. NORMAL protege solo los bloques entre las alturas de las dos esquinas.
selection.price-per-block5Precio por bloque de área (ancho × largo, sea cual sea la altura).
selection.currencyvacíoVacío es la moneda por defecto.
selection.min-side9El lado más corto que puede tener una selección.
selection.max-area10000El área máxima que puede cubrir.
selection.full-height-toolGOLDEN_HOEEl selector para selecciones de altura completa.
selection.normal-height-toolGOLDEN_AXEEl selector para selecciones NORMAL.

Una selección de 20x20 cubre 400 bloques y cuesta 2000. Todo lo que comprueba un núcleo colocado se comprueba cuando el jugador confirma las esquinas, y otra vez después de aceptar el precio, justo antes de cobrarle. Una protección seleccionada no tiene bloque núcleo: no se puede recoger ni ocultar, solo mover o borrar. Su hogar es donde estaba el jugador al confirmar.

No se pide el permiso del tipo de la selección

Una selección cuenta contra el limit de selection.tier, pero no se comprueba el permission de ese tipo. Si el tipo debe estar restringido, restringe la selección misma con exyliaprotections.select.

Las dos herramientas del selector también se usan para las parcelas.

Límites

A una protección nueva, colocada o seleccionada, se le aplican tres límites. Una protección movida no vuelve a contar contra ellos.

LímiteDónde se defineQué cuenta
Protecciones por jugadorEl exyliaprotections.limit.<n> más alto que tenga el jugador, o settings.default-limit (3) sin ningunoTodas las que tiene, en todos los servidores.
Por tipoEl limit del tipoLas suyas de ese tipo, en todos los servidores.
Por mundosettings.world-limits, un mapa de nombre de mundo a númeroLas suyas en ese mundo en este servidor. Un mundo que no esté no tiene límite propio.
settings:
  default-limit: 3
  world-limits:
    world: 2
    world_nether: 1

El nodo de límite también acepta el prefijo antiguo exyliasurvivalcore.protections.limit.<n>, así los límites concedidos cuando las protecciones vivían en ExyliaSurvivalCore siguen funcionando. Si un jugador tiene nodos de los dos prefijos, gana el número más alto.

Un nodo de límite 0 no significa cero

Solo cuenta un número mayor que 0. Un jugador que solo tiene exyliaprotections.limit.0 recibe default-limit, no cero protecciones. Para impedir que un jugador proteja terreno, quítale exyliaprotections.use, o baja default-limit y concede a los demás un nodo más alto.

El menú /protections muestra cuántas tiene un jugador sobre su límite. Los miembros de una protección no la cuentan en su propio límite; solo su dueño.

Solapamiento y distancia

ReglaSe aplica a
Las protecciones nunca se solapan.Todas las protecciones, sea quien sea su dueño.
Al menos settings.min-distance (8) bloques de terreno entre ellas, en horizontal.Protecciones de otros dueños. Las protecciones de un mismo jugador pueden tocarse.

Las dos reglas solo comparan protecciones cuyas alturas se cruzan. Una protección CUBOID o NORMAL puede estar justo encima o debajo de otra, incluso de otro dueño, siempre que sus rangos de altura no compartan ni un bloque.

Altura

Cómo se creóAltura
Núcleo de un tipo FULLToda la columna, de la altura mínima del mundo a la máxima.
Núcleo de un tipo CUBOIDy-radius bloques por encima y por debajo del núcleo.
Selección con selection.height: FULLToda la columna.
Selección con selection.height: NORMALDesde la esquina más baja hasta la más alta.

La altura de una selección sale solo de selection.height, no del tipo con el que cuenta. Las mejoras de nivel ensanchan una protección con un bonus de radio; ver Economía. Una protección ampliada por una fusión conserva la caja fusionada.

Quitar o mover una protección

Recoger. Al dueño que rompe su propio núcleo se le pide confirmar. Recibe un ítem que reconstruye la misma protección donde lo coloque: su nombre, roles, miembros, clanes, ajustes personales, flags, baneos, parcelas, nivel y la caja exacta que cubría. El banco se le paga al dueño, el warp público se retira y la venta termina. El nivel se limita al máximo del tipo, las parcelas que sobresaldrían en el sitio nuevo se descartan y no sobrevive nada que alquilara un inquilino. Un núcleo transportado que se vuelve a colocar debe su siguiente periodo de mantenimiento al momento.

A cualquier otro que rompa un núcleo se le rechaza — o, con los asaltos activados y siendo enemigo, lo golpea. Explosiones, pistones, fuego y líquidos nunca tocan un núcleo.

Ocultar quita el bloque núcleo y mantiene el terreno protegido; mostrarlo lo vuelve a poner. Necesita manage-core y que el jugador esté en el servidor y el mundo de la protección. Con los asaltos activados, un núcleo solo se puede ocultar con raids.allow-hidden-core.

Mover pone el núcleo encima del bloque que mira el jugador, a cinco bloques como mucho, en el mismo mundo. Toda la protección se mueve con él, con la misma forma y tamaño. Necesita manage-core, pasa todas las comprobaciones de colocación salvo los límites, cuesta settings.move-price (1000) en settings.move-currency y mueve el hogar a donde está el jugador. Si el movimiento no se puede guardar, se devuelve el precio.

Borrar, desde la pantalla de la protección, es solo del dueño y pide confirmación. El bloque núcleo se quita y el banco va al dueño, después de devolver a cualquier inquilino el tiempo que le quedaba.

Nada de esto funciona mientras la protección esté bajo ataque, asaltable, abandonada o alquilada. Recoger también se rechaza mientras se deba mantenimiento.

Los admins cuentan como dueños de todas las protecciones

Un jugador con exyliaprotections.admin (los operadores, por defecto) pasa toda comprobación de "solo el dueño". Al romper el núcleo de otro jugador se le pide recogerlo, y al confirmar el núcleo transportado se le entrega a él.

¿Falta algo en esta página? Dínoslo en Discord