Desarrollo de una Partida de Extractioncraft
Esta página documenta lo que ocurre realmente desde el momento en que se crea una partida hasta el momento en que se elimina el mundo instanciado, incluyendo los temporizadores, las reglas de extracción y la forma en que los jugadores pierden su equipo.
Crear la Partida
/exc createMatch <contentPackage.yml> entrega el betterStructuresModulesContainerName del paquete a BetterStructures, que genera un mundo instanciado completamente nuevo de forma asíncrona. Cuando termina la generación:
- Se crea un
ExtractionMatchpara ese mundo y comienza en el estado de espera. - El jugador que ejecutó el comando se añade a la partida y es teletransportado a un punto de aparición elegido al azar en el nuevo mundo.
- Aparecen los jefes instanciados definidos por los spawn pools del mapa.
Cualquiera que entre en la partida pasa a modo Aventura, y se recuerdan su modo de juego y ubicación anteriores para poder restaurarlos al salir.
No hay cola ni emparejamiento. Una partida existe porque alguien la creó.
Esperando Jugadores
/exc createMatch es la única ruta de código que mete a un jugador en una partida. Extractioncraft no registra ningún subcomando join y nada más llama al método de unión del runtime compartido, así que una partida contiene actualmente exactamente un jugador: la persona que la creó. Todo lo que sigue sobre unirse describe el runtime de partidas compartido de MagmaCore sobre el que se construye Extractioncraft — está configurado, pero todavía nada llega hasta él.
Mientras la partida está en espera:
- La ruta de unión permitiría jugadores hasta el
maxPlayersdel paquete (8 en todos los paquetes premade de Kobold Mines), rechazando una instancia llena confailedToJoinOngoingMatchAsPlayerInstanceIsFull. - Una vez que la partida está en curso, nadie más puede unirse: quienes llegan tarde reciben
failedToJoinOngoingMatchAsPlayerMessage. - El modo espectador no está disponible. Extractioncraft nunca marca sus partidas como espectables, así que las uniones como espectador siempre se rechazan y los mensajes de espectador de
messaging.ymlnunca se envían. - Salir ahora sale gratis: la regla de borrado de objetos solo se aplica una vez que la partida está en curso.
Inicio
Cualquier jugador dentro de la partida puede ejecutar /exc start.
- Si hay menos de
minPlayerspresentes, la partida se niega a empezar y se avisa a todos mediantematchFailedToStartNotEnoughPlayersMessage($amountse reemplaza con la cantidad requerida). - En caso contrario se ejecuta una cuenta regresiva de 3 segundos, con una actualización de título por segundo.
- Si el número de jugadores baja por debajo de
minPlayersdurante la cuenta regresiva, la partida se aborta y termina de inmediato.
En el momento en que termina la cuenta regresiva:
- Se colocan cofres y barriles por todo el mapa.
- La interacción con redstone, bloqueada mientras se prepara el mapa, se desbloquea para que puedan usarse las palancas de extracción.
- El temporizador de 15 minutos, el borde del mundo que se encoge y la barra de jefe de la brújula arrancan a la vez.
- Se pega en el mapa la versión decorativa (no utilizable) de cada punto de extracción.
Temporizadores
| Temporizador | Duración | Efecto |
|---|---|---|
| Temporizador de partida | 15 minutos | Se muestra como Timer MM:SS en el marcador lateral Extractioncraft, actualizado una vez por segundo. Se detiene en 00:00. |
| Desbloqueo de puntos de extracción | 1 minuto tras el inicio | Se pega la versión utilizable de cada punto de extracción, con su palanca incluida. |
| Ventana de extracción | 20 segundos | Se inicia al accionar la palanca de un punto de extracción. |
| Apertura de contenedores | 3 segundos | Tiempo que debes permanecer quieto para saquear un cofre o barril. |
El temporizador de la partida no termina la partida por sí mismo: eso lo hace el borde del mundo.
El Borde del Mundo
El borde empieza con 740 bloques de ancho y se encoge un bloque aproximadamente cada 24 ticks (unos 1,2 segundos), llegando a cero poco antes de la marca de los 15 minutos (740 pasos de reducción a 24 ticks cada uno son 14 minutos y 48 segundos).
La distancia de advertencia del borde se fija en el ancho actual del borde menos 50 (690 bloques al principio). Como Minecraft mide la distancia de advertencia como "a cuántos bloques del borde empieza a teñirse la pantalla", un valor tan grande cubre toda el área jugable, así que la superposición roja de advertencia está activa para todo el mundo durante toda la partida en lugar de solo cuando te acercas al límite.
Como BetterStructures escala el nivel de los jefes según la distancia al centro del mapa —los niveles más altos en el medio, los más bajos en los extremos—, el borde que se encoge empuja a los jugadores de forma constante hacia la parte más difícil y más rentable del mapa.
Una vez que el borde llega a cero, el daño del borde se vuelve letal, y el daño letal elimina a los jugadores de la partida (ver más abajo). Cuando ya no queda ningún jugador, la partida termina y su mundo se elimina.
Extraerse
- Encuentra un punto de extracción. La barra de jefe en la parte superior de la pantalla es una tira de brújula: muestra un marcador
⦿para cada punto de extracción que esté dentro de 90° de hacia donde miras, a unos 3° por carácter. La barra aparece en cuanto empieza la partida, pero permanece vacía durante el primer minuto: los marcadores solo se dibujan para los puntos de extracción utilizables, que no se colocan hasta que salta el temporizador de desbloqueo. - Haz clic derecho en la palanca del punto de extracción. La palanca se consume, a todos los que estén a menos de 10 bloques se les avisa con "You have triggered an exit!" y se abre una única ventana de extracción de 20 segundos para ese punto.
- Permanece dentro de la zona de extracción: un cubo que se extiende 3 bloques desde el punto de extracción en todas las direcciones. Mientras estás dentro verás
Extracting! in N seconds!. - Salir muestra
Extraction cancelled!, pero la ventana sigue corriendo. Volver a entrar antes de que se cierre sigue contando. - Cuando la ventana se cierra, todos los que estén dentro se extraen a la vez:
Victory / Extraction successful!. Se les elimina de la partida y conservan todo lo que llevan encima.
Accionar la palanca la destruye. Si activas un punto y luego pierdes la ventana de 20 segundos, ese punto de extracción queda gastado: busca otro.
Muerte y Pérdida de Objetos
Las partidas de Extractioncraft dan a cada jugador una sola vida, y no hay reaparición ni cofre de muerte.
- El daño que mataría a un jugador se cancela por completo. En su lugar, se elimina al jugador de la partida.
- Al eliminarlo, su salud se restaura al máximo, se restaura su modo de juego anterior y se le teletransporta de vuelta al lugar donde estaba antes de entrar.
- Todo lo que hay en su inventario se vincula al alma (encantamiento soulbind de EliteMobs) y, después, si la eliminación no fue una extracción exitosa y
deleteItemsOnFailToExtractestá entrue(el valor predeterminado), se vacía todo el inventario.
La misma ruta de eliminación se usa para /exc leave, /exc quit y las desconexiones, así que las tres pierden tu botín en una partida en curso.
| Forma de salir | ¿Conservas el botín? |
|---|---|
| Extraído en un punto de extracción | Sí |
| Asesinado por un mob, un jugador o el borde | No (con la configuración predeterminada) |
/exc leave o /exc quit a mitad de partida | No (con la configuración predeterminada) |
| Desconectado a mitad de partida | No (con la configuración predeterminada) |
| Saliste mientras la partida seguía en espera o en cuenta regresiva | Sí |
Protecciones del Mundo
El mundo instanciado de la partida está protegido durante toda su vida:
- Los jugadores no pueden romper ni colocar bloques, usar harina de hueso ni dañar el terreno.
- La interacción con redstone está bloqueada hasta que empieza la partida.
- El PvP está bloqueado cuando el paquete de contenido define
pvpEnabled: false. - Los teletransportes hacia dentro o hacia fuera del mundo de la partida se cancelan. Solo pasan los teletransportes propios del plugin.
- Mientras la partida está en curso, el runtime busca intrusos en el mundo de la partida. Los operadores están exentos y reciben un aviso en la barra de acción en lugar de ser expulsados. Ten en cuenta que la expulsión en sí solo funciona con jugadores de los que el servidor todavía tiene un registro de jugador de partida (cualquiera que haya estado en una partida desde el último reinicio); un jugador que nunca ha estado en una partida es detectado pero no se le mueve realmente.
- Un watchdog también comprueba si hay jugadores que hayan salido de la región de la partida, pero intenta devolverlos a la ubicación de inicio de la instancia, que Extractioncraft nunca establece, así que esa red de seguridad concreta no funciona actualmente. En la práctica los teletransportes fuera del mundo de la partida ya se cancelan por completo.
Los administradores pueden desactivar estas protecciones para sí mismos con /exc protection bypass.
Fin de la Partida
Una partida termina cuando se elimina de ella al último jugador, ya sea porque se extrajo, murió, salió o se desconectó. Terminar la partida elimina permanentemente el mundo instanciado, así que nada de lo que quede dentro sobrevive.
Las partidas también se desmontan cuando se desactiva el plugin, lo que incluye /exc reload y el apagado del servidor.