[Progetto] Musica

Scusate, visto che nella 1.12 vengono aggiunti nuovi suoni ai noteblock, ho deciso di realizzare una serie di funzioni (stile one command block, ma solo con le funzioni) che possano creare un "decagramma" (una linea per ogni strumento di minecraft) su cui possano essere piazzate delle note che poi vengono suonate.

Avrei due problemi:

1) Alcune funzioni vanno chiamate a ripetizione, perciò ho pensato di creare un command block repeat, always active che costantemente chiama la funzione, ma non so come crearlo da comando.

2) Per far spawnare la struttura vorrei piazzare un'entità rinominata, il cui uovo è ottenibile da un floor crafting di 10 noteblock e 10 pezzi di lana, ma non so come si faccia (il floor crafting). Inoltre mi piacerebbe che l'uovo abbia l'effetto tipo incantato (non so se avete presente, tipo i one command block di TheRedEngineer) e una descrizione customizzata, ma anche per questo non sono cappace. Sapreste spiegarmelo oppure indicarmi una buona guida da seguire?


Ringrazio in anticipo della collaborazione. Per favore non chiudete la discussione anche quando i problemi sono risolti perchè così se ho altri dubbi legati a questo progetto posso chiedere qui senza creare tutte le volte una nuova discussione, e quando avrò finito (se mai lo finirò!) potrò mettervi il risultato in download.

Grazie




@LorySF @T_p_O_n aiutatemi voi (Modificato 02/06/2017, 10:58 da XEpicFra.)
– Per specificare il tipo di command block dal /setblock o qualsiasi comando tu stia usando per generare i command block della one-command, devi specificare l'ID; L'ID può essere:

  • minecraft:command_block (Impulse)
  • minecraft:chain_command_block (Chain)
  • minecraft:repeating_command_block (Repeat)

Usa quello che ti occorre.

Per renderlo always active devi specificare una NBT interna nel command block; se stai usando /setblock dovrai specificare {auto:1b} nell'argument delle tag.

Codice:
/setblock ~ ~ ~ minecraft:command_block <data value: 0 - verso il basso; 1 - verso l'alto; 2 - nord; 3 - sud; 4 - ovest; 5- est> replace {<Data Tags>}
Altrimenti, dovrai usare un command block separato per eseguire un /blockdata alle coordinate del command block che ti interessa.




– Floorcrafting base –

Innanzitutto, decidi cosa vuoi come risultato e cosa vuoi come ingredienti.

In questo esempio, io userò minecraft:dirt e minecraft:seed per ottenere minecraft:grass


⓵ – Impostare le scoreboard tag


/scoreboard players tag @e[type=item,tag=!FCDirt] add FCDirt {Item:{id:"minecraft:dirt",Count:1b},OnGround:1b}

/scoreboard players tag @e[type=item,tag=!FCSeed] add FCSeed {Item:{id:"minecraft:seed",Count:1b},OnGround:1b}



In questi due primi command block, imposti una scoreboard tag ad ogni tuo ingrediente; io ne uso due, se vuoi che siano di più dovrai impostare una tag per ogni ingrediente aggiuntivo.



⓶ – Verificare se ci sono tutti gli ingredienti

/execute @e[tag=FCDirt] ~ ~ ~ /execute @e[tag=FCSeed,r=1,c=1] ~ ~ ~ /summon item ~ ~ ~ {Item:{id:"minecraft:grass",Count:1b},Tags:["FCGrass"]}

Ogni item che ha il tag FCDirt cercherà l'item con tag FCSeed più vicino in un raggio di 1 blocco e spawnerà un item grass con tag FCGrass.

Non è ancora finito.

Dato che uso due ingredienti, ho dovuto usare due /execute. Con cinque ingredienti dovrai usare 5 /execute.



⓷ – Rimuovere gli ingredienti

/execute @e[tag=FCGrass] ~ ~ ~ /kill @e[type=item,tag=FCDirt,r=1]

/execute @e[tag=FCGrass] ~ ~ ~ /kill @e[type=item,tag=FCSeed,r=1]


Ora, tu vuoi che la onecommand venga piazzata da un uovo.

Innanzitutto usa /give per ottenere un uovo il cui spawn ha una tag specifica

/give @p minecraft:spawn_egg 1 65 {display:{Name:"Genera Decagramma",Lore:[Genera un Decagramma dove viene piazzato!]},EntityTag:{id:"minecraft:bat",Tags:["GenDeca"],NoGravity:1b,BatFlags:1,Invulnerable:1,PersistenceRequired:1,NoAI:1,Silent:1}}

Come puoi notare, il pipistrello generato dall'uovo ha la tag GenDeca.

Ora, dobbiamo eseguire il comando della one command su quell'entità, quindi:

/execute @e[tag=GenDeca] ~ ~ ~ <comando che genera il decagramma>

Per concludere, dobbiamo eliminare l'entità che ha generato la struttura, altrimenti verrà piazzata all'infinito, quindi:

/kill @e[tag=GenDeca,type=bat]
(Modificato 02/06/2017, 11:18 da Maca.)
 ♫~ Se ti sono stato d'aiuto puoi ringraziarmi cliccando su +1 REP ~♪
CBUser e CBDev dalla 1.8, taggami se hai problemi coi Command Block

[Immagine: U85qfto.png]
Clicca il logo per vedere il mio album di disegni ( ˘˘  )
1 utente apprezza questo post
Grazie mille!

Ancora due cose:

1) Come devo fare a d avere il command block con il comando dentro?

2) Come faccio ad avere l'uovo di spawn rinominato, con una descrizione e l'effetto tipo incantato?

Grazie
1) per ottenere il repeating_command_block devi usare o

/setblock ~ ~ ~ minecraft:repeating_command_block 0 replace {auto:1,Command:COMANDO}
o
/give @p minecraft:repeating_command_block

2) per il floor crafting ti consiglio questo metodo:

/scoreboard objectives add a dummy


/scoreboard players set @e[type=Item] a 1 {OnGround:1b,Item:{id:"minecraft:noteblock",Count:1b}}

/scoreboard players set @e[type=Item] a 2 {OnGround:1b,Item:{id:"minecraft:wool",Count:10b}}

/execute @e[type=Item,score_a_min=1,score_a=1] ~ ~ ~ execute @e[type=Item,score_a_min=2,score_a=2,r=1] ~ ~ ~ particle flame ~ ~.4 ~ .1 .1 .1 .1 30 force

/execute @e[type=Item,score_a_min=1,score_a=1] ~ ~ ~ execute @e[type=Item,score_a_min=2,score_a=2,r=1] ~ ~ ~ playsound block.anvil.use master @a ~ ~ ~ 10 1

/execute @e[type=Item,score_a_min=1,score_a=1] ~ ~ ~ execute @e[type=Item,score_a_min=2,score_a=2,r=1] ~ ~ ~ summon item ~ ~ ~ {CustomName:"NOME",CustomNameVisible:1,Motion:[0.0,0.3,0.0],Item:{id:spawn_egg,Damage:61,Count:1b,tag:{HideFlags:1,display:{Name:"NOME1",Lore:[DESCRIZIONE]},ench:[{id:0,lvl:1}],EntityTag:{id:"minecraft:armor_stand",Tags:["TAG"],NoGravity:1b,Small:1,Invisible:1,Invulnerable:1,NoBasePlate:1}}},PickupDelay:20}

/execute @e[type=Item,score_a_min=1,score_a=1] ~ ~ ~ execute @e[type=Item,score_a_min=2,score_a=2,r=1] ~ ~ ~ kill @e[type=Item,score_a_min=1,score_a=2,r=2]


Puoi modificare sia le particelle (flame) che il suono (block.anvil.use master).
Se vuoi puoi usare il tool di MrGarretto per compattare.

A questo punto con il crafting avrai ottenuto un uovo incantato che se usato evoca un armor_stand con la tag"TAG", invisibile, piccolo e invulnerabile.
Volendo puoi usare questo generatore per creare l'item. (Modificato 02/06/2017, 11:25 da LorySF.)
◊-Se ti sono stato utile clicca su +1*-◊
   Se non lo sono stato NON LASCIARLO! Scherzo lascialo lo stesso Asd
*Verso il most REP'd 2017
[Immagine: ROYAWRw.png]
   






tutti i riferimenti a richieste di rep vietate sono puramente casuali
1 utente apprezza questo post
Grazie tante!
Oh, scusa. Non avevo letto queste altre richieste

– Per generare un command block con un comando all'interno basta specificare la tag command:

/setblock ~ ~ ~ minecraft:command_block <data value: 0 - verso il basso; 1 - verso l'alto; 2 - nord; 3 - sud; 4 - ovest; 5- est> replace {Command:"<comando>"}

O con un blockdata:

/blockdata <x y z> {Command:"<comando>"}




– Per l'uovo rinominato puoi usare la tag display e le subtag Name e Lore

/give @p minecraft:spawn_egg 1 65 {display:{Name:"Genera Decagramma",Lore:["Genera un Decagramma dove viene piazzato!"]}...bla bla bla

In rosso la tag display.

In verde la tag name, che è effettivamente il nome dell'item (per essere pignoli, usando l'incudine vai a modificare questa tag)

In ciano la tag Lore; questa tag è particolare, ed è quel testo solitamente viola che si trova su alcuni item generati tramite comandi. Ti consiglio di usare le virgolette per separare i blocchi di testo, se vuoi andare a capo chiudi virgolette e metti una virgola, poi riapri virgolette.

Lore:["Riga 1","Riga 2"]




Per avere il luccichio dell'enchant sull'uovo basterà aggiungere la tag dell'enchant, quindi:

{ench:[]}


Ti riscrivo il comando dell'uovo finito, in modo da non sbagliare

/give @p minecraft:spawn_egg 1 65 {display:{Name:"Genera Decagramma",Lore:["Genera un Decagramma dove viene piazzato!"]},ench:[],EntityTag:{id:"minecraft:bat",Tags:["GenDeca"],NoGravity:1b,BatFlags:1,Invulnerable:1,PersistenceRequired:1,NoAI:1,Silent:1}}
(Modificato 02/06/2017, 11:29 da Maca.)
 ♫~ Se ti sono stato d'aiuto puoi ringraziarmi cliccando su +1 REP ~♪
CBUser e CBDev dalla 1.8, taggami se hai problemi coi Command Block

[Immagine: U85qfto.png]
Clicca il logo per vedere il mio album di disegni ( ˘˘  )
@Macapple96 ti conviene disabilitare le emoticon, altrimenti il comando si legge male Wink
◊-Se ti sono stato utile clicca su +1*-◊
   Se non lo sono stato NON LASCIARLO! Scherzo lascialo lo stesso Asd
*Verso il most REP'd 2017
[Immagine: ROYAWRw.png]
   






tutti i riferimenti a richieste di rep vietate sono puramente casuali
Grazie mille ad entrambi

02/06/2017, 11:27Macapple96 ha scritto: Oh, scusa. Non avevo letto queste altre richieste  

– Per generare un command block con un comando all'interno basta specificare la tag command:

/setblock ~ ~ ~ minecraft:command_block <data value: 0 - verso il basso; 1 - verso l'alto; 2 - nord; 3 - sud; 4 - ovest; 5- est> replace {Command:"<comando>"}

O con un blockdata:

/blockdata <x y z> {Command:"<comando>"}


Ho provato con il comando
/setblock 804 3 786 minecraft:repeating_command_block 1 {Command:"function musica:chiamate", auto:1b}

ma mi risponde Data tag parsing failed: Expected '{' but got 'm' at: m<--[HERE] (Modificato 02/06/2017, 12:51 da XEpicFra.)
Non credo che le "" vadano scritte.
Es:
/setblock 804 3 786 minecraft:repeating_command_block 1 {Command:function musica:chiamate, auto:1b}
◊-Se ti sono stato utile clicca su +1*-◊
   Se non lo sono stato NON LASCIARLO! Scherzo lascialo lo stesso Asd
*Verso il most REP'd 2017
[Immagine: ROYAWRw.png]
   






tutti i riferimenti a richieste di rep vietate sono puramente casuali
02/06/2017, 13:31LorySF ha scritto: Non credo che le "" vadano scritte.
Es:
/setblock 804 3 786 minecraft:repeating_command_block 1 {Command:function musica:chiamate, auto:1b}

Mi da lo stesso errore, purtroppo
Ha scritto le NBT Tag dove andava la mode.

Prova questo:

/setblock 804 3 786 minecraft:repeating_command_block 1 replace {Command:"function musica:chiamate", auto:1b}
 ♫~ Se ti sono stato d'aiuto puoi ringraziarmi cliccando su +1 REP ~♪
CBUser e CBDev dalla 1.8, taggami se hai problemi coi Command Block

[Immagine: U85qfto.png]
Clicca il logo per vedere il mio album di disegni ( ˘˘  )
Discussioni simili
Risposta di Dardo
01/05/2015, 13:34

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