Skocz do zawartości
  • 0

Skrypt na enchanty i książki


Misio12320

Pytanie

Witam, potrzebuję pomocy z kodem. jak zrobić by NBT by było tak jak ja chcę? Problem jest w tym że mam kowadło i gdy daję do slotu 0 jakiś kilof z wydajnością 4 to automatycznie mi uznaje go za wydajność 5. 

 teraz zmieniłem w linijce 2 by tylko wykrywało wydajność 5, a jak ulepszyłem to pokazało wydajność 5 i zmarnowałem xp tylko.

Dodatki: Skript, SkBee. 

Edytowane przez Misio12320
Odnośnik do komentarza
Udostępnij na innych stronach

2 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 1
9 minut temu, Misio12320 napisał:

Witam, potrzebuję pomocy z kodem. jak zrobić by NBT by było tak jak ja chcę? Problem jest w tym że mam kowadło i gdy daję do slotu 0 jakiś kilof z wydajnością 4 to automatycznie mi uznaje go za wydajność 5. 

W sensie uznaje za taki sam kilof, ale z enchantem większym o 1? :thonk:

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
W dniu 19.02.2021 o 18:23, Kormic napisał:

W sensie uznaje za taki sam kilof, ale z enchantem większym o 1? :thonk:

Nie rozumiem nic z tego xddd.

Kilof diamentowy (byle jaki) z wydajnością 5 + książka wydajność 5 = ten sam kilof z wydajnością 6 w zamian za 30 poziom. taki powinien być wynik.

Testowałem Kilof diamentowy z wydajnością 3 + książka wydajność 5 = Wydajność 6 <- źle, powinno być tak jak minecraft zadecyduje.

Naprawiłem kod i dałem w linijce 2: of efficiency 5:

TESTOWAŁEM :kappaban: kilof diamentowy wydajność 5 i niezniszczalność 2 + książka wydajność 5 i wyszło = wydajność 5 KASUJĄC MI PRZY TYM 30 LVL

 

Edit: 

Może funkcja Kormica się przyda..

Spoiler

import:
	org.bukkit.event.inventory.PrepareAnvilEvent
	
on PrepareAnvilEvent:
	event.getResult() is 0 air:
		event.getInventory().getItem(0) is not set
		event.setResult(null)
	set {_i1} to event.getInventory().getItem(0)
	set {_i2} to event.getInventory().getItem(1)
	if level of efficiency of {_i1} >= 5:
		level of efficiency of {_i2} >= 5:
		level of efficiency of {_i1} is level of efficiency of {_i2}
		set {_r} to {_i1}
		add 1 to level of efficiency of {_r}
		event.setResult({_r})
		event.getInventory().setRepairCost(10)

Co do kodu na książki, tyle udało mi się zrobić z dodatkiem SkBee.


import:
	org.bukkit.event.inventory.PrepareAnvilEvent
	org.bukkit.inventory.ItemStack
	org.bukkit.Material
	
function getTagFromNbt(s: strings) :: object:
	set {_t} to tag {_s::2} of {_s::1}
	set {_t} to tag {_s::3} of "%{_t}%"
	return {_t}
	
on PrepareAnvilEvent:
	event.getResult() is 0 air:
		event.getInventory().getItem(0) is not set
		event.setResult(null)
	set {_i1} to event.getInventory().getItem(0)
	set {_i2} to event.getInventory().getItem(1)
	if nbt of {_i1} contains "StoredEnchantments:[{lvl:" and "id:32s":
		nbt of {_i2} contains "StoredEnchantments:[{lvl:" and "id:32s"
		set {_nbt} to nbt of {_i1}
		set {_tag0} to getTagFromNbt(nbt of {_i1}, "StoredEnchantments", "lvl")
		set {_tag1} to getTagFromNbt(nbt of {_i2}, "StoredEnchantments", "lvl")
		{_tag0} is {_tag1}
		{_tag0} >= 5
		{_tag1} >= 5
		set {_tag0} to "%{_tag0}%" parsed as integer
		set {_tag1} to "%{_tag1}%" parsed as integer
		set {_id} to getTagFromNbt(nbt of {_i2}, "StoredEnchantments", "id")
		set {_n} to {_tag0} + 1
		set {_t} to "lvl:%{_tag0}% s,id:32s"
		replace all " " with "" in {_t}
		replace all {_t} with "lvl:%{_n}%s,id:32s" in {_nbt}
		set {_r} to new ItemStack(Material.ENCHANTED_BOOK, 1)
		event.setResult({_r})
		event.getInventory().setRepairCost(10)

 

Edytowane przez Misio12320
Odnośnik do komentarza
Udostępnij na innych stronach

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ą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...