Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le tabelle del bottino sono file in formato JSON utilizzati per definire come vengono generati gli oggetti nel gioco. Possono essere usati per generare il contenuto delle casse, per definire quali oggetti un'entità rilascia alla morte o persino con quali oggetti è equipaggiata un'entità. In alcuni casi sono usate anche nelle meccaniche di gioco, come la mungitura di un mooshroom o la pesca.
I file della tabella del bottino si trovano nella directory principale di un pacchetto di comportamenti e in genere sono costituiti da tre sezioni principali note come "pool".
- Lanci
- Quante volte questo pool verrà lanciato per selezionare una voce. Può essere un numero intero che indica una quantità fissa di lanci o un intervallo min/max dal quale è possibile scegliere il numero di lanci.
- Condizioni (opzionale) ulteriori informazioni
- Sono le condizioni che devono essere soddisfatte affinché questo pool venga lanciato.
- Voci
- Si tratta di un elenco di oggetti da cui il gioco selezionerà in questo lancio. Può essere
item
,loot_table
oempty
se vuoi una possibilità che non succeda nulla in questo lancio.
- Si tratta di un elenco di oggetti da cui il gioco selezionerà in questo lancio. Può essere
In questo tutorial imparerai quanto segue:
- Come utilizzare JSON per definire una tabella del bottino.
- Come applicare funzioni alle voci per modificare l'oggetto selezionato.
- Come utilizzare le condizioni per limitare ulteriormente la selezione di un pool o di una voce.
Requisiti
Prima di iniziare questo tutorial, ti consigliamo di completare i seguenti passaggi:
Utilizzo di base
Per prima cosa creiamo una tabella del bottino che restituisce un solo diamante quando viene chiamata.
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:diamond"
}
]
}
]
}
Come puoi vedere, abbiamo definito un singolo pool lanciato solo una volta e contiene un singolo diamante a ogni lancio. Se dovessi combinare questa operazione con il componente minecraft:loot all'interno del file di comportamento di un'entità, rilascerebbe il diamante alla morte.
E se ora volessi scegliere tra due oggetti? E se volessimo restituire un diamante o un pezzo di carbone? Otterremmo questo risultato aggiungendo un secondo valore all'oggetto entries
.
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:diamond"
},
{
"type": "item",
"name": "minecraft:coal"
}
]
}
]
}
Qui va notato che ora un diamante ha le stesse probabilità di essere rilasciato del pezzo di carbone. A tutte le entries
viene assegnato un weight
. Se non ne specifichi uno, verrà impostato come predefinito su 1
, dando a tutte le entries
la stessa possibilità di essere lanciate. Per regolare questa situazione, dovremo definire il valore weight
da soli.
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1
},
{
"type": "item",
"name": "minecraft:coal",
"weight": 7
}
]
}
]
}
Il modo migliore per capire come il weight
influenza il lancio consiste nell'immaginare che l'esempio sopra non contenga due voci, ma otto: sette possibilità per il carbone e una per il diamante. Ciò significa che è sette volte più probabile che il lancio risulti in un pezzo di carbone rispetto al diamante.
Anche nei file di base della Bedrock Edition esiste il modificatore di quality
di Java Edition (che regola il weight
in base sull'attributo Fortuna del giocatore), la Bedrock Edition attualmente non supporta l'attributo Fortuna, rendendo questa funzione assolutamente inutile.
Puoi anche rendere casuale il numero di volte in cui un set di entries
viene lanciato. La chiave rolls
può essere impostata con un valore min
e uno max
da cui il gioco sceglierà casualmente.
{
"pools": [
{
"rolls": {
"min": 1,
"max": 3
},
"entries": [
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1
},
{
"type": "item",
"name": "minecraft:coal",
"weight": 7
}
]
}
]
}
Quanto sopra farà sì che il gioco lanci le voci da una a tre volte. Ciò si traduce in un minimo di un oggetto e un massimo di tre ogni volta che viene chiamata questa tabella del bottino.
Ecco un altro esempio che utilizza una tabella del bottino come una delle voci. In questo modo il gioco chiamerà l'altra tabella del bottino e restituirà tutto ciò che vi è all'interno.
{
"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
}
]
}
]
}
Tieni presente che le tabelle de bottino non possono fare riferimento a se stesse in alcun modo. Se un lancio risulta in una tabella del bottino ricorsiva, non verrà restituito nulla.
Funzioni e modifica degli oggetti
Le funzioni sono operazioni facoltative che possono essere aggiunte a una voce che modifica un oggetto. Può consentire di definire la quantità di un oggetto restituita, modificare gli attributi di quell'oggetto o un numero qualsiasi di altre operazioni. In questo articolo tratteremo alcuni degli usi più comuni delle funzioni, ma puoi ottenere una spiegazione approfondita di tutte le funzioni disponibili nel tutorial sulle funzioni delle tabelle del bottino e degli scambi.
set_count
Permette di impostare una quantità minima e massima di oggetti restituiti con questa voce:
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 6
}
}
]
}
L'esempio precedente restituirà da uno a sei diamanti ogni volta che viene lanciata quella voce.
set_data
Imposta il valore dei dati di un oggetto. È utile ad esempio per restituire una pozione specifica o un colore specifico di tintura. Consente inoltre di restituire diversi valori di blocco, come un colore specifico di lana o un certo tipo di tronco.
{
"type": "item",
"name": "minecraft:potion",
"weight": 1,
"functions": [
{
"function": "set_data",
"data": 21
}
]
}
L'esempio precedente restituirà una Pozione di cura.
{
"type": "item",
"name": "minecraft:wool",
"weight": 1,
"functions": [
{
"function": "set_data",
"data": 1
}
]
}
Questo esempio restituirebbe della lana arancione.
specific_enchants
Questa funzione ti consente di impostare su un oggetto un elenco di incantesimi specifici. Consente anche di applicare incantesimi a oggetti che normalmente non sarebbero incantabili nel gioco.
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "specific_enchants",
"enchants": [
"knockback",
"fire_aspect"
]
}
]
}
Puoi definire gli incantesimi come oggetti per definire anche un livello di incantesimo. I livelli massimi di incantesimo sono a codifica fissa e non possono essere sovrascritti.
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "specific_enchants",
"enchants": [
{
"id": "knockback",
"level": 1
},
{
"id": "unbreaking",
"level": 3
}
]
}
]
}
Funzioni multiple
È possibile definire più funzioni. Ecco un esempio di combinazione di due funzioni insieme. In questo esempio, la voce restituirà da una a tre Pozioni di cura.
{
"type": "item",
"name": "minecraft:potion",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 3
}
},
{
"function": "set_data",
"data": 21
}
]
}
Le funzioni multiple possono anche essere un multiplo della stessa, ma se c'è un conflitto tra quelle funzioni, prevarrà l'ultima a essere definita.
Ad esempio, utilizzando più funzioni set_count
, come nell'esempio seguente, risulterà nell'utilizzo solo dell'ultimo dei duplicati, facendo sì che l'oggetto abbia un numero compreso tra 5 e 7 anziché tra 1 e 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
}
}
]
}
Condizioni
Le condizioni sono un elenco di requisiti che devono essere soddisfatti prima di poter utilizzare un pool o di selezionare una singola voce. Tutte le condizioni sono memorizzate all'interno dell'elenco delle condizioni. Ogni condizione viene eseguita una alla volta. Se una qualsiasi condizione nell'elenco fallisce, quanto rimane nello stesso elenco verrà ignorato.
La corrispondenza dell'attrezzo
match_tool
è una condizione che controlla se l'attrezzo (o l'arma o qualsiasi oggetto utilizzato dal giocatore) usato per far rilasciare il bottino corrisponde all'insieme di condizioni del modificatore fornito.
I predicati utilizzati sono: conteggio, durata, incantesimi e oggetto.
- count: quantità dell'oggetto
- range_max: il valore massimo
- range_min: il valore minimo
- durability: la durata dell'oggetto
- range_max: il valore massimo
- range_min: il valore minimo
- enchantments: elenco di incantesimi
- enchantment: ID di un incantesimo
- levels: il livello dell'incantesimo
- range_max: il valore massimo
- range_min: il valore minimo
- item: l'ID di un oggetto
Esempio:
"conditions": [
{
"condition": "match_tool",
"enchantments": [
{
"enchantment": "sharpness",
"levels": {
"range_max": 6
}
}
],
"item": "minecraft:diamond_sword",
"count": 1,
"durability": {
"range_min": 1
}
}
]
Condizioni del pool
L'applicazione di una condizione a un pool consente di eseguire l'intero pool in base alle condizioni definite.
L'esempio seguente si attiverà solo se l'entità che lo chiama è stata uccisa da uno scheletro che ha prodotto un diamante o un pezzo di carbone.
{
"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
}
]
}
]
}
Condizioni delle voci
Puoi anche applicare condizioni a specifiche entries
all'interno del lancio. L'esempio seguente restituirà il diamante solo il 50% delle volte se l'entità che lo ha chiamato è stata uccisa dal giocatore. Tutte le altre volte che viene chiamata, restituirà carbone.
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:diamond",
"weight": 1,
"conditions": [
{
"condition": "killed_by_player"
}
]
},
{
"type": "item",
"name": "minecraft:coal",
"weight": 1
}
]
}
]
}
Esplorare le diverse funzioni e condizioni disponibili può permetterti di personalizzare davvero l'esperienza del tuo giocatore. Puoi nominare gli oggetti e dare loro tradizioni, lasciare casse di risorse piene di rifornimenti e persino creare libri scritti per istruzioni o informazioni.
E adesso?
Ci sono molte altre funzioni che possono modificare l'oggetto selezionato. Il prossimo tutorial le esaminerà.