maxouviclouis Posté(e) le 7 mars 2023 Posté(e) le 7 mars 2023 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). 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%). J'espère qu'une personne pourra m'aider car je galéré beaucoup. Cordialement
The__V Posté(e) le 8 mars 2023 Posté(e) le 8 mars 2023 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.
maxouviclouis Posté(e) le 8 mars 2023 Auteur Posté(e) le 8 mars 2023 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
Yghore Posté(e) le 10 juin 2023 Posté(e) le 10 juin 2023 Le sujet a été résolu. Il a donc été verrouillé. Cordialement, l'équipe.
Messages recommandés