Aller au contenu

Messages recommandés

Posté(e)

Version de Minecraft : 1.8.9
Version de Skript : 2.5.2 (Peut être modifier si besoin)

Type du skript : Ajout d'un items et augmentations des dégâts d'une arme avec un lore (Pvp)

Description du script :

Bonsoir, j'écrire ici car je suis bloqué sur un skript que j'essaye de faire mais j'arrive a rien du tout...

Enfaite je voudrai que quand un jouer possède une arme (Epée ou hache) avec un lore ou il y aurai écrit "&f➤ Bonus de dégâts : &c+Pourcentage%" (Image mis en dessus du texte) inflige les dégâts prévue + me pourcentage du lore définie. Mais je veux qu'on puisse détecter le pourcentage de dégâts a mettre en plus a victime sa (Que se sois 1%, 5%, 43% et autre).

1678222938-help.png

Et si possible mais je suis en cours de recherche. Pouvoir augmenter les pourcentages de dégâts avec une étoile du nether spécial (Comme sur le screen) en fessant glisser l'item sur l'arme en question  (Et limite le nombre de pourcentage sur l'arme de 50%).

 

1678222934-aide2.png

 

J'espère qu'une personne pourra m'aider car je galéré beaucoup. 

Cordialement

Posté(e)

Bonjour,

Pour répondre à ta demande, je te propose le code ci-dessous. Je l'ai testé avec Skript-2.6.4-1.8 sur PaperMC-1.8.8. Pour améliorer une hache ou une épée avec une orbe de dégâts, il suffit d'effectuer un clic droit sur l'arme avec une orbe dans le curseur. Sont considérés orbe de dégâts valide tout item ayant l'expression "+5% de dégâts" dans son lore, où le 5 peut être remplacé par n'importe quel nombre (raisonnable). Si le bonus après amélioration dépasse le bonus maximal, l'amélioration est réduite pour plafonner à 50% (par défaut, configurable).

Note: Les inventory actions que j'utilise pour déclencher l'amélioration ne fonctionnent pas en créatif.

# DEPS Skript-2.6.4-FORK1.8


Options:
  # Number - Le bonus maximal obtensible par amélioration
  MAX_BONUS: 50


On damage:
  loop lore of tool of attacker:
    # HACK Contourne le besoin de détecter un '%' littéral dans le pattern
    set {_ligneLore} to loop-value
    replace all "%%" in {_ligneLore} with "PCT"

    set {_resultatParsing::*} to {_ligneLore} parsed as "Bonus de dégâts : +%Number% PCT"
    if size of {_resultatParsing::*} > 0:
      set {_multDegats} to {_resultatParsing::1} / 100
      set damage to damage * (1.00 + {_multDegats})
      exit trigger


On inventory click:
  if type of event-item = (any axe or any sword):
    if event-inventoryaction = swap with cursor:
      # Recherche du multiplicateur actuel de l'item cliqué
      set {_lore::*} to lore of event-item
      loop {_lore::*}:
        # HACK Contourne le besoin de détecter un '%' littéral dans le pattern
        set {_ligneLore} to loop-value
        replace all "%%" in {_ligneLore} with "PCT"

        set {_resultatParsing::*} to {_ligneLore} parsed as "Bonus de dégâts : +%Number%PCT"
        if size of {_resultatParsing::*} > 0:
          set {_ancienBonus} to {_resultatParsing::1}
          set {_numeroLigne} to loop-index parsed as integer
          exit loop

      # Si pas trouvé : 0
      if {_ancienBonus} is not set:
        set {_ancienBonus} to 0
        set {_numeroLigne} to ((last element of (indices of {_lore::*})) parsed as integer) + 1

      # Recherche du bonus à ajouter
      loop lore of cursor slot of event-player:
        set {_ligneLore} to loop-value
        # HACK Contourne le besoin de détecter un '%' littéral dans le pattern
        set {_ligneLore} to loop-value
        replace all "%%" in {_ligneLore} with "PCT"

        set {_resultatParsing::*} to {_ligneLore} parsed as "+%Number%PCT de dégâts"
        if size of {_resultatParsing::*} > 0:
          # Trouvé, calcul du nouveau bonus
          cancel event
          set {_nouveauBonus} to min({_ancienBonus} + {_resultatParsing::1}, {@MAX_BONUS})
          if {_nouveauBonus} <= {_ancienBonus}:
            send "<red>Bonus maximum : {@MAX_BONUS}%%"
            play sound "ENTITY_VILLAGER_NO" to event-player
          else:
            set {_lore::%{_numeroLigne}%} to "Bonus de dégâts : +%{_nouveauBonus}%%%"
            set lore of event-slot to {_lore::*}
            remove 1 of cursor slot of event-player from cursor slot of event-player
            play sound "BLOCK_ANVIL_USE" to event-player


Command /dbg:
  executable by: players
  trigger:
    set gamemode of sender to survival
    add 1 of iron sword to inventory of sender
    add 1 of diamond axe with lore "Feel the Might !" and "Bonus de dégâts : +200%%" to inventory of sender
    add 32 of nether star named "Orbe de dégâts V" with lore "+5%% de dégâts" to inventory of sender

Je reste disponible pour toute question subsidiaire.

Posté(e)
Il y a 4 heures, The__V a dit :

Bonjour,

Pour répondre à ta demande, je te propose le code ci-dessous. Je l'ai testé avec Skript-2.6.4-1.8 sur PaperMC-1.8.8. Pour améliorer une hache ou une épée avec une orbe de dégâts, il suffit d'effectuer un clic droit sur l'arme avec une orbe dans le curseur. Sont considérés orbe de dégâts valide tout item ayant l'expression "+5% de dégâts" dans son lore, où le 5 peut être remplacé par n'importe quel nombre (raisonnable). Si le bonus après amélioration dépasse le bonus maximal, l'amélioration est réduite pour plafonner à 50% (par défaut, configurable).

Note: Les inventory actions que j'utilise pour déclencher l'amélioration ne fonctionnent pas en créatif.


# DEPS Skript-2.6.4-FORK1.8


Options:
  # Number - Le bonus maximal obtensible par amélioration
  MAX_BONUS: 50


On damage:
  loop lore of tool of attacker:
    # HACK Contourne le besoin de détecter un '%' littéral dans le pattern
    set {_ligneLore} to loop-value
    replace all "%%" in {_ligneLore} with "PCT"

    set {_resultatParsing::*} to {_ligneLore} parsed as "Bonus de dégâts : +%Number% PCT"
    if size of {_resultatParsing::*} > 0:
      set {_multDegats} to {_resultatParsing::1} / 100
      set damage to damage * (1.00 + {_multDegats})
      exit trigger


On inventory click:
  if type of event-item = (any axe or any sword):
    if event-inventoryaction = swap with cursor:
      # Recherche du multiplicateur actuel de l'item cliqué
      set {_lore::*} to lore of event-item
      loop {_lore::*}:
        # HACK Contourne le besoin de détecter un '%' littéral dans le pattern
        set {_ligneLore} to loop-value
        replace all "%%" in {_ligneLore} with "PCT"

        set {_resultatParsing::*} to {_ligneLore} parsed as "Bonus de dégâts : +%Number%PCT"
        if size of {_resultatParsing::*} > 0:
          set {_ancienBonus} to {_resultatParsing::1}
          set {_numeroLigne} to loop-index parsed as integer
          exit loop

      # Si pas trouvé : 0
      if {_ancienBonus} is not set:
        set {_ancienBonus} to 0
        set {_numeroLigne} to ((last element of (indices of {_lore::*})) parsed as integer) + 1

      # Recherche du bonus à ajouter
      loop lore of cursor slot of event-player:
        set {_ligneLore} to loop-value
        # HACK Contourne le besoin de détecter un '%' littéral dans le pattern
        set {_ligneLore} to loop-value
        replace all "%%" in {_ligneLore} with "PCT"

        set {_resultatParsing::*} to {_ligneLore} parsed as "+%Number%PCT de dégâts"
        if size of {_resultatParsing::*} > 0:
          # Trouvé, calcul du nouveau bonus
          cancel event
          set {_nouveauBonus} to min({_ancienBonus} + {_resultatParsing::1}, {@MAX_BONUS})
          if {_nouveauBonus} <= {_ancienBonus}:
            send "<red>Bonus maximum : {@MAX_BONUS}%%"
            play sound "ENTITY_VILLAGER_NO" to event-player
          else:
            set {_lore::%{_numeroLigne}%} to "Bonus de dégâts : +%{_nouveauBonus}%%%"
            set lore of event-slot to {_lore::*}
            remove 1 of cursor slot of event-player from cursor slot of event-player
            play sound "BLOCK_ANVIL_USE" to event-player


Command /dbg:
  executable by: players
  trigger:
    set gamemode of sender to survival
    add 1 of iron sword to inventory of sender
    add 1 of diamond axe with lore "Feel the Might !" and "Bonus de dégâts : +200%%" to inventory of sender
    add 32 of nether star named "Orbe de dégâts V" with lore "+5%% de dégâts" to inventory of sender

Je reste disponible pour toute question subsidiaire.

Suite a 2-3 Modification de ton code, j'ai pue le faire marcher.

 

Merci beaucoup pour ton aide

  • 3 mois après...
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.