[Guida] Set di Equipaggiamento con Bonus

Chi di voi non è nuovo al genere RPG (o MMORPG) probabilmente sa cosa è un Set di Equipaggiamento.

Per quelli che non lo sanno, un set di equipaggiamento è un insieme di oggetti che se equipaggiati contemporaneamente danno un bonus al giocatore che li indossa.

Oggi replichiamo questa meccanica tipica degli RPG coi command block.

E potete stare tranquilli: è molto più facile dei Nomi Colorati in Vanilla



L'effetto che vogliamo è questo: Se un giocatore equipaggia un set di armatura particolare (che può essere personalizzato o no), allora ottiene un bonus in base al set equipaggiato.

In questo modo:

Elmo A + Corazza A + Gambali A + Stivali A = Bonus A

Elmo B + Corazza B + Gambali B + Stivali B = Bonus B

Elmo A + Corazza B + Gambali A + Stivali B = Nessun Bonus



1- Otteniamo un armatura da cui partire

Innanzitutto ci serviranno dei pezzi di armatura che dovranno far parte del set:

Citazione:/give @p minecraft:golden_helmet 1 0 {display:{Name:"Elmo della Forza",Lore:[Set - Armatura della Forza]},ench:[{id:1,lvl:10},{id:3,lvl:10}]}

Citazione:/give @p minecraft:golden_chestplate 1 0 {display:{Name:"Armatura della Forza",Lore:[Set - Armatura della Forza]},ench:[{id:1,lvl:10},{id:3,lvl:10}]}

Citazione:/give @p minecraft:golden_leggings 1 0 {display:{Name:"Gambali della Forza",Lore:[Set - Armatura della Forza]},ench:[{id:1,lvl:10},{id:3,lvl:10}]}

Citazione:/give @p minecraft:golden_boots 1 0 {display:{Name:"Stivali della Forza",Lore:[Set - Armatura della Forza]},ench:[{id:1,lvl:10},{id:2,lvl:10},{id:3,lvl:10}]}

Ora, troviamo il primo problema: dobbiamo distinguere l'armatura in oro che fa parte del set da TUTTE le altre possibili armature in oro.

Ci sono diversi metodi più o meno complessi e tediosi; Il più facile ed efficiente è questo:

Aggiungiamo ad ogni comando /give una NBT Tag PERSONALIZZATA (si, si può fare e l'oggetto tiene la tag per sempre)
La nostra tag sarà {Custom:1b} per il primo set {Custom:2b} per il secondo set e così via.

Quindi il nuovo comando è qualcosa di simile a questo:

Citazione:/give @p minecraft:golden_chestplate 1 0 {Custom:1b,display:{Name:"Armatura della Forza",Lore:[Set - Armatura della Forza]},ench:[{id:1,lvl:10},{id:3,lvl:10}]}

E' importante aggiungere il nostro tag a TUTTI i comandi give, altrimenti il set non funzionerà.


2- Scoreboard necessarie

Ora che abbiamo la nostra armatura del set, dobbiamo fare in modo che un giocatore venga riconosciuto dal gioco quando la sta utilizzando, e quindi indossa il set.

Ci serviremo delle scoreboards: creiamo intanto l'obiettivo SetArmatura

Citazione:/scoreboard objectives add SetArmatura dummy

Una volta creato questo obiettivo, piazziamo in quest ordine:

► Command Block Ripetizione Non Condizionale Sempre Attivo

Citazione:
scoreboard players set @a SetArmatura 0

In questo modo resettiamo. E' il modo più veloce, altrimenti dovremmo usare 10 command block per ogni set, e non vogliamo complicarci troppo la vita.

Ora dobbiamo assegnare al giocatore che ha equipaggiato tutto il set contemporaneamente un punteggio nell'obiettivo SetArmatura

► Command Block Catena Non Condizionale Sempre Attivo

Citazione:/scoreboard players set @a SetArmatura 1 {Inventory:[{id:"minecraft:gold_boots",Slot:100b,tag:{Custom:1b}},{id:"minecraft:gold_leggings",Slot:101b,tag:{Custom:1b}},{id:"minecraft:gold_chestplate",Slot:102b,tag:{Custom:1b}},{id:"minecraft:gold_helmet",Slot:103b,tag:{Custom:1b}}]}

Usiamo la funzione di filtraggio delle scoreboard per bersagliare solo i giocatori con certi requisiti.
In questo caso vogliamo dare un punteggio di 1 al ogni giocatore che:

► Indossa degli stivali d'oro che hanno il tag {Custom:1b} nello slot dei piedi E
► Indossa dei gambali d'oro che hanno il tag {Custom:1b} nello slot delle gambe E
► Indossa una corazza d'oro che ha il tag {Custom:1b} nello slot del petto E
► Indossa un elmo d'oro che ha il tag {Custom:1b} nello slot della testa.

In questo modo se noi indossiamo TUTTI i pezzi di armatura che otteniamo tramite il give di sopra avremo punteggio 1, in ogni altro caso (Manca uno o più pezzi di armatura, non sono nello slot giusto oppure non hanno il tag {Custom:1b} eccetera) avremo punteggio 0.

Per verificare che tutto stia funzionando correttamente usiamo questo comando:

Citazione:/scoreboard objectives setdisplay sidebar SetArmatura
Se non abbiamo equipaggiato l'armatura questo punteggio DEVE essere 0.
Se abbiamo equipaggiato l'armatura che soddisfa le condizione, il punteggio DEVE essere 1.

Se tutto funziona, possiamo aggiungere il bonus.


3- Aggiungiamo il Set Bonus

Ora che possiamo riconoscere se un giocatore indossa l'armatura che abbiamo impostato, possiamo procedere a dargli un bonus se lo fa.

Voglio che il bonus del set 'Armatura della Forza' sia un effetto di Forza I Permanente.

Aggiungiamo un:

► Command Block Ripetizione Non Condizionale Sempre Attivo

Citazione:
execute @e[score_SetArmatura_min=1,score_SetArmatura=1] ~ ~ ~ particle fireworksSpark ~ ~0.25 ~ 0.25 0.50 0.25 0 5 force
In questo modo il giocatore vede un effetto particellare a dimostrare che è potenziato

► Command Block Catena Non Condizionale Sempre Attivo

Citazione:
effect @a[score_SetArmatura_min=1,score_SetArmatura=1] minecraftConfusedtrength 1000 0 true
In questo modo diamo effettivamente l'effetto Forza I permanente e ne nascondiamo le particelle.


EDIT 09/27/16 - Aggiunto capitolo Facoltativo

Facoltativo - Aggiungere altri Set

Probabilmente non vi basterà avere un solo set di armature con bonus, quindi potreste voler aggiungere altri set.

Come fare? Semplice.

Ri scriviamo un comando /give per i pezzi come prima, ma stavolta il nostro tag sarà {Custom:2b}, o qualcosa di diverso da {Custom:1b}.

In questo modo possiamo semplicemente dire che I pezzi del secondo set sono quelli {Custom:2b}, quelli del terzo sono {Custom:3b} eccetera.

Il comando dovrebbe essere qualcosa di simile a questo:

Citazione:/give @p minecraft:diamond_chestplate 1 0 {Custom:2b,display:{Name:"Armatura della Velocità",Lore:[Set - Armatura della Velocità]},ench:[{id:2,lvl:5},{id:4,lvl:5}]}

Ora, dobbiamo impostare la scoreboard per quando un giocatore ha tutti i pezzi del SECONDO set equipaggiati insieme:

Citazione:/scoreboard players set @a SetArmatura 2 {Inventory:[{id:"minecraft:diamond_boots",Slot:100b,tag:{Custom:2b}},{id:"minecraft:diamond_leggings",Slot:101b,tag:{Custom:2b}},{id:"minecraft:diamond_chestplate",Slot:102b,tag:{Custom:2b}},{id:"minecraft:diamond_helmet",Slot:103b,tag:{Custom:2b}}]}
Ciò che conta per differenziare un set da un altro è principalmente la Tag {Custom:χb}

Importante: se il materiale dell'armatura cambia, esso deve corrispondere: Notate come nel primo set l'armatura fosse in oro col tag {Custom:1b}, nel secondo set l'armatura è di diamante e ha tag {Custom:2b}, dobbiamo modificare l'oggetto che cerchiamo nella scoreboard (Vedi parti in corsivo del comando sopra)


(Modificato 27/09/2016, 13:20 da Maca.)
Bravo. Bella guida, a molti potrebbe essere utile! Poi più che la guida mi piace molto il modo in cui la strutturi... Molto chiara e gradevole alla vista! :-)
Un rep per l'impegno?     [Immagine: Custom%20Map%201.10.png]   >> Guarda Intuition!
-
[Immagine: Creazioni%2C%20tutorial%20e%20altro.png]    [Immagine: Clicca%20per%20informarti!.png]
26/09/2016, 14:02Kharu ha scritto: Bravo. Bella guida, a molti potrebbe essere utile! Poi più che la guida mi piace molto il modo in cui la strutturi... Molto chiara e gradevole alla vista! :-)

Ti ringrazio tantissimo gh2clap

Utente(i) che stanno guardando questa discussione: 1 Ospite(i)