Aller au contenu
  • 0

Drop livres enchants


Question

Posté(e)

Version de Minecraft : 1.14.4
Version de Skript : 2.3.7

Addons utilisés:  SkQuery, SkRayFall, Tuske, Skellett

Type du skript Système de jobs

Description du script :

Bonjour ! 

Question toute bête,

comment dropper des livres enchants ? 
Voici ma ligne de code, cependant j'ai regardé, soit on dois passé par le "give" et je ne veut pas, soit par des NBT data, sauf que ça marche avec SkStuff et il n'est pas valide dans la version 1.14.

Auriez-vous une idée ?

chance of 1%:
    drop cooked salmon at event-player #Ici je souhaite drop un livre enchant 
    send subtitle "&2Tu as pêché &eun livre enchant !" to player for 2 seconds
    set {_fini} to Fishing(player, 20, 25)

Merci ! 😄 

8 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Dans le code java, les livres d'enchantement n'utilise pas le même d'enchantement que les classiques , ils "stockent" un enchantement. Ce qui explique pourquoi tu ne peux pas l'utiliser dans une enclume. Je pense que tu as besoin de passer par skript-mirror

  • 0
Posté(e)
Il y a 21 heures, Anarchick a dit :

Dans le code java, les livres d'enchantement n'utilise pas le même d'enchantement que les classiques , ils "stockent" un enchantement. Ce qui explique pourquoi tu ne peux pas l'utiliser dans une enclume. Je pense que tu as besoin de passer par skript-mirror

A vrai dire, j'ai skript-mirror

  • 0
Posté(e) (modifié)

Puisque ce n'est pas forcement évident à faire je te donne le code complet :

function AddStoredEnchants(item: item, enchantments: enchantment types, force: boolean) :: item:
    set {_meta} to {_item}.getItemMeta()
    loop {_enchantments::*}:
        set {_ench} to loop-value
        set {_type} to {_ench}.getType()
        set {_level} to {_ench}.getLevel()
        {_meta}.addStoredEnchant({_type}, {_level} and {_force})
    {_item}.setItemMeta({_meta})
    return {_item}

function GetStoredEnchants(item: item) :: enchantment types:
    set {_meta} to {_item}.getItemMeta()
    set {_ench} to {_meta}.getStoredEnchants()
    set {_keys::*} to ...{_ench}.keySet()
    set {_values::*} to ...{_ench}.values()
    loop {_keys::*}:
        set {_enchantmentType} to "%loop-value% %{_values::%loop-index%}%" parsed as enchantment type
        add {_enchantmentType} to {_return::*}
    return {_return::*}

function RemoveStoredEnchants(item: item, enchantments: enchantments) :: item:
    set {_meta} to {_item}.getItemMeta()
    loop {_enchantments::*}:
        set {_enchantment} to loop-value
        {_meta}.removeStoredEnchant({_enchantment})
    {_item}.setItemMeta({_meta})
    return {_item}

sachant que pour le Add et Remove tu as une particularité, 

set tool of player to RemoveStoredEnchants(tool of player, protection)
=
RemoveStoredEnchants(tool of player, protection)

En gros si l'item existe dans le monde (dans un inventaire ou tombé au sol), tu n'a pas besoin de la première façon de l'écrire, CEPENDANT si l'item n'existe pas, donc si il s'agit d'une variable tu dois forcement utiliser la première façon !

Modifié par Anarchick
  • J'aime 1
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • 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.