Skocz do zawartości
  • 0

skrypt na mieczyk


rip_syn0nim

Pytanie

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
options:
	Miecz: diamond sword named "&5&lkosa" #Przedmiot oraz nazwa miecza.
	EffectTime: 10 seconds #Czas na który nadany zostanie efekt.
	
on right click on player:
	player's tool is {@Miecz}
	apply poison 1 to the clicked player for {@EffectTime}

Proszę, to powinno działać. Zaznaczam, że skrypt nie był testowany.
Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57945-skrypt-na-mieczyk/#findComment-344250
Udostępnij na innych stronach

  • 0
38 minut temu, Hiri12 napisał:
options:
	Miecz: diamond sword named "&5&lkosa" #Przedmiot oraz nazwa miecza.
	EffectTime: 10 seconds #Czas na który nadany zostanie efekt.
	
on right click on player:
	player's tool is {@Miecz}
	apply poison 1 to the clicked player for {@EffectTime}

Proszę, to powinno działać. Zaznaczam, że skrypt nie był testowany.
Pozdrawiam.

dziękuje ale zapomniałem dopisać o cooldownie  (60 sekund)

Odnośnik do komentarza
https://skript.pl/temat/57945-skrypt-na-mieczyk/#findComment-344253
Udostępnij na innych stronach

  • 0
1 godzinę temu, rip_syn0nim napisał:

dziękuje ale zapomniałem dopisać o cooldownie  (60 sekund)

options:
    Miecz: diamond sword named "&5&lkosa" #Przedmiot oraz nazwa miecza.
    EffectTime: 10 seconds #Czas na który nadany zostanie efekt.
	Cooldown: 1 minute
	on right click on player:
    player's tool is {@Miecz}
    if player has player's tool on cooldown:
        send "&cProszę odczekac jeszcze: %item cooldown of player's tool for player%!"
    else:
        apply poison 1 to the clicked player for {@EffectTime}
        set item cooldown of player's tool for player to {@Cooldown}

Proszę bardzo.

Odnośnik do komentarza
https://skript.pl/temat/57945-skrypt-na-mieczyk/#findComment-344255
Udostępnij na innych stronach

  • 0
42 minuty temu, Hiri12 napisał:
options:
    Miecz: diamond sword named "&5&lkosa" #Przedmiot oraz nazwa miecza.
    EffectTime: 10 seconds #Czas na który nadany zostanie efekt.
	Cooldown: 1 minute
	on right click on player:
    player's tool is {@Miecz}
    if player has player's tool on cooldown:
        send "&cProszę odczekac jeszcze: %item cooldown of player's tool for player%!"
    else:
        apply poison 1 to the clicked player for {@EffectTime}
        set item cooldown of player's tool for player to {@Cooldown}

Proszę bardzo.

nie działa wyśle za chwilke zdjęcie

zN9GDAD.png

 

Edytowane przez rip_syn0nim
Odnośnik do komentarza
https://skript.pl/temat/57945-skrypt-na-mieczyk/#findComment-344256
Udostępnij na innych stronach

  • 0
58 minut temu, Hiri12 napisał:

Proszę bardzo.

Dwie uwagi co do kodu:

  1. Kod zadziała tylko w przypadku gdy miecz nie jest uszkodzony. Dlaczego? Ano dlatego, że uszkodzony miecz już nie spełni warunku sprawdzającego narzędzie gracza.
    Jak sobie z tym poradzić? Podam dwa rozwiązania:
    1. Należy zapisać w mieczu jakąś informację, która będzie jednoznacznie wskazywała, że to jest ten miecz. Można wykorzystać dowolny element NBT (wliczając nazwę i lore) lub też 'custom model data'.
    2. Należy rozbić warunek sprawdzający miecz na szereg warunków sprawdzających jego poszczególne cechy (typ przedmiotu, jego nazwa, lore, itd.).
  2. Używanie systemu cooldownu wbudowanego w Minecraft'cie niesie za sobą pewną konsekwencję - w powyższym kodzie cooldown będzie ustawiony na każdy diamentowy miecz, który gracz posiada. Lepiej będzie po prostu przypisać graczowi zmienną służącą do pomiaru czasu ostatniego użycia miecza.

Skrypt więc powinien wyglądać +/- tak:

options:
	sword:
		type: diamond sword
		name: &5&lKosa
		effect:
			type: weakness 1
			duration: 5 seconds
			cooldown: 1 minute
		
on right click on player:
	type of player's tool is {@sword.type}
	name of player's tool is "{@sword.name}"
	if {swordEffect::cooldown::%uuid of player%} is set:
		difference between {swordEffect::cooldown::%uuid of player%} and now is smaller than {@sword.effect.cooldown}
		send "&cOdczekaj chwilę." to player
		stop
	set {swordEffect::cooldown::%uuid of player%} to now
	apply {@sword.effect.type} to clicked player for {@sword.effect.duration}

Pojawia się jeszcze kwestia możliwej niejednoznaczności wyrażenia 'player'. Co prawda Skript powinien rozumieć, że poprzez 'player' mówimy o graczu, który kliknął, ale należy to sprawdzić. Mam na myśli to, że istnieje ryzyko, iż Skript uzna 'player' za tego klikniętego gracza.

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57945-skrypt-na-mieczyk/#findComment-344257
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ę...