Vai al contenuto
Il server del mese è
Visita la nostra nuova lista server!

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

  • 0
MandelCube

Problema randomizer per comandi

Domanda

Volevo provare a creare un piccolo circuito che, dati una serie di comandi (lunga anche migliaia di comandi) e un input dalla scoreboard (il più facile da manipolare), utilizzasse un comando a random  preso dalla serie.

Il mio prototipo è stato questo

4ge35ngqpc9mx2zzg.jpg

A sinistra c'è il replace clock con dentro un manichino (invisibile, marker, ecc... per il minor lag possibile).
Col replace clock ho il vantaggio che le varie parti non sono necessariamente collegate in maniera fisica e le posso quindi spostare e dividere a piacimento.

La colonnina a destra è l'input, ovvero un /execute che quando trova un punteggio della scoreboard adatto piazza il mob spawner (spiego dopo) dove c'è il blocco blu (messo solo a scopo dimostrativo, non è parte del circuito), con sopra il suo reset (ovvero, annulla il punteggio).

Lo spawner è fatto appositamente per avere come entità tutta una serie di blocchi di sabbia, ciascuno con i dati di un command block con uno dei comandi (dell'elenco) all'interno, da spawnare dove c'è il blocco arancione (anche questo è lì a scopo dimostrativo, nel circuito non c'è).

L'ultima colonnina serve per resettare l'output: il blocco sotto controlla (con /testforblock) se il blocco arancione è un command block che ha già utilizzato il suo comando (utilizzando il data value del command block) e passa al manichino il suo SuccessCount.
Il blocco sopra usa il comando /clone per cancellare lo spawner e il command block random, quando il manichino ha il punteggio giusto.

Il vantaggio di questo sistema è che non importanta quanto la mia lista di comandi random sia lunga, vengono tutti salvati nello spawner, e quindi il mio meccanismo rimane comunque delle stesse dimensioni.


O almeno questa è la teoria: il mio problema è che, indipendentemente da come scambi di posto i vari componenti, il command block random si attiva (ho testato, un command block non attivo non aziona il reset) e viene rimosso dal reset senza utilizzare il suo comando.

Non riesco a capire per quale ragione il command block ottenga il data value 1 (segno che è stato attivato) senza utilizzare il suo comando (per i test ho usato un semplice /say, per un controllo semplice e immediato).

Qualche idea sulle cause del problema e una possibile soluzione (che NON rimuova il senso del circuito: un randomizer per comandi di dimensioni fisse indipendenti dal numero di comandi) ?

 

--EDIT--

 

Sempre che a qualcuno importi: ho risolto facendo in modo che il command block che avevo etichettato come "reset output" non sia quello che resetti tutto, bensì piazzi (al posto dello spawner) un command block che lo faccia al posto suo.

 

L'intero meccanismo così è in grado in 6 tick di gioco (mischiando un pò credo di riuscire ad abbassare questo tempo, ma non penso sotto i 4 tick purtroppo) di scegliere un comando a random fra un elenco anche enorme (il limite di caratteri è di oltre 32mila) ed eseguirlo.

 

 

Pro:

 

- Input a scoreboard;

 

- i vari componenti sono separabili e spostabili;

 

- il numero di componenti resta fisso indipendentemente dall'elenco di comandi;

 

- supporto per un enorme numero di comandi;

 

- un'unica entità utilizzata;

 

Contro:

 

- lento (4-6 tick di gioco per l'esecuzione);

 

- presenza di coordinate fisse ineliminabili (nello spawner);

 

Purtroppo a causa delle limitazioni degli spawner e dei comandi non penso sia al momento possibile avere un circuiti veloce ugualmente compatto.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

0 risposte a questa domanda

Recommended Posts

Non ci sono ancora state risposte a questa domanda


  • Chi sta navigando   0 utenti

    Nessun utente registrato visualizza questa pagina.


  • Contenuti simili

    • Da Matteo29
      Ciao ragazzi, ho un problema con Minecraft nella PS4. In pratica appena apro il gioco, questo rimane nella schermata principale e non riesco a selezionare "Gioca", è come se il gioco non rispondesse ai comandi del joystick (ma il controller funziona normalmente con gli altri giochi). Cosa posso fare? Ho già riavviato più volte e tolto anche il disco ma il problema rimane. 
    • Da EndyTheBlackFox
      La sheder che uso e la sildurus vibrant extrem mi da problemi solo se la applico con optifine infatti se la applico con iris il problema nom si presenta pero a me serviva usare la optifine per la 1.12.2 in un momdo moddato pero come vedrete nel link qui sotto fa difetto 
      https://ibb.co/tB22wqL
    • Da IlRecommand
      Salve sono IlRecommand, ho saputo di questo forum, forse mi potrebbe aiutare, quando cerco di installare forge mi da questo errore:
      Failed to run processor: javax.net.SSLHandshakeException:sun.security.validator.VAlidatorException: PKIX path building failed: sun.security.provider.certpath.SUnCertPathBuilderException: unable to find valid certification path to requested target See log for more details
      Per caso sapete come posso sistemarlo? 
      Ho già provato a disinstallare e reinstallare java.
      Sono da TLauncher
       
      se vi servono altre informazioni sarò più che felice di darvele.
    • Da NoNickname
      salve a tutti, sto creando un server praticte tra amici, mi servirebbe una mano (ogni 5 secondi il  player deve ricevere un hit)  Si può fare con dei comandi o  è necessario un plugin?🙂
    • Da Oblivionaire_008
      Salve, avrei bisogno di un aiuto per dei comandi: cercavo di fare delle spade che, quando in mano, e premendo tasto destro Lancaster palle di fuoco o comunque eseguiremo un comando(summonare un mob, dare effetti a persone vicine ecc...) o creare pezzi di armatura con poteri simili (es. Quando shiftati darsi lievitazione per volare). C'è bisogno che crei un datapack (se si, come?) O basta qualche comando?
×
×
  • Crea Nuovo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.