Skocz do zawartości
  • 0

Sprawdzanie czy gracz może rozwalić blok


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
https://skript.pl/temat/46621-sprawdzanie-czy-gracz-mo%C5%BCe-rozwali%C4%87-blok/
Udostępnij na innych stronach

17 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 1

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 

Odnośnik do komentarza
https://skript.pl/temat/46621-sprawdzanie-czy-gracz-mo%C5%BCe-rozwali%C4%87-blok/#findComment-293532
Udostępnij na innych stronach

  • 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
https://skript.pl/temat/46621-sprawdzanie-czy-gracz-mo%C5%BCe-rozwali%C4%87-blok/#findComment-293533
Udostępnij na innych stronach

  • 0
Teraz, CoFFeIN04 napisał:

Musiałbyś sprawdzać po kolei te bloki albo powiększyć ten cuboid

Cuboid i tak jest duży. Chodzi o to, żeby wyeliminować takie sytuacje.

 

W jaki sposób, mogę sprawdzać każdy blok?

Odnośnik do komentarza
https://skript.pl/temat/46621-sprawdzanie-czy-gracz-mo%C5%BCe-rozwali%C4%87-blok/#findComment-293540
Udostępnij na innych stronach

  • 0
7 minut temu, CoFFeIN04 napisał:

loop all blocks within {_1} and {_2}

lub zamiast within daj between, nie wiem

i potem loop-block sprawdzasz czy jest w regionie

Problem w tym, że nie mogę znaleźć jak ten warunek ma wyglądać :(

Odnośnik do komentarza
https://skript.pl/temat/46621-sprawdzanie-czy-gracz-mo%C5%BCe-rozwali%C4%87-blok/#findComment-293546
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
https://skript.pl/temat/46621-sprawdzanie-czy-gracz-mo%C5%BCe-rozwali%C4%87-blok/#findComment-293556
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
https://skript.pl/temat/46621-sprawdzanie-czy-gracz-mo%C5%BCe-rozwali%C4%87-blok/#findComment-293563
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
https://skript.pl/temat/46621-sprawdzanie-czy-gracz-mo%C5%BCe-rozwali%C4%87-blok/#findComment-293565
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
https://skript.pl/temat/46621-sprawdzanie-czy-gracz-mo%C5%BCe-rozwali%C4%87-blok/#findComment-293572
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
https://skript.pl/temat/46621-sprawdzanie-czy-gracz-mo%C5%BCe-rozwali%C4%87-blok/#findComment-293576
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ę...