Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las mesas de botín son archivos con formato JSON que se utilizan para definir cómo se generan los elementos en el juego. Se pueden usar para generar el contenido de cofres, definir qué elementos sueltan una entidad al morir o incluso con qué elementos está equipada una entidad. En algunos casos, incluso se usa en mecánicas de juego, tales como ordeñar una champiñaca o pescar.
Los archivos de las mesas de botín están ubicados en el directorio raíz de un pack de comportamiento y, por lo general, constan de tres secciones principales conocidas como "grupo".
- Vueltas
- Cuántas vueltas se darán con este grupo para seleccionar una entrada. Podría ser un número entero para definir una cantidad determinada de vueltas o un rango mínimo/máximo dentro del cual se puede elegir la cantidad de vueltas.
- Condiciones (opcional) más información
- Estas son las condiciones que deben cumplirse para que se den las vueltas con este grupo.
- Entradas
- Es una lista de objetos de la cual seleccionará el juego en esta vuelta. Los valores posibles son
item,loot_tableoemptysi quieres tener la posibilidad de que no suceda nada en esta vuelta.
- Es una lista de objetos de la cual seleccionará el juego en esta vuelta. Los valores posibles son
Con este tutorial, aprenderás lo siguiente:
- Cómo usar JSON para definir una mesa de botín.
- Cómo aplicar funciones a las entradas para modificar el elemento seleccionado.
- Cómo utilizar las condiciones para restringir aún más la selección de un grupo o una entrada.
Requisitos
Se recomienda que completes lo siguiente antes de comenzar este tutorial.
Uso básico
Primero, creemos una mesa de botín que devuelva un solo diamante cuando se la llama.
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:diamond"
}
]
}
]
}
Como puedes ver, definimos un solo grupo al que se le da una sola vuelta y que contiene un solo diamante en cada vuelta. Si tuvieras que combinar esto con el componente minecraft:loot dentro del archivo de comportamiento de una entidad, soltaría ese diamante al morir.
Ahora bien, ¿y si quisiera elegir entre dos elementos? ¿Y si quisiéramos devolver un diamante o un trozo de carbón? Eso se lograría agregando un segundo valor al objeto entries.
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:diamond"
},
{
"type": "item",
"name": "minecraft:coal"
}
]
}
]
}
Ahora verás que existen las mismas probabilidades de que suelte un diamante como de que suelte un trozo de carbón. A todas las entries se les asigna un weight. Si no especificas uno, se usará el valor predeterminado 1, que les otorga a todas las entries la misma probabilidad de que se las incluya en una vuelta. Para ajustar eso, necesitaremos definir nosotros el valor del weight.
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1
},
{
"type": "item",
"name": "minecraft:coal",
"weight": 7
}
]
}
]
}
La mejor manera de entender de qué manera weight afecta la tirada es imaginar que el ejemplo anterior no tiene dos entradas, sino ocho: siete probabilidades de que aparezca un trozo de carbón y una de que aparezca un diamante. Eso significa que es siete veces más probable que el resultado de la ronda sea un trozo de carbón que un diamante.
A pesar de que el modificador quality de Java Edition (que ajusta el weight en función del atributo Luck del jugador) existe en los archivos originales de Bedrock Edition, esta edición no admite actualmente el atributo Luck, lo que deja esta función sin ninguna utilidad.
También puedes aleatorizar la cantidad de vueltas que se da a un conjunto de entries. Las rolls se pueden configurar con un valor min y uno max, entre los cuales el juego elegirá al azar.
{
"pools": [
{
"rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1
},
{
"type": "item",
"name": "minecraft:coal",
"weight": 7
}
]
}
]
}
El código de arriba hará que el juego dé entre una y tres vueltas por las entradas. Esto da como resultado un mínimo de un elemento y un máximo de tres cada vez que se llama a esta mesa de botín.
Aquí hay otro ejemplo que usa una mesa de botín como una de las entradas. Esto hará que el juego llame a la otra mesa de botín y devuelva lo que se obtenga como resultado.
{
"pools": [
{
"rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1
},
{
"type": "item",
"name": "minecraft:coal",
"weight": 7
},
{
"type": "loot_table",
"name": "loot_tables/custom/some_loot_table",
"weight": 1
}
]
}
]
}
Ten en cuenta que las mesas de botín no pueden hacer referencia a sí mismas de ningún modo. Si una vuelta da como resultado una mesa de botín recursiva, no se devolverá nada.
Funciones y modificación de los elementos
Las funciones son operaciones opcionales que se pueden agregar a una entrada que modifica un elemento. Podría permitirte definir qué cantidad de un elemento se devuelve, modificar los atributos de ese elemento o cualquier cantidad de otras operaciones. En este artículo, se tratan algunos de los usos más comunes de las funciones, pero puedes obtener una explicación detallada de todas las funciones disponibles en el tutorial de funciones sobre las mesas de botín y de comercio.
set_count
Te permite establecer una cantidad mínima y máxima de elementos que se devuelven con esta entrada:
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 6
}
}
]
}
El ejemplo anterior devolverá de uno a seis diamantes en cada vuelta de esa entrada.
set_data
Establece el valor de los datos de un elemento. Es útil para cosas tales como devolver una poción específica o un color específico de tinte. También te permite devolver diferentes valores de bloque, como un color específico de lana o cierto tipo de tronco.
{
"type": "item",
"name": "minecraft:potion",
"weight": 1,
"functions": [
{
"function": "set_data",
"data": 21
}
]
}
En el ejemplo anterior, se devuelve una Poción de curación.
{
"type": "item",
"name": "minecraft:wool",
"weight": 1,
"functions": [
{
"function": "set_data",
"data": 1
}
]
}
En este ejemplo, se devolvería lana naranja.
specific_enchants
Esta función te permite establecer una lista de encantamientos específicos para un elemento. También te permite aplicar encantamientos a elementos que normalmente no serían encantables en el juego.
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "specific_enchants",
"enchants": [
"knockback",
"fire_aspect"
]
}
]
}
Puedes definir los encantamientos como objetos para definir, además, un nivel de encantamiento. Los niveles máximos de encantamiento están preestablecidos y no se pueden sobrescribir.
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "specific_enchants",
"enchants": [
{
"id": "knockback",
"level": 1
},
{
"id": "unbreaking",
"level": 3
}
]
}
]
}
Múltiples funciones
Se pueden definir múltiples funciones. A continuación, se muestra un ejemplo de cómo combinar dos funciones. En este ejemplo, esta entrada devolverá entre una y tres Pociones de curación.
{
"type": "item",
"name": "minecraft:potion",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 3
}
},
{
"function": "set_data",
"data": 21
}
]
}
Varias funciones pueden incluso ser repeticiones de la misma función, pero si hay un conflicto entre ellas, gana la última que se haya definido.
Por ejemplo, el uso de múltiples funciones set_count, como en el ejemplo siguiente, dará como resultado que solo se use el último de los duplicados, por lo que el elemento tendrá un recuento de entre 5 y 7 en lugar de entre 1 y 3.
{
"type": "item",
"name": "minecraft:potion",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 3
}
},
{
"function": "set_count",
"count": {
"min": 5,
"max": 7
}
}
]
}
Condiciones
Las condiciones son una lista de requisitos que deben cumplirse para que se pueda utilizar un grupo o se pueda seleccionar una entrada individual. Todas las condiciones se almacenan dentro de la lista de condiciones. Cada condición se ejecuta de a una por vez. Si falla alguna de las condiciones de la lista, se omite el resto.
Condición de combinar herramienta
match_tool es una condición que verifica si la herramienta (o el arma u objeto que esté usando el jugador) que se usó para soltar el botín coincide con el conjunto de condiciones modificadoras proporcionado.
Los predicados que se usan son count, durability, enchantments y item.
- count: cantidad del objeto
- range_max: el valor máximo
- range_min: el valor mínimo
- durability: la durabilidad del objeto
- range_max: el valor máximo
- range_min: el valor mínimo
- enchantments: lista de encantamientos
- enchantment: un ID de encantamiento
- levels: el nivel del encantamiento
- range_max: el valor máximo
- range_min: el valor mínimo
- item: un ID de objeto
Ejemplo:
"conditions": [
{
"condition": "match_tool",
"enchantments": [
{
"enchantment": "sharpness",
"levels": {
"range_max": 6
}
}
],
"item": "minecraft:diamond_sword",
"count": 1,
"durability": {
"range_min": 1
}
}
]
Condiciones del grupo
Si aplicas una condición a un grupo, puedes ejecutar el grupo completo en función de las condiciones definidas.
El siguiente ejemplo solo se activará si la entidad que lo llamó fue asesinada por un esqueleto y se generó un diamante o un trozo de carbón.
{
"pools": [
{
"conditions": [
{
"condition": "killed_by_entity",
"entity_type": "minecraft:skeleton"
}
],
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1
},
{
"type": "item",
"name": "minecraft:coal",
"weight": 1
}
]
}
]
}
Condiciones de la entrada
También puedes aplicar condiciones a determinadas entries de la vuelta. El siguiente ejemplo solo devolverá diamantes el 50% de las veces si la entidad que lo llamó fue asesinada por el jugador. Todas las demás veces en las que se llame, devolverá carbón.
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1,
"conditions": [
{
"condition": "killed_by_player"
}
]
},
{
"type": "item",
"name": "minecraft:coal",
"weight": 1
}
]
}
]
}
Si exploras las diferentes funciones y condiciones disponibles, puedes realmente personalizar la experiencia del usuario. Puedes nombrar elementos y darles una historia, dejar cajas de recursos llenas de suministros e incluso crear libros con instrucciones o información.
¿Cuál es el siguiente paso?
Hay muchas otras funciones que pueden modificar el elemento seleccionado. Se repasan en el próximo tutorial.