2 votos

¿Se pueden utilizar comandos para dividir o empalmar cadenas NBT?

Estoy haciendo un mapa en el que dos jugadores reciben mitades de un mensaje, y luego tienen que viajar a través de sus propios cursos separados para reunirse en un punto central, donde el mensaje debe ser unido y presentado como un todo dentro de un cierto límite de tiempo para ganar el juego.

Para que funcione, la cadena con el mensaje debe dividirse por la mitad antes de ser enviada a los jugadores. Necesito encontrar una manera de dividir una cadena en un índice determinado.

Por ejemplo:

{String:"Life is a bowl of cherries",Index:10b}

necesita ser:

{ResultStringA:"Life is a ",ResultStringB:"bowl of cherries"}

No me importa la relación del número de índice con el punto de división, pero necesito asegurarme de que se puede manipular dinámicamente, por ejemplo con comandos.

Alternativamente, si no existe un método de división simple, pero sí un método para extraer una subcadena de una cadena NBT, también podría utilizarse para conseguir el efecto deseado.

Véase también: Concatenar cadenas NBT

2voto

herdivet Puntos 21

Desde Minecraft Java v1.19.4, una nueva opción se ha añadido a la /data modify mando. Al especificar un nuevo valor para una etiqueta, estas son las opciones actuales:

  • Existente: value - Para especificar el nuevo valor directamente dentro del comando.
  • Existente: from - Para especificar que el nuevo valor debe obtenerse de otra fuente.
  • Novedad: string - Para especificar que el nuevo valor es una cadena, debe obtenerse de otra fuente, y que debe extraerse una subcadena especificada de dicha fuente.

La sintaxis de estas opciones es la siguiente:

value <value>
from (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>]
string (block <sourcePos>|entity <source>|storage <source>) [<sourcePath>] [<start>] [<end>]

Muestras:

value "hello"
from entity @e[type=marker,limit=1,sort=nearest] CustomName
string storage test:main MyString 0 4

Los índices de string índice desde 0 siendo el primer carácter. Se incluye el carácter del índice inicial, pero no el carácter del índice final.

Sin embargo, los índices de string no son dinámicos. Esto supone una limitación en el sentido de que los índices de inicio y fin no pueden establecerse mediante valores de marcador o similares. La solución más común es un árbol de funciones, pero esto puede ser poco práctico dado el gran número de índices posibles.

Habrá que seguir estudiando las mejores soluciones para los índices dinámicos.

JugonesTop.com

Jugonestop es una comunidad para amantes del gaming. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X