Skocz do zawartości
  • 0

Sprawdzanie czy gracz może rozwalić blok


Gooldzik

Pytanie

Witajcie,

 

mam taki skrypt, który kiedyś napisała jedna z najbardziej znanych osób tutaj

on mine:
	player's tool's type is diamond pickaxe
	player's tool's name is "&eKilof 3x3"
	set {_1} and {_2} to location of event-block
	add 1 to x-loc of {_1}
	add 1 to y-loc of {_1}
	add 1 to z-loc of {_1}
	remove 1 from x-loc of {_2} 
	remove 1 from y-loc of {_2} 
	remove 1 from z-loc of {_2}
	damage player's tool by 9
	break (blocks within {_1} and {_2}) naturally

Jak mogę sprawdzić, czy gracz ma uprawnienia do niszczenia bloków na danym terenie?

Odnośnik do komentarza
Udostępnij na innych stronach

17 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
3 minuty temu, CoFFeIN04 napisał:

jeśli nie ma to raczej nie będzie się wykonywać event on mine, ale jeśli tak się nie dzieje i event się wykonuje, to możesz sprawdzać czy w miejscu tego bloku jest jakiś region 

Fakt, racja. Ale jest nieco inny problem. Jeżeli gracz wykopie coś na granicy cuboida, to wykopie teren na cuboidzie, mimo że gracz nie ma uprawnień do tego.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Próbowałem z between i within, i nadal można niszczyć granicę cuboida :(

 

on mine:
	player's tool's type is diamond pickaxe
	player's tool's name is "&eKilof 3x3"
	set {_1} and {_2} to location of event-block
	loop all blocks between {_1} and {_2}:
		if region at loop-block is not set:
			add 1 to x-loc of {_1}
			add 1 to y-loc of {_1}
			add 1 to z-loc of {_1}
			remove 1 from x-loc of {_2} 
			remove 1 from y-loc of {_2} 
			remove 1 from z-loc of {_2}
			damage player's tool by 9
			break (blocks within {_1} and {_2}) naturally
		stop

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
13 minut temu, CoFFeIN04 napisał:

no bo źle to robisz,

zrób loopowanie dopiero przed zadawaniem obrażeń (damage player's tool by 9)

Ja to chyba coś zdecydowanie źle robię

 

on mine:
	player's tool's type is diamond pickaxe
	player's tool's name is "&eKilof 3x3"
	set {_1} and {_2} to location of event-block
	add 1 to x-loc of {_1}
	add 1 to y-loc of {_1}
	add 1 to z-loc of {_1}
	remove 1 from x-loc of {_2} 
	remove 1 from y-loc of {_2} 
	remove 1 from z-loc of {_2}
	loop blocks between block at {_1} and block at {_2}:
		if region at loop-block is not set:
			break (blocks within {_1} and {_2}) naturally
		stop
	damage player's tool by 9

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Bez stopa nadal to samo XD

 

Co ze mną jest nie tak?

on mine:
	player's tool's type is diamond pickaxe
	player's tool's name is "&eKilof 3x3"
	set {_1} and {_2} to location of event-block
	add 1 to x-loc of {_1}
	add 1 to y-loc of {_1}
	add 1 to z-loc of {_1}
	remove 1 from x-loc of {_2} 
	remove 1 from y-loc of {_2} 
	remove 1 from z-loc of {_2}
	loop blocks between block at {_1} and block at {_2}:
		if region at loop-block is not set:
			break (blocks within {_1} and {_2}) naturally
		damage player's tool by 9

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
7 minut temu, CoFFeIN04 napisał:

a jakieś błędy czy coś?

Po drugie zamiast break.......naturally daj break loop-block naturally

Błędów nie ma. Mam teraz tak i to nawet działa, bo nie kopię bloków na cuboidzie, ale..

 

Nie wykopuje 3x3, tylko jakąś dziwną ilość

on mine:
	player's tool's type is diamond pickaxe
	player's tool's name is "&eKilof 3x3"
	set {_1} and {_2} to location of event-block
	add 1 to x-loc of {_1}
	add 1 to y-loc of {_1}
	add 1 to z-loc of {_1}
	remove 1 from x-loc of {_2} 
	remove 1 from y-loc of {_2} 
	remove 1 from z-loc of {_2}
	loop blocks between block at {_1} and block at {_2}:
		if region at loop-block is not set:
			break loop-blocks naturally
		damage player's tool by 9

https://imgur.com/1UPSTg2

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

  • 0
4 minuty temu, CoFFeIN04 napisał:

ostatnią linijkę cofnij o jednego taba do tyłu :)

a próbowałeś within zamiast between?

Jestem po prostu debilem.

 

Sam wydedukowałem, że nie powinno zdejmować 18*9 wytrzymałości, oraz że within działa tak jak powinno.

 

Wszystko działa, więc no.. Dziękuję bardzo z całego serduszka <3 

Odnośnik do komentarza
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ę...