Crazy Posté(e) le 20 décembre 2016 Auteur Posté(e) le 20 décembre 2016 D'ailleurs @MrCrazyKill , tu peux observer que quand tu met un nom a l'item, celui ci disparaît.... Et essaye avec des potions, ça te donne des potion sans effets, car les damages values sont pas enregistrés dans les fichiers.... Sinon j'ai bientôt fini Bonjour, j'aimerais savoir si le script avance ? :P
remy29 Posté(e) le 23 décembre 2016 Posté(e) le 23 décembre 2016 Bonjour, désolé du retard... J'ai eu quelques problèmes de connections puis je suis partis... Mais je suis de retour, et je vais me remmettre à votre skript ;)
Crazy Posté(e) le 23 décembre 2016 Auteur Posté(e) le 23 décembre 2016 Bonjour, désolé du retard... J'ai eu quelques problèmes de connections puis je suis partis... Mais je suis de retour, et je vais me remmettre à votre skript ;) Ok no problème encore merci :)
Crazy Posté(e) le 28 décembre 2016 Auteur Posté(e) le 28 décembre 2016 Bonjour, désolé du retard... J'ai eu quelques problèmes de connections puis je suis partis... Mais je suis de retour, et je vais me remmettre à votre skript ;) Bonjour, le script avance ? PS: la demande de skript a fait plus de 500 vues :o
remy29 Posté(e) le 3 janvier 2017 Posté(e) le 3 janvier 2017 Bonjour / Bonsoir. J'ai une bonne et une mauvaise nouvelle. Je commence par la mauvaise: Skript n'est pas capable de sauvegarder les metas données entières (nom, lore, enchants, ect...) Votre skript est donc impossible tel quel. La bonne nouvelle, c'est que j'ai développé un petit addon java auquel j'ai rajouté les effets et expressions nécessaires pour réaliser votre skript. Il vous faudra juste quelques Ko de mémoire supplémentaire ;) . Voilà ce que donne un item sauvegardé avec l'addon. itemexemple: ==: org.bukkit.inventory.ItemStack type: DIAMOND_SWORD meta: ==: ItemMeta meta-type: UNSPECIFIC display-name: The Best enchants: DAMAGE_ALL: 3 repair-cost: 3 Je vais réadapter le skript de @PsYZiiK avec l'addon, le skript sera donc pret vers la fin de la semaine. Cordialement, RedSpri 1
Crazy Posté(e) le 3 janvier 2017 Auteur Posté(e) le 3 janvier 2017 Bonjour / Bonsoir. J'ai une bonne et une mauvaise nouvelle. Je commence par la mauvaise: Skript n'est pas capable de sauvegarder les metas données entières (nom, lore, enchants, ect...) Votre skript est donc impossible tel quel. La bonne nouvelle, c'est que j'ai développé un petit addon java auquel j'ai rajouté les effets et expressions nécessaires pour réaliser votre skript. Il vous faudra juste quelques Ko de mémoire supplémentaire ;) . Voilà ce que donne un item sauvegardé avec l'addon. itemexemple: ==: org.bukkit.inventory.ItemStack type: DIAMOND_SWORD meta: ==: ItemMeta meta-type: UNSPECIFIC display-name: The Best enchants: DAMAGE_ALL: 3 repair-cost: 3 Je vais réadapter le skript de @PsYZiiK avec l'addon, le skript sera donc pret vers la fin de la semaine. Cordialement, RedSpri :eek: MERCI ! Je n'avais pas demander de faire un add-on carrément :p
remy29 Posté(e) le 3 janvier 2017 Posté(e) le 3 janvier 2017 J'ai fini! Voilà le code Options: Prefix: &8[&bKits&8] Permission_Message: &cErreur : Vous n'avez pas la permission ! Command_Kit: /Kit Aliases_Command_Kit: /Kits Command_Adm: /KitAdm Aliases_Command_Adm: /KitsAdm Permission_Command_Adm: Kit.Adm # Ceci servira à créer ou supprimer des Kits ! Permission_ByPass_Cooldown: Kit.ByPass # Permission pour ByPass le délai d'un Kit ! Message_Kit_Create: &aVous avez crée le Kit &b{KIT} &a! Message_Kit_Use: &aVous avez obtenu le Kit &b{KIT} &a! Message_Kit_TimeLeft: &cErreur : Vous devez patienter &b{TIMELEFT} &c! Message_Kit_Delete: &cVous avez supprimé le Kit &b{KIT} &c! Kits_Dir: plugins/Kits Kits_File: plugins/Kits/Kits.yml # Répertoire du fichier des Kits ! on load: if folder "{@Kits_Dir}" does not exists: create folder "{@Kits_Dir}" wait 1 tick if file "{@Kits_File}" does not exists: create file "{@Kits_File}" function Replace(msg: text, kit: text, timeleft: text) :: text: replace all "{KIT}" with {_kit} in {_msg} replace all "{TIMELEFT}" with {_timeleft} in {_msg} return {_msg} function ExistenceOfKit(kit: text) :: boolean: if "%{kits::*}%" does not contain {_kit}: return false stop return true function TimeLeft(difference: timespan, delay: timespan) :: text: remove {_difference} from {_delay} set {_delay} to "%{_delay}%" set {_sp::*} to {_delay} split at " " {_sp::5} is set: set {_sp::1} to rounded down {_sp::1} parsed as a number set {_sp::4} to rounded down {_sp::4} parsed as a number set {_result} to "%{_sp::1}% %{_sp::2}% et %{_sp::4}% %{_sp::5}%" else: set {_sp::1} to rounded down {_sp::1} parsed as a number set {_result} to "%{_sp::1}% %{_sp::2}%" replace "second " with "seconde(s) " in {_result} replace "seconds" with "seconde(s)" in {_result} replace "minute " with "minute(s) " in {_result} replace "minutes" with "minute(s)" in {_result} replace "hour " with "heure(s) " in {_result} replace "hours" with "heure(s)" in {_result} replace "day " with "jour(s) " in {_result} replace "days" with "jour(s)" in {_result} return {_result} function KitCreate(p: player, kit: text, delay: text): ExistenceOfKit({_kit}) is true: send "{@Prefix} &cErreur : Ce Kit existe déjà !" to {_p} else: add {_kit} to {kits::*} set {_tool} to "%{_p}'s tool%" {_tool} contain "air": set {_icon} to "diamond sword" else: set {_check::*} to groups 0 of {_tool} matched to "[0-9]" {_check::*} is set: set {_separate::*} to {_tool} split at " " set {_icon} to {_separate::2} loop integers between 36 and 39: slot loop-integer of {_p} is air: add air to {_armors::*} else: add slot loop-integer of {_p} to {_armors::*} loop integers between 0 and 35: slot loop-integer of {_p} is not air: add slot loop-integer of {_p} to {_items::*} set yml value "Kits.%{_kit}%.Icon" from file "{@Kits_File}" to {_icon} set yml value "Kits.%{_kit}%.Delay" from file "{@Kits_File}" to {_delay} set {_armor} to 0 loop {_armors::*}: add 1 to {_armor} save itemstack loop-value at "Kits.%{_kit}%.Armors.%{_armor}%" to file "{@Kits_File}" set {_item} to 0 loop {_items::*}: add 1 to {_item} save itemstack loop-value at "Kits.%{_kit}%.Items.%{_item}%" to file "{@Kits_File}" set {_msg} to Replace("{@Prefix} {@Message_Kit_Create}", {_kit}, "") send {_msg} to {_p} function GetKit(p: player, kit: text): {_p} does not have permission "kit.%{_kit}%": send "{@Prefix} {@Permission_Message}" to {_p} else: ExistenceOfKit({_kit}) is false: send "{@Prefix} &cErreur : Ce Kit n'existe pas !" to {_p} else: set {_delay} to yml value "Kits.%{_kit}%.Delay" from file "{@Kits_File}" set {_delay} to {_delay} parsed as a timespan difference between {kit.%{_kit}%.%{_p}%.lastused} and now is less than {_delay}: set {_timeleft} to TimeLeft(difference between {kit.%{_kit}%.%{_p}%.lastused} and now, {_delay}) set {_msg} to Replace("{@Prefix} {@Message_Kit_TimeLeft}", {_kit}, {_timeleft}) send {_msg} to {_p} else: set {kit.%{_kit}%.%{_p}%.lastused} to now #set {_items::*} to yml list "Kits.%{_kit}%.Items" from file "{@Kits_File}" set {_helmet} to get itemstack in file "{@Kits_File}" at "Kits.%{_kit}%.Armors.4" set {_chestplate} to get itemstack in file "{@Kits_File}" at "Kits.%{_kit}%.Armors.3" set {_leggings} to get itemstack in file "{@Kits_File}" at "Kits.%{_kit}%.Armors.2" set {_boots} to get itemstack in file "{@Kits_File}" at "Kits.%{_kit}%.Armors.1" if helmet of {_p} is air: set helmet of {_p} to {_helmet} else: add {_helmet} to {_items::*} if chestplate of {_p} is air: set chestplate of {_p} to {_chestplate} else: add {_chestplate} to {_items::*} if leggings of {_p} is air: set leggings of {_p} to {_leggings} else: add {_leggings} to {_items::*} if boots of {_p} is air: set boots of {_p} to {_boots} else: add {_boots} to {_items::*} set {_item} to 0 loop 36 times: add 1 to {_item} add get itemstack in file "{@Kits_File}" at "Kits.%{_kit}%.Items.%{_item}%" to {_items::*} loop {_items::*}: if {_p} has enough space for loop-value: give loop-value to {_p} else: drop loop-value at {_p}'s location {_full} is not set set {_full} to true set {_msg} to Replace("{@Prefix} {@Message_Kit_Use}", {_kit}, "") send {_msg} to {_p} {_full} is true send "{@Prefix} &cLes items restants sont au sol !" to {_p} function KitPanel(p: player): open chest with 6 rows named "&aListe des Kits" to {_p} set {_slot} to 0 loop {kits::*}: set {_icon} to yml value "Kits.%loop-value%.Icon" from file "{@Kits_File}" set {_delay} to yml value "Kits.%loop-value%.Delay" from file "{@Kits_File}" set {_icon} to {_icon} parsed as an item set {_delay} to {_delay} parsed as a timespan difference between {kit.%loop-value%.%{_p}%.lastused} and now is less than {_delay}: set {_timeleft} to TimeLeft(difference between {kit.%loop-value%.%{_p}%.lastused} and now, {_delay}) make a gui slot {_slot} of {_p} with {_icon} named "&cIndisponible" with lore "&b%{_timeleft}%" to close then run {_p} command "{@Command_Kit} %loop-value%" add 1 to {_slot} else: make a gui slot {_slot} of {_p} with {_icon} named "&aDisponible" to close then run {_p} command "{@Command_Kit} %loop-value%" add 1 to {_slot} function KitDelete(p: player, kit: text): ExistenceOfKit({_kit}) is false: send "{@Prefix} &cErreur : Ce Kit n'existe pas !" to {_p} else: remove {_kit} from {kits::*} delete yml value "Kits.%{_kit}%" from file "{@Kits_File}" set {_msg} to Replace("{@Prefix} {@Message_Kit_Delete}", {_kit}, "") send {_msg} to {_p} command {@Command_Adm} [<text>] [<text>] [<timespan>]: aliases: {@Aliases_Command_Adm} trigger: if player does not have permission "{@Permission_Command_Adm}": send "{@Prefix} {@Permission_Message}" else: arg 1 is not set: send "{@Prefix} &cErreur : Vous devez préciser un argument !" else: arg 1 is not "Create" or "Delete": send "{@Prefix} &cErreur : Cette commande n'existe pas !" else: arg 1 is "Create": arg 2 is not set: send "{@Prefix} &cErreur : Vous devez préciser un nom !" else: arg 3 is not set: send "{@Prefix} &cErreur : Vous devez préciser une durée !" else: KitCreate(player, arg 2, "%arg 3%") else if arg 1 is "Delete": arg 2 is not set: send "{@Prefix} &cErreur : Vous devez préciser un nom !" else: arg 3 is set: send "{@Prefix} &cErreur : Usage : {@Command_Adm} Delete <Nom> !" else: KitDelete(player, arg 2) command {@Command_Kit} [<text>]: trigger: arg is not set: KitPanel(player) else: GetKit(player, arg) et l'addon: https://drive.google.com/file/d/0BwfOzDa2CcfBbmJ5aVMtRm9OYzQ/view?usp=sharing Un j'aime ça toujours plasir ;) [spoiler=Exemple de kit sauvegardé (seigneur) ] Kits: Seigneur: Icon: sword Delay: 5 seconds Armors: '1': ==: org.bukkit.inventory.ItemStack type: IRON_BOOTS meta: ==: ItemMeta meta-type: UNSPECIFIC display-name: Bottes du seigneur repair-cost: 1 '2': ==: org.bukkit.inventory.ItemStack type: AIR '3': ==: org.bukkit.inventory.ItemStack type: DIAMOND_CHESTPLATE meta: ==: ItemMeta meta-type: UNSPECIFIC display-name: Plastron du seigneur enchants: PROTECTION_ENVIRONMENTAL: 4 PROTECTION_FALL: 4 OXYGEN: 3 repair-cost: 15 '4': ==: org.bukkit.inventory.ItemStack type: DIAMOND_HELMET meta: ==: ItemMeta meta-type: UNSPECIFIC display-name: Casque du seigneur enchants: OXYGEN: 3 repair-cost: 3 Items: '1': ==: org.bukkit.inventory.ItemStack type: DIAMOND_SWORD meta: ==: ItemMeta meta-type: UNSPECIFIC display-name: "\xc9p\xe9e du seigneur" enchants: DAMAGE_UNDEAD: 5 repair-cost: 1 '2': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '3': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '4': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '5': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '6': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '7': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '8': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '9': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '10': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '11': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '12': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '13': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '14': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '15': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '16': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '17': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '18': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '19': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '20': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '21': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '22': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '23': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '24': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '25': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '26': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '27': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '28': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '29': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '30': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '31': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '32': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '33': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '34': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '35': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 '36': ==: org.bukkit.inventory.ItemStack type: POTION damage: 16453 1
Crazy Posté(e) le 4 janvier 2017 Auteur Posté(e) le 4 janvier 2017 Un grand MERCI pour ton travail ! Je vais le tester maintenant et je te dis quoi ^^
Crazy Posté(e) le 4 janvier 2017 Auteur Posté(e) le 4 janvier 2017 Alors j'ai 6 erreurs: [spoiler=Erreurs] Can't understand this condition/effect: set yml value "Kits.%{_kit}%.Icon" from file "plugins/Kits/Kits.yml" to {_icon} (Kits.sk, line 84: set yml value "Kits.%{_kit}%.Icon" from file "{@Kits_File}" to {_icon}') Can't understand this condition/effect: set yml value "Kits.%{_kit}%.Delay" from file "plugins/Kits/Kits.yml" to {_delay} (Kits.sk, line 85: set yml value "Kits.%{_kit}%.Delay" from file "{@Kits_File}" to {_delay}') Can't understand this expression: 'yml value "Kits.%{_kit}%.Delay" from file "plugins/Kits/Kits.yml"' (Kits.sk, line 104: set {_delay} to yml value "Kits.%{_kit}%.Delay" from file "{@Kits_File}"') Can't understand this expression: 'yml value "Kits.%loop-value%.Icon" from file "plugins/Kits/Kits.yml"' (Kits.sk, line 153: set {_icon} to yml value "Kits.%loop-value%.Icon" from file "{@Kits_File}"') Can't understand this expression: 'yml value "Kits.%loop-value%.Delay" from file "plugins/Kits/Kits.yml"' (Kits.sk, line 154: set {_delay} to yml value "Kits.%loop-value%.Delay" from file "{@Kits_File}"') Can't understand this condition/effect: delete yml value "Kits.%{_kit}%" from file "plugins/Kits/Kits.yml" (Kits.sk, line 170: delete yml value "Kits.%{_kit}%" from file "{@Kits_File}"')
remy29 Posté(e) le 4 janvier 2017 Posté(e) le 4 janvier 2017 Il te faut SkUtilities, je t'envoie le lien! https://drive.google.com/file/d/0BwfOzDa2CcfBdGx5WTJIOTJ2aFE/view?usp=sharing 1
Crazy Posté(e) le 4 janvier 2017 Auteur Posté(e) le 4 janvier 2017 Ok je regarde sa :p EDIT: tout marche mais juste 1 bug, quand je créé le kit Test par exemple (avec une maj au T) et quand je fais /kit test (sans la maj) ça me donne pas le kit mais il m'envois le msg Vous avez reçu le kit test Et quand je fais avec la maj ça marche
Crazy Posté(e) le 4 janvier 2017 Auteur Posté(e) le 4 janvier 2017 Ok merci et j'ai oublier de dire il y a un petit bug (pas important puisque l'on peut le changer) mais quand l’icône pour le GUI est un diamond helmet (surement avec les autres armures aussi) et bah sa sauvegarde que helmet dans le fichier Kits.yml mais si on change helmet en diamond helmet ça fonctionne donc pas très grave ^^
Crazy Posté(e) le 11 janvier 2017 Auteur Posté(e) le 11 janvier 2017 Ok je regarde sa :p EDIT: tout marche mais juste 1 bug, quand je créé le kit Test par exemple (avec une maj au T) et quand je fais /kit test (sans la maj) ça me donne pas le kit mais il m'envois le msg Vous avez reçu le kit test Et quand je fais avec la maj ça marche UP @remy29 tu as la solution ? :p sinon j'avais penser a un truc avec ExtrasSk mais ça ne marche pas :( set {_kit} to all character of arg converted to lowercase set {_kit} to character of first character of arg changed to uppercase GetKit(player, "%{_kit}%") Edit: J'ai trouver une solution que je n'avais pas du tout pensé x) if arg is "Guerrier": GetKit(player, "Guerrier") Voilà x) par contre ce n'est pas optimiser mais ce n'est pas trop grave (pour moi après pour les autres personnes qui ont pris le skript il faut voir ;))
kiki Posté(e) le 16 janvier 2017 Posté(e) le 16 janvier 2017 Merci de mettre en résolu :) Bonne journée
Messages recommandés