TeZetYT 11 Opublikowano 18 czerwca 2024 Udostępnij Opublikowano 18 czerwca 2024 witam. Jak dodać atrybuty do przedmiotu za pomocą skripta? Wiem że jest komenda, ale potrzebuje też w skripcie to. Szukam wszędzie i nie moge zmaleźć W dokumentacji nie ma żadnych przykładów Cytuj Odnośnik do komentarza https://skript.pl/temat/57675-atrybut/ Udostępnij na innych stronach Więcej opcji udostępniania...
0 Kormic 1951 Opublikowano 18 czerwca 2024 Udostępnij Opublikowano 18 czerwca 2024 (edytowane) 7 godzin temu, TeZetYT napisał: witam. Jak dodać atrybuty do przedmiotu za pomocą skripta? Wiem że jest komenda, ale potrzebuje też w skripcie to. Szukam wszędzie i nie moge zmaleźć W dokumentacji nie ma żadnych przykładów Wedle mojej wiedzy Skript nie implementuje systemu atrybutów dla przedmiotów. Na tą chwilę możliwa jest jedynie modyfikacja atrybutów bytów. Możliwe jednak jest rozwiązanie tego problemu przy pomocy dodatku skript-reflect. Wystarczy zmodyfikować ItemMeta przedmiotu. Poniższy kod nie był testowany, proszę to mieć na uwadze. Pierwszy raz posługuję się klasą NamespacedKey, gdyż ostatni raz modyfikowałem atrybuty przedmiotów gdy jeszcze użycie UUID i dodatkowej nazwy w konstruktorze klasy AttributeModifier było na porządku dziennym. import: org.bukkit.NamespacedKey org.bukkit.attribute.AttributeModifier org.bukkit.attribute.AttributeModifier$Operation as AttributeModifierOperation org.bukkit.inventory.EquipmentSlotGroup org.bukkit.attribute.Attribute command /addattackspeed: executable by: players permission: server.command.addattackspeed trigger: player's tool is not air set {_item} to player's tool set {_itemMeta} to {_item}.getItemMeta() set {_nsKey} to new NamespacedKey(instance of plugin "Skript", UUID.randomUUID().toString()) set {_amount} to 1 set {_operation} to AttributeModifierOperation.ADD_NUMBER set {_eqSlot} to EquipmentSlotGroup.getByName("hand") set {_modifier} to new AttributeModifier({_nsKey}, {_amount}, {_operation}, {_eqSlot}) {_itemMeta}.addAttributeModifier(Attribute.GENERIC_ATTACK_SPEED, {_modifier}) {_item}.setItemMeta({_itemMeta}) Jeśli Pan chce, istnieje również drugi sposób. Mianowicie, może Pan dodać za pomocą dodatku obsługującego NBT (np. SkBee) znacznik (tag) opisujący atrybut, który chce Pan dodać. Więcej informacji o tym znajdzie Pan na wiki dodatku SkBee. Pozdrawiam. Edytowane 18 czerwca 2024 przez Kormic Dodanie importu enuma Attribute Cytuj Odnośnik do komentarza https://skript.pl/temat/57675-atrybut/#findComment-343048 Udostępnij na innych stronach Więcej opcji udostępniania...
0 TeZetYT 11 Opublikowano 18 czerwca 2024 Autor Udostępnij Opublikowano 18 czerwca 2024 2 godziny temu, Kormic napisał: Wedle mojej wiedzy Skript nie implementuje systemu atrybutów dla przedmiotów. Na tą chwilę możliwa jest jedynie modyfikacja atrybutów bytów. Możliwe jednak jest rozwiązanie tego problemu przy pomocy dodatku skript-reflect. Wystarczy zmodyfikować ItemMeta przedmiotu. Poniższy kod nie był testowany, proszę to mieć na uwadze. Pierwszy raz posługuję się klasą NamespacedKey, gdyż ostatni raz modyfikowałem atrybuty przedmiotów gdy jeszcze użycie UUID i dodatkowej nazwy w konstruktorze klasy AttributeModifier było na porządku dziennym. import: org.bukkit.NamespacedKey org.bukkit.attribute.AttributeModifier org.bukkit.attribute.AttributeModifier$Operation as AttributeModifierOperation org.bukkit.inventory.EquipmentSlotGroup org.bukkit.attribute.Attribute command /addattackspeed: executable by: players permission: server.command.addattackspeed trigger: player's tool is not air set {_item} to player's tool set {_itemMeta} to {_item}.getItemMeta() set {_nsKey} to new NamespacedKey(instance of plugin "Skript", UUID.randomUUID().toString()) set {_amount} to 1 set {_operation} to AttributeModifierOperation.ADD_NUMBER set {_eqSlot} to EquipmentSlotGroup.getByName("hand") set {_modifier} to new AttributeModifier({_nsKey}, {_amount}, {_operation}, {_eqSlot}) {_itemMeta}.addAttributeModifier(Attribute.GENERIC_ATTACK_SPEED, {_modifier}) {_item}.setItemMeta({_itemMeta}) Jeśli Pan chce, istnieje również drugi sposób. Mianowicie, może Pan dodać za pomocą dodatku obsługującego NBT (np. SkBee) znacznik (tag) opisujący atrybut, który chce Pan dodać. Więcej informacji o tym znajdzie Pan na wiki dodatku SkBee. Pozdrawiam. ja mam skbee więc druga opcja mi bardziej odpowiada. Dziękuję, temat do zamknięcia. Kormic 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/57675-atrybut/#findComment-343055 Udostępnij na innych stronach Więcej opcji udostępniania...
Pytanie
TeZetYT 11
witam. Jak dodać atrybuty do przedmiotu za pomocą skripta? Wiem że jest komenda, ale potrzebuje też w skripcie to. Szukam wszędzie i nie moge zmaleźć
W dokumentacji nie ma żadnych przykładów
Odnośnik do komentarza
https://skript.pl/temat/57675-atrybut/Udostępnij na innych stronach
2 odpowiedzi na to pytanie
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.