Tutoriel pouvoir placer un bloc sur tous les autres en mode aventure

ziyx

Un renard pas comme les autres
3 Mars 2013
55
1
78
France
www.youtube.com
Bonjour , j'ai créé une map pvp , et elle se fait en mode aventure pour eviter de casser des blocks fragiles tels que les slime block . Seulement certains kits contiennent des oeufs ( des spawn-egg) et on ne peut pas les placer , j aimerais qu'on puisse les placer sur TOUS les blocks possbiles de minecraft , mais je ne sais pas si c'est possible :( . Svp aidez moi ! :')
 

nocturne123

Architecte en herbe
11 Mars 2013
545
107
155
Dans le Donjon
Code:
J'ai testé des commandes /Give qui m'ont permis de créer des pioches ou autre qui pouvaient ne casser que ces deux blocs. par contre j'ignore si ma commande @a sera aussi effective aux futurs joueurs qui utiliseront l'objet
Ba oui, pourquoi elle ne marcherai pas pour les futurs joueurs ?
Code:
peut on autoriser le cassage de quelques blocs autrement que par un outils obtenu par Give suivi d'une liste sélective
Sans outils/items/block, non à ma connaissance.
Code:
peut on autoriser tous les joueurs et futurs joueur à poser ces même blocs et uniquement sur un piston pour le Bloc de redstone et le gravier sur un bloc aussi particulier
Oui, avec le tag CanPlaceOn (voir plus haut).
Code:
- le gravier drop t-il un silex de temps en temps même en mode aventure
Oui et pour contrer ça, tu peux faire en sorte que quand c'est un silex qui est drop, c'est de summon un item gravier dessus et de kill le silex.
Code:
- Peut on craft un briquet et s'en servir.
Crafter, oui mais pour s'en servir, il faut utiliser le tag CanPlaceOn.
Code:
- si je renomme le bloc de redstone en "Coeur pourpre" que dois je indiquer comme nom dans ma commande Give pour que ce bloc possède les bonnes caractéristiques.
Si tu veux savoir comment renommer un item, c'est comme ça:
/give @p gravel 1 0 {display:{Name:"Coeur pourpre"}}
 
  • J'aime
Reactions: arthur_martin

arthur_martin

Aventurier
11 Août 2015
6
1
2
46
merci pour ce retour rapide.

Je n'ai pas d'obligation de renommage des blocs de redstone c'est juste pour faire plus RP.
Donc je peux passer la commande /give @p redstone_block 64 0 {display:{Name:"Coeur pourpre"}} pour faire du stock et les mettre dans les coffres qui seront accessibles lors des quêtes.
ou alors je les passe comme je l'ai toujours fais par l'enclume ... à la bonne vielle méthode. (j'ai tout fait comme ça pour le reste) d'ailleurs il y a t-il un changement de fonctionnalité entre le renommage par enclume et celle du Give.
(note j'ai vu qu'on pouvait aussi faire en sorte de cacher les libellés par la fonction HideFlags)


Au quel cas je dois faire ces 2 étapes pour le bloc de redstone devenu Coeur pourpre

/give @p minecraft:Coeur pourpre 64 0 {CanPlaceOn: "minecraft:sticky_piston"]}
ou
/give @p minecraft:redstone_block64 0 {CanPlaceOn: "minecraft:sticky_piston"]}

et aussi faire l'outils/items/block par la commande suivante :

/give @p minecraft:stone_pickaxe 1 0 {CanDestroy:["minecraft:redstone_block"]}
ou
/give @p minecraft:stone_pickaxe 1 0 {CanDestroy:["minecraft:Coeur pourpre"]}


Question de débutant (désolé)
celà veut il dire que les items ainsi mis à disposition peuvent être stockés et utilisés par d'autres joueurs avec les nouvelles fonctionnalités bien que non présents au moment de l'execution /give ? (ce qui veut dire que c'est l'item qui conserve ses extra-datas ou le serveur ?)


Pour ce qui est du gravier : "Gravel" et du silex qui en découle "Flint"

J'ai une épreuve qui demande à le pousser (jusque là ça va) puis à le récupérer ce qui me demande de faire la même manip : /give @p minecraft:stone_pickaxe 1 0 {CanDestroy:["minecraft:gravel"]}
note : je ne ferais qu'une fois le /give sur la pioche avec la fonction destroy en cumulant l'effet gravier et bloc redstone

Le truc donc c'est que je souhaite qu'une fois le "Flint" dropé le joueur puisse crafter le briquet et s'en servir. Au quel la fonction /give me parait pas adapté car elle donne l'item avec les droits alors que je souhaite que le joueur le craft pour ensuite faire l'action du briquet sur la laine Cette fonction /give @p minecraft:flint and steel 1 0 {CanPlaceOn: "minecraft:wool"]}
peut elle avoir une variante qui donne au serveur l'info "CanPlaceOn" sans donner l'item mais pour autant active quand le briquet sera fait.


Si vous avez quelques minutes de votre temps merci par avance.
++
 

arthur_martin

Aventurier
11 Août 2015
6
1
2
46
bon hier j'ai testé tout ça et je dois encore comprendre comment tout ceci fonctionne. Depuis vos réponses ça m'a fait bien avancé. Merci

Je dois encore trouver :
- comment redonner un nom à un objet une fois miné. En effet mon bloc redstone est renommé "Coeur pourpre" mais redevient redstone_bloc dans mon inventaire une fois miné.
- à l'identique du nom l'objet perd sa valeur CanPlaceOn et ça c'est valable pour le redstone bloc et pour le Gravel
puisque je souhaite pas voir le gravel posé partout, il a un CanPlaceOn mais le perd à chaque minage le temps d'avoir du flint.
- comment faire pour placer un CanPlaceOn sur un "flint_and_steel" qui sera crafté et donc ne peux pas être créé par un /Give.

Je cherche et commence à lire les tuto un peu partout. Si vous avez des liens pour apprendre je suis preneur.
merci et bonne journée
 

nocturne123

Architecte en herbe
11 Mars 2013
545
107
155
Dans le Donjon
Dans une clock rapide, tu peux faire en sorte que quand il a un bloc de redstone/gravier/briquet dans son inventaire, sa le supprime et lui give le bloc/item avec le bon data.

Ou alors, tu fait la gamerule pour que les blocks ne droppent pas, tu créer un objectif qui met le score un 1 quand on mine un bloc de redstone(/scoreboard objectives add mineblockredstone stat.mineBlock.minecraft.redstone_block) et tu lui give le block avec les bon datas (et tu reset le score bien sûr).

A toi de choisir ce qui te semble le mieux.

EDIT: j'ai réalisé la seconde solution en 2 commands blocks :
scoreboard players set @p minestone 0
execute @p[score_minestone_min=1] ~ ~ ~ /give @p stone 1 0 {CanPlaceOn:["minecraft:redstone_block"]}
J'ai fait ceci avant :
/gamerule doTileDrop false
/scoreboard objectives add minestone stat.mineBlock.minecraft.stone
Voila comment faire pour la 2ième solution.
 

arthur_martin

Aventurier
11 Août 2015
6
1
2
46
merci pour cette réponse et je vais tester ça ce soir.

du coup en parallèle j'ai consulté le tuto 1 et je consulte le 2 de ce gars
c'est un bon complément à ton info.

merci pour ce temps passé et je te fais un retour.
 

arthur_martin

Aventurier
11 Août 2015
6
1
2
46
execute @p[score_minestone_min=1] ~ ~ ~ /give @p minecraft:redstone_block 1 0 {HideFlags:16,CanPlaceOn:["sticky_piston","redstone_lamp"]} lié au reset

Salut

Pour info j'ai enfin pris du temps (surtout manque de temps et de compréhension)
Enfin au dessus la commande finale qui est simple mais l'écrire quand on sait pas ce que ça veut dire
et le faire sur le jeu quand là aussi on a jamais touché au block cmd ....

enfin c'est fait et comme promis je mets ce mot pour te remercier (si tu me lis ... )
++
 
  • J'aime
Reactions: nocturne123