Skocz do zawartości
  • 0

Problem ze skryptem


GOSTbusters28

Pytanie

Siema mam taki oto skrypt:

command /magiczneskrzynie:
    trigger:
        if player have permission "m.s":
            give player chest named "&5&lMagiczna Skrzynia"
on place:
    if player is holding a chest named "&5&lMagiczna Skrzynia":
        cancel event
        remove 1 chest named "&5&lMagiczna Skrzynia" from player
        send "&b&lOtworzyłeś &5&lMagiczną Skrzynię!"
    chance of 50%: 
        drop 1 diamond boots of protection 5 and unbreaking 3 and thorns 1 named "&5Magiczne &1Buty"
    chance of 50%:
        drop 1 diamond helmet of protection 5 and unbreaking 3 and thorns 1 named "&5Magiczny &1Chełm"
    chance of 40%:
        drop 1 diamond leggings of protection 5 and unbreaking 3 and thorns 2 named "&5Magiczne &1Nogawice"
    chance of 40%:
        drop 1 diamond chestplate of protection 5 and unbreaking 3 and thorns 2 named "&5Magiczny &1Napierśnik"
    chance of 12%:
        drop 1 diamond sword of sharpness 5 and unbreaking 3 and fire aspect 2 named "&5Magiczny &1Miecz"
    chance of 6%:
        drop 1 diamond pickaxe of efficiency 5 and unbreaking 3
    chance of 15%:
        drop 5 diamond block
    chance of 25%:
        drop 40 obsidian

I jest problem ponieważ rzeczy dropią za każdym razem gdy się postawi jakikolwiek blok. 

Z góry dziękuję za pomoc.

Edytowane przez GOSTbusters28
Odnośnik do komentarza
https://skript.pl/temat/42254-problem-ze-skryptem/
Udostępnij na innych stronach

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
4 minuty temu, GOSTbusters28 napisał:

jest problem ponieważ rzeczy dropią za każdym razem gdy się postawi jakikolwiek blok. 

Zamień ten fragment:

if player is holding a chest named "&5&lMagiczna Skrzynia":
	cancel event
	remove 1 chest named "&5&lMagiczna Skrzynia" from player
	send "&b&lOtworzyłeś &5&lMagiczną Skrzynię!"

na to:

if player is holding a chest named "&5&lMagiczna Skrzynia":
	cancel event
	remove 1 chest named "&5&lMagiczna Skrzynia" from player
	send "&b&lOtworzyłeś &5&lMagiczną Skrzynię!"
else:
	stop

Powinno pomóc.

Kilka słów wyjaśnienia: Dlatego skrypt powodował, że z każdego bloku wyrzucało te itemy, gdyż nie było żadnego warunku sprawdzającego czy gracz postawił blok inny niż tę konkretną skrzynię.

Odnośnik do komentarza
https://skript.pl/temat/42254-problem-ze-skryptem/#findComment-264923
Udostępnij na innych stronach

  • 0
13 minut temu, Kormic napisał:

Zamień ten fragment:


if player is holding a chest named "&5&lMagiczna Skrzynia":
	cancel event
	remove 1 chest named "&5&lMagiczna Skrzynia" from player
	send "&b&lOtworzyłeś &5&lMagiczną Skrzynię!"

na to:


if player is holding a chest named "&5&lMagiczna Skrzynia":
	cancel event
	remove 1 chest named "&5&lMagiczna Skrzynia" from player
	send "&b&lOtworzyłeś &5&lMagiczną Skrzynię!"
else:
	stop

Powinno pomóc.

Kilka słów wyjaśnienia: Dlatego skrypt powodował, że z każdego bloku wyrzucało te itemy, gdyż nie było żadnego warunku sprawdzającego czy gracz postawił blok inny niż tę konkretną skrzynię.

Okej wszystko działa ale mam jeszcze jedno pytanie. Czy da się ten skrypt jakoś bardziej zabezpieczyć żeby np. gracz nie mógł w kowadle sobie tak nazwać skrzynię i ją postawić bo wtedy ten skrypt też zadziała.

Odnośnik do komentarza
https://skript.pl/temat/42254-problem-ze-skryptem/#findComment-264926
Udostępnij na innych stronach

  • 0
22 minuty temu, GOSTbusters28 napisał:

Okej wszystko działa ale mam jeszcze jedno pytanie. Czy da się ten skrypt jakoś bardziej zabezpieczyć żeby np. gracz nie mógł w kowadle sobie tak nazwać skrzynię i ją postawić bo wtedy ten skrypt też zadziała.

Dopóki nie masz jakiegoś pluginu/skryptu naprawiającego kolorowe nazywanie w kowadle, to to nie zadziała. Zresztą, możesz sam spróbować dla testu nazwać skrzynię w kowadle jako "&5&lMagiczna Skrzynia" i spróbować ją otworzyć.

Jeżeli mimo wszystko jakimś cudem to zadziała...

1. Możesz dodać do lore tej skrzyni nawet pustą linijkę, gdyż lore żaden gracz sobie w kowadle nie ustawi. Oczywiście nie zapomnij dodać do warunku ze skrzynią 'with lore "twój lore"'.

2. Istnieje również rozwiązanie, które na pewno spowoduje, że nazwy itemów w kowadłach nie będą miały kolorów.

import:
	org.bukkit.event.inventory.PrepareAnvilEvent
	
on PrepareAnvilEvent:
	if event.getResult() != null:
		set {_var} to event.getResult()
		set {_var}'s name to uncoloured {_var}'s name
		event.setResult({_var})

Wymagany skript-reflect.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/42254-problem-ze-skryptem/#findComment-264927
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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