Domanda:
Come posso scegliere come target un'entità casuale di qualsiasi tipo utilizzando @r?
Skylinerw
2016-01-09 08:37:34 UTC
view on stackexchange narkive permalink

Mentre @r da solo può scegliere come target solo entità player, l'aggiunta del parametro type gli consente di targetizzare altri tipi di entità:

  /dì @r [type = ArmorStand]  

Ma a causa di questo requisito, potresti solo scegliere come target tutti tranne un'entità specifica:

 / say @r [type =! Player]  

Il tentativo di utilizzare un ID non valido genererà un errore, affermando "Il tipo di entità [nome] non è valido", invece di scegliere come target tutti tranne quello non validotype.

  / say @r [type =! InvalidID]  

Come posso fare in modo che @r targetizzi tutti i possibilientità senza escluderne nessuna?

Tre risposte:
Skylinerw
2016-01-09 08:37:34 UTC
view on stackexchange narkive permalink

Il parametro type acquisisce un elenco di ID stringa dallo stesso elenco completo di tabulazioni utilizzato da / summon . Se l'input nel parametro type non è in quella lista, il selettore genererà quell'errore. Il parametro type aggiunge specificatamente "Player" a tale elenco, motivo per cui "Player" non viene visualizzato nella scheda completa di / summon .

Tra quell'elenco c'è "LightningBolt", che in realtà non è un ID entità savegame valido. Gli ID validi sono quelli che appaiono nella mappatura della classe EntityList , che è ciò che la funzione di completamento della tabulazione prenderà da prima di aggiungere forzatamente l'elenco con "LightningBolt". Essenzialmente viene aggiunto solo per l'usabilità con / summon , che gestisce "LightningBolt" direttamente piuttosto che tramite un processo automatizzato per qualsiasi altro input.

Come tale, puoi tranquillamente utilizzare tipo =! LightningBolt . I fulmini stessi non sono bersagliabili in primo luogo. Non vengono aggiunti all'elenco interno delle entità generate, che è ciò da cui i selettori di entità ottengono i target. Anche se sono stati aggiunti a tale elenco ma sono rimasti entità non di salvataggio, "LightningBolt" non è ancora associato a loro e il selettore li selezionerebbe a prescindere.

Per ribadire: i fulmini non sono esclusi dal selettore perché non sono inclusi nell'elenco dei possibili bersagli per cominciare, né l'ID "LightningBolt" è associato ad essi in alcun modo se non come mezzo della creazione tramite / summon . È semplicemente impossibile prendere di mira i fulmini.

Ma poiché il parametro type ritiene che "LightningBolt" sia un ID valido a causa del / summon tab-complete list, può essere utilizzato senza generare errori. Quanto segue sceglierà come target un'entità casuale da tutte le entità possibili con i selettori:

  / say @r [type =! LightningBolt]  

Si rivolge anche a entità non di salvataggio come i bobber da pesca.Sebbene i bobber da pesca non abbiano affatto un ID, non hanno l'ID "LightningBolt" che soddisfa il selettore.I ganci da pesca, a differenza dei fulmini, vengono aggiunti all'elenco delle entità generate, motivo per cui possono essere presi di mira dai selettori mentre i fulmini non possono esserlo.

Justus Laube
2018-03-11 15:43:19 UTC
view on stackexchange narkive permalink

Ho una soluzione!

Per prima cosa devi scrivere ArmorStand in questo modo: armor_stand e per ottenerlo casuale: @e[type=armor_stand,sort=random,limit=1”

Il limite = 1 lo limita a una sola entità, che è esattamente ciò che desideri.

Esempio: / esegui come @e [sort = random, type = armour_stand, limit = 1] su @s run summon minecraft: lightning_bolt

Spero di poterti aiutare: D

Edit: per scegliere come target tutte le entità è sufficiente rimuovere il type=armor_stand

Esempio: / execute as @e [sort = random, limit = 1] in @s run summon minecraft: lightning_bolt

Funziona solo nella versione 1.13 e successive!

Questo non risponde alla mia domanda.Chiedo * qualsiasi * tipo, non uno qualsiasi da un set di supporti per armature.
Ho modificato la mia risposta ...
ExpertCoder14
2020-05-25 05:53:56 UTC
view on stackexchange narkive permalink

Nelle versioni più recenti di Minecraft, puoi impostare la modalità di ordinamento che sceglierà come vengono ordinati i bersagli.È quindi possibile limitare il numero di entità target a 1, in modo che venga restituita solo 1 entità.

Ecco un comando che ti consente di farlo:

  / say @e [sort = random, limit = 1]
 

L'elenco degli obiettivi è ordinato in modo casuale, quindi il limite di 1 significa che è selezionato solo il primo di quell'elenco, fornendo essenzialmente una selezione di entità casuale.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...