Skocz do zawartości
  • 0

Prośba o napisanie skryptu na Kamienie.


dragon5585
 Udostępnij

Pytanie

Witam. Napisałby mi ktoś skrypt na Kamień? Chodzi o to że po wpisaniu komendy /metin <nazwa> pojawia się w tym miejscu gdzie stoję blok z nazwą którą wpisałem i ten kamień mialby np 100k hp w zależności jak sobie ustawie w configu. Chciałbym też aby np po zbiciu połowy hp temu metinowi pojawiały się potwory które też można dopisać razem z nazwami mobow np "Zombie Lvl 4"

Odnośnik do komentarza
Udostępnij na innych stronach

16 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
11 minut temu, dragon5585 napisał:

Witam. Napisałby mi ktoś skrypt na Kamień? Chodzi o to że po wpisaniu komendy /metin <nazwa> pojawia się w tym miejscu gdzie stoję blok z nazwą którą wpisałem i ten kamień mialby np 100k hp w zależności jak sobie ustawie w configu. Chciałbym też aby np po zbiciu połowy hp temu metinowi pojawiały się potwory które też można dopisać razem z nazwami mobow np "Zombie Lvl 4"

Czy ten blok ma się poruszać czy po prostu gracze mają go uderzać i przy tym będzie otrzymywał "obrażenia"?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Godzinę temu, Kormic napisał:

Czy ten blok ma się poruszać czy po prostu gracze mają go uderzać i przy tym będzie otrzymywał "obrażenia"?

Blok ma stac w miejscu bez poruszania sie i gdy gracz uderza z niego obojetnie czym to zabiera mu hp. im wiecej sharpnessa ma się tym więcej żeby mu zabierało hp temu metinowi.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Godzinę temu, TakiJakTy napisał:

Z całym szacunkiem, ale jak nie umiesz napisać tak prostego skryptu za serwery RPG się nie bierz.

Wbrew pozorom ten skrypt nie jest taki prosty jak mógłby się wydawać. W jaki sposób chcesz przechwycić obrażenia w event'cie 'on block damage'?

W dniu 20.10.2020 o 15:34, dragon5585 napisał:

Blok ma stac w miejscu bez poruszania sie i gdy gracz uderza z niego obojetnie czym to zabiera mu hp. im wiecej sharpnessa ma się tym więcej żeby mu zabierało hp temu metinowi.

Czy mam zrobić to na zasadzie, że jedynie poziom sharpnessa decyduje o obrażeniach, czy najlepiej po prostu damage? Odchodząc od tematu przechwytywania obrażeń, czy ma być jakiś cooldown przy biciu bossa (np. 1 tick). Może to być niewielkie zabezpieczenie przed ludźmi, którzy włączą sobie macro, a HP bossa dosłownie się stopi.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
21 godzin temu, Kormic napisał:

Wbrew pozorom ten skrypt nie jest taki prosty jak mógłby się wydawać. W jaki sposób chcesz przechwycić obrażenia w event'cie 'on block damage'?

Czy mam zrobić to na zasadzie, że jedynie poziom sharpnessa decyduje o obrażeniach, czy najlepiej po prostu damage? Odchodząc od tematu przechwytywania obrażeń, czy ma być jakiś cooldown przy biciu bossa (np. 1 tick). Może to być niewielkie zabezpieczenie przed ludźmi, którzy włączą sobie macro, a HP bossa dosłownie się stopi.

Najlepiej zrób to po prostu na  damage. Tak zrób cooldown przy biciu bossa na 1 tick

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
W dniu 25.10.2020 o 13:10, dragon5585 napisał:

Podejmie się ktoś tego zlecenia ? 

jak to sobie wyobrażasz? Blok to blok - jego nie da się bić - można na niego klikać - ale wtedy żadnych obrażeń nie będzie - trzeba by od nowa uwzględniać wszystkie rodzaje broni i zadawane przez nie obrażenia - co raczej nikomu się nie uśmiecha...

chcesz to mogę ci zrobić tak, że będzie jedna, konfigurowalna wartość damage dla wszystkich przedmiotów (ewentualnie zależna - tylko w jaki sposób? - od enchantu sharpness)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
18 minut temu, PanMaruda napisał:

jak to sobie wyobrażasz? Blok to blok - jego nie da się bić - można na niego klikać - ale wtedy żadnych obrażeń nie będzie - trzeba by od nowa uwzględniać wszystkie rodzaje broni i zadawane przez nie obrażenia - co raczej nikomu się nie uśmiecha...

chcesz to mogę ci zrobić tak, że będzie jedna, konfigurowalna wartość damage dla wszystkich przedmiotów (ewentualnie zależna - tylko w jaki sposób? - od enchantu sharpness)

Teoretycznie jest sposób, mianowicie odczytywanie z NBT wartości atrybutu genericAttackDamage.

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

  • 0
14 minut temu, Kormic napisał:

Teoretyczne jest sposób, mianowicie odczytywanie z NBT wartości atrybutu genericAttackDamage.

no to ten... tego... DO BOJU KORMIC! XD

 

@edycja @Kormic a teraz patrz jak omijamy służbistów:

  • tak naprawdę to ten skrypt można by jeszcze zrobić na zasadzie jakiegoś niewidzialnego moba stojącego w miejscu bloku - wtedy biłoby się moba, a damage przechwytywało do bloku :kappapeek:
Edytowane przez PanMaruda
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 minuty temu, PanMaruda napisał:

no to ten... tego... DO BOJU KORMIC! XD

Pamiętasz naszą wczorajszą rozmowę, w której przewinął się m.in. temat służbistów? xD

Zobaczymy czy i taki się nie pojawi w sprawie twojego postu.

3 minuty temu, dragon5585 napisał:

A dałbyś rade to zrobić ? :/ 

Ostatnio testowałem przechwytywanie wartości atrybutów poprzez skript-reflecta, jednak coś nie chciało dobrze pójść. Z tego co pamiętam, to był problem z przechwytywaniem ItemMety przykładowego miecza. Spróbuję jeszcze raz i w razie czego dam znać.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
3 minuty temu, Kormic napisał:

Pamiętasz naszą wczorajszą rozmowę, w której przewinął się m.in. temat służbistów? xD

Zobaczymy czy i taki się nie pojawi w sprawie twojego postu.

Ostatnio testowałem przechwytywanie wartości atrybutów poprzez skript-reflecta, jednak coś nie chciało dobrze pójść. Z tego co pamiętam, to był problem z przechwytywaniem ItemMety przykładowego miecza. Spróbuję jeszcze raz i w razie czego dam znać.

Dobrze w takim razie czekam z niecierpliwością !!

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 godziny temu, PanMaruda napisał:

tak naprawdę to ten skrypt można by jeszcze zrobić na zasadzie jakiegoś niewidzialnego moba stojącego w miejscu bloku - wtedy biłoby się moba, a damage przechwytywało do bloku :kappapeek:

Miałem podobny pomysł, mianowicie po prostu gracz uderzałby samego siebie i w 'on damage' anulowałoby się event.

2 godziny temu, dragon5585 napisał:

Dobrze w takim razie czekam z niecierpliwością !!

Co do przechwytywania atrybutów z NBT, niestety to się nie powiodło ze względu na dwie rzeczy:

1. Metody z ItemMety dot. atrybutów nie działają. Podam prosty kod:

import:
	org.bukkit.inventory.meta.ItemMeta
	org.bukkit.inventory.ItemStack
	org.bukkit.attribute.Attribute
	org.bukkit.Material

command /test:
	trigger:
		set {_i} to new ItemStack(Material.DIAMOND_SWORD, 1)
		set {_m} to {_i}.getItemMeta()
		send "%{_m}.hasDisplayName()%" # To działa i zwraca 'false'
		send "%{_m}.hasAttributeModifiers()%" # Natomiast to już nie działa, a skript-reflect twierdzi, iż nie rozpoznaje takiej metody, w rezultacie zwraca '<none>'

Taka sama sytuacja była z przechwytywaniem wartości atrybutu GENERIC_ATTACK_DAMAGE, dodatek również rzucał błędem, iż nie rozpoznaje takiej metody.

Myślałem nad przechwyceniem wartości z domyślnego lore itemów, jednakże nie znam metod z Javy, które byłyby w stanie to zrobić poprawnie w skript-reflect'cie.

2. NBT nie zawiera wartości atrybutów tak długo jak nie zostaną ręcznie ustawione np. poprzez plugin lub customowe NBT w komendzie /give. Gdy wysyłałem NBT zwykłego diamentowego miecza, na czacie ukazywały się jedynie nawiasy klamrowe '{}'.

W takim wypadku najprościej byłoby zrobić tak jak ja napisałem, mianowicie ustawiamy zmienną, która informuje, że gracz uderzy się, gracz przy uderzeniu bloku uderza siebie, nasłuchujemy do event 'on damage', sprawdzamy czy zmienna jest ustawiona, jeżeli tak to anulujemy event, odejmujemy życie tego bloku (zapewne będzie w jakiejś zmiennej) i czyścimy wcześniej ustawioną zmienną.

EDIT:

Jest jeszcze jeden problem, prawie zapomniałem o nim wspomnieć. Zapewne chcesz, aby HP Metina było widoczne nad nim. Gdyby to było entity, sprawa byłaby znacznie prostsza, a tak to trzeba tworzyć armor stand i jemu nadawać nazwę. Tutaj znowu pojawiają się kolejne problemy:

1. Zabezpieczenie armor standa przed niszczeniem.

2. Zmniejszenie hitboxu armor standa poprzez modyfikację jego NBT (dodanie do niego "Marker:1b").

Edytowane przez Kormic
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.

 Udostępnij

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

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