Skocz do zawartości
  • 0

Wysyłanie "sygnału"


Michał_
 Udostępnij

Pytanie

Więc, chcę aby ta sama część kodu została aktywowana, poprzez 2 różne czynności. Np, wpisuje na chacie /skrzynka i otwiera mi się skrzynka z danymi itemkami, oraz staje na obsydianie i pojawia mi się ta sama skrzynka z tymi samymi itemkami. Nie chcę kopiować kodu, bo mi się zrobi trylion linijek, a chcę mieć wszystko ładnie poukładane. 

Z góry dzięki za odpowiedz

Odnośnik do komentarza
Udostępnij na innych stronach

6 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 1
Teraz, Michał_ napisał:

Więc, chcę aby ta sama część kodu została aktywowana, poprzez 2 różne czynności. Np, wpisuje na chacie /skrzynka i otwiera mi się skrzynka z danymi itemkami, oraz staje na obsydianie i pojawia mi się ta sama skrzynka z tymi samymi itemkami. Nie chcę kopiować kodu, bo mi się zrobi trylion linijek, a chcę mieć wszystko ładnie poukładane. 

Z góry dzięki za odpowiedz

W tym celu właśnie używa się funkcji, które pozwalają na wielokrotne użycie tego samego kodu. Musisz zdefiniować własną funkcję ustawiająca sloty, gdyż otwieranie GUI i tworzenie skrzynki to oczywiście dwie, różne rzeczy.

Jeżeli nie wiesz jak używać funkcji, odsyłam do wiki naszego forum: Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!. W twoim przypadku przesyłanym argumentem będzie inventory (np. player's current inventory).

Co do stawiania na obsydian, użyj eventu 'on walk on obsidian', a następnie ustawiaj któryś blok na skrzynkę.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2

jeżeli skrzynka która się otwiera (gui jak się domyślam) - nie posiada żadnych personalizowanych treści, to możesz także użyć mojego skryptu mGUI i w evencie on load stworzyć nowe gui o zadanym ID, a następnie po użyciu komendy lub wejściu na obsydian jedynie otwierać to gui graczowi - link do skryptu w sygnaturze pod tym komentarzem.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Musisz użyć funkcji - Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

function nazwa(parametry) :: zwracany typ:
	[kod funkcji]

W tym przypadku ważne będzie podanie parametru typu player, aby Skrypt wiedział, komu ma otworzyć to GUI. 

Deklaracja funkcji będzie wyglądała mniej więcej tak:

function otworzGui(player:player):
	[kod funkcji]

pamiętaj, aby zamienić wszędzie player na {_player}, np

open chest with 1 row named "Level up! Choose an attribute to upgrade!" to player
# NA 
open chest with 1 row named "Level up! Choose an attribute to upgrade!" to {_player}

lub np.

send "test" to player
# NA
send "test" to {_player}

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
42 minuty temu, Michał_ napisał:

Dobra, ale jak potem tę funkcję uruchomić?

Używasz nazwy funkcji i opcjonalnie podajesz parametry w zależności od tego czy funkcja tego wymaga, czy też nie.

Przykład:

function test():
	broadcast "test"
    
command /test:
	trigger:
		test()

 

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

 Udostępnij

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

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