Skocz do zawartości
  • 0

Wykopywanie bloków


Byialy

Pytanie

Siemka!

Napisałem sobie prosty skrypt na to, aby wykopany blok nie leciał na ziemię tylko do ekwipunku. Napotkałem na 2 problemy - jak mogę sprawdzić, czy Gracz ma miejsce w ekwipunku na ten drop oraz jak zrobić, aby po np. wykopaniu bloku trawy wypadał dirt, po wykopaniu biblioteczek wypadały książki a nie sam blok, itp.. Jakieś pomysły? 

Odnośnik do komentarza
https://skript.pl/temat/44878-wykopywanie-blok%C3%B3w/
Udostępnij na innych stronach

10 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 1
1 minutę temu, Byialy napisał:

Siemka!

Napisałem sobie prosty skrypt na to, aby wykopany blok nie leciał na ziemię tylko do ekwipunku. Napotkałem na 2 problemy - jak mogę sprawdzić, czy Gracz ma miejsce w ekwipunku na ten drop oraz jak zrobić, aby po np. wykopaniu bloku trawy wypadał dirt, po wykopaniu biblioteczek wypadały książki a nie sam blok, itp.. Jakieś pomysły? 

Możesz to zrobić poprzez wyrażenie 'drops of block'.

loop drops of event-block using player's tool:
	if player has enough space for loop-value:
		# Dalszy kod

Powinno pomóc. Wymagany Skript 2.5.1 lub nowszy.

Odnośnik do komentarza
https://skript.pl/temat/44878-wykopywanie-blok%C3%B3w/#findComment-281907
Udostępnij na innych stronach

  • 0

  

8 minut temu, Kormic napisał:

Możesz to zrobić poprzez wyrażenie 'drops of block'.



loop drops of event-block using player's tool:
	if player has enough space for loop-value:
		# Dalszy kod

Powinno pomóc. Wymagany Skript 2.5.1 lub nowszy.

 

Okej, napotkane problemy udało się rozwiązać (za co dziękuje). Jedyne co teraz zauważyłem - to np. niszczenie bloku na którym coś stoi - np. latarenka - ten blok się niszczy i nie pojawia się w ekwipunku. Na początku ma być "on block break" czy użyć jakiegoś innego zdarzenia? 

 

Obecnie to wygląda tak:

on block mine:
    loop drops of event-block using player's tool:
        if player has enough space for loop-value:
            if player has permission "group.premium":
                clear drops
                give player loop-value

 

Edytowane przez Byialy
Odnośnik do komentarza
https://skript.pl/temat/44878-wykopywanie-blok%C3%B3w/#findComment-281908
Udostępnij na innych stronach

  • 0
4 minuty temu, Byialy napisał:

  

 

Okej, napotkane problemy udało się rozwiązać (za co dziękuje). Jedyne co teraz zauważyłem - to np. niszczenie bloku na którym coś stoi - np. latarenka - ten blok się niszczy i nie pojawia się w ekwipunku. Na początku ma być "on block break" czy użyć jakiegoś innego zdarzenia? 

Po prostu event 'on mine'. Oczywiście musisz użyć 'cancel drops of items', aby nie wypadały przedmioty.

Możesz przykładowo to zrobić w ten sposób:

set {_drops::*} to drops of event-block using player's tool
cancel drops of items
loop {_drops::*}:
	# Dalszy kod

Upewnij się, że żaden inny skrypt (bądź plugin) nie wpływa na działanie tego skryptu.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/44878-wykopywanie-blok%C3%B3w/#findComment-281911
Udostępnij na innych stronach

  • 0

Z kodem:

on mine:
    set {_drops::*} to drops of event-block using player's tool
    loop {_drops::*}:
        if player has enough space for {_drops::*}:
            cancel drops of items
            give player {_drops::*}

wygląda to tak:

https://imgur.com/gReqiPy

10 minut temu, Kormic napisał:

Upewnij się, że żaden inny skrypt (bądź plugin) nie wpływa na działanie tego skryptu.

Gdy wyłączymy skrypt, wszystko działa w sposób prawidłowy.

Odnośnik do komentarza
https://skript.pl/temat/44878-wykopywanie-blok%C3%B3w/#findComment-281913
Udostępnij na innych stronach

  • 0
1 minutę temu, Byialy napisał:

Z kodem:


on mine:
    set {_drops::*} to drops of event-block using player's tool
    loop {_drops::*}:
        if player has enough space for {_drops::*}:
            cancel drops of items
            give player {_drops::*}

wygląda to tak:

https://imgur.com/gReqiPy

Gdy wyłączymy skrypt, wszystko działa w sposób prawidłowy.

Powinieneś anulować drop od razu po ustawieniu listy. Nie ma sensu go anulować dla każdego przedmiotu.

Rozumiem, że problem jest taki, iż gracz nie zdobywa przedmiotów, które znajdują się na bloku, tak?

Odnośnik do komentarza
https://skript.pl/temat/44878-wykopywanie-blok%C3%B3w/#findComment-281914
Udostępnij na innych stronach

  • 0

  

11 minut temu, Kormic napisał:

Powinieneś anulować drop od razu po ustawieniu listy. Nie ma sensu go anulować dla każdego przedmiotu.

Racja - poprawiłem. Dzięki :D 

11 minut temu, Kormic napisał:

Rozumiem, że problem jest taki, iż gracz nie zdobywa przedmiotów, które znajdują się na bloku, tak?

Tak - ani nie pojawia się w ekwipunku, ani nie wypada na ziemię.

EDIT:

Jak Gracz rozwali skrzynkę z przedmiotami - to wypada sama skrzynka. 

Edytowane przez Byialy
Odnośnik do komentarza
https://skript.pl/temat/44878-wykopywanie-blok%C3%B3w/#findComment-281916
Udostępnij na innych stronach

  • 0
18 minut temu, Byialy napisał:

Tak - ani nie pojawia się w ekwipunku, ani nie wypada na ziemię.

Szczerze, strasznie to problematyczne. Przychodzą mi do głowy dwie rzeczy.

1. Sprawdzanie na samym początku eventu czy event-block jest tym blokiem, na który patrzy się gracz (targeted block is event-block). Dopiero po tym warunku ustawiałbyś listę i anulował drop.

2. Pokombinowanie jakoś z cancel event i ustawianiem bloku. Niestety wtedy pojawi się kolejny problem, mianowicie graczowi nie będą się naliczały bloki w statystykach.

Odnośnik do komentarza
https://skript.pl/temat/44878-wykopywanie-blok%C3%B3w/#findComment-281924
Udostępnij na innych stronach

  • 0
2 godziny temu, Kormic napisał:

1. Sprawdzanie na samym początku eventu czy event-block jest tym blokiem, na który patrzy się gracz (targeted block is event-block). Dopiero po tym warunku ustawiałbyś listę i anulował drop.

Jak mogę to uwarunkować? "if target block is event-block or {_drops::*}:" nie działa

Odnośnik do komentarza
https://skript.pl/temat/44878-wykopywanie-blok%C3%B3w/#findComment-281949
Udostępnij na innych stronach

  • 0
2 minuty temu, Byialy napisał:

Jak mogę to uwarunkować? "if target block is event-block or {_drops::*}:" nie działa

Podałem ci warunek w nawiasie, powinien zadziałać.

Odnośnik do komentarza
https://skript.pl/temat/44878-wykopywanie-blok%C3%B3w/#findComment-281950
Udostępnij na innych stronach

  • 0

  

2 godziny temu, Kormic napisał:

(targeted block is event-block)

Niestety nie działa. Errorów brak a wszystko wypada na ziemie zamiast do ekwipunku. Może coś pokombinować z block above? 

Edytowane przez Byialy
Odnośnik do komentarza
https://skript.pl/temat/44878-wykopywanie-blok%C3%B3w/#findComment-281952
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ę...