Aller au contenu

Bloc spéciaux avec un nom custom et un drop spécial


Messages recommandés

Posté(e)

Version: 1.8

Type de script: "Création" d'un bloc

Description: Bonsoir à tous, ça fait un moment que j'essaye de mettre ce script en forme mais j'éprouve quelques difficultés donc je demande votre aide :)

 

Voilà le script, il expliquera mieux que moi ^^

 

on place:
   if event-block is stone:3 named "&6Detritus":
       set {farm.detritus} to location of block
       send "<&eConseil&f> &cBloc Custom placé !" to player     

on break of stone:3:
   if distance between block and {farm.detritus} is less than 1:
       cancel event
   if the player is holding a pickaxe:
       make player execute command "/sound play ZOMBIE_WOOD"
       chance of 60%:
           drop 1 cobblestone
       chance of 25%:
           drop 1 cocoa beans named "Feraille"
       chance of 10%:
           drop 1 flint
       chance of 5%:
           drop 1 coal
       set block to bedrock
       wait 5 seconds
       set block to stone:3
   else:
       send "<&eConseil&f> &cVous devez utiliser une pioche !" to player

 

 

================================================================

 

Si mon skript n'est pas clair: j'aimerai que lorsqu'on pose une diorite avec un nom spécifique, cette-dernière devienne un "bloc custom" qui serai farmable et qui dropperai du charbon, du silex, etc,...

Mais que toutes autres diorites présente dans le monde, et aussi celle placée mais avec le nom normal (diorite) ne réagissent pas avec ce skript.

 

J'espère avoir été clair, merci d'avance de votre aide ! :D

 

 

Je tiens à préciser que le skript n'affiche aucune erreurs cependant, il réagit avec toute les diorites (et pas seulement celles posées avec le nom spécial).

Posté(e)
Version: 1.8

Type de script: "Création" d'un bloc

Description: Bonsoir à tous, ça fait un moment que j'essaye de mettre ce script en forme mais j'éprouve quelques difficultés donc je demande votre aide :)

 

Voilà le script, il expliquera mieux que moi ^^

 

on place:

if event-block is stone:3 named "&6Detritus":

set {farm.detritus} to location of block

send "<&eConseil&f> &cBloc Custom placé !" to player

 

on break of stone:3:

if distance between block and {farm.detritus} is less than 1:

cancel event

if the player is holding a pickaxe:

make player execute command "/sound play ZOMBIE_WOOD"

chance of 60%:

drop 1 cobblestone

chance of 25%:

drop 1 cocoa beans named "Feraille"

chance of 10%:

drop 1 flint

chance of 5%:

drop 1 coal

set block to bedrock

wait 5 seconds

set block to stone:3

else:

send "<&eConseil&f> &cVous devez utiliser une pioche !" to player

 

 

 

================================================================

 

Si mon skript n'est pas clair: j'aimerai que lorsqu'on pose une diorite avec un nom spécifique, cette-dernière devienne un "bloc custom" qui serai farmable et qui dropperai du charbon, du silex, etc,...

Mais que toutes autres diorites présente dans le monde, et aussi celle placée mais avec le nom normal (diorite) ne réagissent pas avec ce skript.

 

J'espère avoir été clair, merci d'avance de votre aide ! :D

 

 

Je tiens à préciser que le skript n'affiche aucune erreurs cependant, il réagit avec toute les diorites (et pas seulement celles posées avec le nom spécial).

1) Tu t'est tromper de catégorie

2) Merci d'utilise les balise de code stp

Posté(e)
if event-block is stone:3 named "&6Detritus":

 

Tu ne peux pas checker le nom d'un bloc, il faut passer par des coordonnées ou metadata.

 

Merci pour ta réponse :D

Alors, en gros ce que j'aimerai faire c'est que le skript ne fonctionne que si le bloc est renommé (quand il est encore dans ta main).

 

Soit si ce n'est pas possible, y a t'il un moyen de différencier les blocs customs, posés par un admin, de ceux générés naturellement dans le monde, ou encore les blocs posés juste pour décorer et donc pas pour farmer ?

 

 

 

EDIT : Penses-tu que je devrai utiliser une base de données pour " stocker " tous ces blocs customs posés et leur position ?

Si oui, pourrais tu m'aider à le faire car je ne sais absolument pas comment m'y prendre.

Merci d'avance :)

Posté(e)
Tu pourrais les stocker dans une list et vérifier quand tu casse le block si le block fait bien parti de la liste ;-)

 

Ah merci de ta réponse :)

Je me disais aussi que c'est comme ça que je devais procéder, or je ne sais pas du tout comment faire ! :/

Es-que tu t'y connais un peu, et pourrai tu m'aider ? Merci d'avance :D

Posté(e)

Je ne m'y connais pas énormément en list mais je peux essayer de le faire ;-)

 

Il y a cependant un autre problème ... Il faudrait savoir lorsqu'on pose un block custom et la je ne vois pas comment faire :/ as-tu une idée ?

Posté(e)
Je ne m'y connais pas énormément en list mais je peux essayer de le faire ;-)

 

Il y a cependant un autre problème ... Il faudrait savoir lorsqu'on pose un block custom et la je ne vois pas comment faire :/ as-tu une idée ?

 

Alors ça, comme Random la dit plus haut: " il faut passer par des coordonnées ou metadata. "

Je pense que metadata est plus pratique mais si tu ne sais vraiment pas comment, essaye de stocker les coordonnées de tous ces blocs "customs" dans un fichier liste, de toute façon ces blocs customs resteront toujours au même endroit.

 

Ce serai super si tu y arrivais, merci d'avance :D

Posté(e)

Oui mais je veux dire que je ne pense pas que ceci fonctionne :

 

On place:
   If block-event is dirt named "Bouse" :
       Etc ...

 

Désolé pour l'exemple je n'en avais pas d'autre en tête XD

Posté(e)
Oui mais je veux dire que je ne pense pas que ceci fonctionne :

 

On place:
   If block-event is dirt named "Bouse" :
       Etc ...

 

Désolé pour l'exemple je n'en avais pas d'autre en tête XD

 

 

Ahahaha aucun soucis, sinon oui je comprends ce que tu veux dire.

Entre-temps, j'ai fait une alternative et le skript à pas mal changé et il marche totalement ! (les non renames n'activent pas les loots, et les rename les activent) le seul problème est que à cause de la configuration actuelle du skript, ça ne marche que pour le dernier "bloc custom" que j'ai posé, ma petite variable n'est pas capable de reconnaître TOUS les blocs customs posés.. :/ voici le skript

 

on place:
   if player is holding a stone:3 named "&5Detritus":
       set {farm.detritus} to location of block
       send "<&eConseil&f> &cBloc Custom placé !" to player        

on break of stone:3:
   if distance between block and {farm.detritus} is less than 1:
       if the player is holding a pickaxe:
           cancel event
       make player execute command "/sound play ZOMBIE_WOOD"
       chance of 60%:
           drop 1 cobblestone
       chance of 25%:
           drop 1 cocoa beans named "Feraille"
       chance of 10%:
           drop 1 flint
       chance of 5%:
           drop 1 coal
       set block to bedrock
       wait 5 seconds
       set block to stone:3

on break of stone:3:
   if distance between block and {farm.detritus} is less than 1:
       if the player is not holding a pickaxe:
           cancel event
           send "<&eConseil&f> &cVous devez utiliser une pioche !" to player

Posté(e)

Essaye ceci :)

 

on place:
   if player is holding a stone:3 named "&5Detritus":
       Add location of block to {list.detritus::*}

on break of stone:3:
   if {list.detritus::%location of event-block%} is set:
       if the player is holding a pickaxe:
           Remove location of block to {list.detritus::*}
           cancel event
           make player execute command "/sound play ZOMBIE_WOOD"
           chance of 60%:
               drop 1 cobblestone
           chance of 25%:
               drop 1 cocoa beans named "Feraille"
           chance of 10%:
               drop 1 flint
           chance of 5%:
               drop 1 coal
           set block to bedrock
           wait 5 seconds set block to stone:3

Posté(e)

Hey, merci beaucoup pour ton aide :)

Malheureusement il y à une erreur qui s'affiche ->

https://www.noelshack.com/2017-05-1486128157-skript.png

 

C'est cette ligne

 

Remove location of block to {list.detritus::*}

 

j'ai essayé de changer le to avec un at : Remove location of block at {list.detritus::*} mais rien n'y fait..

 

Pourrais-tu aussi ajouter que si le joueur n'utilise pas une pioche ça ne loot pas les minerais, ne transforme pas le bloc en bedrock puis de nouveau en diorite (bref aucun effet quoi) et que ça lui mette send "<&eConseil&f> &cVous devez utiliser une pioche !" to player

 

Merci d'avance

Posté(e)
on place:
   if player is holding a stone:3 named "&5Detritus":
       "%{locations.detritus::*}%" does not contain "%location of event-block%":
           add event-block's location to {locations.detritus::*}
           send "<&eConseil&f> &cBloc Custom placé !"

on break of stone:3:
   if "%{locations.detritus::*}%" contains "%location of event-block%":
       player's gamemode isn't creative or spectator:
           if the player is holding a pickaxe:
               player's gamemode is survival or adventure:
                   cancel event
                   chance of 60%:
                       drop 1 cobblestone
                   chance of 25%:
                       drop 1 cocoa beans named "Feraille"
                   chance of 10%:
                       drop 1 flint
                   chance of 5%:
                       drop 1 coal
                   set block to bedrock
                   wait 5 seconds
                   set block to stone:3
               else:
                   send "<&eConseil&f> &cImpossible en spectateur."
           else:
               send "<&eConseil&f> &cUtilisez une pioche !"
       else:
           remove location of event-block from {locations.detritus::*}
           send "<&eConseil&f> &cBloc Custom détruit !"

Posté(e)
enlève "or spectator"

 

ok, et pour le else tout seul je fais quoi ?

 

Sinon j'ai ça maintenant :/

 

" Can't compare a gamemode with a types.inventory " à la même ligne

 

quels addons il faut il m'en manque peut être un ?

Posté(e)

Essaye ça:

 

on place:
  if player is holding a stone:3 named "&5Detritus":
    "%{locations.detritus::*}%" does not contain "%location of event-block%":
      add event-block's location to {locations.detritus::*}
      send "<&eConseil&f> &cBloc Custom placé !"

on break of stone:3:
  if "%{locations.detritus::*}%" contains "%location of event-block%":
    "%player's gamemode%" contains "Creative":
      remove location of event-block from {locations.detritus::*}
      send "<&eConseil&f> &cBloc Custom détruit !"
    else:
      if the player is holding a pickaxe:
        player's gamemode is survival or adventure:
          cancel event
          chance of 60%:
            drop 1 cobblestone
          chance of 25%:
            drop 1 cocoa beans named "Feraille"
          chance of 10%:
            drop 1 flint
          chance of 5%:
            drop 1 coal
          set block to bedrock
          wait 5 seconds
          set block to stone:3
        else:
          send "<&eConseil&f> &cImpossible en spectateur."
      else:
        send "<&eConseil&f> &cUtilisez une pioche !"

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.