Skocz do zawartości
  • 0

Sprawdzanie bloku


creepek
 Udostępnij

Pytanie

Witam,

Mam takie śmieszne pytanie :D

Jak zrobić że gracz postawi blok to zapisuje do zmiennej ten blok?

Na razie zrobiłem tak :(

on place:
	if event-block is any stone:
		set block -1 above to bedrock
		stop

on break:
	if event-block is any stone:
		set block -1 above to Grass Block
		stop

A chcę aby było

on place:
	if event-block is any stone:
		#zapisywanie bloku poniżej do zmiennej {zmienna.%player%}
		set block -1 above to bedrock
		stop

on break:
	if event-block is any stone:
		set block -1 above to {zmienna.%player%}
		stop

 

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

14 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
11 godzin temu, Asthared napisał:

Sprawdz czy zadziala, jak nie to pisz.

on place:
	if event-block is any stone:
		set {zmienna.%player%} to "%event-block%"
		set block -1 above to bedrock
		stop

		
on break:
	if event-block is any stone:
		set block -1 above to {zmienna.%player%}
		stop

 

Nie działa :/

Stawia stone na miejscu diamenta

@EDIT:

Ok podam ci cały kod:

on place:
	if event-block is any Wood Door:
		remove 1 Wood Door from player's inventory
		set block -1 above to bedrock
		stop
		
on break:
	if event-block is any Wood Door:
    	    set block -1 above to Grass Block
    	    stop
  	else:
	    cancel event

Chcę aby bedrock wracał na blok na samym początku

Np gracz postawi drzwi na diamentowym bloku, zmieni on się w bedrok i po kilku dniach stwierdzi że drzwi tu nie pasują :/

Niszczy drzwi i diamentowy blok zmieni się z Trawe :o Chcę tego uniknąć :/

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

  • 0
on place:
	if event-block is any wooden door:
		remove 1 wooden door from player
		set block to wooden door
		set block below to bedrock
		stop
		
on break:
	if event-block is any wooden door:
		set block below to Grass Block
		stop
	else:
		cancel event

:) Działa 100%

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

  • 0
54 minuty temu, HeezQ napisał:
on place:
	if event-block is any wooden door:
		remove 1 wooden door from player
		set block to wooden door
		set block below to bedrock
		stop
		
on break:
	if event-block is any wooden door:
		set block below to Grass Block
		stop
	else:
		cancel event

:) Działa 100%

Nie chcę tej trawy tylko blok który był wcześniej bo jak kostawie na bloku diamentu to zmieni sie na trawe!

 

57 minut temu, Asthared napisał:

Wiesz, to zapisuje blok, który był pod PIERWSZYMI drzwiami, jeżeli potem położyłeś DRUGIE i zniszczyłeś PIERWSZE to pojawia się blok z tych drugich :P
 

To w takiem razie jak to zrobić?

//Łącze ~Ixidi

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Tak na szybko.. 
Spróbuj

on place:
    if event-block is any stone:
        set {zmienna.%player%.%coordinates of block%} to "%event-block%"
        set block -1 above to bedrock
        stop

        
on break:
    if event-block is any stone:
        set block -1 above to "%{zmienna.%player%.%coordinates of block%}%"
        stop

on place:
	if event-block is any stone:
		set {zmienna.%player%.%coordinates of block%} to "%event-block%"
		set block -1 above to bedrock
		stop

		
on break:
	if event-block is any stone:
		set block -1 above to "%{zmienna.%player%.%coordinates of block%}%"
		stop

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
21 minut temu, Asthared napisał:

Tak na szybko.. 
Spróbuj

on place:
    if event-block is any stone:
        set {zmienna.%player%.%coordinates of block%} to "%event-block%"
        set block -1 above to bedrock
        stop

        
on break:
    if event-block is any stone:
        set block -1 above to "%{zmienna.%player%.%coordinates of block%}%"
        stop

on place:
	if event-block is any stone:
		set {zmienna.%player%.%coordinates of block%} to "%event-block%"
		set block -1 above to bedrock
		stop

		
on break:
	if event-block is any stone:
		set block -1 above to "%{zmienna.%player%.%coordinates of block%}%"
		stop

 

No stawiam stone na diamentowym bloku. Diax blok zmienia sie w bedrock tak jak ma byc... niszcze kamien a bedrock sie w kamien zmienia :o

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Above znaczy nad. -1 above zapewne znaczy, że Skript idzie 1 blok wyżej, a potem (-1) czyli jeden blok niżej (1 + (-1) = 0) wychodzi ten sam blok co na początku. Zamiast "-1 above" (bo to nie ma raczej sensu) trzeba użyć "under".

I jeszcze jedno: jeżeli zapisujemy blok do zmiennej to zapisuje się typ bloku, koordynaty i możliwe, że jeszcze coś. Jak napiszemy "set {blok} to event-block", a event-blockiem jest (np.) grass block to raczej nie zapiszę nam się w zmiennej "grass block", tylko coś takiego "grass block, koordynatX, koordynatY, koordynatZ...". Aby pobrać typ bloku i zapisać go do zmiennej trzeba użyć "type of event-block". (W przypadku "type of event-block", nie zapisują się np. przedmioty w skrzyni [jeżeli event-blockiem jest skrzynia], tylko chyba raczej zapisuje się ID bloku i data value) Chociaż w tym przypadku, jak było "%event-block%", a nie event-block bez cudzysłowiów, to do zmiennej zapisze się typ bloku. ;-P

Kod powinien wyglądać chyba tak: (nie testowałem, ale podejrzewam że działa)

on place:
	if block is any stone:
		set {zmienna.%player%.%coordinates of (block under event-block)%} to type of (block under event-block)
		set block under event-block to bedrock

on break:
	if block is any stone:
		if {zmienna.%player%.%coordinates of (block under event-block)%} is set:
			set block under event-block to {zmienna.%player%.%coordinates of (block under event-block)%}
			clear {zmienna.%player%.%coordinates of (block under event-block)%}

 

8 godzin temu, wiktorelex napisał:

No stawiam stone na diamentowym bloku. Diax blok zmienia sie w bedrock tak jak ma byc... niszcze kamien a bedrock sie w kamien zmienia :o

(W stosunku do kodu z posta wiktorelex) Pojawia się kamień, dlatego że:

1. Stawiasz blok (kamień) i zapisuje się do zmiennej ten blok (kamień)

2. Pod kamieniem stawia się skała macierzysta.

3. Wykopujesz blok i blok pod wykopanym klockiem zamienia się w blok z zapisanej zmiennej (a jak w punkcie 1 napisałem, w zmiennej było zapisane "stone"), czyli kamień.

Przepraszam za pomyłki. O ile takie są :-).

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

  • 0
9 godzin temu, xMarcinos napisał:

Above znaczy nad. -1 above zapewne znaczy, że Skript idzie 1 blok wyżej, a potem (-1) czyli jeden blok niżej (1 + (-1) = 0) wychodzi ten sam blok co na początku. Zamiast "-1 above" (bo to nie ma raczej sensu) trzeba użyć "under".

I jeszcze jedno: jeżeli zapisujemy blok do zmiennej to zapisuje się typ bloku, koordynaty i możliwe, że jeszcze coś. Jak napiszemy "set {blok} to event-block", a event-blockiem jest (np.) grass block to raczej nie zapiszę nam się w zmiennej "grass block", tylko coś takiego "grass block, koordynatX, koordynatY, koordynatZ...". Aby pobrać typ bloku i zapisać go do zmiennej trzeba użyć "type of event-block". (W przypadku "type of event-block", nie zapisują się np. przedmioty w skrzyni [jeżeli event-blockiem jest skrzynia], tylko chyba raczej zapisuje się ID bloku i data value) Chociaż w tym przypadku, jak było "%event-block%", a nie event-block bez cudzysłowiów, to do zmiennej zapisze się typ bloku. ;-P

Kod powinien wyglądać chyba tak: (nie testowałem, ale podejrzewam że działa)

on place:
	if block is any stone:
		set {zmienna.%player%.%coordinates of (block under event-block)%} to type of (block under event-block)
		set block under event-block to bedrock

on break:
	if block is any stone:
		if {zmienna.%player%.%coordinates of (block under event-block)%} is set:
			set block under event-block to {zmienna.%player%.%coordinates of (block under event-block)%}
			clear {zmienna.%player%.%coordinates of (block under event-block)%}

 

(W stosunku do kodu z posta wiktorelex) Pojawia się kamień, dlatego że:

1. Stawiasz blok (kamień) i zapisuje się do zmiennej ten blok (kamień)

2. Pod kamieniem stawia się skała macierzysta.

3. Wykopujesz blok i blok pod wykopanym klockiem zamienia się w blok z zapisanej zmiennej (a jak w punkcie 1 napisałem, w zmiennej było zapisane "stone"), czyli kamień.

Przepraszam za pomyłki. O ile takie są :-).

Dzięki :D

Dla ciebie + i rozwiązany :)

tylko każde coordinates musiałem zmienić na location

np:

if {zmienna.%player%.%coordinates of (block under event-block)%} is set:

na

if {zmienna.%player%.%location of (block under event-block)%} is set:

dzięki :D

@EDIT:

Pomarańczowe notatki są zarezerwowane dla moderacji i administracji //xVendrome

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

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

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