Aller au contenu

Messages recommandés

Posté(e)
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

  • Réponses 65
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Posté(e)

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 ;)

Posté(e)
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 :)

Posté(e)
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

Posté(e)

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

  • J'aime 1
Posté(e)
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

Posté(e)

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

 

  • J'aime 1
Posté(e)

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}"')

 

 

Posté(e)

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

Posté(e)

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 ^^

Posté(e)
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 ;))


×
×
  • 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.