CommandBlock Résolu Bloc imposable/posable sur certains blocs

michris

Aventurier
8 Mai 2019
33
1
9
31
Bonjour , j'aimerais faire une map en SURVIE , mais j'ai des items comme des oeufs de zombie , que j'aimerais qui soit posable seulement sur des blocs de bedrock , et non dans les spawners , je sais qu'on peut faire cela en aventure , mais en survie , je ne sais pas si c'est possible.
 

Eglaios

Crétin de la commu
14 Avril 2018
310
42
89
25
Ah... En survie
Le seul truc que je vois (Et ça devrait bien marcher) :
Tu fais une clock qui met le joueur en mode aventure dès qu'il tient un oeuf (auquel tu donnera un CanPlaceOn, puis tu le remets en survie s'il ne le tient plus...
Tu utilises quelle version?

Enfin si tu le fais en survie, c'est vraiment utile?
Parce que du coup, le joueur pourra poser le bloc accepté où il veut, puis placer l'oeuf dessus...
 
Dernière édition par un modérateur:
  • J'aime
Reactions: michris

michris

Aventurier
8 Mai 2019
33
1
9
31
Ah oui , j'oublie souvent la version , c'est 1.8.9 vanilla , et ta technique m'aiderais bien si il n'y a pas d'autre solution , c'est possible de faire un :
/gamemode 2 @a {Inventory:[{id:minecraft:spawn_egg(jsp comment on choisi),Count:1b}]}
Quelque chose dans le genre (jsp si le count est obligé , si non , sa serait sympa ou si on peut mettre un minimum .

EDIT : J'aimerais bien aussi qu'on puisse détecter si l'item est dans la main uniquement (pas de problème niveau bloc posable car c'est un bloc impossible a obtenir donc voila) je voudrais juste testfor la main du joueur s'il possède l'item en question puis le mettre en gamemode 2 si c'est le cas et 0 si ce n'est pas le cas

EDIT : J'ai trouvé une commande pour détecter un slot précis :
/testfor @p {SelectedItemSlot:0,Inventory:[{Slot:0b,id:"minecraft:spawn_egg"}]}
Mais je voudrais pas tester seulement un slot (meme si je peux le répéter 9x mais plutôt un qui teste pour n'importe quel slot si possible , et je crois que le Count n'est pas obligatoire si tu veux tester n'importe quel quantité mais si on veut tester 5 au minimum , j'aimerais bien savoir comment faire ou si c'est impossible. Et si c'est possible de faire un :
/gamemode 2 @a {SelectedItem,Inventory:[{id:"minecraft:spawn_egg"}]}
 
Dernière édition:

Eglaios

Crétin de la commu
14 Avril 2018
310
42
89
25
Attends... Quelle version minecraft?

Tu mentionnes le testfor, tu dois être vers la 1.12, non? C'est quoi ta version?

Je t'envoie une solution quand j'arrive sur mon PC (chuis sur un SGS 512 MO de RAM...)
 
Dernière édition par un modérateur:

michris

Aventurier
8 Mai 2019
33
1
9
31
Je suis en 1.8.9 vanilla ,je mentionne en effet le testfor mais cela marche très bien en 1.8.9, je l'utilise assez souvent
 

Eglaios

Crétin de la commu
14 Avril 2018
310
42
89
25
Allez, j'y ai mis le temps, mais tu as [peut-être] remarqué que je viens de terminer un datapack de contrôle des enchantements en survie vanilla [le lien est dans la signature] -coup de pub-...

Voici quatre commandes que tu mettras dans l'ordre dans des blocs de commandes comme suit :
2019-05-18_20.20.17.png


[À entrer avant de poser le système] :
Code:
/gamerule commandBlockOutput false
Code:
/scoreboard objectives add HoldingEgg dummy

1 :
Code:
fill ~ ~-1 ~ ~ ~-1 ~3 minecraft:redstone_block
2 :
Code:
fill ~ ~1 ~ ~ ~1 ~3 minecraft:air
3 :
Code:
/scoreboard players set @a[score_HoldingEgg=1,score_HoldingEgg_min=1] HoldingEgg 0
4 :
Code:
/scoreboard players set @a HoldingEgg 1 {SelectedItem:{id:"minecraft:spawn_egg"}}
5 :
Code:
/gamemode survival @a[score_HoldingEgg=0,score_HoldingEgg_min=0,m=2]
6 : /gamemode adventure @a[score_HoldingEgg=1,score_HoldingEgg_min=1,m=0]
Petit détail : acive déjà les blocs 1 et 2 avant de placer les 4 autres

Et donc dès que le joueur sélectionne/désélectionne un oeuf, son mode de jeu est changé en survie/aventure (sauf s'il est en spectateur/créatif)
Si tu as un problème et as besoin de te mettre en créatif, le jeu ne changera pas ton mode ensuite

En bonus, voici la commande pour give un oeuf de zombie posable seulement sur bedrock (en mode survie, il peut être posé partout, mais le système ci-dessus empèche ça) :
Code:
/give @p minecraft:spawn_egg 1 54 {CanPlaceOn:["minecraft:bedrock"]}
 
  • J'aime
Reactions: michris

michris

Aventurier
8 Mai 2019
33
1
9
31
Merci , sinon est ce possible de cibler seulement certains oeufs , j'avais vu :
id:"minecraft:spawn_egg",Damage:54
Je ne sais pas si on peut détecter l'oeuf de zombie en question et je verrai si mettre un rayon marche.
 

Eglaios

Crétin de la commu
14 Avril 2018
310
42
89
25
Alors ça serait dans la commande 4 :
/scoreboard players set @a HoldingEgg 1 {SelectedItem:{id:"minecraft:spawn_egg"}}

---->
/scoreboard players set @a HoldingEgg 1 {SelectedItem:{id:"minecraft:spawn_egg",tag:{Damage:54,
CanPlaceOn:["minecraft:bedrock"]}}}

Essaie pour voir mais j'imagine que c'est ça
 
  • J'aime
Reactions: michris