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 e degli scambi condividono lo stesso set di funzioni. Sebbene la maggior parte funzioni su entrambi, alcune funzionano solo all'interno di un tipo specifico. Ci sono limitazioni alle tabelle di bottino/scambio in generale: per esempio, non c'è un modo per aggiungere can_place_on
o can_destroy
su un oggetto tramite le tabelle del bottino o dello scambio. Vedi di seguito per le diverse funzioni disponibili e per un esempio su come possono essere utilizzate.
In questo tutorial imparerai quanto segue:
- Una serie di funzioni delle tabelle del bottino e dello scambio e come possono modificare un oggetto.
Requisiti
Prima di iniziare questo tutorial, ti consigliamo di completare i seguenti passaggi:
Lanciare un incantesimo
Queste diverse funzioni di incantesimo ti consentono di impostare parametri di incantesimo univoci.
enchant_book_for_trading (solo tabella degli scambi)
Questa funzione lancia un incantesimo su un libro usando l'algoritmo per incantare gli oggetti venduti dagli abitanti del villaggio. Accetta quattro parametri: base_cost
, base_random_cost
, per_level_random_cost
e per_level_cost
.
{
"item": "minecraft:book",
"quantity": 1,
"functions": [
{
"function": "enchant_book_for_trading",
"base_cost": 2,
"base_random_cost": 5,
"per_level_random_cost": 10,
"per_level_cost": 3
}
]
}
Al momento, la definizione di questi parametri non influirà sull'incantesimo ricevuto. Attualmente, i valori predefiniti sopra sono a codifica fissa. In futuro, sarai in grado di modificare questi valori per restringere gli incantesimi e i livelli di incantesimo in cui questa funzione si traduce.
enchant_random_gear
Lancia un incantesimo su un oggetto utilizzando lo stesso algoritmo utilizzato quando si incanta l'equipaggiamento con cui nascono le creature di base. Accetta un modificatore chance
per manipolare l'algoritmo. Nota che un modificatore chance
di 1.0 non implica una probabilità del 100% che l'equipaggiamento venga incantato. La possibilità viene invece modificata in base alla difficoltà. Nelle difficoltà Pacifica e Facile, la probabilità sarà sempre 0%, qualunque cosa accada. In difficoltà Difficile, una chance
di 1.0 sarà del 100%, ma la probabilità è di circa 2/3 rispetto a quella in difficoltà Normale.
{
"type": "item",
"name": "minecraft:chainmail_boots",
"weight": 1,
"functions": [
{
"function": "enchant_random_gear",
"chance": 0.25
}
]
}
Aumentare chance
a un numero superiore a 1.0 può aiutare a bypassare la diminuzione della probabilità in difficoltà Normale. Ad esempio, se si imposta chance
su 2.0 l'oggetto verrà sempre incantato, sia in difficoltà Normale che Difficile.
enchant_randomly
Genera un incantesimo casuale compatibile con l'oggetto. Supporta il valore opzionale boolean
del tesoro (true/false) per consentire l'attivazione e la disattivazione degli incantesimi del tesoro. Gli incantesimi del tesoro sono quelli che non possono essere ottenuti tramite il tavolo per incantesimi, inclusi Camminatore del gelo, Riparazione, Velocità dell'anima, Maledizione del vincolo e Maledizione della sparizione.
{
"type": "item",
"name": "minecraft:leather_helmet",
"weight": 1,
"functions": [
{
"function": "enchant_randomly",
"treasure": true
}
]
}
enchant_with_levels
Applica un incantesimo come se l'oggetto fosse incantato attraverso un tavolo per incantesimi utilizzando un livello di XP minimo e massimo definito tramite il parametro levels
. Il valore booleano treasure
(true/false) consentirà l'utilizzo di incantesimi solo per i tesori. Gli incantesimi del tesoro sono quelli che non possono essere ottenuti tramite il tavolo per incantesimi, inclusi Camminatore del gelo, Riparazione, Velocità dell'anima, Maledizione del vincolo e Maledizione della sparizione.
{
"type": "item",
"name": "minecraft:diamond_sword",
"weight": 1,
"functions": [
{
"function": "enchant_with_levels",
"treasure": true,
"levels": {
"min": 20,
"max": 39
}
}
]
}
specific_enchants
Questa funzione ti consente di impostare su un oggetto un elenco di incantesimi specifici. Ti 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 anche definire gli incantesimi come oggetti per definire in modo specifico 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
}
]
}
]
}
Modificare gli elementi
Il seguente set di funzioni consente di modificare i risultati in modi diversi, ad esempio impostando la quantità di un oggetto restituita, il suo valore dei dati o persino il nome e la tradizione di un oggetto.
looting_enchant (solo tabella del bottino)
Questa funzione ti consente di modificare il numero di quanti oggetti vengono restituiti quando un'entità viene uccisa da un oggetto con l'incantesimo saccheggio. Per questo motivo funziona solo con le tabelle del bottino e solo se tale tabella viene richiamata dalla morte di un'entità.
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "looting_enchant",
"count": {
"min": 0,
"max": 1
}
}
]
}
random_block_state
Ti consente di rendere casuale lo stato di blocco dell'oggetto risultante. Ad esempio, il seguente codice di esempio può rilasciare pietra (0), granito (1), granito levigato (2), diorite (3), diorite levigata (4) o andesite (5).
{
"type": "item",
"name": "minecraft:stone",
"weight": 1,
"functions": [
{
"function": "random_block_state",
"block_state": "stone_type",
"values": {
"min": 0,
"max": 5
}
}
]
}
random_aux_value
Simile a random_block_state
, ti consente di scegliere un valore ausiliario casuale per un oggetto. L'esempio seguente risulterà in una tintura di colore casuale.
{
"type": "item",
"name": "minecraft:dye",
"weight": 1,
"functions": [
{
"function": "random_aux_value",
"values": {
"min": 0,
"max": 15
}
}
]
}
set_actor_id
Questa funzione funziona solo con uno spawn egg e viene utilizzata per impostarne l'ID entità.
{
"type": "item",
"name": "minecraft:stone",
"weight": 1,
"functions": [
{
"function": "set_actor_id",
"id": "compass:cool_entity"
}
]
}
Puoi anche ereditare l'ID dell'entità associata a quella tabella del bottino (ad esempio, fare in modo che un coniglio lasci cadere uno spawn egg di coniglio) omettendo l'id
.
{
"type": "item",
"name": "minecraft:spawn_egg",
"weight": 1,
"functions": [
{
"function": "set_actor_id"
}
]
}
Tieni presente che se usi set_actor_id
nella tabella del bottino di una cassa e ometti il valore id
, genererà lo spawn egg di qualunque cosa apra la cassa (il giocatore). Uno spawn egg di un giocatore genererà un "giocatore" che sta semplicemente in piedi e genera errori Molang (perché cerca di utilizzare il file di comportamento e i controller del giocatore). Se rompi una cassa contenente una tabella del bottino che utilizza un ID ereditato da set_actor_id
, rilascia uno spawn egg che non genera alcunché.
set_banner_details
Questa funzione si applica solo agli stendardi e attualmente supporta solo un type
di stendardo 1
. Un type
di stendardo 1
si traduce in uno stendardo da abitore.
{
"type": "item",
"name": "minecraft:banner",
"weight": 1,
"functions": [
{
"function": "set_banner_details",
"type": 1
}
]
}
set_book_contents
Questa funzione ti consente di impostare il contenuto di un libro.
{
"type": "item",
"name": "minecraft:written_book",
"functions": [
{
"function": "set_book_contents",
"author": "Steve",
"title": "Creator Woes",
"pages": [
"Once upon a time there were some marketplace partners that had to edit items using NBT. And it made them sad.",
"Then the Bedrock team added the ability to customize items from JSON and everyone rejoiced."
]
}
]
}
Puoi anche usare rawtext
per localizzare il contenuto del libro. Quando usi rawtext
, ricordati di inserire sempre la barra (\
) prima di caratteri speciali come "
e \
.
{
"type": "item",
"name": "minecraft:written_book",
"functions": [
{
"function": "set_book_contents",
"author": "Steve",
"title": "Creator Woes",
"pages": [
"{\"rawtext\":[ {\"translate\":\"custom.book.page.1\"}]}",
"{\"rawtext\":[ {\"translate\":\"custom.book.page.2\"}]}"
]
}
]
}
Tieni presente che puoi usare rawtext
solo sui contenuti del libro (pages
) quando li scrivi: rawtext
non funziona per i tag author
o title
.
set_count
Imposta la quantità di oggetti restituiti impostando il valore count
. Può essere un numero esatto come in questo esempio:
{
"type": "item",
"name": "minecraft:stone",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": 5
}
]
}
Oppure può essere compreso in un intervallo min/max:
{
"type": "item",
"name": "minecraft:stone",
"weight": 1,
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 6
}
}
]
}
set_damage
Imposta la percentuale di durabilità rimanente per gli oggetti durevoli impostando il valore damage
. 1.0 è il 100% della durabilità rimanente (oggetto non danneggiato), mentre 0.0 vuol dire nessuna durabilità residua.
Puoi impostarla su una durabilità esatta come nell'esempio seguente, in cui impostiamo l'oggetto in modo che abbia una durabilità residua del 50%.
{
"type": "item",
"name": "minecraft:iron_leggings",
"weight": 1,
"functions": [
{
"function": "set_damage",
"damage": 0.5
}
]
}
Oppure puoi stabilire una quantità minima/massima dalla quale il gioco sceglierà casualmente. Il prossimo esempio imposta la durabilità tra il 30% e il 90% rimanente.
{
"type": "item",
"name": "minecraft:iron_leggings",
"weight": 1,
"functions": [
{
"function": "set_damage",
"damage": {
"min": 0.3,
"max": 0.9
}
}
]
}
set_data
Imposta il valore dei dati di un blocco o di un oggetto su un ID esatto. L'esempio seguente risulterà in un blocco di diorite levigata.
{
"type": "item",
"name": "minecraft:stone",
"functions": [
{
"function": "set_data",
"data": 4
}
]
}
set_data_from_color_index
Eredita il valore dei dati dell'oggetto risultante dall'indice di colore dell'entità associata. Un esempio nel gioco potrebbe essere una pecora rosa che quando muore rilascia lana rosa. Se l'entità associata non ha un indice di colore impostato (o è utilizzata all'interno della tabella del bottino di una cassa), il valore di dati risultante sarà sempre pari a 0.
{
"type": "item",
"name": "minecraft:wool",
"weight": 1,
"functions": [
{
"function": "set_data_from_color_index"
}
]
}
set_lore
Questa funzione ti consente di impostare la tradizione di un oggetto. Ogni riga all'interno dell'oggetto tradizione rappresenta una singola riga di testo. Al momento non esiste il supporto per rawtext
.
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "set_lore",
"lore": [
"Big Stick has been handed down",
"for generations from King to Prince",
"until it went missing four score ago"
]
}
]
}
set_name
Questa funzione ti consente di impostare il nome di un oggetto. Al momento non esiste il supporto per rawtext
.
{
"type": "item",
"name": "minecraft:stick",
"weight": 1,
"functions": [
{
"function": "set_name",
"name": "Big Stick"
}
]
}
Varie
Quanto segue contiene funzioni non applicabili altrove.
fill_container
Questa funzione ti consente di definire la tabella del bottino di una cassa. Quando l'oggetto viene generato e il giocatore lo posiziona, sarà pieno dei contenuti definiti all'interno della tabella del bottino di riferimento.
Le tabelle del bottino delle casse vengono generate al momento dell'apertura o della rottura. Immaginala come una scatola di Schrödinger. Il contenuto della cassa non è deciso finché non ci guardi dentro.
{
"type": "item",
"name": "minecraft:chest",
"functions": [
{
"function": "fill_container",
"loot_table": "loot_tables/chests/simple_dungeon.json"
}
]
}
Si consiglia di utilizzare sempre set_name
per dare un nome alla cassa quando si usa fill_container
. In caso contrario, la cassa risultante non avrà un aspetto diverso nell'inventario del giocatore rispetto a una normale cassa vuota.
exploration_map
Trasforma una mappa normale in una mappa del tesoro che segna la posizione del tesoro nascosto. Il valore destination
definisce il tipo di mappa del tesoro ricevuto.
{
"type": "item",
"name": "minecraft:map",
"weight": 1,
"functions": [
{
"function": "exploration_map",
"destination": "buriedtreasure"
}
]
}
Al momento puoi scegliere tra le seguenti destinazioni:
Destinazione |
---|
tesoro sepolto |
città dell'End |
fortezza |
villa |
miniera |
monumento |
avamposto del saccheggiatore |
rovine |
relitto |
roccaforte |
tempio |
villaggio |
furnace_smelt (solo tabella del bottino)
Se l'oggetto da restituire ha una ricetta di fabbricazione che prevede la fusione e la tabella del bottino viene attivata da un'entità uccisa dal fuoco (Aspetto di fuoco, Pietra focaia e acciarino, lava, ecc.), il risultato sarà la versione fusa dell'oggetto. A causa di questi requisiti, questa funzione non vale per gli scambi con gli abitanti o per le casse. Questa funzione funziona solo se utilizzata in combinazione con il comportamento minecraft:loot
.
Nell'esempio seguente verrà rilasciato un blocco di pietra se l'entità viene uccisa dal fuoco, altrimenti verranno rilasciati dei ciottoli.
{
"type": "item",
"name": "minecraft:cobblestone",
"weight": 1,
"functions": [
{
"function": "furnace_smelt"
}
]
}